基於Flutter實現的仿開眼視訊App

JD-CP發表於2019-08-23

flutter_eyepetizer

  • 這是一款基於 Google Flutter 實現的一款仿開眼視訊 App。

背景

從 Google 在 2018.02 的世界移動大會上正式推出首個 Flutter Beta 版,到 2018.12 的 Flutter Live 2018 上,釋出 1.0 穩定版,再到現在,也差不多有 18 個月的時間了。Flutter 在 Github 上的 star、fork 量也是一路飆升,可以說,出自 Google 的 Flutter,除了自帶光環,再加上它本身的眾多優勢,受到了眾多開發者的追捧,熱度只增不減。

作為一名不幹寂寞的小開發,我也在去年 7 月份,果斷入坑,開始 Flutter 的學習。也是略有斬獲,並輸出了一篇關於原生與 flutter 混合開發的文章:Kotlin + MVP + Flutter ,讓你可以在自己的專案中整合 Flutter 並使用。反響也還不錯,當然也有很多考慮不足的地方。

之後的很長一段時間,我也因為工作上的變動以及一些個人原因,擱置了 flutter 的學習計劃。這段時間,工作生活狀態逐漸穩定之後,也繼續開始了我的 flutter 學習之路。所以有了今天的主角 仿開眼視訊-flutter實現版。其實整個 App,現階段並沒有多麼複雜的東西,基本用的都是 flutter 自帶的 Widget,設計風格遵循 MD 規範,所以非常適合初學者學習。

掃碼下載

  • 手機掃描下方二維碼,即可下載。

基於Flutter實現的仿開眼視訊App

目前實現的功能

  • 首頁每日精選
  • 發現頁 - 推薦關注、熱門分類
  • 熱門 - 周排行、月排行、總排行
  • 我的(目前是靜態頁,後期完善)
  • 搜尋頁
  • 熱門關注列表
  • 熱門分類列表
  • 視訊詳情

說明

專案純屬個人愛好而寫,API 均來自開眼視訊,原始碼僅供學習交流。

專案截圖

  • gif

專案gif動態圖

執行方式

  • 檢視分支
flutter channel
/// 如果當前分支不是 beta,請切換至 beta 分支
flutter channel beta
複製程式碼
  • 切換分支過程中,會自動幫你更新至最新版。如果分支是在 beta 分支,請執行以下命令,檢查是否需要安裝其他依賴
flutter doctor
複製程式碼
  • 執行啟動
flutter packages get
/// 確保裝置已連線
flutter run
複製程式碼

你能學到的東西?

  • 大部分基礎控制元件的使用,諸如:Text、Image、Icon、Scaffold、ListView、GridView、CustomScrollView、Container、Padding、Expanded、Column、Row等等...
  • 下拉重新整理、上拉載入。
  • 佈局排版,以上控制元件會使用之後,進行佈局排版就很簡單了,原則:先上後下,先左後右。
  • 三方庫的引入、圖片的引入。
  • 使用者互動事件的響應。
  • 頁面的跳轉,普通跳轉、攜參跳轉。
  • json 解析。推薦一個外掛:FlutterJsonBeanFactory,使用方式自行百度吧,非常簡單~
  • http 請求的使用。針對 dio,做了一點簡單封裝,程式碼如下:
  /// 執行 get 請求
  static doGet(
    String url, {
    queryParameters,
    options,
    Function success,
    Function fail,
  }) async {
    print('http request url: $url');
    try {
      Response response = await buildDio().get(
        url,
        queryParameters: queryParameters,
        options: _options,
      );
      success(response);
      print('http response: $response');
    } catch (exception) {
      fail(exception);
      print('http request fail: $url --- $exception');
    }
  }
複製程式碼

用到的三方庫

後續計劃

會有新功能的新增,更多的是針對現在專案的缺點,所進行的優化。

  • 作者詳情資訊頁展示。
  • 封裝一個更好用的 AppBar。
  • 下拉重新整理、上拉載入封裝。
  • 螢幕適配,非常有必要!。
  • 事件匯流排引入。
  • Bloc模式的引入,不瞭解Bloc?更多詳情請點選 Bloc
  • rxdart,都知道在 Android 中,RxJava 的地位舉足輕重,那麼,在 Flutter 開發中,要不要嘗試一下 rxdart 呢?
  • 會考慮和Native混合開發,只能說有可能。

最後

附上專案下載地址 flutter_eyepetizer

如果您和我一樣,喜歡技術,喜歡 Flutter,可以關注此專案,賞個star。我閒暇時間,也儘可能快的更新。

相關文章