面對微信小程序,蘋果小程序能夠扳回一局嗎?

北京時間2020年6月23日,蘋果在一年一度的WWDC上正式宣佈了蘋果官方「小程序」 App Clips。本文帶你來了解App Clips,分析其優缺點,並對前景作展望。

什麼是App Clips

簡單理解,就是蘋果官方的「小程序」。 官方定義,App Clips是一個輕量級的、原生的、不須要管理和清理的App。html

蘋果爲何要作App Clips

App Store內生態再也不繁榮

2008年7月11日,iPhone 3G發行並首次支持了App Store,自此開啓了iOS平臺上移動應用的時代。可是自15年至今,App Store上的移動應用數量增加率不斷走低,甚至在18-19年出現了負增加現象(和蘋果清理殭屍應用的策略有關)。 web

數據來源於www.statista.co
從圖中能夠看出,從15年App數量增加達21.41%以後,增加率一路走低,截止至最新數據增加率不足1%,iOS App市場繁榮再也不,蘋果生態略顯疲態,將來會對相關收入形成影響。 下一次App Store,有多是5G時代下的「重網絡型」App的爆發,例如AR、VR應用。但至少不是如今,蘋果不會對這種頹勢坐視無論。

被Web App蠶食的低頻場景和長尾需求

基於特定低頻場景的需求,好比在餐館點餐付費,長久以來並無被蘋果重視。相似的還有一些業務導向的小公司,沒有實力和能力研發App來抓住移動互聯網的風口,在微信小程序(或其餘小程序)誕生以前,惟一的出路就是找個外包低成本、快速的開發一款Web App。 可是Web App的安全性、用戶體驗都還存在問題,所以此次Clips主要針對這種場景給出了優化。 小程序

能夠感覺一下,京東H5版本和京東Native版本,體驗差的仍是挺多的。

微信小程序對市場的教育

Clips從想法到技術方案多少都受到了這股來自東方的神祕力量的影響。畢竟小程序這個概念源自微信,也發揚自微信。 在國內,微信小程序能夠說無處不在:餐館點餐、租賃車輛、包括最近的高頻應用「健康寶」/"健康碼"。用戶也逐漸習慣了低頻需求用小程序而非下載App。 微信小程序

Clips的頂層設計

Clips的入口

根據WWDC 2020相關Session能夠得知,Clips的入口包括:NFC、QR Code、Cips Code、自家部分App、Siri、Safari的Smart Banner,還有Notification。我將這幾個入口總結爲:場景化入口、自有流量入口、對外擴展接口三類。緩存

場景化入口

場景化入口包括NFC、QR Code 和Clips Code。 在WWDC2020有這麼一個場景,用戶在停車場經過NFC直接呼叫Clips支付停車費,將車開走。值得注意的是,呼出Clips是在手機鎖屏狀態下進行的。 安全

除了NFC以外,還支持經過相機掃描普通QR Code(就是二維碼)和將來的Clips Code來進入Clips的方式。 指的一提的是,蘋果公佈的這個Clips Code長得跟微信小程序碼。。。一言難盡。。。 有種一樣用了摩斯密碼,其中一種作成了射線,另外一種作成了環。。。 bash

這些入口有明顯的場景特性,多用於在線下須要使用時觸發並操做。

自有流量入口

其實Clips出來後不少人抱怨蘋果不支持App內部跳Clips,這個是不許確的。其實蘋果自家的Siri,地圖及iMessage都支持打開Clips。 微信

其實這三個App並不是隨便選出來的:蘋果地圖App表明O2O場景、iMessage表明社交場景、Siri表明了一種將來的主流交互(非UI-Based的交互)。 Notification也算是一種喚起方式,不過這個屬於Clips內部喚起邏輯之一。

目前尚未資料代表,蘋果會在第三方App開放打開Clips。網絡

對外擴展入口 Smart Banner

