Flutter開發(fā) 項目實戰(zhàn)01

Flutter簡介

2018年2月27日,在2018世界移動大會上陨晶,Google 發(fā)布了Flutter的第一個Beta版本宵睦。Flutter是 Google 用以幫助開發(fā)者在iOS和Android兩個平臺開發(fā)高質(zhì)量原生應(yīng)用的全新移動UI框架,類似于React Native檩小、Weex可以實現(xiàn)跨平臺開發(fā)罩阵。

Flutter特點

熱重載(Hot Reload)利用Android Studio直接一個Ctrl+S就可以保存并重載,模擬器立馬就可以看見效果序臂,這一效果其實有點類似Android Studio的Instant Run借助可移植的GPU加速的渲染引擎以及高性能本地代碼運行時以達(dá)到跨平臺設(shè)備的高質(zhì)量用戶體驗可擴展性很強:Flutter框架本身提供了豐富的Material Design和Cupertino(iOS-flavor)風(fēng)格的控件蚌卤,可自由擴展控件不受手機平臺控件的限制

Flutter入門

做為一個iOS開發(fā)者個人認(rèn)為Flutter更適合學(xué)習(xí),因為其入門較快奥秆,相對Weex逊彭、React-Native更快入門,因為后者兩個對前端知識要求較高构订,而我一個iOS開發(fā)者有點懵逼侮叮。環(huán)境搭建:Flutter環(huán)境搭建 根據(jù)命令行拉個文件到本機 再進行命令安裝配置啥的,跟著一步步走即可悼瘾。開發(fā)工具:我使用的Android Studio 非常方便签赃,當(dāng)然你也可以用VSCode 附圖

image

Android Studio很Nice谷异,但是我的小Mac Air有點受不了,每次一運行只能關(guān)掉其他應(yīng)用滾燙的電腦锦聊。所以你可以選擇VSCode,相對消耗較低箩绍。完美運行孔庭。

如何構(gòu)建一個App

image

根據(jù)提示填入AppName,存儲地兒及包名材蛛。了解一下Flutter的入口圆到,iOS的話即為Appdelegate.m文件中,切換RootViewController即可卑吭,在這里也可以同樣理解芽淡,main.dart相當(dāng)于Appdelegate.m,也可以寫一個RootViewController豆赏,相當(dāng)于這里的RootIndex

image

RootIndex實現(xiàn)跟iOS差不多的思想挣菲,包含其他幾個頁面頭文件,然后設(shè)置一下即可掷邦,就可以實現(xiàn)最基本的一個App了白胀,然后接著就是實現(xiàn)UI即可。

image

到此抚岗,一個空的App已經(jīng)可以運行了或杠。


關(guān)于UI搭建

在iOS中很簡單粗暴,直接設(shè)置控件的絕對位置宣蔚,x向抢,y的位置,寬高胚委。還可以利用其他第三方庫類似Mansoy來進行自適應(yīng)的布局挟鸠,也非常方便。但是在Flutter并不是這樣篷扩。首先貼個布局的鏈接Flutter布局兄猩。咱們先看個簡單的布局,在iOS里新建個UITableViewCell鉴未,咔咔的幾下就寫完了枢冤,但是在Flutter可能需要換種思路去實現(xiàn)了

image

首先要確認(rèn)布局的方向,Column從上到下的布局铜秆,Row從左到右的布局淹真,Container相當(dāng)于iOS的類似UIView的控件,可以往里加子控件连茧,例如輸入框核蘸,文本巍糯,圖片等。右邊的代碼為實現(xiàn)的結(jié)構(gòu)客扎。其中margin就是設(shè)置上下左右相對父控件的位置的祟峦。

Fluuter-TabBar

在iOS中控件中并沒有這個,需要自己實現(xiàn)徙鱼。iOS有第三方庫類似TopTabBar宅楞。

image

在AppBar中實現(xiàn),在導(dǎo)航欄底部袱吆。


