February 24th, 2009
Apple 除了拥有独特的用户社区文化之外,还有一个独特的开发文化,那些优秀产品的诞生之源。想要成为一个优秀的 Mac 或者是 iPhone 的开发者,在熟悉 Objective-C 和 Cocoa 之余,你需要用不同的方式来思考你的软件的设计和代码,Think Different 的思想 需要深入你心。了解一下那些经验丰富的 Cocoa 开发者们的思考方式,这将有助于你成为一名开发的专家。如果你对 Mac 的开发非常陌生,可以看看这篇《成为一名 XCoder》。
和 Unix 社区一样,Mac 的开发也有浓厚的社区文化,在 FreeBSD 架构上脱胎换骨的 Mac OSX 让这种文化更加繁荣,在保持 KISS(Keep It Simple and Stupid)原则的基础上,一名 Cocoa 开发专家的所有的工作焦点都是他的最终用户,而不是代码的优雅算法。他们永远都从简单的、低技术含量的解决方案开始,除非你有一个清晰的理由让他们去使用一个复杂的方法来解决问题。这并不表示他们不注重技术,给用户留下一个深刻的印象才是首要的目标。
如何实现伟大的软件
避免过渡设计 – 不要坐在那里去设计一个可以把所有可能存在的细节都表述清楚的架构方案。你应该做的是,抓住那些确实存在的,用你手边的工具去实现它们。将一部分搞定之后,你会从中学到你所能做的,然后再迭代到下一个部分里面,直至全部完成。
避免盲目设计 – 不要盲目的去实现设计需求中的每一个功能。把那些需求作为一个起点,然后持续的问自己这个问题:“确实有这样做的必要么?”我们最终的目的是开发给人使用的软件,而不是去实现一份写在纸上的漂亮文档。Getting Real 中也提到过相同的观点,文档最终的归属是垃圾桶,那些与你的程序分离的描述是毫无价值的,你只需要记录关键的地方,一些机制、方法和容易忘记的东西,其它的就直接动手去做吧。
为乐趣而过渡设计 – Mac 的开发者们喜欢用那些超越工程师思维的解决方法来实现一些有趣的东西。在不影响软件的整体质量和交付时间的基础上,他们试图给彼此留下深刻的印象,这些锦上添花的过渡设计会给大家带来发自内心的喜悦,同时还能够很好的工作。
优化 – 在你知道你实际要做什么之前就去考虑优化的问题,会妨碍产品的正常开发。让一些部分先工作起来,然后把它们重组成一个相对清晰的设计,这之后再去优化性能。永远从你所知的最简化的方式开始实现,记住简化才是关键,而不是萦绕地的去思考如何优化。
专家写更少的代码 – 有经验的 Cocoa 开发者通过 OSX 的框架(frameworks)来组装需要的东西,在决定自己从轮子开始造车之前,多花些时间去研究如何使用那些内建的方法和类(classes)。自己实现的代码需要花费你宝贵的时间来维护,如果使用了内建的代码,这种事情就永远不会发生。
Frameworks 和 API – 不要凭空的去创造自己的可复用框架,让你的代码在应用程序里面去解决了实际的问题之后,再把它们整理成可以被调用的 API。如果你通过功能的猜测来创建 API,你很有可能会因为错误的设计而无法进行下去。
时刻注重体验,不管是内在的还是外在的
体验无处不在 – 老练的 Cocoa 开发者会把每一个步骤的用户体验都考虑周到。通常新手只认为那些显示在屏幕上的图形才是用户能体验到的地方,但实际上那些设置窗口中文字的用词和大小写,存储在本地的数据文件名,甚至是命令行窗口的消息文字,都是应该考虑到的环节。
用户并不傻,只是他们还有其他的事情要做 – 不要把用户当作专家,但是也不要看扁他们。那些非专家用户通常是不愿意花太多时间像工程师那样思考的聪明人,因此,让你的软件尽量做到的对初级用户友好,而不要用起来像一个专家才能完成的任务。
写优美的代码 – 开发人员的代码阅读体验是非常重要的。现在你是唯一的开发人员,但将来你可能只负责其中的一个版本,或者由其他的人来开发,也有可能是贡献业余时间的自由开发者,当你决定把代码开源之后,所有的情况都表明代码不是为一个人而写的。我们可以把发布拥有优美代码的软件作为一个期望,但至少也应该做到在最后的发布之前把代码整理干净一些,这样不至于让代码看上去越来越丑陋。
如何让软件变得更加优秀
成为用户的拥护者 – 专家们会像画家对自己的作品那样细致审视自己的软件,他们寻找任何可能的机会去改进,而不会对那些瑕疵视而不见。你不需要这样做去影响你的同事或者是合作伙伴,你需要做的就是成为最终用户体验的真正拥护者。
学会观察全貌 – 当审视软件的时候,真正的专家不会单纯的将软件分离成相互独立的部分来看待。用户最终看到的只会是一个整体,一款伟大的软件就像是科学中的艺术品。最高的目标就是满意度,为了达成它,可能需要面对一些非逻辑、和反直观的东西。
接纳反馈 – 经验丰富的开发者不会忽视那些苛刻评论和反馈。感谢那些第一批使用你软件的先锋用户,因为他们会带给你真正有价值的信息。一定不要用个人的情绪来排斥自己不愿意接受的批评。
明确哪些是不需要实现的 – 专家能够鉴别那些没有被采纳但用意良好的反馈,把用户的所有需求都实现出来对你并没有什么帮助。能够让产品成功的一个关键点就是决定那些功能不去实现,这样才能让你专注的将剩下的功能打磨的闪闪发光。
我们建立规则,我们打破规则
“给用户带来真正伟大的东西” - 为了达到这一目标,上述的规则都可以被打破和修改。有一点需要铭记,享受你所做的事情,它会完全反应到你的作品里!
本文翻译整理至 Scott Stevenson 的 《Thinking Like a Cocoa Programmer》
Tags: mac, Xcoder, 开发, 技术
Posted in 技术 Technology | 8 Comments »
March 7th, 2008
当你面对着 MS 的 Visual Studio 头晕眼花加四肢无力的时候,一定绝望过、无助过,为什么微软要拿像怪物一样的 MFC 和令人费解的 COM 技术来吸取 Windows 开发人员的精力,因为你可以用它来谋生,在 Windows 独霸桌面操作系统的时代,人们需要它。如果你只想把开发软件当作混口饭吃的差事来做,你可以在混乱的 Windows 架构下继续开发,要是有更崇高一些的理想,比如说要实现自我的价值,那就会有更好的选择了。加入 linux 或者是 unix 的自由社群,为开源事业贡献你的智慧,你可以自由的选择你喜欢的任何开发框架、语言和平台,有时候选择太多也不是一件好事,而且 unix 世界的公民们普遍对图形界面不感冒,这会让你的伟大作品很难被普通用户接触到,更多的时候是在服务器中默默的工作。当然你还有另一种选择,那就是 Mac OSX(OS 9 和之前的版本不在讨论之列)。
这款继承于 NeXTStep 的操作系统也许大多数的开发人员都比较陌生,如果不是最近几年 Apple 产品的风靡,Mac OSX 可能都会被主流平台的开发人员给遗忘。早在 1990 年,Tim Berners-Lee 就在 NeXTStep 系统上开发了世界上第一款 WWW 浏览器(Mosaic),因为当时的 NeXTStep 有最简便的开发环境和最优秀的图形性能。Jobs 在 1997 年重反 Apple 之后,收购了自己创办的 NeXT,并在 2001 年正式推出了 Mac OSX。这款继承了 NeXTStep 设计架构,基于 BSD 内核,并拥有 Aqua 图形界面的操作系统,完全超越了当时的 Windows 2000 和 XP,Jobs 说我们在操作系统的技术上至少领先微软五年。Wikipedia 没法访问,只能去百度百科上看看更多关于 Mac OSX 历史的介绍了。
讲了这么多历史就是为了证明你是准备为世界上最优秀的操作系统开发程序,你不仅可以充分的利用开源项目的集体智慧、坚持 Unix 的 KISS(Keep It Simple and Stupid)哲学、还能够设计最酷的软件界面。有人曾说过:
if you develop something for Mac, the only limiting is your imagination
要为 Mac 开发程序,你需要掌握 Objective-C(C 语言面向对象的另一个分支),熟悉 Cocoa 框架(Mac OSX 的系统开发框架,类似于 Windows API 东西,但要强大 N 倍),拥有一颗对新鲜事物的好奇心和一点点艺术气质。当然,还需要很多很多的参考资料。
你必须拥有的关于 Mac 开发的书
Become an Xcoder
最初级的入门指南,即使你不会 C/C++、Java、Python、Ruby 甚至是 Basic 都没有任何关系,这本书从零开始教你用 Objective-C 和 Cocoa 框架进行开发,最大的好处就是不用花钱,可以直接下载免费的 PDF 版本,而且还是中文的(目前唯一的中文 Mac 开发书籍)。
Cocoa Programming for Mac OSX II
面向 Mac 开发初学者的经典入门书籍,主要针对有 C/C++ 和 Java 开发经验的 Mac 开发爱好者,很全面的介绍了如何使用 Objective-C 在 Cocoa 框架下开发 Mac 的应用程序,并且详细讲解了 Cocoa 框架的各个部分,Mac 开发人员的必备收藏。
现在已经推出了针对 Leopard 和 Xcode 3.0 的第三版。
Advanced Mac OS X Programming
从 Unix 角度来剖析 Mac OSX 的内部运作,这本书将指导你如何在 Mac 上做一些高级的开发,用 Unix 的方式,全面的讲解了那些操作系统底层的功能,这些知识和技能将有助于你写出高质量的 Mac 软件,一本绝对的进阶读物,入门之后再买!
更多关于 Mac 开发的书籍可以在 Mac OSX Programming 这个豆列中找到,还有 Amazon 最全面的 Book List,顺着用户评价由高到低的排序,一定能够找到你中意的。
你一定要访问的 Mac 开发网站
最值得参考的 Mac 开源项目
- Open Source on Apple
Mac OSX 的核心是在开源的 Darwin 系统上搭建的,整个 OSX 使用了大量的开源项目,基于 WebKit 开发的 Safari、Apple 自己零配置网络协议的 Bonjour、还有 Core Data 中使用的 SQLite 等等,要了解如何利用开源社区的力量来创造自己的 Mac 产品,先从这里开始。
- Google Mac Developer Playground
浏览器只是使用互联网的一种方式,在 Mac 上还有许多不同的方式。Google 为喜欢 Mac 开发的玩家提供了能够访问 Google 网络 API 的代码库和各种有趣的例子,使用他们可以让你的网络服务跳出浏览器的束缚,真正与操作系统结合起来。
- Adium Source Code
Mac 上使用最多的多帐户 IM 软件,集成了现在所有的即时通讯协议,而且完全开发源代码,在网络统治一切的这是一个非常宝贵的技术资源,你可以从里面了解到完整的 Xcode
工程结构、各种 Cocoa framworks 的使用方法,很好的学习范例。
要获取这些源代码,你可以使用 Subversion 直接从它们的代码库里面签出最新的版本。
在 2008 年 3 月 6 日,Apple 宣布了 iPhone 的 SDK,Xcoder 们又多了一个玩乐的后院,你可以在一个微型的 Mac OSX 上发挥你的想象力,还能通过 App Store 赚一点点美金。
注:Xcoder 是大家对 Mac 平台开发人员的昵称,因 Xcode 这个开发工具而得名。如果你也是一名 Xcoder,有好的 Mac 开发资源希望与大家分享,可以在这里留言或者直接与 indigo (wealink, douban, facebook, twitter and friendfeed)交流。
Tags: apple, mac, Xcoder
Posted in 分享 Share | 4 Comments »
August 8th, 2007
虽然没有 iPhone 的发布会那么震撼,对于 Mac 迷来说,美国西部时间 2007 年8月7日上午10点的这场 Mac 产品秀已经足够让人期待了。网络上最快的报到应该来自 Engadget 和 Gizmodo, 你只要不间断的刷新页面,差不多就和看直播一样爽,图文并茂,就差没听到 Steve Jobs 的演讲了。

