首页 > PHP资讯 > Python培训 > 微软前员工:开发Apple Watch应用的27个技巧

微软前员工:开发Apple Watch应用的27个技巧

Python培训
  自一月中旬以来,我就全身心投入到WhereNotes应用的Apple Watch版本的开发上了,并幸运地受邀参加了库比蒂诺苹果总部的Apple Watch实验室测试。在过去的三个半月里,我整理了诸多WatchKit的开发建议和技巧,并将重点内容列在这里,希望对Apple Watch应用开发者有所启发。

  

 

  1. WatchKit的NSExtensionContext通知

  可能对诸多开发者来说,UIApplication上的函数方法并不陌生,比如applicationWillEnterForeground:和applicationDidEnterBackground:,两者都是先被调用,再分别发出UIApplicationWillEnterForegroundNotification和UIApplicationDidEnterBackgroundNotification的通知。而WatchKit的 NSExtensionContext通知则包括:

  NSExtensionHostWillEnterForegroundNotification

  NSExtensionHostDidEnterBackgroundNotification

  NSExtensionHostWillResignActiveNotification

  NSExtensionHostDidBecomeActiveNotification

  2. 充电测试更有效

  在Apple Watch充电时进行测试,测试过程更容易,结果也更可靠,这一点不仅仅是我,其他Apple开发者论坛上的同行也深有体会。

  3. WatchKit只能在当前活动/可见的视图控制器上更新

  在iOS上几乎可以随时更新界面元素,但WatchKit只能在当前活动/可见的视图控制器上更新。只要didDeactivate还没有调用,就能顺利完成更新(注意:界面元素不能用didDeactivate更新)。这也就意味着:开发者想 要更新一个当前隐藏起来的视图控制器(比如查看一个模态控制器“on top”),就必须用当前控制器的willActive方法来更新,而willActive只有在取消(dismiss)模态控制器时才能被调用。

  4. addCachedImage:name缺省使用PNG编码

  除了WatchKit应用捆绑包里的资源,每个应用还享有5MB容量的图片缓存空间,用WKInterfaceDevice上的方法来放置扩展,并用扩展进行管理。从扩展向Watch发送图片会消耗时间和电量,所以如果要再次使用某张图片(即使只用过一次),最好将它缓存起来;如果用addCachedImage:name:来发送图片,它会自动以PNG格式缓存起来(也许PNG格式并不是最合适的,但至少是最保险的)。如果图片能以JPG格式再次呈现的话,那么建议改用addCachedImageWithData:name: 来发送。以JPG格式储存图片后再试试画面设置,图片转换不仅更快,还省下了不少缓存空间,方便储存更多图片。

  5. 支持后台线程缓存图像

  依然跟上一条建议相关:开发者可以在后台线程上缓存图片(开发者论坛的一名苹果员工如是说)。我在开发Watch应用时尝试了一下,图片在读取之前就缓存好了。

  6. 开发者需自行封装图片管理器

  要使用上述的图片缓存的话,并无内置的方法来检测最早的图片。若应用同时管理很多图片,可能需要在缓存里设立一个单独的管理器。

  7. 测试通知功能时记得关闭手腕感应

  在Apple Watch上测试通知功能时,需要在其Companion(伙伴)应用的通用设置里关掉Wrist Detection(手腕感应)。

  8. 若要强制退出应用,长按侧键打开Friends应用

  要强制退出应用,就单击侧键打开Friends应用,然后再按一次(注意,强制退出应用不代表强制退出扩展)。

  9. 尽可能地精简willActivate操作,缩短加载时间。

  10. 先Watch后iPhone App

  如果用户在你的iPhone应用之前抢先发布Watch App就不妙了,所以留点心,别让苹果的应用审核快你一步发现问题。

本文由欣才IT学院整理发布,未经许可,禁止转载。