2018年9月28日 星期五

外行人寫手機小程式 Part.6 - 單字卡app


其實上一個題庫程式完成了以後也不是說就完整了,之後還是有做過幾次修改
例如說把原本科目是分開的,改寫成同樣模式的整合成一個畫面
不然App Inventor 2最多只容許10個畫面,而且整合後要修改也不用每個科目頁面都去修改
還有追加了以週為單位,能夠自動將答錯的題目輸出成文字檔,這點非常有用



寫完這個單字卡APP之後要來寫這篇blog之前,才想到去google play翻翻有沒有類似的APP
想當然的有這個  簡易單字卡  ,基本內容與概念相同,不過還好的是操作與畫面的部分完全不同 XD
如果說單純做筆記的APP,我個人是推薦OneNote,在文字手繪錄音照片的整合來說,體感上比較像真實筆記本
而Evernote就差上一截,如果習慣偏好Evernote又不想付費的話,還可以選擇Google Keep就是

附帶一提滿久沒逛google play,最近中文的免費APP+廣告好像漸漸比較不流行
比較流行把APP功能拆成好幾塊讓人付費購買,一整個就遊戲DLC的感覺去了


好了回到主題上來,單字卡/重點卡我其實買了相當多,從B8還A7 size,到空白名片還彩色名片
上面照片左上角那一整盒以外還有1、2盒做好的,沒用完的還一堆,還真的是挺浪費的
不過如果是上班不適合掏出手機的時候,用實體卡就沒人會講話,人類社會的價值標準真的是很奇怪的啊


單字卡(反面) 與 手機APP(正面) 的合照,尺寸差不多、字體大小也差不多


寫好的程式在模擬器裡的樣子,說真的開發過程這次很頭大,之前的題庫完全是用模擬器來測試跟除錯
這次不行,底下會提到;另外這次的icon我覺得運氣不錯挑到非常合的,現在很多icon好看的都是要賣錢的



主畫面與編輯頁的程式碼,老實說我個人是認為程式碼越短水準越高
但是現在大多數程式語言IDE都有縮編功能,而且拆成很多檔案,所以光看截圖不準 XD

打從一開頭我就沒打算在google play 上架,主要是在編寫的時候就發現了一個難以解決的問題
大部分的程式教學現在都是教你把資料存在本機或網路資料庫,那麼為什麼不教你存在內建記憶體或者SD卡?

主要就是因為Android系統的每個廠家、每個時期生產的手機,底下ROM空間與擴充記憶卡的路徑都有可能不同
如果採用預設路徑的話很有可能在A手機可以讀到檔案,但B手機可能會有錯誤訊息
也可能沒有錯誤訊息,就是所謂的閃退,幾乎各種APP的評語裡都會出現這兩個字 XD

所以像是專門用來開發APP用的Genymotion就內建非常多各款實體手機的IMG,讓模擬器能夠更逼近實機
這也是與一般專門用來玩手遊的模擬器像是Bluestacks之類最大的不同點




在模擬器運行的主畫面,換頁時會切換顏色,正反面不換色,右下角顯示類別與頁碼而已
是的非常單調,就只是把彩色空白名片的單字卡給APP化而已,沒有任何按鈕 XD
那麼操作怎麼處理?在最上面的影片實機示範裡有字幕,螢幕下滑下一頁、上滑上一頁,左右划正反面
非常接近實體的單字卡使用方式,唯一差別大概只在於,現在不管哪個廠牌,都沒有再生產4吋以下的手機
要說單手橫置使用,大手機就完全沒有這個單字卡的味道了,所以這支APP現在完全就是我個人專用的感覺

不過在編寫這個滑動翻頁的時候算是寫這個APP的第一道關卡
首先,用模擬器測試的話實在是很難達到準確的手感,畢竟電腦跑模擬器還是用滑鼠操作不是觸控
再來是關於滑動操作這個,雖然App Inventor感覺上是有類似的功能,但是網路上幾乎完全找不到範例
也就是說沒得抄 (爆炸) ,而如何判斷我是要翻頁還是翻面?如果是斜45度滑要怎麼判斷?
這點倒是N年前好像有微薄的印象在某書上有看過概念,加上一點條件式重複測試個幾次還可以
但是完成後翻頁發現會跳頁,主要是因為滑動的時候到底去觸發程式幾次?不知道 (爆炸)
最後一個問題是修改完翻頁問題之後,同樣的方法去修正長按5秒切編輯頁
如果按超過5秒的話會變成設定頁不斷重複開啟!不過這問題只在模擬器上發生,實機沒有就無視了 (X

附帶一提一開頭提過的那個google play上找的到的簡易單字卡APP,底下評語曾經有人建議採用這種滑動翻頁
但是該作者好像是回覆 "操作方式已經行之有年不太好更改" ,老實說現在再回頭看
給一般人用的話還是按鈕式穩定,不是制式API的話無法保證在別人的機子上也一定會正常動作


長按5秒就可以進入編輯設定頁,差不多目前需要用的到的功能都做上去了
上下頁以外建立新頁、刪除本頁、左右的正反面交換是測試建檔中發覺有這功能會比較方便才追加的
亂數翻頁的設定是主畫面使用,生效的時候無法回到上一頁,只能隨便抽一張到下一頁
變更名片檔則是直接輸入檔名切換,要再做一個檔案管理去選擇開檔太耗事了pass
原本有一個版本是只要頁面切換就存檔,後來是覺得這樣太傷記憶卡,所以改成離開才存檔
但是這樣缺點是萬一不小心按到機子本身的上一頁離開的話,所有剛建好未存檔的資料就蒸發了 orz


雖然實機畫面小歸小,實際輸入起來出乎意料的順手
雖然說用的是CSV檔案可以用EXCEL或者記事本編輯,但實際體感這個編輯頁比外部編輯還來的好用
模擬器畫面的虛擬鍵盤占用大小也是差不多,不過選擇正反面的欄位來進行輸入是毫無問題的
實際上用左手翻書右手輸入,已經是比紙筆還要方便了,文具與書寫這件事快要變成一種休閒活動的感覺


有關功能還切換什麼的其實都不是問題,大概拚好就能跑連改都不用改
結果資料庫CSV檔本身才是大問題,雖然在題庫APP就已經實作過讀取的功能了
但是讀取到陣列做過修改再寫回去CSV要保證還是原來格式,那就是問題了
印象中在文淵閣的討論區中前幾年有人問過這問題,他們的回答是 "您需要再多了解一下CSV格式"
就是又沒得抄的意思啦 (爆炸) ,印象中他們整套好幾冊的書當中也沒有去詳細解說過
如果是其他程式語言的話,去stack overflow還是GitHub提問找答案多少有機會
App Inventor 這麼簡單的東西...對了youtube上有人錄了一整套的中文教學上去,還算挺有用的小推一下


上面的是實機測試時一邊作的筆記,有些編寫當時沒發現的問題還是想追加的功能就寫下來
一條一條解決之後再一條一條槓掉,所以現在也還不是終點
預計的追加功能還有,依照欄位長度自動調整成每頁3/4/5行模式,這個還蠻需要的
最後目標是以Symbol Art的方式能夠對卡片作加註,如果要做到這個的話欄位必須要增加SA的參數跟座標...
不過還是等換了大螢幕的手機再說吧,不知道幾年後的事就是了 XD