Apple Watch 开发调研二:WatchKit Apps

Features 一.Watch App 概要(App Essentials) 1.Interface Controllers 是如何工作的 2.填充故事板场景 3.运行时更新界面 4.国际化我们的界面 二.Interface导航(Interface Navigation) 1.实现层级结构 2.实现分页结构 3.模态视图 三.界面对象(Interface Objects) 1.创建一个界面对象 2.设计的时候配置界面元素...…

Apple Watch 开发调研一:总览

苹果在最近发布了WatchKit,也相应的放出了Xcode 6.2 来让我们练练手啥的,虽然手表应该要等到明年。。。不过这个毕竟是个新鲜的东西,公司也需要调研一下这块儿可以做什么,怎么做,因此通读一边苹果的开发文档显得很有必要了。借着这个机会,总结一下,就按照官方给的顺序和步骤来吧,大致分两到三篇。这篇主要是领会一下官方文档中的总览这一章节的精神。官方文档AppleWatch总览 Features 一: Apple Watch 开发总览 1.Watch App 2.Glance 3.Customizing the Display of Notifications 二.开发开始:配置Xode项目 三.Watch App 整体架构、生命周期、主要方法...…

安静的制造了线上Bug之后的思考

"Creativity is allowing yourself to make mistakes.Art is knowing which ones to keep." Scott Adams 这次版本上线之后,发生了之前我所说过的那个大bug,由于之前没有经历过,当第一次发生之后还是觉得原来一行代码可以带来这么“毁灭性”的打击,周三晚上没忍住去了APP Store上看了一下评论,产品可能自从有了就没有到过现在这种三星的情况吧,给一星差评的特别多,几乎每翻一页都会有人抱怨客户端闪退的问题。熟人报喜不报忧,陌生人好事当做理所应当,坏事可以传千里。 这也是我第一次开发比较核心重要的功能,但也是这一次真正的让我反思了一下我个人开发的习惯问题,本科的时候几乎没有怎么写过代码,本科的毕设也是一页一页学着一本指导书敲出来的,自然贯彻不了书中那些极其规范的代码风格。真正开始自己写代码还是研一的时候,那个时候纯属自己摸索,于是养成了很多坏的毛病,急于求成的想要看到代码运行之后的结果,心想书中运行出来的就是那个结果,什么容错啊,什么查看Api啊,都没有太在意的去养成好的习惯。 其实从八月份开始实习以来,师兄的指导,每次的review都会给我很多建议,我也慢慢的改了一些自己的坏习惯,貌似是不吃一次大亏是不长记性的原因吧,这次还是导致了这么严重的后果,牵连到了负责我的同事,测试的同事,毕竟iOS6模拟器都不存在了,模拟iOS6下的情况实在是很少。只能说还要这次出现问题的只是iOS6的用户,毕竟是少数,如果是目前占大部分比例的iOS8后果不堪想象。。。实在是想象不出来大面积使用客户端的人无法登陆这么一回事儿发生在这么大的公司的客户端上。 今儿下午我们组内的联邦最高法院裁决了我和另外两位同事请组内成员喝饮料,我也安静的执行了这个特色活动,也算是缓解了一下我的内疚吧。。。...…

Today Widget 使用UserDefault导致主程序在iOS6下崩溃

今天一大清早的来到公司就遇到了一个不是很让人开心的问题。。。产品刚刚经过审核,今儿上线了,但是我完成的today widget制造了一个线上bug,也算人生第一次了吧,比较郁闷,但是想想还是长了教训了,谁让我在当时写这个地方的时候考虑不周了呢。。。 BUG起因: Today Widget 中可以和主程序共享数据,方法也有几种,由于我的需求比较简单,我只需要从客户端拿到用户的用户名就可以了,所以我选择了相对比较简单的NSUserDefaults这种方法,我的基本思路就是在程序初始化用户的时候记录一个用户名,记录在主程序和扩展的共享数据中,当注销用户的时候再将这个用户名销毁,就是这么简单的一个思路。。。 BUG再现: 因此我写了两个方法,- (void)saveUserNameForTodayWidget用来存取用户名给widget- (void)clearUserNameForTodayWidget用来销毁用户名。首先在存取的方法中,我一开始是这么书写的: - (void)saveUserNameForTodayWidget { //登陆成功之后将用户信息保存给today widget NSUserDefaults *todayWidgetUserDefault = [[NSUserDefaults alloc]...…

iOS8 TodayWidget 中使用透明按钮

本文通过使用iOS8中新加入的类,实现了通知中心中透明按钮,使得栏目按钮的风格样式和通知中心的相似。 需求背景 iOS8 中新加入了TodayWidget的功能,开发者可以在通知中心的Today中加入自己程序的扩展程序,丰富自己的软件,将最重要的部分及时的呈现在用户的眼前,由于通知中心的特殊性,比如背景,是统一的,那种暗暗的背景,类似于毛玻璃的那种感觉,因此在视图的UI设计上应该尽可能的贴近通知中心的风格,目前看到的许多Widget 中,只有Clear这个软件(额..至少我用到的是这个样子)使用了透明的文字来更新它要展示的一句名言警句。看上去非常的好看,因此想到了在自己的软件中实现这种透明按钮的想法。 前期调研 iOS8中新加入了 UIBlurEffect 这个新的类,用来实现一些模糊透明的效果,之前想要实现的话挺费劲的,这次苹果自己提供了这个类,也是造福了一下开发者吧。 typedef NS_ENUM(NSInteger, UIBlurEffectStyle) { UIBlurEffectStyleExtraLight, UIBlurEffectStyleLight, UIBlurEffectStyleDark } NS_ENUM_AVAILABLE_IOS(8_0); UIBlurEffect 提供了三个基本的效果,一开始使用的时候我没有打算使用这三个中的任何一个,因为尝试的时候发现这三个效果在today中显示的非常突兀,有点像强行加上的一个画板上弄出来一些View...…