Flutter教程從零構建電商應用(一)

2021-01-08 計算機java編程

在這個系列中,我們將學習如何使用google的移動開發框架flutter創建一個電商應用。本文是flutter框架系列教程的第一部分,將學習如何安裝Flutter開發環境並創建第一個Flutter應用,並學習Flutter應用開發中的核心概念,例如widget、狀態等。

本系列教程包含如下四個部分,敬請期待:

如何從零構建flutter應用如何在flutter中布局元素如何在flutter中組織數據如何在flutter中展示數據1. 開發環境安裝與Flutter項目創建

Flutter的開發文檔相當出色,請參考官方文檔先安裝開發環境。

一旦開發環境安裝好,我們可以創建一個新的測試項目。我傾向於使用android studio,因為它為flutter應用的開發提供了一個完備的集成開發環境。你需要在Android studio中安裝一個Dard語言插件。

現在啟動Android Studio,你會看到初始化Flutter項目的選項:

從配置列表中選擇**Flutter Application **。

可以為你的第一個Flutter應用起一個酷炫的名字,不過如果你和我一樣不善於起名,就用timer好了。

對話框的最後一步,會要求我們填寫應用的包名:

接下來Flutter SDK就會為應用創建一個初始的目錄結構,main.dart是應用執行的入口。

2. 編寫並測試應用代碼

在Flutter中,一切都是控制項(widget)。Flutter應用中的圖像、圖標和文本都是widget。布局元素例如行、列、柵格等用來安排其他widget的位置、大小和對齊,而這些布局元素本身也是widget。

參考如下代碼修改你的main.dart文件:

現在啟動Android模擬器:

注意widget的焦點,我們接下來將修改MaterialApp的內容。先看一下原始版本:

Flutter中的布局元素(也是widget)可以根據其是否支持包含多個widget,而簡單地歸類為兩種類型。例如,Container、Padding只能包含一個子widget,而Row、Column則可以包含多個。

現在我們在Row布局中引入三個文本widget:

現在看起來是這樣:

在我們開始設置組件的樣式之前,建議先創建一個新的widget來處理樣式問題,以便遵循DRY(Don't Repeat Yoursel)原則。

將三個子widget用一個自定義widget(後面解釋)替換。現在main.dart文件變成:

我不是很擅長用戶界面,但是我們還是盡力吧,加點背景色,留點空白:

同時,在文本下面插入一個按鈕widget,修改後的代碼運行結果如下:

現在到了app最不可或缺的部分了:狀態。狀態將持有timer的當前值和運行標識。我補充了一個TimerState類,它負責維護狀態,同時構建widget樹。

按鈕用來切換timer的運行或者停止:

Dart有個用於異步操作的優雅的模塊。我們可以使用其Timer類來實現讀秒。修改後的TimerAppState代碼如下,注意我們已經重構Timer類並改名為TimerApp以避免與異步模塊中的Timer類混淆:

好了,我們已經完成了第一個Flutter應用,完整的Dard代碼可以在這裡下載。

相關焦點

  • 【Flutter桌面篇】Flutter&Windows應用嘗鮮
    前言最近換了一臺新的windows,把搭建Flutter&Windows應用的環境過程順便記錄分享一下。Flutter對MacOS的支持還是非常好的,因為iOS和MacOS最終都是用XCode構建的,所以運行在Mac桌面上也輕而易舉。要讓Flutter運行在Windows上,還是比較麻煩的,這也造成一定的門檻。
  • 好課分享:動~腦~學~院~ 12套Flutter教程,零基礎到實戰開發
    動~腦~學~院~  |   ├──12套Flutter教程,零基礎到實戰開發  |   |   ├──01 Flutter Dart入門基礎語法  |   |   ├──02 flutter入門到精通課程  |   |   ├──03 Flutter移動應用開發實戰  |   |   ├──04 flutter移動電商實戰
  • 「首席架構師推薦」棒棒的Flutter庫,工具,教程,文章列表(1)
    Flutter是一款移動應用SDK,可通過單一代碼庫為iOS和Android構建高性能,高保真的應用。文章介紹Google IO 2018 - 構建精美,靈活的用戶界面。演講 - 由Helio S. Junior撰寫。Flutter Web - Nash的Flutter Web的來龍去脈。
  • Flutter 開始支持構建 Linux 桌面應用,Snap 格式卻惹質疑
    現在,開發者可以通過 Snap Store(Linux 應用程式商店)來分發自己的應用。Flutter 由谷歌打造,起初用於創建跨平臺移動應用。去年五月,谷歌宣布將對 Flutter 的支持從移動平臺擴展到桌面級別,並公布了針對 macOS、Windows 和 Linux 的計劃。
  • Flutter 中文文檔:簡單的應用狀態管理
    即便如此,如果你已經從其它響應式框架上積累了豐富的狀態管理經驗的話,那麼可以在 狀態 (State) 管理參考 中找到相關的 package 和教程。連結:https://flutter.cn/docs/development/data-and-backend/state-mgmt/options1.
  • Flutter 入門路線圖
    什麼是 flutterFlutter 是 Google 的 UI 工具包,可通過單個代碼庫為行動裝置,web 和桌面系統構建漂亮的,本機編譯的應用程式。查看 Flutter 的功能以下是全球開發人員構建的 Flutter 應用程式的展示。
  • Mac版最詳細的Flutter開發環境搭建
    flutter耍一耍,發現flutter的環境搭建步驟還是很繁瑣的,官網的搭建教程只是按步驟讓你進行操作,中間出現的問題完全沒有提及,對我這種沒搞過原生開發的小白來說超級不友好。而網上很多相關博客教程,感覺不夠詳細,許多環境搭建過程中的坑確實是提到了,但解決的辦法寫的比較籠統,在此我將本次環境搭建鎖遇到的各種奇奇怪怪的問題一一匯總,爭取結合各路大神的博客加上自己實際遇到的問題整理出一篇超級實用且詳細的教程,讓童鞋們在學習flutter的路上少走彎路,讓你的起跑順暢起來,大神們請指正或忽略。系統環境要求Flutter是相對新出的框架,對系統有一定的要求。
  • 谷歌Flutter 1.7正式發布:支持AndroidX和Android App Bundles
    支持 Android App Bundles 和 64 位的 Android 應用從 2019 年 8 月 1 日開始,為了 target 到 Android Pie 版本,開發者們在 Google Play 上發布的應用必須支持 64 位架構。
  • Flutter 實戰11
    這裡,依舊使用新建的計數器應用為例,然後在計數值顯示的Text組件和FloatingActionButton組件上添加key屬性,如下:import 'package:flutter/material.dart';void main() { runApp(MyApp());}class MyApp extends StatelessWidget
  • Flutter加載網頁之官方webview_flutter講解
    前言最近在用flutter開發一個App,其中需要加載網頁,本來以為很簡單的一件事,卻遇到了不少坑,最後整整搞了一上午。對於加載網頁這個功能來說,flutter並沒有組件,反而是第三方開發了一些組件,目前比較常用的有二種: flutter_webview_plugin webview_flutterflutter_webview_plugin是目前用得最火的一種,也是比較好用的,但是它有個致命的缺點,它不支持「進入某個URL之前攔截」,這也是我放棄它的原因。
  • 解決flutter運行報錯:flutter_tools depends的處理方法
    我是您的朋友義縣遊學電子科技.今天帶來的flutter的錯誤解決方法是關於web平臺運行時提示:"Because flutter_tools depends on shelf_packages_handler any which doesn't exist(could
  • Flutter 中文文檔:點擊、拖拽事件和文本輸入
    為了測試這些交互,我們需要在測試環境中模擬上述場景,可以藉助 flutter_test 庫中的 WidgetTester 類來實現。WidgetTester 提供了文本輸入、點擊、拖動的相關方法:在很多情況下,用戶交互會更新應用狀態。在測試環境中,Flutter 在狀態發生改變的時候並不會自動重建 Widget。
  • 用 Flutter + Dart 快速構建一款絕美移動 App
    首先,我根據Flutter官方網站上提供的官方指南創建了一個空白應用,隨後創建Flutter項目的準系統。就我個人而言,我創建了如圖1所示的結構。完整的應用代碼請點擊這裡(https://github.com/asc-lab/personal-insurance-flutter-poc),我建議你參照著本文一起看。
  • 使用Flutter一年後,這是我得到的經驗
    我做了以下這些事情:使用 Flutter 重寫一款已經發布到 App Store 的 iOS 應用程式。開發了一個 Flutter 免費速成課程,錄製 5 個多小時的教學視頻內容。使用 Flutter 開發一些小型尚未發布的應用程式。以下是在過去一年中,我通過使用 Flutter 學到的東西。
  • 精講Flutter官網的第一個例子
    更多優質免費教程:http://tryenough.com/type-flutter原文連結:https://tryenough.com/flutter04前言學習Flutter你一定會看到官網的第一個例子:中文版 或 英文版。但是作為新手,或許你看的會很費勁,這篇文章的目的是幫助你更好的理解這個例子。
  • Flutter官網例子學習教程 Material 組件 APP介紹
    官方將 Material 組件分為為幾個類型:應用程式結構和導航Button輸入和選擇對話框,警告彈框和面板信息顯示布局主要介紹應用程式結構和導航,會分為兩篇文章進行介紹,這一篇介紹應用程式結構和導航分類中的 MaterialApp、Scaffold、AppBar。
  • <譯>解密Flutter響應式布局
    Auto LayoutAuto Layout可用於構建自適應界面,您可以在其中定義用於控制應用程式內容的規則(稱為約束)。 當檢測到某些環境變化(稱為特徵)時,「Auto Layout」會根據指定的約束條件自動重新調整布局。2. Size classesSize類的特點是會根據其大小自動分配給內容區域。
  • Flutter 要起飛 , Flutter 1.12 正式發布回顧!
    本次 Flutter Interact 提出了讓開發者更聚焦於精美的應用開發,從以設備為中心轉變為以應用為中心的開發理念,Flutter 將幫助開發者忽略 Android、iOS、Web、PC 等不同平臺差異,如下圖所示是現場一套代碼同時調試 7 臺設備的演示。
  • Flutter原理:三棵重要的樹(渲染過程、布局約束、應用視圖的構建等)
    1  前言  了解 HTML 的讀者一定聽說過 DOM 樹這個概念,它由頁面中每一個控制項組成,這些控制項所形成的一種天然的嵌套關係使其可以表示為 「樹」 結構,我們也可以將這個概念應用在 Flutter 中,例如默認的計數器應用的結構如下圖:
  • 教程-使用Python Kivy構建Android應用程式
    Kivy的意思不是鳥或水果(Kiwi),而是一個Python框架,用於以簡潔,快速和輕鬆的方式構建基於NUI的應用程式。基於MIT許可證,這一框架可以在幾乎所有平臺上運行,例如Windows,Linux,iOS,Android和Raspberry。