目前市場上,(市場也許用的不對),比較常見的技術有xamrin、RN、Flutter,確切的說flutter是後起之秀,筆者也是最近纔開始學習,xamrin是微軟系的技術,筆者也很早就開始學習了,RN筆者也學習了一小段時間,xamrin和RN 筆者在學習時候的最大感覺就是累, 徹底體會不到編程的樂趣。html
先說說xamrin,我看了一陣子,官網的教程看了一遍,想實現一個複雜一點的界面,想破頭皮不知道如何實現,由於xamrin.form的組件會被生成原生的組件,因此這就衍生出了一個很複雜的問題,原生的控件的特性各不同,form控件如何匹配,不少組件特性的匹配,好比我想實現一個通信錄的右邊首字母索引滑動導航功能,思考了半天不知道如何下手,提供的控件彷佛不太好搭配,須要本身去渲染麼,困惑了好幾天,(在這裏不作吐糟,也許是本身水平達不到)在網上試圖搜搜案例,又搜不到,衡量了幾天,仍是放棄了,也許xamarin這種映射原生的控件的作法有太大的侷限性。java
而後就轉向了RN,RN生態要比xamrin好的多,某個功能只要上網一搜索,都有不少案例,好有吸引力啊,筆者就開始踏入了學習之路,與其說是學習之路,倒不如說是踩坑之路,從搭環境開始,須要安裝N多的東西,爲了開發本身的一款APP,索性忍了,因爲採用的是腳本,我又學習了es6,但是es6學習完後,我才發現腳本語言的特性,沒有必定的積累,很難摸得十分清楚,可是畢竟也是多年的開發經驗,還算hold住,因而我在想腳本有先天的不足性,可是開發者卻指望他變得像java、c#這種語言那樣強大,因而紛紛改造擴展,從最初的js到es6 7,typescript, 再到各類組件,插件,能夠說是雞毛亂飛啊,好生迷亂,爲了開發一款本身的app,忍了,一點點熟悉,但是令我最不能忍得是,我第一天搭建的APP,次日就運行不起來了,因而分析估計是下載了一個插件所致,分析了一成天,彷佛也沒找到解決辦法,貌似是插件版本的問題,後來解決了,又報了另外一個莫名的錯誤,哎正在困惑時,又看到了一個誇平臺技術,flutter,搜了搜貌似還挺有吸引力,flutter直接本身實現了界面,也就是說flutter本身在安卓和ios上渲染了UI,這個太強悍了,因而又放棄了RN,轉投flutter,react
因而又開啓了flutter入門之旅android
flutter的開發語言是dart,dart是面向對象的語言,一些語法特性相似java、c#,可是要比他們輕巧的多,因此學起來很快。ios
環境搭建,客觀的講flutter的環境搭建要比rn省事的多,下載flutter sdk,配置環境變量就搞定了(參照官網教程),另外模擬器的安裝會有一點點注意的地方。es6
1.模擬器安裝,安裝android studio,來安裝sdktypescript
SDK Platforms
窗口中,選擇Show Package Details
,而後在Android 6.0 (Marshmallow)
中勾選Google APIs
、Android SDK Platform 23
、Intel x86 Atom System Image
、Intel x86 Atom_64 System Image
以及Google APIs Intel x86 Atom_64 System Image
。SDK Tools
窗口中,選擇Show Package Details
,而後在Android SDK Build Tools
中勾選Android SDK Build-Tools 23.0.1
。而後還要勾選最底部的Android Support Repository
.另外sdk的安裝,flutter官網提供的不詳細,徹底能夠參照RN的教程來安裝sdk https://reactnative.cn/docs/0.47/getting-started.html編程
2.模擬器的啓動報haxm c#
bios裏啓動虛擬化技術,網上有,若是已經啓用不用考慮app
D:\Android\Sdk\extras\intel\Hardware_Accelerated_Execution_Manager裏的intelhaxm-android.exe有沒有安裝?
只要作到了這兩點,模擬器基本上均可以啓動起來
3.啓動項目持續的initialzing gradle,等待很長時間
C:\Users\Administrator\.gradle\wrapper\dists該目錄下又各類版本的gradle壓縮文件,能夠在網上先下載下來,而後zip包直接放到對應的目錄下,譬如C:\Users\Administrator\.gradle\wrapper\dists\gradle-4.10.2-all\9fahxiiecdb76a5g3aw9oi8rv不須要解壓。這樣時間就不會好久了。
另外要學會修改項目的gradle版本,不然版本不一樣就還要下載,還會等待很長時間
在這兩個文件裏修改,修改的跟簡單,打開一看就知道了不作介紹。
4.開發工具的選擇能夠是android studio 或者vscode,網上都有介紹,不作介紹,筆者使用的是vscode
至此,就能夠開心的開發了,多研究別人的源碼,熟悉各類套路就是了。