《乔纳森传》

乔纳森传

Follow 伴着对自己是否有阅读障碍这个问题的怀疑,终于读完了中文版的《乔纳森传》。就这本书简单说说。 本书从早期的乔纳森说起。此前,我对乔纳森并不怎么了解,在那部颇受争议的电影《乔布斯》中有几个镜头交待过,我还以为当...

Read More.

回顾我的2013

2013在数小时前已经结束了。就在我要写下这篇blog时,Bluehost停机了…… 一觉睡醒,服务器也回来了,就对去年做个简单的回顾吧。

上半年,换了份工作。然而,在新环境,一切则没有当初想像得那么顺利。我变得烦躁不安,开始抱怨,当然也试图把事情变得有趣,让自己开心。然而,我失败了,当然这其实毫无悬念。
所幸,这还算是家大公司,大公司有大公司的不好,大公司也有大公司的好,于是就在年底前,换了个部门。Aha,新地方还不错~

年中搬了一次家,于是天气好的时候可以迎着晨风走着上班儿了,在家就可以给自己做咖啡拿铁了。
isHUD全年的销售情况超出了我的预期,这一点算是点小运气吧。

要说2013年我的年度词汇,那应该就是“朋友”了。
因为新的工作,认识了很多在日本的新朋友,此外,也遇到了不少活跃在SNS上的英雄好汉、才子佳人。从他们那儿得到了很多帮助,不仅开拓了我的眼界和思维,也丰富了我的业余时间。同时,他们让我相信自己依然有着源源不断的创造力,并坚信自己的信念。

当然,还要感谢永远支持我的家人,尽管不在身边,但是我所做的每一个决定都离不开他们的支持。

至于2014的打算,其实也就是些去年没做完的事。

  • 学习设计+全栈开发,把想法和构思从笔记本上搬到线上
  • 继续发布和支持isHUD
  • 咖啡拉花:学会郁金香和三重rosetta
  • 找点时间画画
  • 做一个重大决定

 

简单说说 iOS7 的扁平化UI

万众瞩目之下,iOS7的神秘面纱终于被揭开。坊间关于iOS到底会走向“拟物化”还是“扁平化”的传言,就此也告了一个段落。

自从Jony Ive接管OSX团队来,一只就有传言,说这位工业设计大师将会将极简风格引入新版iOS的UI中,从而取代一直以来都是iOS标志性之一的“拟物化”设计。这个传言并非子虚乌有,从年初Podcast应用中去掉精美的博朗TG 60磁带机的设计元素之后,事情就变得越来越明朗。Dribbble上也开始呈现UI扁平化的设计趋势。

可以毫不夸张的说iOS7的UI是颠覆性的。也正因如此,业界、用户对此褒贬不一。下面具体聊聊我对这套UI的一些看法。

用一句话概括这次UI的设计就是:

扁平而生动的半透明蚀刻片——Jonathan Ive对拟物化设计的诠释

扁平

层叠式的界面

从视觉的直观感受来说,谁都看得出来这次真的是够平的。既然是废话,那我们不妨换一个角度,从视图的操控和切换来看一看。随着移动应用在设计方面越来越多的尝试,人们发现,iOS从早期沿用至今的基本界面导航方式和手势已经无法满足当代应用既要夺人眼球又要操控顺畅的需求了。越来越多的应用采用了在画面上以立体的方式展现层叠效果的UI设计,比如iWeekly的滑动返回。多个视图并不再呈现单调的并排关系,通过对空间关系的隐喻,增强人脑对界面的记忆和认知。

我们看到在iOS7的原生应用和基本操控上大量采用了这种层叠式的界面,而在这个前提下,视觉上呈现扁平的层次能使UI显得更为轻巧,不容易出现厚重感。这一点在不少应用中已经得到验证了。

生动

少了纹理材质,那怎样还原出iOS基因中精美、细致的一面呢?这次Jony Ive给出的答案是生动的特效。天气应用中全屏幕的风云雨雪、Safari中更为立体的Coverflow、Siri中动态显示的声波、手机旋转时UI视角的变化、UI滑出时的反弹震动…… 这些动态特效弥补了不少因纹理缺失带来的粗糙感。事实上,iOS7中还增加了一组名为UI Dynamics的API,使开发人员更为方便、标准地植入视觉特效。

半透明蚀刻片

新的UI中采用了大量模糊滤镜(Blur filter),也就是所谓的“毛玻璃”效果。运用这一特效,既能让UI产生通透的层次感,又能很好地分离前景和背景,清晰地将内容展现出来。

此外,iOS7中,到处都能见到“蚀刻片”的影子,该要素最为集中的地方就是新引入的Control Center,其他很多地方也能见到由细细的线条勾勒出来的各种图标。而Apple对字体也做了调整,并且这中纤细化的设计理念还渗透到了新的HIG里面,相信Apple软件及网站的整体风格也会慢慢朝这个方向演进。

这种纤细的蚀刻线条,其最为直接的观感,就是让UI显得更轻盈。但是我觉得这似乎是Jonathan Ive的个人喜好,因为他是做工业设计的,干这行的一定知道蚀刻片是在制图和建模过程中不可或缺的一种工具。从这一点来说,也许我们并不能说“拟物化”被去除了,只是换了另一种模仿对象而已。

新UI的优点和槽点

优点

  1. 视觉轻盈,色彩丰富,更显时尚气息,深得女性消费者爱戴(别忘了这可是数码设备消费的主力)
  2. Control Center的引入让操控更为简便
  3. 扁平化的设计能在某种程度上减轻跨平台的应用设计压力

