為時三天的Android大作業經歷


作為一位后端選手,端午的三天被android課程的期末大作業所困(這節課是選修課,導致我一節課都沒聽過),然后開始邊學邊寫android,一開始感覺這次作業隨便糊弄以下就交了算了,但是內心的正義感(咕咕咕),讓我不好意思糊弄……
但是在這次開發的過程中,我開始對開發有了更加多的理解(本質就是代碼搬運工【誤)。后端開發的經驗和刷算法題的經歷對我完成這次作業也有很大的幫助。比如說業務分層,加密算法的實現,等等都沒有像是一個安卓純小白的樣子。

項目是一個簡陋的Android的翻譯軟件(畢竟只學習過三天),對各位有幫助的可以點一個Star呀
github項目地址

0.運行截圖



1.業務分層

我的工程目錄是這樣的
在這里插入圖片描述

  • 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. 總結

總之,對於我這個學習三天的成果,我是比較滿意的。並且里面結合了我的日常開發經驗,代碼耦合度也不高。寫完這個項目后我還是比較開心滴,畢竟對現在大一的我的學習能力,閱讀其他人的代碼(包括源碼,這幾天看了不少源碼,確實幫助很大)的能力都有很大的提升。雖然我不是安卓開發方向的,但是這也算是對大一的一個不錯的總結項目。繼續努力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM