一直做web端開發,還沒做過針對安裝在手機端的移動應用,flutter是google推出並開源的移動應用開發框架,可跨平臺開發,最近幾年發展很迅速。在看看手機,裝滿了各種App,哪個商家、公司沒有自己的移動端應用,那就有點奧特了。
特意看了兩本書,一本電子書《Flutter實戰》電子書 (flutterchina.club),一本實體書《Flutter從0基礎到App上線》。通過這兩本書,對移動端app開發的發展路程有了大致瞭解。
移動開發主要經歷兩個階段,第一階段原生開發,第二階段跨平臺開發,也就是所謂的混合開發,這裏把移動web app排除在外。跨平臺開發之所以叫混合開發,是因爲在調用原生平臺功能上,還是需要對接原生開發的。對接原生開發調用類似於攝像頭等原生控件的調用。既然是跨平臺開發,爲什麼還要用原生調用,那是因爲混合開發語言與原生調用無論是性能上還是用戶體驗上都差的太遠。至於差的多遠,那就需要深入的學習混合開發才能理解的到。
最近比較流行的混合開發,就是flutter框架了,flutter框架是基於dart語言開發的。
常用的一些變量、方法的使用,流程的判斷,在這裏就不舉例了,只寫一些特別的。
String類型另類使用
String stuName = "小明\n小李\n張三";
// 還可以這樣寫:
String stuName = """
小明
小李
張三
""";
print(stuName);
**關鍵字var **
var name="test",
在dart語言裏,變量的聲明可以使用關鍵字var,var是在JavaScript裏面使用的,這個寫法借鑑JavaScript,var相當於不指定變量類型。
關鍵字 dynamic
dynamic的用法同var,聲明的變量可以在後期改變賦值類型。dynamic聲明的對象編譯器會提供所有可能的組合。
方法不指定返回類型,也可返回數據,返回數據默認類型爲dynamic。
關鍵字 Object
Object是Dart所有對象的根基類,聲明的變量可以在後期改變賦值類型。Object聲明的對象只能使用Object的屬性與方法, 否則編譯器會報錯。
箭頭語法 =>
String getName()=> "test";
如果一個方法很短,可以直接使用箭頭語法,箭頭語法=>相當於return。
參數引用$
String name = "小明";
print("Your name is $name ");
在字符串中加入變量時,可以直接使用$符號進行引用。
可選命名參數{}
String getName({name:"test"}){
if(name != "test"){
return name;
}else{
return "測試";
}
}
可選位置參數[]
String getName([String name=“您好”]){
return "$name,歡迎您的使用!";
}
可選命名參數和可選位置參數不可同時使用,必須作爲最後一個參數出現。
函數作爲變量
var say = (str){
print(str);
};
say("hi world");
函數作爲參數傳遞
void execute(var callback) {
callback();
}
execute(() => print("xxx"));
這兩種寫法,是不是在JavaScript裏面常用呀?
條件運算符
// 三目運算符號 條件1 ?表達式1 :表達式2;
aa ? 1 : 2;
// 兩目運算符 表達式1 ?? 表達式2;
aa == null ?? bb == null;
條件成員訪問符 ?.
// 如果左邊的對象不是null,則返回右邊的值;反之,則返回null。
person?.person.name;
// person對象不爲null,返回person.name,否則返回null。
級聯訪問符..
new Person()..setName("小明")..setSex(1).
使用級聯訪問符,調用更簡單,代碼更簡潔。
更多精彩未完待續~!