槽点

  1. 新的官方应用图标色彩饱和度过高,过于鲜亮,存在感太强,与黑色机身不太搭调(难道说真的要出彩壳了……?)不知是否正式版出来前还会有微调
  2. 对于设计师和开发人员来说,UI动画特效更具挑战,可能会导致大量加班……

总结

尽管褒贬不一,iOS7的新UI仍然展现了UI在设计及开发工程中的推进力。也许正式公布的时候会有个别调整,但整体的基调已定。其实要习惯一个东西往往会比想像来得容易,开发者们先玩起来,等几个,iOS7正式发布的时候,相信应用市场上一定会有不少与新定位相符的产品。

iOS Auto Layout in practice

I’ve made a simple presentation at Tokyo iOS Meetup in Dec. 2012, which covers some basic ideas about utilizing the AutoLayout in iOS application. I found that about 1/3 developers there had already adopted AutoLayout in their projects. As I thought most people would stick to the classic “Spring and Struts” layout system then, the result was surprising to me.

In these slides, the basic idea I want to show is that try to make the layout system work as you want in the very beginning rather than to solve the problems when you see the UI acts oddly.

To achieve this, there is a simple rule called the “Rule of 4”, which means you need just 4 constraints (either created by the IB or yourself) on each view, and you can get the layout system work properly. No matter how powerful the AutoLayout API is, just place constraints as less as possible.

The “Rule of 4” will help you eliminate the ambiguous constraints or unsatisfied layout in most cases.

I’ve shown some common patterns about applying the “Rule of 4”. And I hope these patterns might be useful.

As to which tool do I suggest to use when dealing with layout constraints, I think it quite hard to give an answer. Although I’m a heavy user of IB and IB gives more visible hints, IB is not intelligent enough yet to understand your intention on layout, more over, IB is not literally equal to the API.

Update: Ole has written a blog titled 10 Things You Need To Know About Cocoa Autolayout, which is also a great summary of Cocoa Auto Layout.

A Comment on Remote View Controllers in iOS 6

Ole Begemann has written an blog on Remote View Controllers in iOS 6, which shows Apple has adopted XPC in the sharing service of iOS 6.

As the XPC in iOS is still a private feature, we still have no idea about what will come together with the next major release. At he end of the blog, Ole put some outlooks regarding on XPC in iOS.

Remote view controllers are an exciting new feature for iOS. I sincerely hope that Apple will use this technology in iOS 7 to enhance data sharing and communication between third-party apps without compromising the iOS security model. We need it.

How could this work? Apple could ask developers who want to provide a sharing UI to other apps to include a second executable in their app bundle. This executable would be an XPC service that looks a lot like the MailCompositionService.app we analyzed above. Its main component would be a stand-alone view controller that was able to communicate via XPC and implemented some standard Apple-defined protocols named something like UISharingRemoteHost and UISharingRemoteService.

Apple’s existing UIActivityViewController would then maintain a list of registered sharing services and present these options to the user.

I hope we will see something like this next year.

With the 5-year evolution, iOS has been so powerful than ever before, unfortunately, it still doesn’t support inter-app communication. I think most developer would be very happy to see this being available in iOS.

As my consideration, I agree that the implementation described above is feasible, however, I doubt whether Apple will do this or not.

  1. Technically, XPC is introduced to OS X to help developers break a large App into several building blocks based on their functions. In OS X, the XPC services are privately bundled in their host App. Which means those services are not system-wide (A system-wide service module is something like Microsoft’s COM+), and there is still no way to invoke these services across different Apps.

    Although the XPC services are clearly different to the services on OS X, I believe that Apple will make a few XPC services be able to be invoked by other Apps (probably by wrapping those services into a common framework), but they would not allow any 3rd-party provider to create their own system-wide XPC services. Because it will be very difficult to handle the consistency of the services, especially on a mobile device. What if a service is not upgraded to the latest version? What if there are multiple dependency to different versions of a certain service? It will bring mess as well as benefit.
     
  2. As to the business strategy, Apple is always choosing the partner with great care. Those services which has integrated into the iOS not only benefit the users but also the service provider and of course Apple as well. So, what will make Apple allow any 3rd-party provider to provide system-wide services? I’ve no idea yet.

Anyway, let’s see what we will have in iOS 7.

2 Stories about Memory Leak in Objective-C

leak-block-1

Follow As we know, Objective-C uses reference counting as it’s memory management mechanism. It’s simple, reliable and efficient. But even the smart and powerful ARC, we still have to take care of each ...

Read More.

我对新iPad的感想

The new iPad

Follow 当地时间三月七日上午,Apple如期推出了新一代iPad。和以往一样,Apple的设备总会成为人们热议的话题。 关于新设备的技术特性和细节,网上到处都是,我就不废话了。和以往的发布会一样,有人兴奋,也有人失望,不过失望好...

Read More.

管理vim插件,你out了吗?

BundleInstall

Follow 任何一款强大的编辑器都离不开数量庞大的插件支持。 刚迁移到Vim的时候,总是到vim.org上找插件自己下载安装。随着插件越来越多,.vim目录也越来越乱,也很难管理插件的版本。 去年的一次学习会上,同事告诉我最近比较流行...

Read More.

用Key-Value Observing解耦视图控制器

Implementation with KVO

Follow 在Objective-C中,有一种称为Key-Value Coding(KVC)的机制。简单地讲,就是一组为对象属性命名的规则。符合这个规则的对象,可以使用runtime提供的-valueForKeyPath:和-setValueForKeyPath:方法进行访问。类似Java中的Ja...

Read More.

 1 2 3 4 5 6 后一页
1 2 3 6