20
Dec
PastryKit
原文链接;作者: John Gruber
iPhone 上的类 WebOS。作者制作了两段视频,左侧是在 iPhone 模拟器上的演示效果,右侧是在 Safari 上。点此观看。
这里(Daring Fireball 网站,作者的个人博客。)近来的主题之一是 iPhone OS 上的网页程序 — 为 iPhone 和 iPod touch 而做的程序,但只使用 HTML,CSS 和 JavaScript。我也谈了 iPhone 网页程序能提供什么程度的用户体验和相比原生 Cocoa Touch 程序的开发难度。
iPhone 网页程序在滚动方面尤逊原生应用。拿长列表来说,比如所有联系人的地址,或者 iPod 程序中里的所有歌曲,当你滚动这些列表的时候,手指一扫,列表会快速滚动。这种效果很像滚动一个阻力极小的轮子。虽然你可以做一个外表非常相似,甚至与 iPhone 原生程序中的列表一摸一样的网页程序,但是却无法做到上述效果。在 iPhone 上浏览网页的感觉像是有很大的滚动阻力。
这种阻力的存在对于在小屏幕上显示常规网页的 iPhone 是合理的,我所指的「常规」意思是「没有为在 iPhone 上显示而特别优化过的网页」,但这种阻力在为 iPhone 优化过的网页程序上却显得缓慢而阻塞。
如果你从未留意过这些,现在试试,将这个名为 Showtime (在此程序点击「Watchlist」,再点击「+」,会出现可以滚动的一个长列表)的 iPhone 网页程序与原生程序比较。另外一个不错的对比是用原生的 iPhone Twitter 客户端如 Tweeite 或 Birdfeed ,与 iPhone 网页 Twitter 客户端如 Hahlo 和新 Mobile Twitter。区别是显著的,而且不仅限于外观。如同贾斯丁·威廉姆斯(Justin Williams)近来所写:
假如苹果允许开发者调整 Mobile Webkit 中滚动与拖曳的系数,我相信随着在 MobileSafari 中增加新的网页技术,像 Halo、PocketTweets 和 Showtime 这样的程序可以成为原生程序之外的另一选择。对比 Hahlo 和 Tweetie 的滚动速度,结果极为不同。Tweetie 随手指力道而变,而 Hahlo 像是有所束缚。
滚动并非网页程序不及原生程序的唯一问题,另一个问题是 MobileSafari 不允许 CSS 固定定位元素(CSS fixed-position element),因此无法使工具栏固定在屏幕的顶端或底部不随正文滚动。
而这只是用户体验方面的问题,另一方面是开发。上个月我说过:
由于 Cocoa Touch 框架的存在,Cocoa Touch 程序无需从头写起,如同法鲁克·阿泰什(Faruk Ateş)在对科赫(Koch)的回应中敏锐的指出,轻视这个框架,即是轻视所有使 iPhone 超过其他开发平台的东西。这不仅使原生程序比起相似的网页程序更加快速可靠,而且易于书写。
有些读者反对,争论……但我不是要表达 Cocoa Touch 框架有多好,原生 iPhone 程序比网页程序更难开发,因为不仅要学习程序框架(Cocoa),也要学习一门新的编程语言,Objective-C。但这确实不是公平的对比,就像是一个不会骑车的人说,跑步比骑车容易。
说的简单一些。例如创建一个有着绝佳设计和用户体验的 iPhone 程序,为了做好每一件事 — 软件或其他 — 这个人需要天分、经验、通晓必要的工具。若你已是专家级网页开发者,但从未编写过 Cocoa 软件,那么当你能够尝试着开发一个原生的 iPhone Cocoa Touch 程序之前,在你面前的是大量的时间支出。但同样的,经验老道的 Cocoa Mac(和少数从 NeXT 时期以来的)开发者也不知道如何通过 HTML、CSS 和 JavaScript 创建一个现代的 AJAX-y 网页程序 — 而且他们认为 JavaScript 不是通常的开发语言。
有天赋的 Cocoa Touch 开发者进行移植的难度比同样有天赋的网页程序开发者更容易。Cocoa Touch 框架让所有事情变得自由简单,例如平滑快速的动画切换;布置按钮、列表和工具条。
确有一些为 iPhone 网页开发者准备的开源框架,由此开发者不需要从头开始仿制 Cocoa Touch 的用户界面元素。由乔·休伊特(Joe Hewitt)在初代 iPhone 发布后仅数周时间公布的 iUI 是其中之一。 另一个是大卫·金田(David Kaneda)以 jQuery 开发的 jQTouch。(Showtime 用的是 jQTouch)
但这些框架没有修正滚动速度/阻力和固定位置元素的问题。
然而事情以一家开发过一款令人吃惊的 iPhone 网页程序框架而做结,这个框架:
- 完全隐藏了地址栏,甚至是从 MobileSafari 内直接运行。
- 支持固定位置工具栏,不会随滚动而消失。
- 而且:有自己的滚动阻力系数,滑动长列表成为可能。
这个框架背后的公司是苹果,而这个框架的名字据说叫做 PastryKit。
2 Comments
发表评论
分类
- 苹果目前已知的 JavaScript 框架
( 2009.12.22 ) - 更多有关 PastryKit 的信息
( 2009.12.21 ) - PastryKit
( 2009.12.20 ) - 10 款为 IT 专家打造的 iPhone 程序(上)
( 2009.12.16 ) - iTunes 商店 2009 年最佳与热销榜单
( 2009.12. 9 )
- 宫本茂:「创造梦幻岛」
( 2009.12. 9 ) - 菲尔·席勒的 iPhone 里有什么?
( 2009.12. 7 ) - 专访肯·西格尔
( 2009.11.10 ) - 何妨多能
( 2009.11. 9 ) - Web 虽胜,Gopher 犹存
( 2009.11. 7 )
- 《纽约时报》认为 AT&T 为 iPhone 的缺陷背了黑锅
( 2009.12.14 ) - Chrome OS 会议实录
( 2009.11.20 ) - 苹果 09 财年第四财季业绩报告【要点问题】
( 2009.10.21 ) - 【杂谈】德州仪器 TI-83+ 的破解
( 2009.10.15 ) - 苹果和未来出版业(一)
( 2009.10.12 )
- 杂志封面上的乔布斯
( 2009.11.14 ) - 乔布斯的黎明
( 2009.11. 8 ) - 乔布斯,在他们眼中··· ···
( 2009.11. 7 ) - 乔布斯的一些罕见照片
( 2009.11. 6 ) - 象乔布斯那样去演说
( 2009.10.13 )
- 「锁喉行动」:明日,假乔布斯决战AT&T
( 2009.12.17 ) - Smule 再次融得 800 万美元
( 2009.12.17 ) - 边境守卫枪击 MacBook
( 2009.12.17 ) - 苹果式报应:Psystar 永世不得销售黑金塔
( 2009.12.16 ) - iPhone 笔记本──关于苹果平板电脑的一个极具想象力且相当靠谱的猜测
( 2009.12.16 )
- iPhone 笔记本──关于苹果平板电脑的一个极具想象力且相当靠谱的猜测
( 2009.12.16 ) - iPhone 本季度销量达到 1000 万台?
( 2009.12.15 ) - App Store 是苹果最大的公关危机吗?
( 2009.12.14 ) - 首款苹果平板……来自 1979
( 2009.12.12 ) - Phone-O-Scope:将单反镜头接入 iPhone
( 2009.12. 5 )
- ㊣ 原版 Snow Leopard 免费赠送计划!【活动已结束】
( 2009.08.26 )
- 打败 iPhone 要做好的 3 件事
( 2009.11.11 ) - 雪豹新特性之──自动化 & 服务
( 2009.10.11 ) - 如何避免社交灾难: Facebook 篇
( 2009.07.31 ) - 如何避免社交灾难: Twitter 篇
( 2009.07.31 ) - 如何使用 iPhone OS 3.0 的 40 个最佳功能(下)
( 2009.06.18 )







其实objective-c&cocoa并不比JavaScript难,而JavaScript只能做网页程序,比较起来还是直接学objective-c&cocoa划算。
JavaScript 是在一门原本仅仅提供单纯的 presentation 功能的语言(甚至说不上语言,只是个文件格式)—— HTML 上打的一个添加动态效果的补丁。从这些年取得的功绩上看,我不会轻视它。不过谈到学习和开发的难度,各位,一个补丁和一开始就被设计用来开发 UI 的 Cocoa 相比,说前者比后者好学太牵强了。