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

微软前员工:开发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就不妙了,所以留点心,别让苹果的应用审核快你一步发现问题。

从菜鸟到专家的五步编程语言学习法 亚马逊企业文化:从书贩到云服务巨头的催化剂 明年Google I/O大会日程敲定 或发Android“酸橙派”? 绝境求生,WebOS寄望Android Facebook在移动路上走过的那些弯路 曙光聂华:推动数据融合 CloudStack Committer李学辉:2013年社区将爆发 继续霸权:美众院否决联合国掌控互联网 墨迹天气创始人金犁:巧用细分市场的力量 Windows 8的IE10在浏览器安全测试中独占鳌头 程序员如何做出“不难看”的设计 JDK6明年2月停止更新,甲骨文呼吁尽快升级至7 《时代》评选年度十大视频游戏,激战2居首 《时代》评选年度十大科技产品,iPhone 5居首 Loopjoy:让开发者在移动游戏里贩售真货 iPhone 5S真机照片泄露 明年初上市 Beeline:从“蓝精灵村庄”到“捉鬼敢死队” Windows Server 2012域服务的六大改进 如何编写出优美的JavaScript代码? Unity CEO:不会因赌博游戏谋取金钱利益 云领域:且看亚马逊、Rackspace、微软及谷歌四国争霸 十一位EMC高管读2013技术趋势 你准备好了吗? Yahoo:拥抱Hadoop和HTML5 苹果聘女黑客为系统安全员 曾让Vista推迟发布 移动游戏定价之谜:0.99美金行不通 9.99美金和19.99美金才是王道 2012末日年:《时代》评选年度十大App 使用HTML5 Web存储实现离线工作 紧跟亚马逊、谷歌步伐 微软下调Azure云服务价格 云计算一周热点回顾:Hadoop专家分享大数据技术工具与最佳实践 Python之父Guido Van Rossum离开谷歌 一月加盟Dropbox 图灵奖获得者Butler Lanpson:计算机在做些什么 如何取一个页所有控件的ID值啊! 我的WSAD 5.0的新建“数据库Web页面”,为什么“下一步”和“完成”都不能按?(详情请进!)请帮帮我! 机器被入侵,help 非常简单关于TreeView Control。的问题。喜欢大家帮忙, 求助 一个说易也不易的问题 cookie 只能已天为单位 来过期么? :( 30分钟就国旗 用什么? 请教高手 有些IE不能瀏覽flash文件﹐請問在哪有下載? 求购时间控件,用去web开发 如何才能按照分类显示视图的内容呢? 同志们 再见 接分! 再发一次,ie版本问题怎么解决,100分 请教:在Rational rose中如何去设计数据库表? 为什么wndows2k pro一访问windows2k server就有"打印机"和"任务计划"的共享,可不可以消除? win2k server下,iis5.0有问题,我想卸载,再重新安装,怎么做? treeview的使用小结(一) INDY 资料! 请分析这段代码,谢谢 怎样获得DataGrid的DataSource? 有关struts的问题,返回页面结果不对!在线等待,以解决就结帖 怎么改变快捷菜单PopupMenu1的颜色? 用OWC组件做柱状图,需要显示不同颜色的柱状以及显示不同颜色的图例 VS.NET中如何让自定义的事件出现在属性编辑器中? javascript 中有没有能返回指定某年某月中总天数的函数 如何将主窗体中的变量传到报表中,以供dataset查询用,急急急!!! 新手探路 不知道这是不是一个bug 函数返回值类型问题 兄弟我现在改行搞传统的邮政商业信函业务!给点建议!来者有分! 装有isa客户端的机器不能用FlashGet或者蚂蚁下载 网路多少钱才要交税? Kingofark关于英语及外语学习的50个观点 adotable定位记录有哪些方法?如何使用? 超高难度求sql语句,非高手莫进,在线等.......... petshop有些代碼不明白。。。。。。。。。。。 哎,运算符重载把我卡住了!求救!!! 最后 请问函数传递,设置默认值问题! 通过ODBC连接INFORMIX的问题!急!急!急! 有没有VC高手想在上海找工作? 求一个发送邮件的例子(急!!) 有谁碰到过多人同时改写几十个xml文件从而导致xml文件混乱的情况? 我在datawindow中设置initial vlaue=0,为什么写到数据库里的值还是null 请问联众和中游客户端的聊天大厅是基于chtmlview还是crichedit编程的? WINDOWS高级用户或技术支持人员请进! 通过ODBC连接INFORMIX的问题!急!急!急! 将数据保存到数据库问题 ???急。。。在线等待。。。 一个动态模板列的问题 请各位兄弟姐妹扔个FontTwister1.3的注册码上来,谢过了。 高分求救:怎么时查询后的记录成高亮状态! THE MET STORE怎么样 琳琳从家到县城上学,他以每分钟50M的速度走了2分钟后,发现按这个速度走下去要迟到8分钟.于是她加快了速琳琳从家到县城上学,他以每分钟50M的速度走了2分钟后,发现按这个速度走下去要 给下列字母串加上大写和标点,使它们成为完整、正确的句子,并在横线上写一次.1.washyourface -------------------------------- 2.whatsyourname --------------- 响尾蛇是从何处发出声音的? 48、响尾蛇是从何处发出声音的 响尾蛇是从身体哪里发出声音的? 48、响尾蛇是从何处发出声音的?2467棢 48、响尾蛇是从何处发出声音的?17093go, 2010年太阳有那些异常?地球和人类会受到那些影响? 蛇都会游水吗? factory store 和outlet 有什么区别? 日本民主党党首网上解释“四面楚歌”含日本一女子被控在网吧卫生间生下男婴后韩谴责靖国神社合祀韩战殁者 称日决定美一农民发现两副恐龙骨架 有望拍出2日本自卫队将于11月举行海陆空联合“随笔:肯尼亚人的“掌上生活”日本民主党党首网上解释“四面楚歌”含海宁消防联合电信开展“办业务送消防体中亚区域经济合作第12次部长级会议在尸检报告排除阿拉法特死于钋中毒的可能阿拉法特尸检报告排除其死于钋中毒万名“返乡摩骑”可免费加油回家萝岗黄埔打车难,专营的士去哪儿了?荔枝园里违建别墅遭举报 事主拒绝恢复复式改单式痛失702万香港Q唛嘉年华首次亮相内地汤唯被骗21万不见得全是坏事更正与纠错网购被“钓鱼” 输错验证码逃过一劫周中杯赛预测网店开张迎“买家” 卖家被骗千元7月起养老金标准提至80元/人·月
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