<address id="r9vd9"><address id="r9vd9"><listing id="r9vd9"></listing></address></address>

      歡迎您光臨深圳塔燈網絡科技有限公司!
      電話圖標 余先生:13699882642

      網站百科

      為您解碼網站建設的點點滴滴

      兩個星期,用Flutter擼個APP

      發表日期:2018-11 文章編輯:小燈 瀏覽次數:2041

      前言

      Flutter是Google推出的跨平臺的解決方案,Slogan是“Design beautiful apps”,國內也有知名企業在使用和推廣,例如阿里、美團都有在嘗試。

      個人對其中的一些特性,比如JIT、Material Design、快速開發等很感興趣,于是決定嘗試一下。

      詩詞匯

      于是誕生了詩詞匯APP,首先看一下是個什么樣的APP。

      image

      接下來我們一步步從不同方面說說Flutter的開發。

      開始

      FLutter可以在Windows、Linux、Mac上進行開發,開發工具可以使用VS Code、Android Studio、IDEA等,本文推薦使用Android Studio,主要在于Android Studio提供了FLutter Inspector工具,可以實時審查元素,解決界面的顯示適配問題。

      搭建開發環境

      搭建環境的主要步驟:

      1. 下載SDK,下載地址。

      2. 配置PATH,如果使用Mac或者Linux系統,一定要將bin目錄添加到系統PATH。

      3. 配置依賴源鏡像,這一步很重要,并且需要將腳本放到啟動shell中。

       export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
      1. 執行flutter doctor,這一步耗時會很長,需要耐心等耐。

      2. 安卓開發工具及插件,配置編輯器。

      配置編輯器

      主要是給編輯器安裝相應的插件。

      VS Code安裝flutter插件,Android Studio和IDEA需要安裝Flutter和Darter插件。

      其中Android Studio和IDEA基本一樣,跟VS Code的主要區別在于:

      1. VS Code提供了更好的代碼提示功能

      2. IDEA提供了Flutter Inspector,可實時審查頁面元素

      可根據個人喜好、習慣選擇使用。

      推薦網站

      在安裝、配置過程中,可參考以下中文資料:

      Flutter中國

      Flutter中文文檔

      主要技術點

      Dart

      Flutter項目的開發語言是Dart,Dart 是由 Google 開發的一種面向對象語言,可以編譯成 ARM 和 x86 代碼直接運行在 iOS、Android 設備上。

      推薦先學習Dart語言官方教程,對Dart有初步了解之后再進行Flutter的學習和開發。

      界面開發

      終于可以進入Flutter本身了。

      Widget

      Flutter中頁面所有元素都是Widget,又分為StatelessWidget和StatefulWidget。

      顧名思義,StatelessWidget 就是指無可變狀態的 Widget,這類 Widget 的狀態只由創建 Widget 時傳入的參數決定,一旦創建,其狀態、在頁面上的展示效果也就不再改變。

      而 StatefulWidget 內部則存在著可變狀態。當通過setState改變這些狀態時,Flutter 會重新渲染該 Widget。

      布局

      在實際開發中,主要使用了Row、Column、Container、Expanded、Stack等。

      Row、Column提供了水平、垂直方向的布局,Stack提供了堆疊方式的布局,各種容器有不同的特性,可根據實際頁面需求選擇搭配不同的布局。

      推薦學習 官方文檔 及 國內維護的中文翻譯。

      主要插件

      話題切回到詩詞匯APP,本APP收集了4000余位詩人的30多萬首詩詞,提供了古詩詞的查詢、收藏、朗誦功能,并且實現了初步的社區功能。

      項目目錄結構如下:

      image

      開發這個APP大概用了一個月的業余時間,每天抽出一兩個小時,這樣折算為工作日,大概是兩個星期左右,開發效率還是很高的。

      下面跟大家分享一下主要功能及所使用的一些插件。

      切換主題

      為了實現實時切換主題顏色,使用了狀態管理插件。

      flutter_redux 。

      極光推送

      在國內廠商中,極光是少有的對Flutter提供了技術支持的,這里給極光大大的?。

      jpush_flutter

      QQ

      QQ的Flutter插件提供了基本的登錄、分享功能。

      flutter_qq

      微信

      微信的Flutter插件提供的功能稍微豐富,包含了支付、登錄、分享、啟動小程序的功能。

      fluwx

      事件總線Event Bus

      大名鼎鼎的event_bus也提供了對Flutter的支持。

      event_bus

      音頻

      錄音及播放音頻也有很好的支持。

      audio_recorder

      audioplayer2

      其它

      其它諸如加載HTML、Toast提示、圖片選擇器、圖片加載等也有較好的插件支持。

      可在 官方插件庫 查詢相關的插件。

      安裝、升級

      FLutter的安裝、升級會經常遇到卡死的問題,主要原因就是使用了Google的源,但是莫名的,即使使用了科學上網、設置了國內鏡像后,也會遇到同樣的問題。只能通過反復的flutter doctorflutter upgrade直到解決問題。

      開發

      由于筆者最近一段時間Android項目做得較多,習慣了Android的XML布局方式,對于在代碼中編寫頁面的形式一開始還有些不習慣,但是在按照官方例子實踐了幾個頁面后,用代碼寫頁面的優勢就體現出來了。

      在頁面已經設計好的情況下,開發的時候腦海中就構思出一個Widget樹,從根節點到每一個節點一級一級嵌套下去,自然而然的布局就寫好了。

      Dialog彈出框

      使用Dialog的時候,彈出Dialog的Context及Dialog本身都會壓入棧中,所以讓Dialog消失的方法是Navigator.of(ctx).pop(),這樣的設計既不同于Android也不同于iOS,也許跟Flutter本身所有元素都是Widget的設計有關。

      編譯

      在編譯Android版本的時候很順暢,沒有遇到任何問題。但是在編譯iOS版本的時候,遇到了很多問題,直到現在也沒有解決。

      問題在于使用了audio_recorderflutter_qq兩個插件,而這兩個插件一個要求編譯選項需要設置!use_framework,一個要求不能設置,造成了沖突,在實際編譯中一直編譯不通過。

      結語

      開發結束,最終打包了Release版本的APK,安裝到手機后,發現驚喜。

      竟然如絲般順滑,這是我始料未及的,轉場效果、頁面相應速度不輸原生APP。

      總而言之,個人對Flutter的前景相當看好,畢竟是Google大廠出品,并且項目本身的迭代速度很快,目前已經是0.11版本,期望在不遠的將來發布正式的1.0版本,更期望國內廠商加大對Flutter的支持力度。

      順便推廣一下筆者的詩詞匯APP,歡迎大家 下載試用 ,或者訪問 詩詞匯 體驗下Flutter如絲般的順滑。_

      image
      本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.webpost.com.cn/18163.html
      相關APP開發
       八年  行業經驗

      多一份參考,總有益處

      聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

      咨詢相關問題或預約面談,可以通過以下方式與我們聯系

      業務熱線:余經理:13699882642

      Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

      国产成人精品综合在线观看