靈機一動,想說可以用表單來記帳,一查果然有人做過 OuO
前言
又被 Google play 發了60元禮金,想說看一下工具類的 APP 付費情況,發現前幾名有兩個記帳 APP,原本想說要買來用養成一下記帳,可是我對現有的記帳程式沒有啥好感,之前也用過兩三種,後來也都放棄。結果後來想想還是不要拿來買工具,所以又買了一個 Rusty lake 的遊戲,燒腦的解謎遊戲,多多支持 (無業配XD)
使用表單記帳
靈機一動,想說可以用表單來記帳,一查果然有人做過1
不過我也只是採用了簡單部份,後面那個對帳有點複雜啊。所以我就建了兩個表單:消費記錄、轉帳記錄。
- 消費記錄:記錄平常花費
- 轉帳記錄:領錢、悠遊卡或是點點卡儲值
用表單記帳好處:
- 雲端化,即時更新
- 自動時間戳記
- 超客制化,問題選項及流程都自行設計
- 統計圖表功能完整
可能缺點:
- 一定要有網路才能記帳
- 複雜統計功能要花時間設計
- 某些表單沒有的可能就無法提供,例如,顯示表格,另外我發現手機無法上傳圖片 QuQ
表單設計
表單有一個很有用的功能,就是區段,可以針對回答跳轉到不同的問題
所以大概就是這樣設計,如此便可以快速方便記錄細節。其實這就是一個狀態機,Compiler DFA 回憶起來~ 針對自己的情況加選項或是問題,超級客制化。
預先填入表單
某些選項可能超常用,比方說消費記錄大部份都是現金,可以將它用作選項預設值,可以參考 2
如何使用表單
一開始想法很簡單,就是建立記錄用的表單,然後將連結用書籤的型式存在手機桌面,這樣就可以直接點來記帳。
APP
用書籤有一個很大的缺點,就是一定要放在桌面,多表單的話很麻煩。再來就是每次點開就需要開啟瀏覽器,而我的瀏覽器頁面常駐超過 99 個分頁 (:D
) 所以載入要花費一定的記憶體及時間。
於是我就想說找看看有沒有將表單變成 APP 的方法,不過看來沒有簡單的方法, AppSheet 好像可以不過似乎之後要收費。接著我就打算自己用一個簡單的 APP。
Android Studio 過於肥大是不得已才會採用。查了一下發現 App Inventer 2 (AI2) 也有支援 WebView 的元件所以我的想法應該可行,基本概念就是用 WebView 來載入我們的表單,用按鈕控制開啟哪個表單這樣。
版面設計
兩個畫面,左邊主畫面作為一開始進入的畫面;右邊用來開啟網頁也就是表單,放一個 WebViewer 然後大小用最大。
開始寫 code,咦,是拉 code
先展示一下完整的模樣
- 首先是畫面進入及離開,因為在 AI2 中對 TextBox 作修改是無法儲存的,關閉 App 重開後會恢復,所以這裡採用建議的方式:用 TinyDB 當作儲存空間。那紫色的兩個 procedure 將在稍候提到。主要就是用來讓設定可以被儲存。
- 點擊按鈕後傳送對應的連結給 Screen 2 當作瀏覽連結,這裡我有點懶所以命名就大致上不更改@@,值得注意的是,這裡看到傳入 TextBox 的值,可是剛剛畫面上沒看到 TextBox 啊,其實是我隱藏起來了,將 visiable 設定為 false,按下設定才會顯示。
- Screen 2 接收剛剛傳的連結後當作首頁畫面,Screen 2 也就只有這個方塊。
- 這裡就是我在 2. 中提到的,按設定的按鈕會顯示設定
- 在 4. 中設定的部份會需要儲存到 TinyDB 中。
- 最後,把 TextBox 存取 TinyDB 的動作寫成 procedure,這樣比較清楚。
- 額外功能。開啟相機掃描 QRcode 並複製到剪貼簿,這裡需要安裝一個外掛套件 Clipboard Extension,另外記得取消勾選BarcodeScanner1 的 UseExternalScanner 直接使用內建的即可。會多這個功能主要是可以用在電子發票上,在記帳前可以先掃描,之後直接複製到備註那邊即可。
成品
感覺我也不算是做一個記帳 App,反而像是將書籤或是網址合併變成一個 App,所我雖然取這個名子不過我還是找一個沒有跟錢相關的 icon。我也增加設定頁面可以設定的東西,包括按鈕的文字也可以換,所以也就不限於記帳了。
Icons made by Smashicons from www.flaticon.com