目前對外擴展入口僅限於Smart Banner。對於Smart Banner不太瞭解的同窗能夠參考這裏 若是想要啓動Clips,須要將Smart Banner配置成以下格式 架構

加入了Clips以後,Smart Banner的使用場景會更加豐富。加入App Clips以後,Smart Banner的鏈路轉化效率會有明顯提高,對好比下:

以前的Smart Banner必需要通過AppStore下載完成才能完成轉化,操做步驟多(若是沒登陸AppStore帳號的話還得登陸一下),等待時間長,轉化率不高; 集成了App Clips的Smart Banner能夠在Clips層完成用戶轉化,等待時間短,用完即走,轉化率高。若是用戶想要體驗完整版應用,還能自行完成到App的轉化。提升了Smart Banner的利用率。

Clips的數據解析

WWDC內資料顯示,Clips會對應一個特有的URL,經過訪問對應網站JSON信息來判斷是否能夠打開Clips,以及解析哪些字段,來對打開的Clips作變量傳遞。這種交互邏輯適合於非Safari的Smart-Banner打開Clips,也稱之爲Default App Clip Experience。

要完成數據解析,須要同時在對應Web Server和App Clips分別作配置

Web Server

須要在網站的 apple-app-site-association file中,添加以下代碼段:

{
	"appclips":{
	    "apps":["ABCDE12345.example.fruta.Cilp"]
	},
	...
}
複製代碼

若是以前有支持過Universal Link,那這個文件必定不陌生。

App Clips側

在工程項目中須要添加對應domain信息

處理NSUserActivity,獲取調用連接。 能夠經過webPageUrl屬性進獲取。實例代碼:

func respondTo(_ activity: NSUserActivity?) {
    // Guard against faulty data.
    guard activity != nil else { return }
    guard activity!.activityType != NSUserActivityTypeBrowsingWeb else { return }
    guard let incomingURL = activity?.webpageURL else { return }
    guard let components = NSURLComponents(url: incomingURL, resolvingAgainstBaseURL: true) else { return }
}
複製代碼

這裏,爲了更好的支持Clips,apple-app-site-association file本次還作了升級,支持訂閱變量,具體能夠參考WWDC2020:What's new in Universal Links

{
    "details":[{
        "appIDs":["ABCDE12345.com.example.resturant"],
"components":[{"/":"/$(lang)_$(regin)/$(food)/"}]
    }]
}
複製代碼

Clips的開發

Clips的開發能夠說對iOS開發者來講很是友好,能夠和平時開發App同樣有UIView,能夠彈ViewController,基本是和開發Native App相比沒有什麼區別(除了個別庫不支持以外,好比CallKit)

  • 首先打開已有工程,新建一個名爲App Clips的target

  • 以後將工程中須要放到Clips裏的文件添加到新建的Clips的target中,例如

  • 最後,像修改主工程同樣修改Clips Target下的入口文件便可,例如AppDelegate等。

  • 若是想要和主工程共享Asset,能夠經過創建一個Asset文件,勾選以前創建的Clips Target便可

Clips -> App

在Clips中會存在入口,若是用戶想要體驗徹底的功能,能夠經過入口進入App Store對應App的下載流程,完成轉化。

值得一提的是,若是想完成從Clips到App的轉化,且不丟失任何數據,須要在Clips中使用 shared data container而不是普通的 standard data container,由於正常來講,Clips生命週期以後,數據會隨之消失。
使用 shared data container技術後Clips數據遷移步驟以下

  • Clips的數據記錄在"Group container"中。
  • 經過Clips下載App,Clips消失,可是數據仍然在"Group Container"中
  • 打開App,完成數據從「Group Container」到App的遷移,「Group Container」被清理並移除。

App Clips的預加載和緩存機制

首先,官方對於App Clips的大小要求是"Thinning後不超過10MB"。這個也是爲了實現所謂的「Instance App」概念。 其次,App Clips的啓動會先彈出Clips卡片,包含了Clips的圖片信息,標題,描述,AppStore地址等信息。在此卡片的彈出後即啓動下載流程,使得用戶點擊Open的時候看起來像是「馬上打開」。

