在iPhone开发中,在UITableView中需要弹出UIActionSheet,直接调用它的showInView方法即可。因为iPhone屏幕相对iPad较小,UIActionSheet会直接从屏幕底部向上弹出,但是如果在iPad中showInView的话,只会在屏幕的中间弹出。如果用户点击底部的TableViewCell,也在中间弹出菜单的话,显然有些怪异。

这时候,可以用它的showFromRect方法,指定一个矩形区域来显示UIActionSheet。在UITableView,矩形区域的位置当然最好就是用户选中的那个TableViewCell,可以使用cell.bounds属性。在TableView的代理方法中,我们可以这样写(伪代码):

- (void)tableView:(UITableView *)tableView 
  didSelectRowAtIndexPath:(NSIndexPath *)indexPath{    
    UIActionSheet *actionSheet = [[[UIActionSheet alloc]…]autorelease];//省略创建代码
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:[indexPath row]];
    [actionSheet showFromRect:cell.bounds inView:cell animated:TRUE];
}

效果如下图:

 

VN:F [1.9.22_1171]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

FusionCharts.jpg

FusionCharts是自己一直在用的一个Flash图表生成控件,使用简单,功能强大,做出来的曲线图也十分漂亮,公司里好几个项目都使用过它的免费版,还曾有购买一套正式版本的想法。前几日收到一封来自FusionCharts的邮件,告知FusionCharts已经开始支持iPad和iPhone等移动设备。从iPhone4打开其Demo页面,感觉和Flash的效果完全相同,速度也很快,动画等效果也完全保留了。

立刻去下了一个最新版的回来测试,其实FusionCharts在iPhone和iPad设备上实现的原理很简单──HTML5。在很多人依旧在观望HTML5的时候,不少的先行者已经出发上路了。FusionCharts利用javascript和HTML5的canvans,原汁原味地实现了原版Flash的所有效果。也许真的有一天,HTML5普及之后,Flash真的会变成可有可无的东西。最新的MacBook Air笔记本更是已经放弃了预装Flash,Jobs的说法是:“希望能够让用户在拿到电脑以后自行去Adobe下载到最新版本的Flash,最新的版本会更先进而且更有保障”,笑翻了…

在iPhone4上试了一下FusionCharts,感觉真的还不错…

FusionCharts-iOS.jpg