新的 iMac 和之前网上流传的那些照片还有些神似,改用了 iPhone 风格的银色+黑色的搭配,看来 fans 们已经能够猜测出 Apple 的设计趋势了。从 1997 年开始的五彩斑斓(iMac Color)、然后就是 2002 年的陶瓷白(iMac G4,那款台灯外形的设计实在是太有才了)、最后是 2007 年的金属银,每五年一个设计风格周期(详细的 iMac 历史大家可以看看这篇文章:Evolution of the iMac )。
新款 iMac 的配置和价格如图:

除了新的 iMac 主机之外,还有一款新的键盘,和新款 MacBook 键盘的布局与质感几乎一模一样,Apple 其实将很多新的技术与设计都提前用到了笔记本电脑上,可能是 NoteBook 在公共场合更加引人注目,导致那些希望展示个性的朋友们倒戈到了 Mac 的阵营(indigo 也算是其中的一个,黑色的 MacBook 看上去太酷了)。
有了 iLife ’08 和 iWork ’08(新增了电子表格程序 Numbers,加强了与 Office 文档的兼容性),还有即将推出的 leopard,你还有什么理由不去体验一下 Mac 呢?每次用 iPhoto 给朋友们看照片的时候,大家都会发出 wow 的感叹,原来照片也可以这样来看的,这种发自内心的惊叹应该比 Vista 的那个 WOW 广告更加能够打动人心。
最后,如果你希望在卧室和书房里面共用一台电脑,能够很方便的在两个房间之间搬动,你应该选择一款 24″ 的 iMac,不然 PC 后面的连接线会让你抓狂的。
详细报到,请看 Engadget 的 Live from Apple’s summer Mac product press conference
Tags: apple, keynote, mac
Posted in 新潮 Geek News | 2 Comments »
April 6th, 2006
无论怎么去评价它,它的设计和隐藏在背后的那股神奇的力量,都让你忍不住诱惑的,那是任何一台PC + Windows系统都无法达到的感觉。但大多数人们都让它的价格、兼容性和陌生的操作系统打消了买一台玩玩得念头,当然也包括我在内了!
不过Apple公司新推出的一款软件可能改变大家的观念,从而不需要任何借口地选择Apple。这款软件就是Boot Camp,83MB, 可以说是一个里程碑级的软件,因为它就像五星级饭店的侍者一样帮Windows XP打开了Apple的大门。从此以后,基于intel处理器的苹果机就可以同时运行Mac OS X和WinXP了。你还有什么理由会拒绝它呢?

系统需求:
- Mac OS X Tiger v10.4.6 (check Software Update)
- The latest Firmware update (check Support Downloads)
- 10GB free hard disk space
- An Intel-based Mac
- A blank recordable CD
- A printer for the instructions (You’ll want to print them before installing Windows, really.)
- A bona fide installation disc for Microsoft Windows XP, Service Pack 2, Home or Professional (No multi-disc, upgrade or Media Center versions.)
Tags: apple, mac
Posted in 新潮 Geek News | No Comments »