歡迎加入QQ討論群258996829
來自星星的你 頭像
蘋果3袋
3
來自星星的你

Apple Watch 應(yīng)用開發(fā)有哪些注意事項(xiàng)?

發(fā)布時(shí)間:2015-04-24 17:42  回復(fù):0  查看:3604   最后回復(fù):2015-04-24 17:42  

來源:知乎

據(jù)說已經(jīng)有上千個應(yīng)用提交給了蘋果,但是今天 Apple Watch 上市預(yù)約預(yù)售,第一批據(jù)說只有 10 余個通過,看起來很難通過的樣子…


elyn,公眾號:tianluo_hhhaze

作為首批適配了Apple Watch的應(yīng)用的產(chǎn)品狗,來答一下。真是虐了好幾個月,我都沒時(shí)間做早餐了快。。。 把各種坑擺出來說一說吧,希望對大家有幫助。

利益相關(guān):搜狗地圖產(chǎn)品負(fù)責(zé)人。



1. 最最基礎(chǔ)的

一定務(wù)必仔細(xì)研讀一下兩個文檔。如果有什么功能你想做但是文檔里沒找到的,八成就是沒接口支持,做不了(看似廢話,但真的是最有用的,所有你能做的你只能在這里面挖掘)

Apple Watch Human Interface Guidelines: Designing for Apple Watch

WatchKit - Apple Developer



2. 交互和UI

1> Watch只支持這么幾種手勢:系統(tǒng)的點(diǎn)擊、force touch、digital crown旋轉(zhuǎn),不支持自定義手勢。交互方式上會比較受限,在手機(jī)App上能實(shí)現(xiàn)的手勢很多都在Watch上用不了。

2> Crown的所有操作都是Watch定義好的,不要試圖對Crown的操作做任何定義。

3> 蘋果希望Glance能在不同時(shí)間不同地點(diǎn)展示不同的內(nèi)容。那么問題來了,Glance是依靠模板展現(xiàn)的,并且一旦你選定一個模板就不能改了。也就是說不同內(nèi)容都要用同一個模板展現(xiàn)……臣妾做不到啊……所以選模板很重要,需要能適應(yīng)所有的情況。



3. 開發(fā)類

1> 大家之前應(yīng)該都看過原生的App多么炫酷,但是實(shí)際上自己做的時(shí)候會有很多問題,因?yàn)楹芏嘟涌诓粚ν?。比如不支持動畫(只支持幀動畫),只有原生地圖支持動態(tài)渲染地圖引擎,意思就是原生的地圖可以扒拉放大縮小,其它家的就不可以。(嗯,我司是地圖類應(yīng)用,你感受一下這坑…)

2> Notification分為短通知和長通知,短通知顯示的是title,長通知顯示的是body。但是以前手機(jī)app通常只有body沒有title,所以要修改應(yīng)用的推送接口,支持title,否則短通知就是空的。

3> 盡可能把邏輯和功能放到擴(kuò)展里面來實(shí)現(xiàn),這樣響應(yīng)速度會比較快。除非有不支持的權(quán)限比如定位,是迫不得已要放到手機(jī)App里面來執(zhí)行的。但這樣響應(yīng)時(shí)間會很長,比較影響體驗(yàn),看怎么權(quán)衡吧。


4. 最最重要的,就是盡快找到真機(jī)適配。

模擬器真的是靠不住的,一定要盡快找到真機(jī)適配。我們按42mm的尺寸來做的設(shè)計(jì),在模擬器上跑的時(shí)候沒問題,一上真機(jī)就發(fā)現(xiàn)字體、圖片、布局都有幺蛾子,被裁的、被壓扁的…

大概就這些,供參考。




鐘穎cyanzhong碼農(nóng)


這次我要認(rèn)真的回答一下,
從WatchKit出來的時(shí)候開始玩,在公司負(fù)責(zé)Apple Watch的版本,自己上架過Apple Watch的應(yīng)用。

我隨便做的app已經(jīng)通過審核并且上架了,不是第一批也趕在用戶拿到表之前了。
Air Watch on the App Store on iTunes

非常簡單的app,就是在手表上面看看空氣質(zhì)量,這就是他的全部
真的是隨便做的。

我想說的其實(shí)是,不難通過,我是一次過的。
好好讀官方的HIG和Programming Guide。

開發(fā)方面說幾個tips吧

1、模擬器iPhone鎖屏的時(shí)候,手表會不可用,這是模擬器bug,真機(jī)沒這個問題

2、模擬器在iPhone app進(jìn)程沒啟動的時(shí)候可以喚醒iPhone的host app,真機(jī)不行(但是官方app可以,因?yàn)槟壳暗谌降腶pp全都是extension形式運(yùn)行,并不是watch上面的native app

3、模擬器在iPhone橫屏的時(shí)候,force touch手表會導(dǎo)致手表有一瞬間橫屏,放心,這個也是模擬器bug

4、真機(jī)的性能可能沒有你想象的那么好,特別是對于數(shù)據(jù)傳輸方面,并不是一直能保持很穩(wěn)定的速度,要盡量縮減iPhone和watch之間的數(shù)據(jù)傳遞,只在有數(shù)據(jù)變化的時(shí)候去做刷新

5、使用Darwin Notification來做iPhone和watch的雙向通知
這個特別重要,以至于需要解釋一下。
當(dāng)你的iPhone端數(shù)據(jù)變化的時(shí)候需要通知到watch,F(xiàn)oundation框架下的NSNotificationCenter是沒有用的,需要使用CoreFoundation的Darwin Notification,可以參考下notify.h上面的接口。
事實(shí)上不僅僅是watch和iPhone可以這么做,keyboard extension和host app也可以。(他們都是extension)。

6、使用presentTextInputControllerWithSuggestions來進(jìn)行語音輸入

7、構(gòu)建UI的一些技巧
A. 使用嵌套的group來處理一些布局關(guān)系
B. 選中多個組件可以合并調(diào)整他們的位置關(guān)系
C. 可以對38mm和42mm建立不同的size
D. 使用startAnimatingWithImagesInRange來實(shí)現(xiàn)動畫,要準(zhǔn)備好一堆的圖
E. 利用hidden來做一些界面變化的效果

其他的想到什么再補(bǔ)好了

您還未登錄,請先登錄

熱門帖子

最新帖子

?