appBar:new AppBar(
title:new Text('關(guān)注', style:new TextStyle(fontSize:17.0, color: Colors.black),),
centerTitle:false,
backgroundColor: Colors.white,
actions: [
new Row(
children: [
new Container(
child:new FlatButton(onPressed: (){}, child:new Icon(Icons.people)),
width:44.0,
),
new Container(
child:new FlatButton(onPressed: (){}, child:new Icon(Icons.search)),
width:64.0,
),
],
)
],
bottom:new TabBar(
tabs:myTabs,
unselectedLabelColor: Colors.grey,
labelColor: Colors.white,
indicatorSize: TabBarIndicatorSize.tab,
//              indicatorWeight: 15.0,
             indicator:new ShapeDecoration(
color: Colors.orange,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(0.0),
),
),
),
controller:_tabController,
isScrollable:true,
),
)


實現(xiàn)視圖

body:new TabBarView(
controller:_tabController,
children:myTabs.map((Tab tab) {
if(tab.text =="全部關(guān)注"){
return new Container(
child:new ListView.builder(
itemCount:likeLists.length,
itemBuilder: buildCellItem,
),
);
}else if(tab.text =="簡友圈"){
return new Center(child:new Text(tab.text));
}else if(tab.text =="專題"){
return new Center(child:new Text(tab.text));
}else if(tab.text =="作者"){
return new Center(child:new Text(tab.text));
}else if(tab.text =="連載"){
return new Center(child:new Text(tab.text));
}else if(tab.text =="文集"){
return new Center(child:new Text(tab.text));
}
return new Center(child:new Text(tab.text));
}).toList(),
),

這里實現(xiàn)的一個ListView厌衙。

最后附上Github上的Demo的地址:Demo傳送門
再推薦兩個網(wǎng)站
Flutter中文網(wǎng)
Flutter社區(qū)中文資源
如有不正確的地方幫忙指出,謝謝绞绒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末婶希,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蓬衡,更是在濱河造成了極大的恐慌喻杈,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撤蟆,死亡現(xiàn)場離奇詭異奕塑,居然都是意外死亡,警方通過查閱死者的電腦和手機家肯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門龄砰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人讨衣,你說我怎么就攤上這事换棚。” “怎么了反镇?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵固蚤,是天一觀的道長。 經(jīng)常有香客問我歹茶,道長夕玩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任惊豺,我火速辦了婚禮燎孟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尸昧。我一直安慰自己揩页,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布烹俗。 她就那樣靜靜地躺著爆侣,像睡著了一般萍程。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上兔仰,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天茫负,我揣著相機與錄音,去河邊找鬼乎赴。 笑死朽褪,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的无虚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼衍锚,長吁一口氣:“原來是場噩夢啊……” “哼友题!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起戴质,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤度宦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后告匠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戈抄,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年后专,在試婚紗的時候發(fā)現(xiàn)自己被綠了划鸽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡戚哎,死狀恐怖裸诽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情型凳,我是刑警寧澤丈冬,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站甘畅,受9級特大地震影響埂蕊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜疏唾,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一蓄氧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧荸实,春花似錦匀们、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽重抖。三九已至,卻和暖如春祖灰,著一層夾襖步出監(jiān)牢的瞬間钟沛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工局扶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恨统,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓三妈,卻偏偏與公主長得像畜埋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子畴蒲,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,756評論 25 707
  • 用兩張圖告訴你悠鞍,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,699評論 2 59
  • 從16號移植完鮮胚到今天是第八天模燥。整整8天沒有出門咖祭,這是有史以來在家宅的最長的一次,并且還宅的心安理得蔫骂,因為自己是...
    木又sun閱讀 153評論 0 0
  • 風(fēng)在搖樹的葉子么翰,我在想你的樣子。 ——題記 每...
    如此青梨閱讀 581評論 0 3
  • sqlite數(shù)據(jù)庫在Python中的使用簡介 1. sqlite3介紹 SQLite數(shù)據(jù)庫是一款非常小巧的嵌入式開...
    SmartGangZ閱讀 1,410評論 0 1