VN:F [1.9.22_1171]
Rating: 9.0/10 (6 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

iPhone Developer:“This is whyIsellbeer”

原作者Jamie ZawinskiNetscapemozilla.org的创始人。 本文由吴安寿翻译。

DaliClock2.31(一款为Mac设计的数字时钟软件)现在已经释出。 我要做iPhone/iPad的移植工作。这是相当可笑的难处,因为我拒绝为MacOSX代码库增设分支:桌面系统和手机系统都被差别不大的相同的操作系统所支持,所以它应该是一组与桌面应用和iPhone应用有着类似的应用编译,但只是在规模上小一些的代码群(注:if,def可能是代码的一种别称吧。)。对不? 哦,哈哈哈哈!

我想可以非常肯定地说MacOS的兼容性要比iPhone好得多。这里面满着各种白痴的例子。这就是它如何在桌面系统上运行的代码。

    NSColorfg=[NSColorcolorWithCalibratedHue:hsaturation:sbrightness:valpha:a];

    [fggetRed:&rgreen:&gblue:&balpha:&a];

    [fggetHue:&hsaturation:&sbrightness:&valpha:&a];

    但是在手机系统上却是这样的:

    UIColorfg=[UIColorcolorWithHue:hsaturation:sbrightness:valpha:a];

    constCGFloat*rgba=CGColorGetComponents([fgCGColor]);

    //Oh,youwantedtogetHSV?Sorry,writeyourown.

    //哦,你想要HSV?对不起,你自己写吧。

    这里充满着很多像这样愚蠢的东西。你是否认为有些人看着旧代码并说:“你知道的,为了使它在iPhone上能够更加有效地运行,我们不得不重新命名 这些类,而且必须保证:这些新的类通过他们的方式,有完全不同的API和使用完全不同的参数能够完成旧库曾经做过的同样的事情。这是使这个平台能够成功的唯一方法。不是这样的。他们起用一些实习生(新生的),这些人对旧库完全不了解,只会埋头重写一个,而忽略了早已存在的代码、表达式、类等。现在都2010了。我们还要在如何通过围绕像素来成像进行创新?这是真的? 你可以通过许多定义(#defines)来解决一些这类愚蠢的行为。但是在一大堆方法中的API也是随时会脱节的。所以只会招来更多的悲剧。如果你有一个程序需要控制很多的颜色,你可以想象一个充满“ifdeffy”的世界给你造成的麻烦有多大。

     参数选择作为常用的解决方案就足够了。我最后几乎理解绑定,当你必须使用NSUserDefaultsController和NSUserDefaults进行比较时,你就对此有了模糊的概念。但是现在我们要猜测 iPhone 缺乏什么?绑定?还是NSUserDefaultsController。但是事实上,它拥有NSUserDefaults。我真的无法解释。

     此外还有。

     我基本上已经放弃了试图让Cocoa(注:Cocoa是MacOSX上原生支持的应用程序开发框架)或者Quartz(注:Quartz是位于MacOSX的Darwin核心之上的绘图库)的任何查兼容版本能够同时运行在这两个平台之上。我的做法由于像上面提到的那些随意的API使之成之变成一个由#ifdefs组成的令人发疯的迷宫。庆幸的是我早已把那个令人头疼的例子。最后我要说:“操,iPhone是 运行OpenGL,对吧?”我刚刚在GL重写了显示层,并扔掉了那些该死的Quartz代码。(让我们记住我在编写这个程序时所做的疯狂的复杂的事情吧:我有一个位图,我让它用两种颜色快速地在屏幕上显示,并且时不时地改变颜色。这真他妈琐碎,是吧?哦,呵呵呵呵。)

     所以我在OpenGL里重写了它,就只是将我的位图倾倒入参照纹理中去。 这也是你们当中的人会笑话我的地方,因为我不知道iPhone 居然运行OpenGLES!当然它有一个特点,就是与OpenGL打交道比iPhone必须与Mac系统打交道的事情要少。

     我期待这个常用的在创造OpenGL上下文环境和要求颜色缓冲时的“ifdef” 疯狂乱舞。因为没有指定的OpenGL跨平台的语言去开始,但是这却不是我所期待的。我至今仍对此目瞪口呆:这个OpenGLES居然移除了glBegin()和glVertex()。

     不,真的,真的没有。

     这就像OpenGL的特征定义。所以OpenGLES只是OpenGL微不足道的变种而已,就像单轮脚踏车是城市公交车微不足道的变种。如果你能控制得了它,那么其他的不就大致相同了吗?

     再提一下那个该死的情况吧。我几乎明白在嵌入式API中以效率的名义移除要显示的清单的理由(我不喜欢它,因为我的屏幕保护程序倾向于按照清单显示,但我能理解它)。但是你可以glDrawArrays()的形式完全实现glBegin() 和glVertex()的功能。这就是为什么要把它们扔掉的原因。

     那么,我在干嘛呢?

     终于搞定了。我想DaliClock终于可以在iPhone和iPad运行了。但我却不能让它运行在我的手机上,我还没有克制好我的愤怒,因为在我被允许在我买的手机上测试我所编写的程序之前,我必须先向乔布斯上交100美元的什一税。 我想如果我先把我的手机“越狱”(解锁),那么我就能完全控制它。但是上一次我这样做了,手机就 不稳定了,我必须重新安装它。

     所以,你们当中的人已经恳求应用程序商店更改原则允许从源代码建立它,而且如果让我知道它能够在你们的实际设备上运行,那将会非常地酷。

     哦,另外,自从我在OpenGL中改写了它,我注意到:在860MHz PPC G4处理器设备上,全屏模式下,得到一个不错的画面是相当地慢。我的意思是说,那机器只比一个16MHz的Palm Pilot(Palm公司的一款产 品)快53倍,只比8MHzMac128k快107倍。

     这就是为什么我要卖啤酒去了。

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

 Flipboard,现在火到不能再火的一个单词。iPad用户在谈论它,IT行业出版行业在谈论它,软件开发者在谈论它,连我的gtalk上的哥们都发消息来和我讨论它。铺天盖地的赞誉让所有人都在关注它。Filpboard是什么?它其实只是一个iPad上的小软件,用极其华丽而简单的方法改变了我们的阅读方式。当所有人第一次用它阅读Twitter信息的时候,都会被他惊艳而简洁的表达方式所深深震撼。它告诉所有软件开发者,创意永远不会枯竭。

前几天看到一篇在苹果干了6年然后辞职自己成功创建公司的家伙的博客翻译,认为最重要的一点就是:“我们从不和竞争对手比功能堆砌”。苹果不信奉产品功能的堆砌,它关注产品自身的目标,不去和竞争对手在功能数量上较劲。他们试图在同样的功能上超越对手。

巨型产品Google Wave挂掉了,当初在朋友的建议下使用过一次,感觉功能牛X,但是连我这种软件狂人用起来摸不着头脑,于是放弃了。正如和菜头说的:Google Wave之死再次说明:技术人员交口称赞的产品不如一个老太太或者小朋友一句不发但是整天抱着不放手。一年时光,看到一个巨型产品从生到死,委实让人心惊。


下面的文章转自ifanr:http://www.ifanr.com/15499,文章谈到了flipboard的成功因素,极其简单易用的操作方式、无穷的灵感、引爆流行、创始人的魅力对拉投资的作用等各个方面,想想开发者能够从 Flipboard 身上学到什么?

By  Hillel Fuld | Yibie &  merlin 译,Baryn & zhangheng 校,转载请注明 ifanr.com 译文链接

Flipboard 真是一个奇迹。如果你有 iPad 或是对平板电脑感兴趣的话,那你很可能听说过 Flipboard。Flipboard 正如它自己所标榜的那样,是「社会化杂志」。它是一款免费的应用程序,让人们能够在一个比杂志更像杂志的界面上,浏览多个 SNS 服务和 RSS 订阅。在众多 iPad 程序中,Flipboard 取得了很多第一。

filpboard.jpg

Flipboard能把你的twitter变成一本超时髦的杂志!

 苹果公司第一次接到深夜电话,请求他们不要再推荐这个应用程序了。因为 Flipboard 的伺服器己经不堪重负。它也是第一批将邀请系统融入 App Store 机制的应用之一。官方数字尚未公布,但是我觉得它会打破一些记录,比如程序首次发布五分钟内的下载量。

自打我安装 Flipboard 之后,我完全改变了获取信息,以及和朋友进行交互的方式。根据 Flipboard 创始人 Mike Mccue 的说法,在近期我们将看到一些很重大的改进,最重要的一个是缓存能力,这将减轻伺服器的压力,给用户提供更流畅的体验。

作为开发者,你想达到 Flipboard 这样的成就吗?

我们可以从它的创始人、发布过程以及应用本身学到很多东西。我根据自己的想法,列出了以下几条:

一、简单:注意到 Flipboard 上基本上没有按钮选项吗?对,因为确实没有。简单得不能再简单了。我用过上百款应用程序,有时候真不知道开发者在想什麽。似乎这些人认为,加上了无数複杂的选项和功能以后,人们就会更喜欢他们的程序。但想法和现实之间的差距太大。无论何种程序,你应该保证它能满足某种诉求。可以是娱乐,或是一个实用工具,无论是什麽,只要人们想要使用就有价值。接下来使它极尽简单。如果你在犹豫是否加入一个或多个可选项,毫不犹豫的丢弃吧。你需要做的就是保持简单。如果一个用户第一次打开你的程序后,20秒钟内没有理解如何使用,他们很可能会删除它。让它淹没在茫茫 30 万个程序堆里。

二、可扩容: Mike 通过深刻的教训学到了这一点。当他们将要发布这个程序的时候,他问总工程师需要多少台伺服器。总工程师给了他一个数字,Mike 说:「OK ,在正式发布的时候,增加一倍的数量。」但是,由于 Flipboard 获得了社区对它前所未有的大量宣传,伺服器数量很快就不够了,于是伺服器就崩溃了,他们不得不用「邀请」的手段来限制新用户,这对苹果来说确实是一件新鲜事,对于 Flipboard 团队也是意料之外。这裡的教训是,如果你作为一个开发者,对自己的产品充满自信,也相信别人会喜欢它,应该考虑到数秒内就会有成千上万的下载量。如果你不相信你的产品有那麽好,那就别发布它。

三、创造力:我不打算去谈论这个应用背后的创新能力,后面我再仔细地说说。我指的创造力是如何解决由于伺服器原因带来的下载问题和糟糕的用户体验。邀请系统的加入很有创造力,而且这种方式不会激怒用户群,同时使用户有继续使用下去的动力。这需要极大的创造力,因为这个方桉以前很少被採用。这有些夸大,因为我只能想象他们团队看到自己的伺服器在数分钟就宕掉时所感到的压力。

四、即兴:这是上一点的继续,但仍值得单独提出来。App Store 每天都有大量的程序提交和下载,加上苹果令人讨厌的政策,你可能为自己招致灾难。有太多变糟的可能性,在 Flipboard 这件事情中,变糟的事情恰恰因为它做的太好,导致了太多的下载。这裡的教训是,作为一个开发者,在遇到技术挑战的时候,你需要即兴发挥。另一个好例子是 AppsFire 和 Appstream,在过去的几周内是最受欢迎的五个 iPad 应用之一(它甚至超过了 Flipboard)。关于他们的故事,请读这裡。

五、坚持:Flipboard 从它发布第一个版本以来,始终坚持升级和更新数据。这可能是大家不太了解的地方。你不仅仅是开发出一个应用,通过审批,然后就坐下睡大觉,再然后开始数钱。你得吸引一个社区,保持社区的兴趣和不断创新。正如我所说,Flipboard 的新版本很快就出来了,有着缓存的特性,这是我从第一天就希望做到的。像这样不断的改进,让我一直保有兴趣,忠诚。

六、引爆流行 :我觉得不是每个程序都能做到像 Flipboard 这样爆炸式的流行。我个人从来没有见过有什麽应用可以得到如此之多的网路领军人重要评价。过去的一个月裡面,如果你不曾写过有关 Flipboard 的报道,会显得你特立独行。Flipboard 团队显得没有准备,这点不应受到批评,因为像这样大受欢迎的事儿,没有其他应用曾做到过,但是如果你准备放出程序,这就是一堂值得学习的课。永远不要低估互联网的传播能力。最糟糕的情况,可能比你预想中还糟糕十倍。

七、灵感:这是迄今为止能从 Flipboard 中学到最重要的东西。如果你正为了挣外快而身处这个平台之中,勤奋在多数情况下都管用,但要成功,灵感很重要。Mike 讲了自己如何想到这个概念的。其实他当时并没有考虑到商业模式。那时,他刚卖掉他之前创办的公司,正四处旅行。在飞机上读了好多杂志,突然他灵光一闪,想到「为什麽不把这种体验带到电脑上去呢?」这个想法最初是想作用于网路阅读,可能会用到 HTML5 技术,当时还没有 iPad。现在 iPad 就正如 Mike 曾经宣称过的那样「就像假期到了一样,我们互相打招呼:iPad 日快乐」。很明显,iPad 是这个产品完美的平台。一旦开发团队决定在 iPad 上面进行开发,就全力投入,几乎没有休息时间了。

个人魅力

Flipboard 在它第一轮的融资中获得了100万美金,当一些着名的记者和博客在 Flipboard 发布之前採访了 Mike 之后,都说 Mike 的个性(和眼光)起了很大作用。我不想把人物个性添加为第八条。但抛开产品不谈,一个人能够让说服投资人为自己筹集资金,最终达到 Flipboard 的成就,说明他本身就有着很好的人际交往能力。《华尔街日报》的记者 Kara Swisher 曾告诉我,Mike拥有令人着迷的眼神,这显然不会有什麽坏处。 

谈谈广告

在提到商业模式的时候,Mike 言语出色的谈到网路广告产业,并把它跟杂志行业对比。总之,网路广告和网页内容在吸引读者的注意力上有冲突。对于出版商、广告商、读者来说不是好消息。杂志的广告方式清晰而有结构,这让阅读广告时眼睛感到舒服而且更容易产生消费慾望。

Mike 指出,如果要为 <Vogue> 的读者提供两种形式的 <Vogue> 杂志,一种有广告,另一种则没有。读者们往往会选择有广告的那种。读者喜欢在杂志上阅读精美的广告,它们更有趣,更吸引人。在网路上,广告让页面载入变慢,让读者不再注意文章的内容,而且让读者感到烦躁。Mike 说要让 Flipboard 实现杂志的广告概念和方式。

 

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

当苹果发布iPad平板电脑的时候,作为一个果粉我其实和很多人一样非常不以为然,对于网上那些夸赞iPad的文章也常常不置可否。不就是一台普通的触摸的上网本么?随着iPad大卖以及自己低价购入了一台iPod touch,安装上iPhone SDK开始尝试撰写iPhone应用程序后变成一个三流XCode Developer的时候,我对整个iPhone OS有了亲密的接触,逐渐有了自己清晰的视角。经过了一个月的思索,我才逐渐明白了,这是一个革命性的产品。

有一句话叫做“兼听则明”,倘若一开始就带着有色眼镜和自己的主观看法来看待一个新生事物,是不会获得任何有价值的东西的。尺有所长寸有所短,你不经意间所忽视的东西,往往正是他人巨大的商机。

乔布斯在奥斯卡晚会上,用iPad来宣布提名名单,只不过是一场很棒的商业秀。那么在iPad刚发布的时候,腾讯的马化腾同学就飞快地入手了一台iPad,并且购买了植物大战僵尸等游戏,而且居然玩通关了,然后在自家的微博上谈对PvZ游戏设定的看法。我并不认为他只是想玩玩游戏那么简单。因为腾讯最近宣布,其网站视频等各种内容全面支持HTML5的iPhone/iPad设备,大肆招聘Mac开发人员,甚至宣布要自己开发手机操作系统。雷军在最近一次演讲中,宣称iPad能完成99%电脑能作的事情。然后几天前看到一则新闻,盛大也要开发iPhone相关游戏了,而且针对欧美市场…你不关注iPad是你自己的事情是你自己的偏执性格,我更愿意抱着包容兼并的看法来认真研究一下iPad。

我不会抱怨iPhone OS的封闭性,作为一个用户,你可能会有很多怨言。但是这个封闭性最大程度的保护了开发者的利益。地球是一个封闭的生态系统,但是它保护了地球上所有生命生生相息。Linux是一个开放的系统,十多年来我周围只有极少的Geek朋友把它当作自己的工作和娱乐环境。作为开发者,我开发iPhone程序可能只有一个目的,赚钱。每卖出一个程序,Apple是和开发者共同分成的(三七分成!),两者的利益绑在一起。我的竞争对手越少越好,我的软件卖得越多越好,Apple也能赚更多的钱。

想起以前写共享软件,我要关心网站、排名、付款、渠道、用户、销售和客服,累得半死也没有人关注。而Apple让我们的软件面对上亿的苹果用户进行直销,我们只关心软件质量好了,收钱宣传渠道自然有人帮我们打理,和以前开发共享软件相比,我真的觉得非常棒。提交过app的人都知道,Apple审核程序有一套完整的规范,从界面的样式按钮的方式,API的调用规则,对话框的方式,软件的功能甚至游戏方式的版权保护等方面都有严格的要求,保证了开发者的软件让用户第一时间最简单上手。试想,如果你开发了一款Android程序,除了向朋友炫耀之外,你用如何的营销手段和渠道让联想乐Phone手机的用户们看到你的软件并进行购买行为呢?iPhone上,我不太担心这个问题。


这两个家伙的“不就是Flash小游戏么”在iPhone上赚了120万美金,目前该游戏还在源源不断摇钱中

最近在iPhone火到爆的几个小游戏,让开发者赚了数百万美元的小游戏,CoCo在公司里拿给大家看的时候,大家都说不就是普通的Flash小游戏么?是的,你在Flash上开发这样的小游戏可能连饭钱都赚不到,而在App store上却能赚得满当当。Pocket God的开发者,两个家伙的小游戏在几个月内赚取了120万美元的利润,他们的文章《如何做出iPhone上成功游戏的10点建议》真是值得我们好好读一读。对于iPhone的开发者来说,他也不愿意Flash的程序员们分自己的一杯羹,而对于没有赚到钱正在彷徨的Flash程序员们,似乎app store是一个十分诱人的摇钱树。当然,这一切的根基是:你的技术要足够牛。

虽然市面上讨伐苹果的呼声越来越大,但是我却感觉越来越多的公司和个人前仆后继地闯入iPhone市场,作为一个开发者,面对越来越多的竞争者,我很郁闷。以前提交一个程序给Apple review的时候,往往几天之内搞定,最近的状况是一个星期甚至10天还是在Waitting for review的状态,没办法,开发iPhone的人是越来越多鸟…

求求大家都去开发Android程序吧,这样我这个小程序员就能独占8500万iPhone OS用户了,哈哈哈哈。

易用性。如果我给父母买一台电脑,我现在只有一个选择,iPad。iPhone OS是我见到的第一款普通用户无需为安装软件而求人帮助的系统。及其简单的下载和安装使用过程,我们不必祭出USB数据线,不用下载到硬盘上的一个地方,不用双击图标解压或者安装,不必要人繁琐的教学。想起以前为了让父母正确收发邮件而耗尽无数个星期教他们安装使用写信收信设置SMTP等,教老婆大人用电脑,帮助老婆的诺基亚摩托罗拉装软件和游戏,烦不甚繁。而最为惊奇的是,我只是把我的iPod touch递给老婆大人后,她自己很快就能收发邮件,玩游戏,聊qq,查询天气、看股市了甚至是给我列购物清单,真的很神奇。大道至简,苹果算是做到了极致。

不信,你自己去想一个手机销售软件商城的构架和样式。然后再和苹果这个价值无数亿美元的app store比较一下,我敢说,app store比你的设计要简单10倍。

幼儿教育的金砖。曾经看过一个游戏界的大佬说的一句话:我不会给我的孩子买PC机,这样他只不过会变成聊天大王、网游高手、装机狂人和破解盗版爱好者。我宁可给他一台Mac,这样他可以对艺术,设计产生兴趣,对计算机系统更有深度了教,更容易找到对自己有价值的方向。多点触摸,无数创意的教育方法,天文地理、文学艺术、物理化学,天啊,iPad是我见到的最好的幼儿教育工具!比一台笔记本和什么点读机强数万倍,一个触摸屏能激发的创造力无法想象。

没有看到iPad在幼儿教育领域的超级能力的人是悲哀的。如果我的孩子上了幼儿园,天知道一台499元的iPad能为我节省下多少的玩具钱,七巧板、乐高积木、芭比娃娃,iPad里什么没有呢,LOL…

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)