用Flutter實現一個小說閱讀App

lwlizhe發表於2019-12-27

專案地址: Flutter_Novel
順便給這個 Md2All 點個贊,這效果有點東西唉……

前言

如果想自己編譯,建議flutter環境使用最新的stable分支(我目前使用的是stable分支的1.12.13+hotfix.5),由於專案中使用了較新的技術點,所以如果是過老的版本的環境應該會因為找不到類或者方法而報錯。

另外……ios因為沒裝置,所以也不知道具體是否正常,講道理應該沒啥問題的。plugin,程式碼這塊也是基本的flutter程式碼,應該沒什麼特殊的…………

本人也是在不斷摸索學習flutter中,所以這個專案中存在的錯誤或者低效能部分,還請不吝提issue或者pr。

總之,歡迎pr、fork、star,或者在issue區中提出有意義的意見或者建議。

順便提一下:

多圖流量警告!

效果

先公佈一下現在可以公開的情報(為了體現效能優化成果,在閱讀頁開啟Performance Overlay介面):

書庫頁

書庫-無書
書庫-無書

書庫-有書
書庫-有書


搜尋頁

搜尋頁
搜尋頁


詳情介紹頁

詳情頁
詳情頁


閱讀頁

設定-模擬翻頁
設定-模擬翻頁

章節內頁面跳轉
章節內頁面跳轉

上一章和下一章
上一章和下一章

目錄頁
目錄頁

設定-字型大小
設定-字型大小

設定-行高
設定-行高

設定-覆蓋翻頁
設定-覆蓋翻頁

設定-滾動翻頁
設定-滾動翻頁

設定-背景
設定-背景

核心技術點(非UI部分)概括

整體架構:

  1. 基於provider的實現的mvvm思想的模板框架


書庫頁

  1. 資料庫sqflite使用


搜尋頁

  1. rxdart的一種小小應用


詳情介紹頁

  1. 可以摺疊展開的text
  2. 主題色隨圖片


閱讀頁(核心)

  1. Flutter中textPainter的使用,包含繪製、測量等.
  2. canvas的使用.
  3. 三種翻頁動畫(左右模擬翻頁、上下滑動翻頁、覆蓋翻頁)的實現.
  4. 離線快取
  5. sharedPreference、螢幕亮度等使用者設定內容。
  6. stream的一種小小應用
  7. dart中協程以及flutter的isolate的一些使用方法
  8. 一種超低耦合的listView按index跳轉的方式(目錄頁)

里程碑(暫定)

未實現的部分:

  1. 排行榜
  2. 書評
  3. 下載
  4. 本地書籍匯入、wifi傳書等其他匯入書籍方式
  5. 非txt格式的資料支援
  6. 網頁抓包處理解析(用於解析網頁而非介面獲取的書籍資訊)
  7. 音量鍵翻頁
  8. 語言讀書,自動翻頁

特別感謝

flutter_app(追書神器的介面以及介紹頁來自於這個專案)
BookPage(閱讀頁的實現思路參考自這個專案)

相關文章