1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        App Clip 離落地有多遠?

        共 4148字,需瀏覽 9分鐘

         ·

        2020-09-25 11:52

        作者 | Leoolin 
        來源 | Leoolin 的個人博客,點擊閱讀原文查看作者更多文章

        一:前言

        之前也陸陸續(xù)續(xù)看過一些介紹App Clip的技術(shù)文章,發(fā)現(xiàn)這些文章幾乎千篇一律,差不多都是「蘋果技術(shù)文檔」和「WWDC視頻截圖」的拼裝,以及「WWDC視頻講解」和「網(wǎng)上同類文章」的復述,卻很少談及App Clip真正落地的業(yè)務場景和涉及的技術(shù)問題。
        App Clip發(fā)布后,我開始負責App Clip的技術(shù)調(diào)研工作,也是沾團隊的光,約到了一個App Clip lab,感受了一把白天看WWDC,晚上和WWDC講解人一對一交流的體驗,雖然我們團隊最后決定先暫停App Clip的開發(fā),但是在調(diào)研App Clip的過程中,也確實發(fā)現(xiàn)了很多值得思考之處。
        先說一個結(jié)論:不要因為看了WWDC和一些技術(shù)文章,就對App Clip有過分美好的幻想,至少從目前來看,App Clip的坑還很多。

        二:業(yè)務原因

        2.1 業(yè)務場景少

        線下支付
        看過WWDC視頻的小伙伴們可能已經(jīng)察覺到了,視頻中介紹的場景90%以上都是線下支付的場景,不知道蘋果的本意是不是希望通過App Clip去搶占o2o市場,雖然說的是「不用安裝商家App」即可通過App Clip享受便捷服務,快速完成下單??稍谥袊脩艚^大部分的時候本來就不需要下載商家App,難道小程序不香嘛?況且就算真的有這種需求,目前能夠滿足的也僅僅是iOS 14系統(tǒng)以上的iOS用戶。所以這種線下支付的場景,至少在目前看來,App Clip甚至稱不上現(xiàn)有方案的一個有效替代方案。
        線上拉新
        既然線下支付推進困難重重,那肯定很多人會把目光重新看向線上場景。因為App Clip具備「及時可用」的特點,讓用戶不用下載完整的App即可享受到App的部分功能,那不妨就把App Clip做為一個拉新的入口,把Clip當做「試用裝」吸引用戶,等用戶習慣了,再引導用戶下載App。理想雖然很美好,可現(xiàn)實中怎么把「試用裝」交到用戶手中呢?我們知道,App Clip的調(diào)用場景目前主要就5種,二維碼、Safari Smart Banner、NFC、Map和Message。
        其中NFC需要物理介質(zhì),Map需要實體店,它們對于純線上的App來說很難找到應用的場景。
        Message更不用說了,首先國人對Message聊天的需求本來就不大,也總不能群發(fā)帶Clip的短信給用戶吧?
        對二維碼,我們是抱有美好的期待的,希望用戶通過第三方SDK將二維碼分享給好友,然后好友通過二維碼調(diào)起App Clip,邏輯滿分。但尷尬的是,App Clip的二維碼,只能通過「系統(tǒng)相機」才能調(diào)起。我相信絕大部分的人看到二維碼,第一反應都是拿微信去掃一掃,想要培養(yǎng)用戶使用「系統(tǒng)相機」掃碼的習慣恐怕很難。
        那最后剩下的就是Safari這種方式了,這就需要我們想方設法的讓用戶在Safari里打開這個鏈接,注意,必須是Safari里打開,在第三方App里的WebView是沒有辦法顯示Smart Banner的,自然也就沒辦法調(diào)起App Clip。

        2.2 操作路徑長

        即便Safari貌似是純線上App最適用的場景了,但是這種方式還存在一個問題,那就是用戶的操作路徑過長。以第三方分享為例,用戶在第三方App接受到好友分享的鏈接后,打開Clip最短的操作路徑可能如下:
        • 打開好友分享的鏈接,進入到內(nèi)容頁;

        • 點擊更多按鈕,選擇在Safari中打開;

        • 點擊Safari中Smart Banner上的Open按鈕,調(diào)起Clip Card;

        • 點擊Clip Card上的Open按鈕,調(diào)起App Clip;

        • 在引導用戶通過Safari打開這步估計就足夠勸退大部分的用戶了…

        三:技術(shù)原因

        即便我們不考慮業(yè)務場景,單純從技術(shù)角度看,實現(xiàn)一個App Clip本身恐怕也不會是一個輕松的過程。
        代碼拆分
        蘋果希望App Clip和App提供一致的體驗,剛看完WWDC的視頻,一開始真的會給人一種實現(xiàn)一個App Clip 「So Easy」的感覺,只要復用原有的工程,隨便勾勾選選,把文件加到Clip的Target下,一個精美小巧的App Clip就呈現(xiàn)在眼前了。關(guān)注公眾號 逆鋒起筆,回復 pdf,下載你需要的各種學習資料。
        可事實上呢?通常我們需要盡可能復用現(xiàn)有的業(yè)務來開發(fā)Clip,可除非你所在的項目業(yè)務足夠簡單,或者組件化做的足夠徹底,否則你會發(fā)現(xiàn)摘Clip的代碼是一件幾乎無法實現(xiàn)的事情,很可能需要先做大量的技術(shù)重構(gòu)。當然你也可以將原有代碼復制出來,重寫一份,可是這樣下來,為了保持與完整App的功能一致性,就需要付出維護兩套代碼的時間成本。
        包大小限制
        10M是App Clip包大小的上限,對于現(xiàn)在動輒一二百M的應用來說,如何用10M來完成目標功能,也是一個不小的挑戰(zhàn)。一方面還是上面提到的代碼拆分的問題,如果組件化時,基礎層劃分的顆粒度不夠細致,很可能導致上層業(yè)務依賴的基礎組件過多,從而影響包大小。另一方面,如果App Clip的功能一直是增量的,那必然會導致未來的某一天會超過10M的限制,為避免這一問題,還需要根據(jù)新增功能對包大小的影響,配合產(chǎn)品完成現(xiàn)有業(yè)務功能的調(diào)整。
        后臺活動
        App Clip不支持后臺處理活動,這里的后臺活動不單指beginBackgroundTaskWithExpirationHandler:這種后臺任務,經(jīng)過實際測試,甚至連「正常的網(wǎng)絡請求」以及「NSData轉(zhuǎn) NSString」等操作,在后臺執(zhí)行都是不是完全可靠的,再結(jié)合視頻里說的:
        In addition, app Clip can’t perform background activity, such as doing background networking with URLSession or maintaining Bluetooth connections when the app clip isn’t in use.
        對于不能執(zhí)行的background activity目前包括什么,咱無從得知,但從安全的角度看,盡量不在后臺搞事情,肯定是第一原則,只是不知道把后臺的監(jiān)聽都去掉,你的項目是否還能work~
        唯一標識
        如果想把App Clip當做拉新的手段,那可能就會涉及到一個問題:如果識別出當前App用戶曾是App Clip用戶?
        我們知道如果用戶手機上存在App Clip的情況下,又下載了對應的App,是可以進行數(shù)據(jù)遷移的。那如果用戶的Clip因為一段時間未使用被系統(tǒng)自動刪除了,此后用戶又下載了App,該怎么設置用戶的唯一標識呢?
        要知道Clip在被系統(tǒng)刪除時,也會清空其存儲在Keychain中的數(shù)據(jù),至于IDFA,Shared Keychain那就更別想了,Clip壓根不開放這個能力。當然肯定還是有一些其他方式能夠?qū)τ脩暨M行唯一標識,比如有些防作弊的SDK,就可以標識唯一的設備ID,這就看大家各顯神通了。當然,如果不關(guān)心這種case的話就另說了。
        第三方App調(diào)起
        App Clip可以通過Url Scheme或者Universal Link調(diào)起第三方App,但是第三方App卻不能通過Url Scheme和Universal Link調(diào)起App Clip,說白了就是能調(diào)出去但是回不來。第三方登錄、第三方分享、第三方支付可能都會受到影響。
        不支持企業(yè)包
        企業(yè)證書是沒法配置App Clip的,如果項目是使用同一個工程,通過不同的configuration切換企業(yè)版和正式版,可能還需要注意一個額外的問題,App Clip是通過Build Phases中的Embed App Clip集成到主Target中的,而Build Phases又沒辦法區(qū)分configuration,如果想?yún)^(qū)分版本去添加Embed App Clip,就只能打企業(yè)包時,單獨去修改Project文件了。
        Pods
        可能目前CocoaPods對App Clip的支持還不夠完善,寫Demo時發(fā)現(xiàn)如果App Clip需要依賴Pods的話,pod install后,在Build Phases中是不會自動生成Embed Pods Frameworks的,這就會導致編譯時報image not found的錯誤,目前解決的辦法就是手動添加一下Embed Pods Frameworks。

        四:結(jié)語

        當然,對于App Clip的最終落地來說,技術(shù)原因終歸是次要的,最關(guān)鍵還要看如何找到適合自己產(chǎn)品的業(yè)務場景。在蘋果線上培訓的時候,認識了一個團隊的開發(fā),說他們想用App Clip做AR,當時我就覺得這個想法還挺好的。可能對于很多產(chǎn)品來說沒有這么新穎的玩法,其實倒也不必太在意,對于蘋果來說他們也很清楚目前的現(xiàn)狀,據(jù)他們自己說也在和美國總部溝通,當然結(jié)果如何,咱不得而知,但畢竟留個念想嘛,萬一未來App Clip的入口放開了呢~


        iOS 14 的實際體驗如何?

        8 個超贊的機器學習項目

        程序員因接外包被判坐牢 456 天!兩萬字長文揭露心酸真實經(jīng)歷...


        點?+在看,小編感恩大家??

        瀏覽 40
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲日韩精品在线观看| 粉嫩小泬BBBB免费看| 加勒比无码在线| 蜜臀久久99精品久久久电影| 亚洲综合免费观看| 日韩A视频| 97色色网| 亚洲字幕| 秋霞福利视频| 国产无码一区二区三区|