做爲一位後端選手,端午的三天被android課程的期末大做業所困(這節課是選修課,致使我一節課都沒聽過),而後開始邊學邊寫android,一開始感受此次做業隨便糊弄如下就交了算了,可是心裏的正義感(咕咕咕),讓我很差意思糊弄……
可是在此次開發的過程當中,我開始對開發有了更加多的理解(本質就是代碼搬運工【誤)。後端開發的經驗和刷算法題的經歷對我完成此次做業也有很大的幫助。好比說業務分層,加密算法的實現,等等都沒有像是一個安卓純小白的樣子。android
項目是一個簡陋的Android的翻譯軟件(畢竟只學習過三天),對各位有幫助的能夠點一個Star呀
github項目地址git
0.運行截圖



1.業務分層
個人工程目錄是這樣的
github
- dto(數據傳輸對象),裏面是我進行網絡請求的參數構造對象,以及解析返回的Response所用的類結構,使用fastjson進行解析
- provider(數據產生對象),這個類接收DTO並對裏面的數據處理後返回最終結果(也是一個DTO對象)。
- 回到Activity層去處理傳輸過來的DTO對象裏的數據,而Activity上又有三個Fragment對象,這裏的數據傳輸過程本着三個Fragment依託於MainActivity想法,我把大多數Fragment的數據交互都寫在的MianActivity的代碼裏。
- 對於Fragment,因爲數據處理,按鈕事件處理大多放在了MainActivity中,這裏的邏輯就很是清晰,只須要管數據是怎麼顯示在界面上就能夠了。這樣就實現了單一功能原則。
2.業務邏輯實現
- 首先是三個界面的跳轉,我使用的BottomNavigationView加上FragmentPagerAdapter還有Fragment實現頁面的輪播加上滑動。
- 翻譯這個功能調用了百度翻譯的API,其中有一個須要POST的參數字段須要使用MD5加密。
這個是我感受比較難的的地方。而後構造完TranslatePostDTO後,將他做爲參數輸TranslateProvider中,使用fastjson解析返回數據,填充入TranslateResultDTO中,返回這個TranslateDTO,這裏麪包含咱們翻譯回來的結果。在翻譯結果接收後,咱們將其顯示在屏幕上,並存入儲存文件,以便於歷史記錄從中讀取。
- 接着是顯示歷史記錄,歷史紀錄從我寫入的文件中讀取,可是不作其餘操做的話,是沒法實時同步歷史記錄的,我選擇重寫Fragment中的setUserVisibleHint方法,這個方法調用早於onCreateView,他會每次到達這個Fragment就會從新執行裏面的讀取文件並顯示。
3. 總結
總之,對於我這個學習三天的成果,我是比較滿意的。而且裏面結合了個人平常開發經驗,代碼耦合度也不高。寫完這個項目後我仍是比較開心滴,畢竟對如今大一的個人學習能力,閱讀其餘人的代碼(包括源碼,這幾天看了很多源碼,確實幫助很大)的能力都有很大的提高。雖然我不是安卓開發方向的,可是這也算是對大一的一個不錯的總結項目。繼續努力。web