Android知識問答與分享專案實戰

沉默的範大叔發表於2018-07-21

Android知識問答與分享專案實戰

簡介

AndroidPlus為《Android應用開發進階》實戰專案,分為Java版和Kotlin版。AndroidPlus是安卓開發者的“自留地”,為安卓開發者提供專屬的技術問答和知識分享平臺。在AndroidPlus上,可以提出在安卓開發過程中遇到的任何問題,可以熱心回答其他開發者的疑問,另外還可以分享閱讀過的優秀乾貨文章。

功能

AndroidPlus主要分為四大塊:註冊登入、首頁、文章、我(個人中心)。使用者首先進入的是註冊登入模組,當使用者開啟App時,會顯示一個歡迎介面,若使用者沒有登入,則進入登入介面。使用者沒有註冊賬號,還可以點選註冊按鈕進入註冊介面。使用者註冊登入後就進入主介面。主介面分為三大模組,分別為首頁、文章和我,點選底部導航條可以進行三個模組的切換。主介面預設顯示為首頁,在首頁中,使用者可以新增問題,並可分為三個頁面:最近問題列表、熱門問題列表和最新回答列表。當使用者點選最近問題列表或者是熱門列表的問題條目時,會進入問題詳情頁面,在問題詳情頁面中,可以新增對問題的回答,並且顯示最近回答列表和最熱門回答列表;當使用者點選回答列表的回答條目時,就會進入回答詳情;在回答詳情頁面中,使用者可以點贊或者是跳轉到評論介面檢視評論或者寫評論。在文章介面,根據文章類別可分為熱門、思考、專案、SDK、Kotlin、自定義控制元件、第三方、面試,並且可以在別的應用中分享文章到AndroidPlus。在個人中心——“我”中,會顯示使用者的相關資訊,如頭像、暱稱、個性簽名,另外可檢視使用者的分享、提問、回答、喜歡的文章、喜歡的問題、喜歡的回答,使用者可以在使用者反饋中跟產品運營反饋問題,在設定選項中可退出登入。

Android知識問答與分享專案實戰

架構設計

AndroidPlus的架構採用MVP + Dagger + LeanCloud。使用MVP將程式劃分層次,使用Dagger來降低MVP中層與層之間的耦合,作為個人開發者,獨自搭建後臺伺服器比較耗時,可以選擇第三方雲資料庫來完成產品的快速實現。在MVP的Model層中,我們進行了模組化處理,將資料來源進行切割,分成了問題資料來源QuestionDataSource、回答資料來源AnswerDataSource、評論資料來源CommentDataSource、文章資料來源ArticleDataSource。在當前版本中,資料來源由LeanCloud實現,如果後續更換伺服器介面(比如使用自己搭建的伺服器),只需要用新的網路介面實現Model層的一套資料來源介面,替換掉LeanCloud即可。

Android知識問答與分享專案實戰

實現

註冊和登入(RegisterActivity和LoginActivity)

Android知識問答與分享專案實戰
Android知識問答與分享專案實戰

主介面 (MainActivity)

Android知識問答與分享專案實戰

首頁 (HomeFragment)

首頁介面頂部為Toolbar,並內部包含一個TabLayout,Tablayout顯示三個頁面標題:問題、熱門、動態。另外TabLayout繫結一個ViewPager,ViewPager內部又有三個子介面:問題介面,熱門介面,動態介面。使用者點選首頁右上角,可進入新增問題介面。

  • 新增問題 (AddQuestionActivity)

Android知識問答與分享專案實戰

  • 問題介面(QuestionFragment)

新增問題成功後,在LeanCloud後臺就存在問題資料了,接下來就可以使用QuestionFragment來展示這些資料。問題列表條目進行了模組化封裝,為一個QuestionItemView:

Android知識問答與分享專案實戰

  • 熱門介面 (HotQuestionFragment)

熱門介面根據使用者對問題收藏次數進行排序展示。

Android知識問答與分享專案實戰

  • 動態介面 (DynamicFragment)

動態介面展示最新被回答的問題列表

Android知識問答與分享專案實戰

問題詳情(QuestionDetailActivity)

當我們點選問題介面和熱門介面的條目時,就能跳轉到問題詳情介面。問題詳情顯示問題標題與描述,下面是一個ViewPager展示最新的回答和最熱門的回答列表。

Android知識問答與分享專案實戰

新增回答(AddAnswerActivity)

在問題詳情介面,點選右下角的FloatingActoinButton跳轉到新增回答介面AddAnswerActivity,使用者可以在裡面輸入自己對問題的回答,然後點選右上角的釋出按鈕進行釋出。

Android知識問答與分享專案實戰

回答詳情(AnswerDetailActivity)

點選問題詳情中的回答條目AnswerItemView,進入回答詳情AnswerDetailActivity,在問題詳情介面AnswerItemView中的回答可能展示不全,回答詳情介面展示回答所有內容,並且在底部可以對回答進行點贊和評論。

Android知識問答與分享專案實戰

評論(CommentActivity)

點選回答詳情的評論按鈕,進入評論介面CommentActivity。評論列表由RecyclerView實現,滾動到底部時,可載入更多評論資料。

Android知識問答與分享專案實戰

分享文章(ShareArticleActivity)

當使用者在其他應用中讀到精彩Android開發的文章時,可以點選分享按鈕,在彈出的應用列表中選擇AdroidPlus(應用名Android+),跳轉到分享介面ShareArticleActivity。在ShareArticleActivity中,文章的URL自動填寫出來,文章的標題和描述需要使用者自行輸入,然後還必須給文章選定一個標籤,才能夠釋出文章。

Android知識問答與分享專案實戰

Android知識問答與分享專案實戰

文章介面(ArticleFragment)

完成文章分享後,我們就可以在文章介面ArticleFragment檢視使用者分享的文章了。在ToolBar中包含TabLayout,裡面放置著文章標籤:熱門、思考、專案、SDK、Kotlin、自定義控制元件、第三方和麵試。TabLayout與ViewPager繫結,每個標籤對應一個文章列表的Fragment,點選文章列表條目,就能夠進入文章詳情,檢視文章內容,並且可以收藏喜歡的文章。

Android知識問答與分享專案實戰

個人中心(MeFragment)

主介面的最後一個頁面是個人中心MeFragment。第一個卡片裡面擺放使用者頭像、使用者名稱和使用者簽名,點選都能進行修改;第二個卡片擺放使用者的分享、提問和回答;第三個卡片是使用者喜歡的文章、問題和回答;第四個卡片在最後面,擺放著使用者反饋和設定。

Android知識問答與分享專案實戰

  • 我的分享

Android知識問答與分享專案實戰

  • 我喜歡的文章

Android知識問答與分享專案實戰

  • 使用者反饋

Android知識問答與分享專案實戰

使用者詳情(ProfileActivity)

展示的是當前登入使用者的資料,如果想檢視其他使用者的資料怎麼辦呢?事實上,我們可以點選問題列表或回答列表條目中的使用者的頭像或使用者名稱即可跳轉到使用者詳情介面ProfileActivity。

Android知識問答與分享專案實戰

交流

更多詳細內容請查閱《Android應用開發進階》,另外,歡迎各位朋友加入QQ群,交流專案學習。

Android知識問答與分享專案實戰

Android知識問答與分享專案實戰

相關文章