天天看點

一個碼農的非典型日常愛好

不知道大家是否有日常記賬的習慣,反正我有,這些年我一直使用某魚記賬APP,但是最近它廣告實在太多,于是突然萌生了自己做一個适合自己的記賬App的想法。

一個碼農的非典型日常愛好

雖然我算是個程式員,但是我平時隻用彙編和C,對于面向對象的C++/Java都沒學過。白天需要上班,隻能夜深人靜的時候,撸會兒代碼,算是給生活增添一份樂趣吧。

首先我相信程式設計語言是相通的,百度了下,在網上找到了廖雪峰的官方網站之JAVA教程,順便加了那個微信交流群,花了幾天時間對Java常見文法和名稱有一定的了解,例如Android常用的extend/implement。

然後我在淘寶了一本《Android Studio開發實戰》,也加了對應的QQ交流群,花了兩周學習了下Android基礎,需要掌握到什麼程度呢?書上程式你會拿來當模闆套就行了。

最後我就開始動手了,經過一周多時間,已經能滿足自己記賬需求了。先看下界面,然後說下具體使用到Android中哪些功能子產品組裝起來的。

一個碼農的非典型日常愛好
一個碼農的非典型日常愛好

開發前先自報下開發環境,因為自己打算做Android記賬App是今年11月底了,是以安裝的軟體都是最新的。

Android Studio3.5.2 + JDK 13.0.1。

記賬軟體主要包括記賬、查賬和删賬,顯示部分做了按月查消費比例;按年查月消費折線圖;按年查每月收支結餘。

使用的書上的主要技術如下:

1、資料存儲,采用SQLite存儲賬單;

2、首頁的餅圖/折線圖/表格圖使用的是GridLayoutManager;

3、首頁的banner使用的是自定義動畫技術;

4、賬單顯示,使用的是LinearLayoutManager;

5、查賬和記賬支援翻頁,使用的是FragmentPagerAdapter;

6、導航欄,使用的是OverflowMenu;

7、底部标簽,使用的是基于ActivityGroup的标簽欄;

8、年份選擇、月份選擇功能,是基于DatePicker做的裁剪;

9、使用到的基礎控件包括TextView/EditText/Button/ Spinner;

10、餅圖和折線圖使用github上基于View做的封裝庫;

11、涉及到其他技術如碎片fragment,需要知道application的生命周期。

最後考慮到以後我要換手機,怎麼解決資料丢失問題?可以使用adb把sql資料庫導出,等換了新手機安裝完軟體後,再把sql資料庫放回去,這樣以前寫的賬單都不會丢失啦。

另外,手機不用root,使用run-as指令可直接進入app資料庫所在目錄。

一個碼農的非典型日常愛好

寫在最後,因為完全是Android門外漢,是以也是臨時興起,邊看邊學,解決自己的實際需求的,是以App談不上美觀,更談不上品質,純滿足自己可用而已。

更多源碼,可以關注如下公衆号擷取。

歡迎掃碼關注,一起學習Linux

一個碼農的非典型日常愛好