WWDC2016最大的改变之一是在iOS10中引入了Message framework。开发者现在可以为苹果内置的Messages提供消息扩展。通过建立一个应用程序扩展,你可以让用户在Message中通过你的应用提供的功能进行交互。例如,你可以建立一个消息表情扩展,当用户跟他的朋友可用通过Messages使用表情进行交流。或者,如果你已经开发了一个照片编辑应用程序,你也可以编写扩展,让用户无需离开Messages就可以编辑照片。
扩展的支持给开发者们提供了大量的机会。苹果甚至为iMessage提供了专门的App Store,这样你就可以通过专用于iMessage的App Store来卖掉你的应用扩展,要给Messages开发应用扩展,你需要使用全新的Message framework。该框架支持两种类型的应用程序扩展:
- Sticker packs
- iMessage apps.
接下来,看一下如何通过framework构建一个表情包,稍微深入了解一下怎么开发一个iMessage app。无论你要开发什么类型的extesion,你都需要使用Xcode8.开发一个表情包十分容易,甚至不用编写一行代码即可,十分方便。
Creating a Sticker Pack Project
首先,打开Xcode8并创建新的project,选择iOS>Application然后选择Sticker Pack Application。
然后,随便填写个名字,
Adding Images for the Sticker Pack
当项目创建好后,你在project栏里可以看到两个文件,点击Stickers.xcstickers然后选择 Sticker Pack文件夹,这个文件夹是用来放表情图片的。表情图片支持PNG(推荐)、APNG、GIF或者JPG并且最大不要超过500KB。
选中图片并拖入Stacker Pack文件夹,如图:
完成后,你可以选择更改图片你的默认尺寸。选择Sticker Pack文件夹,然后查看属性,图片的默认尺寸是Medium,可以更改为Small或者Large。
Adding App Icons
以上设置完成后,你还需要设置app icon。app icon需要支持以下尺寸:
1024×768 points (@1x) for Messages App Store
27×20 points (@1x, @2x, @3x) for Messages
32×24 points (@1x, @2x, @3x) for Messages
29×29 points (@1x, @2x, @3x) for iPhone/iPad Settings
60×45 points (@2x, @3x) for Messages (iPhone)
67×50 points (@1x, @2x) for Messages (iPad)
74×55 points (@2x) for Message (iPad Pro)
你可以从苹果 这里 下载icon设置模板,方便自定义。准备好的icon图片拖入iMessage App Icon即可。
Testing the Sticker Pack
到这里,你已经给Messages创建好了一个表情包,测试的话并不需要一个升级了iOS10的设备,直接在模拟器中就可以测试,选择模拟器并点击Run就可以开始测试了。
因为表情包只是一个应用扩展,所以你不能把它当做一个独立的应用来运行,点击Run后还需要选择在Message app上运行。
当模拟器打开后,你将会看到Messages app,点击扩展按钮你将会看到你的表情包,点击后,你就会看到你添加的那些表情,选中即可发送。
Messages app在模拟器里默认配置了两个模拟器用户,选中发送的表情可以在另一个用户的聊天里看到。极大方便了调试。
Enhancing Your Sticker Pack with Animated Images
sticker pack中不仅可以放静态图片,Apple同样支持动态图,如果你有类似的动态GIFS或者APNGs,同样直接拖入即可,Xcode可以识别并可预览。
另外一种创建动态表情的方法是帧动画图片. 选中sticker pack,在空白区域点击右键,选择Add Assets>New Sticker Sequence.然后. 然后在其中拖入帧动画图片即可。
拖入帧动画图片后,放到图片上可以看到播放按钮,点击播放按钮可以预览动画效果。
Summary
在Xcode8中创建一个Messages app扩展,你不需要书写一行代码就可以创建一个表情包,你需要的只是一些自定义图片,包括动态的和静态的,然后就可以进行表情包的开发。然而,Xcode8和iOS10还处在测试阶段,创建好的表情包并不能上传到Messages App Store。但是这个时候如果提前准备好的话,等到iOS 10正式发布后,就可以第一时间上传了。
以上只是iMessage app extensions扩展两种类型中的一种,更复杂的消息扩展的实践,请耐心等候。