最後,App Clips使用後,對應內存和數據會進行清理(不使用Shared data container的狀況下)。 可是官方還提到,若是某個App Cilps被反覆打開,其數據的有效期會相應延長,並有可能永遠不刪除(像普通App同樣)。

App Clips的技術優缺點(vs 微信小程序)

優勢

  • 操做路徑更短 NFC場景下,用戶能夠在鎖屏下激活App Clips,打開小程序,使用Apple Pay完成下單,操做更便捷。 能夠認爲今年開始Apple強制要求App 引入Apple Pay是在爲App Clips鋪路,爲了達到極致體驗。
  • 用戶體驗更好 相信很多iOS微信小程序用戶都遇到太小程序崩潰須要從新打開的情景。畢竟微信小程序的資源受限於微信App自己的資源大小。相比之下App Clips是親兒子,這種限制即使有,將來也會在系統機制上進行照顧,相應的體驗和將來的擴展性會好一些。
  • 場景會更豐富 相信將來Cilps的場景會不侷限於App,流程和體驗優化到必定程度會向手錶、眼鏡和其它IoT設備擴展。而微信小程序對這些設備的擴展取決於蘋果是否能開放相應的API。
  • 開發友好 基於上一個章節的介紹,開發一個App Clips程序幾乎不須要太多成本

缺點

  • 普及速度慢 這裏的普及速度既包含App Clips應用自己的普及速度,也包括線下場景的推廣。能夠想象,Clips Code須要內置一個NFC芯片,成本跟微信小程序一個貼紙比會高不少。並且微信小程序在雙端交互和體驗一致,而App Clips只在iOS平臺上。
  • 極致體驗須要打通Apple帳戶,包括Sign In with Apple和Apple Pay。 相信在國內,這兩項技術仍是微信或者支付寶的天下,蘋果很難撼動。
  • 蘋果設備在國內的市場佔有率不高,會阻礙App Clips的推廣。

結論

從目前App Clips開放的接口和交互流程上來看,在手機App這個戰場上,App Clips想要撼動微信小程序的地位基本不可能。

展望

對現有iOS App主流架構方式的影響

傳統iOS App是以ViewController爲中心的頁面組織結構,將來爲了更好的適配App Clips,須要更新爲基於Router的頁面打開/展現架構,統一基於URL來進行傳參,和現有App Clips的參數解析邏輯相一致。

將來App Clips的使用場景

蘋果技術向來是步步爲營。此次App Clips的技術分別以以前的Universal Link、Sign with Apple和Apple Pay爲基礎。那App Clips又會成爲哪些技術的基礎?

Apple Watch

Apple Watch目前越作越大,可展現的信息愈來愈多,自Apple Watch Series3代以來已經獨立於iPhone作數據下載和展現,且有很是強的移動屬性,在Apple Watch上使用App Clips會變得很是便捷。 我的以爲目前在地圖上集成App Clips可能就是在爲這個場景鋪路。 Apple Watch靠近NFC -> 啓動 Clips -> 選擇項目 -> Apple Pay付款,一切行雲流水。

Apple Glass

聽說Apple會在2021到2022年內退出Apple Glass,會帶來新的應用交互。可是能夠確定一點的是,數據傳輸會是難點,所以大致量的App不適合初代的Apple Glass,這時候只有10MB大小的Cilps就很適合Glass。並且經過Glass訪問Clips Code更加快捷(甚至都不須要打開相機應用或者NFC靠近,若是傳感器能夠識別Clips Code的話),到時候的交互就會變成: Apple Glass 識別 Clips Code -> 顯示App Clips -> 基於Siri完成下單、登陸、Apple Pay付款 同樣簡單便捷。 目前的Siri入口極可能就是在爲Apple Glass鋪路。

參考資料

歡迎關注個人公衆號:尼莫萌

掃碼關注:

相關文章
相關標籤/搜索