本书全面介绍了Apple Watch编程入门所需的知识,主要内容包括Apple Watch程序的架构、界面导航、用户界面控件、相关接口、通知的显示、glance的使用等。书中提供了丰富的动手示例来帮助读者实现WatchKit和Apple Watch开发快速入门。
无
推荐序1
近些年,随着政府着力推进“互联网+”战略,国内互联网的发展进入了新的里程。移动互联网、宽带互联、物联网、智能硬件等相关的创业公司如雨后春笋般出现,并表现出了极强的创新能力和生命力。以小米为代表的国内创业公司,在物联网、智能硬件、可穿戴领域陆续推出了小米手机、小米路由器、小米智能电视、小米手环等创新产品,公司估值也已经达到了450亿美金。传统的老牌科技公司,如谷歌、苹果等,在智能硬件和可穿戴领域也是出手不凡,陆续推出Google Glass、Apple Watch等重量级产品。特别是Apple Watch,一经推出就引起了果粉强烈的兴趣,其于2015年4月10日(上市首日)在美国的在线预订量就超过了百万部。目前Apple Watch还没有通过苹果零售店销售,仅提供了在线销售,相信如果开放零售店等销售渠道,销量可能还会有较大提升。
智能硬件和可穿戴领域发展前景非常好。Apple Watch给我们提供了新的机会,为Apple Watch用户提供服务成了当前迫切的需求。苹果公司几次产品形态上的变化都带来了一批新应用的崛起,在iPad上,这种情况我们已经见过。几年之后,Watch也会成应用开发者们的新战场。由于Apple Watch会时刻带在用户手腕上,它是比iPhone手机离用户更近的设备,跟生活相关的服务可能会成为开发者争夺的重点,比如空气质量、天气预报、股票信息等。本书正是在这种背景下翻译完成的,希望能够给开发者提供力所能及的帮助。
按照一般规律,一款产品面世后需要较长时间才会有比较完善的配套服务和设施。由于Apple Watch是一款销量较好的产品,加上苹果公司的声誉及iOS较完善的生态环境,各厂商都在加紧完成在Apple Watch上的布局,本书的出版希望能帮助开发者快速把握住这个机会。
由于Apple Watch上市不久,相关的资料相对缺乏,高质量的开发指导书籍更是少之又少。我们知道,一本好的移动开发参考书既需要让经验较少的开发人员快速了解相关技术概念及开发方法,也要让经验较多的移动开发人员快速找到自己想要的资料。本书从基本概念介绍入手,循序渐进引出Apple Watch的开发,通过实例比较详细地介绍了各类开发组件的使用方法,对于读者快速掌握Apple Watch开发有很好的帮助。
本书的作者李伟梦先生是一名技术专家,经常在国际会议上发表演讲,有丰富的移动开发技术培训经验。本书的译者周智勋先生一直从事移动开发事业,特别是iOS开发,拥有多年工作经验,已翻译了多本移动开发书籍。
衷心希望本书的出版能够加快Apple Watch开发领域的技术推广速度,为该领域的研发工程师提供一手资料。
本人十分高兴地向广大读者推荐这本内容丰富的Apple Watch开发参考书,并且相信它会对读者有所启发和帮助。
360·手机安全专家·张金明
2015年·夏
推荐序2
话说,2009年我还在捣鼓着Symbian,工作之余就上Symbian技术论坛刷刷帖。当时的周智勋同学就已经是技术论坛管理员了,此人Symbian功力深厚,到处都是他精力无限的身影,提问题的帖子总能见到他认真的回答,大家都称他船哥。
后来,诺基亚走下坡路,连带着Symbian也开始没落了。论坛为了吸引开发者,也开出了iOS和Android的板块,一直找不到合适的版主,船哥就自己顶上了,那阵子翻译的国外关于iOS和Android的技术文章大部分都出自船哥之手,从此烙上了“船哥译品,必属精品”的印记。
很快,船哥已经可以游刃有余地指点论坛求教的新手。那时我也开始转到iOS阵营,觉得好玩,就申请了版主,回帖也算积极,所以除了论坛上接触,私下跟船哥也慢慢熟络起来,愉快地做起朋友来,那时我还很瘦,喜欢和他一起篮球和跑步。
再后来,我去了杭州,船哥也去了北京,由于工作繁忙,就很少能逮到机会聊天了。但是每次上论坛看帖,我都会去翻翻船哥又翻译了什么好的文章,回了什么精彩的帖子。
日子就这么过着,有一天,我觍着脸申请加入了巧哥(唐巧)组织的iOS开发者群。第一个冒出来欢迎的人头像似曾相识,点进去一看,备注是“船哥”。哈哈,原来你也在这里。
在群里收获颇丰,经常会有好的国外技术文章被推荐。一旦有好文章贴出来,过不了几天,船哥就会淡淡地说,“看你们都觉得好,我就给翻译了。”翻译质量颇高,且高产,渐渐把我惯得一旦有好外文丢进来,就等着看他的译文了。
2013年,船哥回云南,主导做企业级App,在群里冒泡的机会越来越少了,我以为他因为忙也会放弃翻译的爱好。
前段时间他突然在群里说他翻译的Swift书要出版了,好家伙,原来是闭关憋大招。那个热爱翻译技术文章的船哥还在,而且功力精进,就像我已变成个“胖纸”,船哥还在乐此不疲地上传他打篮球、跑步时矫健身影的照片。
昨天船哥找到我说:“我又翻了一本,你帮我写个序呗。”我盯着屏幕上的“又”发呆了一会,好吧,面对如此勤奋的船哥,我怎么能不写点啥呢,即使回忆也好。
说来惭愧,虽然WatchKit随着Apple Watch大热。我却没有真正看完文档,对开发一个Watch App会遇到的问题也一知半解。
快速看完这本书,如何完整地开发Watch App在我脑中有了比较清晰的认识。这本书定位为指南,通过通俗易懂、循序渐进的语言介绍,加上简单清晰的示例代码、上手实战的练习,可以让一个新手快速掌握所需技术点,稍加练习,就可以轻松开发出一个属于自己的Watch App。
现在,越来越多的企业开始重视智能穿戴设备的开发。作为一名合格的移动端开发者,目光不应只是锁定在Phone和Pad上,更要重视一些颠覆性的智能穿戴设备,熟悉这些设备的应用开发不仅开拓眼界,更能给自己的技术能力加分。推荐对Apple Watch应用开发感兴趣的同学阅读此书,愿大家可以通过对它的学习快速上手。
希望本书对Watch 2.0的内容也尽快有完善和补充,祝愿船哥有更多好的作品。
支付宝·手机技术专家·方彬
2015年·夏
译者序
2009年,我莫名其妙地爱上了跑步,有时会结伴,不过大多数时候是一个人在跑步的路上,从刚开始的孤独,到后来的习惯,慢慢体会到了跑步的乐趣。也在跑步的路上认识了一些人,一些有趣的事。从一些前辈们的身上学到了不少宝贵的东西,或许我一生都将受益。跑步之初,我从没想过会跑完一个马拉松,跨过2012年北京马拉松终点那一刻,我深深体会到,只要坚持,把每天看不见的进步缓慢积累成看得见的改变,那些看似遥不可及的事情,都能找到出口,正如村上春树在他的书中引用的一句话“任何一把剃刀都自有其哲学。”
其实,从初中到大学,英语一直是我的一块心病,无论如何出招,怎么治都不见成效,导致我曾长期觉得人类的语言能力就是天生的,无论后期怎么努力,都无法弥补。
2007年大学毕业后,我主要从事移动应用开发,刚开始,在 Symbian 上做开发,由于国内外的信息严重不对称,许多开发资料都是英文的,英语水平很差的我只能硬着头皮、连蒙带猜地看着开发资料,并通过代码不断验证自己的理解。随着时间流逝,慢慢也就熟悉了英语资料,也会主动在网上看一些国外的技术文章,过程中,也渐渐学会了如何有效地使用谷歌获取资源(不幸的是,目前国内无法通过正常渠道访问谷歌了),从心理上,对英语不再那么拒绝了。
后来,也会在我的个人博客(http://beyondvincent.com/)上写一些文章,做一些总结和分享(2015年,由于精力有限,很少打理博客,人还在,请大家勿念),期间收获也不少。
再后来,陆陆续续写过书、翻译过书,对个人的认识和提升都比较有帮助。我出版了几本书后,很多人都问我,出书很赚钱吧?其实,了解中国出版业的人都应该知道,走出书致富这条路,对大多数人来说是行不通的。国内的用户都习惯了使用免费、盗版、破解的东西,况且用户的付费习惯及版权保护意识都非常薄弱。所以,劝告那些想早日实现财务自由的人,还是另寻出路吧。
今年夏季,电子工业出版社的编辑刘芸老师找到了我,说国外有一本关于Apple Watch开发类的书籍,要引进国内,问我是否感兴趣做翻译。由于我一直关注着Apple Watch的动向,加之以前也跟刘芸老师有过愉快的合作,因此没有多加思考,我就应了下来,与刘芸老师约定一个月完成初稿,也就是说我只有四个周末的时间来做这件事情。由于翻译此书要求的时间比较紧迫,我选择了与同事陈姣共同翻译。为了对时间做出有效的管理、集中注意力、提高效率,特意网购了一个计时器,计划每个周末的两天我都开启番茄工作法,全身心投入。刚开始,还有点担心进度和翻译质量问题。想不到该方法十分奏效,我只花了两个周末就完成了计划任务,同时也没有感觉到疲惫,可以用一气呵成来形容。
本书介绍了Apple Watch编程入门需要的所有基础内容,书中的主要内容包括Apple Watch程序的架构、界面导航、用户界面控件、相关接口、通知的显示、glance的使用等。书中提供了许多动手示例,这对于学习新语言非常有帮助。本书的作者李伟梦是一名技术专家,同时,他还是Developer Learning Solutions(learn2develop.net) 公司的创始人,他的写作风格非常好,文章读起来特别流畅。
在翻译期间,要特别感谢刘芸老师,是她在我翻译过程中,给予了最大的支持,及时解决我遇到的难题,使得我能专注于书籍的翻译工作。
要感谢我的好友张金明和方彬,他们在百忙之中抽出时间,对本书的校稿工作做出了非常大的贡献,使得本书的翻译质量得到保障。
最后也要感谢我的妻子王琼梅,在我翻译期间,她做了许多家务,忍受了我无休止的长时间工作。
正是得益于他们的大力帮助,才使得此书与读者见面。
如果有缘你看到了本书,真心希望它能对你起到些许作用。如果你发现译文有误,拜托发邮件(BeyondVincent@gmail.com)告诉我,在此感激不尽。
只要坚持,把每天看不见的进步缓慢积累成看得见的改变,那些看似遥不可及的事情,都能找到出口。
周智勋
2015年夏
前言
欢迎阅读《从iOS到Apple Watch:用WatchKit创建新型可穿戴应用》!
作为一名开发者,这是一个令人兴奋的时代,因为我们正见证着新的可穿戴领域的发展。在市场上,Apple Watch并不是第一个涉足可穿戴领域的设备,不过Apple Watch的推出标志着苹果公司将大举进军可穿戴设备市场。在成功改变了各种行业(音乐、计算机、手机和移动计算机)以来,此次,苹果公司看起来即将改变可穿戴行业。目前还没有哪家厂商能够轻松搞定可穿戴行业。
跟iPhone一样,Apple Watch设备中大量实用性和功能性程序都来自极具创造性的第三方开发者。在iPhone早期,由于想要垄断iPhone程序的本地开发,苹果公司限制了所有第三方程序,以及Web程序。然而,由于来自大量开发者的抗拒,苹果公司最终发布了一个SDK,该SDK支持第三方程序的开发。正是这个正确的决定,改变了苹果公司的命运。如果不支持第三方程序,iPhone永远都不可能取得如此好的成就。
当发布Apple Watch时,苹果公司吸取了之前的经验,并意识到Apple Watch要想取得成就,就必须有大量可用的程序。因此,在发布Apple Watch之前,开发者就能获得相关的SDK,进行Apple Watch程序的实际动手开发。
你现在看到的这本书(或者是在手机或平板上阅读)是一个教程集合,通过阅读书中的内容可以帮助你快速掌握Apple Watch编程。本书介绍了Apple Watch编程入门需要的所有基础内容。在阅读本书时,我已假设读者已经具备如下技能:
你已经熟悉了iOS程序的基本开发技巧。特别是像outlet和action这样的概念,对你来说,已经不是新概念了。
你应该已经适应了Swfit编程语言。如果你还没有接触过Swift,下一节将介绍如何入门Swift。
你需要什么
为了充分学习利用本书,你需要做好如下准备:
一台Mac电脑,并安装有Xcode。
你的Mac电脑操作系统版本不能低于Mac OS X Yosemite (v10.10)。
可以从Mac App Store下载到Xcode的最新版本。本书中所有代码示例都在Xcode 6.3中测试通过。
如果你计划在真实设备上测试程序,需要注册成为一名付费的iOS开发者(https://developer.apple.com/programs/ios/)。个人账号需要花费99美元/年。注册成功之后,就可以请求一个对程序进行签名的证书,签过名的程序可以安装至你的设备上。要想将程序安装到设备上,还需要针对设备创建provisioning profile。另外,还需要一台Apple Watch,并与你的iPhone进行配对。Apple Watch只能与iPhone 5、iPhone 5c、iPhone 5s、iPhone 6和iPhone 6 Plus配合
使用。
本书提供的所有代码示例都可以在iPhone模拟器上进行运行和测试,不需要真实的设备或者Apple Watch。不过,有些代码示例,需要你访问iOS Developer Program,并且在程序中有一个有效的provisioning profile,这些代码才能正常使用。因此,即使你没有Apple Watch,也不想在真实设备上进行测试,你仍然需要一个iOS开发者账号来测试本书中的一些示例。
本书中的许多示例在有网络连接的情况下才能使用,因此在运行相关示例时,确保网络连接。
本书中所有的代码示例都是用Swift编写的。如果你还不熟悉Swift,可以阅读我写的另外一本书Beginning Swift Programming(Wrox,2014),它可以帮助你快速掌握Swift,或者从http://weimenglee.blogspot.sg/2014/11/swift-cheat-sheets-download-today.html下载我整理的Swift备忘录。
本书是如何组织的
本书的风格属于教程类。在介绍相关概念时,你将进行动手实验。对于学习一门新的技术来说,这是一种行之有效的方法,强烈建议你就像工作一样输入示例中的代码。
第1章中,你将学习到Apple Watch程序的架构,以及Apple Watch是如何与iOS程序配合使用的。最重要的是,你将有机会写一个简单的Apple Watch程序,并将该程序安装到模拟器中。
第2章将深入了解Apple Watch程序在多个界面之间是如何进行导航的。可以看到数据如何在多个界面之间进行传递,以及如何自定义每个界面的外观和感觉。
第3章讲了Apple Watch程序的用户界面(UI)设计与iPhone程序有相似之处。不过,在Apple Watch中,空间是需要特别注重的,为了在程序中准确传达相关内容给用户,屏幕中的每毫米都必须善加利用。本章中,你将学习到如何利用Apple Watch中的各种UI控件来创建程序。
第4章向你介绍了可以用于Apple Watch程序的所有功能。你将学到如何本地化程序,Apple Watch程序和containing iOS App如何通信,如何调用Web服务等!
第5章中,将学习到如何在Apple Watch中显示通知。首先由iPhone接收到通知,然后再发送至Apple Watch,开发者有机会对通知进行自定义,因此你可以将通知内容快速地显示给用户。
第6章介绍了Apple Watch中的glance可以给用户提供一种获取信息的快捷方法。例如,Apple Watch中的Instagram glance可能会显示最近分享的图片,而Twitter可能会显示最新的动向。在本章中,你将学习到如何在自己的程序中实现glance。
关于示例代码
本书的代码示例以通俗易懂的方式进行编写,读者很容易就能理解相关核心概念,不用陷入到细节中,例如漂亮的外观或者详细的错误检查。本书的写作理念就是以尽可能简单的方式传达关键的思想。在实际程序中,你期望在程序里能够实现详细的错误处理,并创建出友好的用户界面。尽管我提供了不同的方案,但是对于方案的甄选,还取决于你自己。对于读者,为体现你们的创造性,需要将相关概念置于工作中或下一个杀手级程序。
获取示例代码
通过访问Informit.com中本书的相关Web页面informit.com/title/9780134195445,并单击Extras选项,就可以下载到示例代码。
联系作者
如果你有任何关于本书的意见或问题,请发邮件到weimenglee@learn2develop.net,或者到我的网站learn2develop.net留言。
致谢
写一本关于新兴技术的书,不仅令人兴奋,而且是危险的旅程。一边,需要处理最新的动态,而接触这些新动态的人并不多,另一边,还要处理许多未知的东西。为了完成这样的旅程,需要大量的帮助和家人的支持。借此机会,我要感谢所有帮助和支持我的那些人。
首先要感谢的是Trina MacDonald,她是Addison-Wesley/Pearson Education的一名高级编辑,是她给我写这样一本书的机会。对于书籍的编写,她总是支持我的建议,能够与她在此书上共事,我由衷地感到高兴。谢谢你给我这个机会和指导,Trina!希望我没有让你失望。
我还要感谢幕后工作者:文字编辑Stephanie Geels、责任编辑Julie Nahil,以及技术评审Mark H. Granoff、Chaim Krause和Niklas Saers,他们将我的手稿变成了一本书,让我以此为荣!
最后但非常重要的是,我想感谢我的家人给我的所有支持。如果没有他们的鼓励,这本书是不可能完成的。
关于作者
李伟梦是一名技术专家,同时还是Developer Learning Solutions(learn2develop.net)公司的创始人,该技术公司专注于最新的Web和移动应用技术的动手培训。伟梦经常在国际会议上发表演讲,并与他人合著了许多书,涉及的领域包括.NET、XML、Android和iOS相关技术。他热衷于为informIT.com和mobiForge.com写作。