说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

HTML文档下载 WORD文档下载 PDF文档下载
曾在微软工作12年的Mike Swanson从1月开始就一直在捣鼓开发Apple Watch应用,在此开发过程中,他总结了诸多WatchKit的开发建议与技巧,并将其整理成文,希望对Apple Watch应用开发者们能够有所启发。

自一月中旬以来,我就全身心投入到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就不妙了,所以留点心,别让苹果的应用审核快你一步发现问题。

CES2013 AMD发布移动处理器路线图和环绕计算概念 对话Linus Torvalds:大多黑客甚至连指针都未理解 PaaS玩家们,怎么演好自己的角色? Apple高管表态:低端机绝不是iPhone的未来 Web开发人员应该知道的IE 10兼容性问题 如何做小一些的登录框,居中显示的,有提交功能(好像是废话) linux7.2下安装oracle817时遇到点问题,求助 XML有描述心理测试的规范吗? 求助,最近在linux7.2下安装oracle817时遇到问题 疑难杂症 关于堆栈,push(1) push(2) pop() pop() 问此时栈顶内内容是什么? 刚刚学VB 大家帮帮我 在DOS里面能实现MP3等的播放吗? BCGControlBar Professional和Xtreme Toolkit 的问题! 考北师大细胞生物学 细胞生物学的书有两本 一本刘凌 有个公式中求和符号下面只写了一个字母B,如∑如下面 求物理化学中符号大全,要有解释.(不是物理和化学是 PCR反应条件如何选择及优化? 学苑新报人教课标版数学天地八年级第三期 答案 学苑新报数学天地人教版八年级第十四期答案 正方形ABCD中,Q在CD上,QD=QC,P在BC 河北医科大学大一新生(校本部)入学有英语测试吗?还 大一的怎样备战英语四级? 澳大利亚否认山火与全球变暖有关 总理德媒曝美国驻柏林大使馆涉嫌参与对默克俄险再发生公交爆炸 一乘客携重量炸药日媒指韩军独岛演习或为对抗日方发布独新西兰法庭批准金矿在居民楼附近采矿引郑州电子眼在哪儿“睁”着,可查!秀发新生力34岁辣妈“S”曲线轻松Hold住好6棵雪松被挖出 1个月没移栽25岁患“小儿多动症”? 病竟在颈椎陨落仙传百炼成萌九州仙域轮回生死决转世魔刀斗鸡石旅游白云湖旅游郑州绿博园旅游八里沟旅游广州大学城旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