為了提升用戶體驗(yàn),使用三方登錄APP的功能怎么能少呢,但是蘋果的AppStore有一個(gè)很變態(tài)的要求,接入其他三方登錄的話,要求必須也要接入蘋果登錄。面對(duì)這么變態(tài)的要求,作為一個(gè)有實(shí)力的碼農(nóng)怎么能拒絕呢!
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),門源網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:門源等地區(qū)。門源做網(wǎng)站價(jià)格咨詢:028-86922220
下面為大家介紹一個(gè)好用的Flutter插件 Sign in With Apple ,可以幫助我們快速的接入蘋果賬號(hào)功能,插件的英文文檔講的比較詳細(xì)了,英文好的同學(xué)可以直接參閱英文文檔集成。
在項(xiàng)目的 pubspec.yaml 文件中添加sign_in_with_apple插件的依賴,如果您使用的Flutter SDK 1.x版本請(qǐng)?zhí)砑右蕾嚢姹?2.5.4 :
如果您使用的Flutter SDK為2.x,請(qǐng)使用最新版本,當(dāng)前最新版本 3.0.0
使用XCode打開(kāi)項(xiàng)目后,按照以下圖片上的步驟添加 Sign in With Apple Capabilities:
成功添加 Sign in With Apple能力后,可以在下面的列表中就代表添加成功了,如下圖:
Flutter是谷歌公司推出的跨終端的開(kāi)發(fā)框架,支持Android、iOS和WEB終端。1.0版在2018年12月5日發(fā)布,目前的最新版本是1.5,它采用的開(kāi)發(fā)語(yǔ)言是Dart,Dart也是谷歌開(kāi)發(fā)的計(jì)算機(jī)編程語(yǔ)言,語(yǔ)法類似C,是編譯型語(yǔ)言:
hello world例子,打印字符串“Hello World!”:
1、沒(méi)有橋接層
React Native、Weex等技術(shù)都是跨終端的框架,然而性能跟原生App存在很大差距。這是由于它們的工作原理決定的:
React Native、Weex等技術(shù)多了一個(gè)橋接層,所以界面渲染會(huì)慢一些,由于UI渲染非常頻繁,想要不卡頓,基本上比較難,性能和用戶體驗(yàn)跟原生代碼有差距。而這恰恰是Flutter的優(yōu)勢(shì)所在:
Dart可以被編譯成不同平臺(tái)的本地代碼,讓Flutter不通過(guò)橋接層直接跟平臺(tái)通信,自然性能會(huì)快一些。
2、編譯執(zhí)行
JavaScript是解釋執(zhí)行的,Dart是編譯執(zhí)行的,性能誰(shuí)好一目了然。
3、Flutter Engine虛擬機(jī)
Flutter是依靠Flutter Engine虛擬機(jī)在iOS和Android上運(yùn)行的,F(xiàn)lutter Engine使用C/C++編寫,開(kāi)發(fā)人員通過(guò)Flutter框架直接和API在內(nèi)部進(jìn)行交互,所以具有輸入低延遲和UI渲染高幀速率的特點(diǎn)。除了這特點(diǎn)之外,F(xiàn)lutter還提供了自己的小部件,F(xiàn)lutter小部件是使用從React獲取靈感的現(xiàn)代框架構(gòu)建的。 中心思想是您使用小部件構(gòu)建UI。
窗口小部件根據(jù)其當(dāng)前配置和狀態(tài)描述了它們的視圖。 當(dāng)窗口小部件的狀態(tài)發(fā)生更改時(shí),窗口小部件會(huì)重建其描述,框架將根據(jù)前面的描述進(jìn)行區(qū)分,以確定底層呈現(xiàn)樹從一個(gè)狀態(tài)轉(zhuǎn)換到下一個(gè)狀態(tài)所需的最小更改。可以直接在OS平臺(tái)提供的畫布上進(jìn)行描繪,也就是一些核心類庫(kù)直接放到虛擬機(jī)里面,調(diào)用起來(lái)更快。
從它的系統(tǒng)結(jié)構(gòu)可以看出,類似安卓的ART(Android Run Time)虛擬機(jī),同樣采用AOT(Ahead of TIme)技術(shù),會(huì)在APP安裝時(shí)就編譯成機(jī)器語(yǔ)言,不再解釋執(zhí)行,從而優(yōu)化了APP運(yùn)行的性能。
4、自帶渲染引擎
Flutter使用谷歌自己的Skia渲染引擎,而Android系統(tǒng)自帶Skia引擎,iOS平臺(tái)上Flutter也會(huì)把Skia引擎打包到APP中,從而實(shí)現(xiàn)了高效渲染。而React Native通過(guò)橋接層訪問(wèn)原生UI,操作頻繁就容易出性能問(wèn)題。
綜合所述,F(xiàn)lutter 是性能最接近原生代碼 的一種開(kāi)發(fā)框架,未來(lái)也會(huì)是構(gòu)建谷歌Fuchsia應(yīng)用的主要方式,前途不可限量,唯一的問(wèn)題就是需要學(xué)習(xí)一門新的語(yǔ)言:Dart,而有Java或者C#語(yǔ)言基礎(chǔ)的程序員會(huì)比較容易學(xué)習(xí)。
對(duì)于任何一款應(yīng)用來(lái)說(shuō),頁(yè)面的流暢度是用戶體驗(yàn)最重要的幾個(gè)指標(biāo)之一。我們需要用數(shù)據(jù)的形式標(biāo)識(shí)出頁(yè)面的流暢程度。
對(duì)于大部分人而言,當(dāng)每秒的畫面達(dá)到60,也就是俗稱60FPS的時(shí)候,整個(gè)過(guò)程就是流暢的。一秒 60 幀,也就意味著平均兩幀之間的間隔為 16.7ms。但并不意味著一秒低于60幀,人眼就會(huì)感覺(jué)到卡頓。小轟將查閱到的資料列出如下:
官方SDK為開(kāi)發(fā)者提供的幀率檢測(cè)工具,使用非常簡(jiǎn)單,在 MaterialApp 下添加屬性 showPerformanceOverlay:true 。
如圖,PerformanceOverLay 會(huì)分別為我們展示了構(gòu)建(UI)耗時(shí)和渲染(Raster)耗時(shí)。
一款pub上的開(kāi)源工具,鏈接地址: fps_monitor