入手了 iPod touch 5,港版 32G,依旧是我最喜欢的黑色。想起最初入手 iPod touch 3 的日子,已经是 2 年以前了。第一次接触  iOS 设备,第一次有了 Apple 开发者账号,第一次囊中羞涩地在黑苹果上安装 OS X,调试 “Hello World”,后来有了自己的 iPhone4 、 MacBook Pro……

拿到 iPod touch 5 之后的第一感觉是,太轻薄了,如此强大的功能塞进如此薄的机身中,简直有种不可思议的感觉。相比 iPod touch 4代,5 代在各个方面都没有缩水的感觉,App 的打开速度和系统的流畅度,让人惊叹。瞬间觉得手旁的 Andorid 手机的光芒变得一下子黯淡起来。当然,也不是十全十美,没有自动感光元件,在半夜打开的时候,总是要去调一下亮度。

总结一下优缺点吧。

优点

1. 完美的屏幕和界面流畅度

2.  4寸屏的感觉更加舒适

3. 令人惊叹的轻,不可思议的薄

4. 500万的摄像头很爽

5. EarPods耳机很赞

缺点

1. iPod touch loop 总感觉不太牢靠,不放心,没扣上。

2. Lightning 接口插拔挺费力的。

3. 没有光感器,晚上和白天使用的时候需要时不时手动设置一下亮度

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

来源:http://stackoverflow.com/questions/2506647/iphone-flip-animation-when-controller-pushed 

总所周知,在 CoCoa Touch 中通过设置 modalTransitionStyle 属性可以很方便地在切换 ViewController 的时候实现各种动画效果,但如果使用 pushViewController 则不会出现如何效果,如果在 pushViewController 中实现 Flip 的翻页的效果呢? 废话不多说,上代码:

[UIView beginAnimations:@"animation" context:nil];
[self.navigationController pushViewController:myController animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
[UIView setAnimationDuration:0.7];
[UIView commitAnimations];
VN:F [1.9.22_1171]
Rating: 8.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

 Mac OS系统有一个很方便的功能就是文件预览,在Finder中选中一个文件,按下空格键就能够预览其中的内容。支持图片、文档、视频等类型。在iOS4.0系统中,官方SDK提供了一个QLPreviewController,使用它就可以让我们的App在iPhone/iPad中直接预览各个文件了。官方的开发文档中说明其支持的文件类型有:

  1. iWork文档
  2. 微软Office97以上版本的文档
  3. RTF文档
  4. PDF文件
  5. 图片文件
  6. 文本文件和CSV文件

使用方法也很简单,直接alloc出一个QLPreviewController对象,用presentModalViewController方法把它调出来即可。要指定QLPreviewController预览那个文件,只要直接实现它的代理方法previewItemAtIndex,返回一个NSURL对象即可:

- (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)idx
{   
    return [NSURL fileURLWithPath:[NSString stringWithFormat:@“%@/Documents/files/%@”, NSHomeDirectory(), [fileList objectAtIndex:currentIndex]]];
}

 

直接预览PDF,效果不错

VN:F [1.9.22_1171]
Rating: 7.8/10 (31 votes cast)
VN:F [1.9.22_1171]
Rating: +4 (from 8 votes)

 在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)

image

越狱了自己的iPhone4以后,就一直喜欢不断地折腾。获得了系统的root权限,用ssh登录到设备中,用FreeBSD的命令行控制台来管理自己iPhone上的硬盘、软件等,非常爽快。同时Cydia上各种各样层出不穷的新奇软件,更是把iPhone武装成了一台小Mac电脑。如果保持着不下盗版理念的话,其实越狱更花钱。比如Cydia Store,里面的软件感觉普遍比app store卖得要贵,一个MyWi就要售价19.99$美元,抢钱呢。

最近买了一个正版的QuickDo,耗费了CoCo二十大洋……一来自己非常喜欢这个软件,二来它现在开始联网验证序列号了。不想每次安装升级都很折腾,支持一下正版,一劳永逸。我们公司某同事在半年前的时候就购买了该软件的正版。其实软件只要做得好,哪怕是在国内,还是能卖个好价钱的,最近接触到的这种例子太多了……

话题扯远了,回到本文正题。在iOS系统中,我们在app store中下载的软件都被安装到/User/Applications目录下,每个软件的目录名都是一个随机生成的UUID字符串,软件的执行包、文档、临时文件在这个uuid目录下。

image

但是这造成了一个问题,我想要进入一个程序的安装目录,如Doodle Jump的时候,看着这满屏的uuid目录,如果一个一个去寻找时那个目录的话,烦不胜烦。即使用iFile等图形化的资源管理工具,也够累得满头大汗的。

Cydia里有一款免费软件可以解决这个问题——AppLinks。直接在Cydia中搜索就可以下载到。安装成功后进入,点击底部工具栏上的刷新按钮,AppLinks就会扫描Applications目录,为每一个应用程序在/var/mobile/AppLinks/目录下建立一个直观的快捷链接,如Doodle Jump的目录名为“933DF560-686B-4C1B-BB97-14E4B7F6FE59”,那么快捷方式就是/var/mobile/AppLinks/DoodleJump.app/,怎么样,直观吧。

image
将为uuid创建超直观的目录名

很小的软件,却让我们用命令行使用iPhone方便了许多,强烈推荐!

VN:F [1.9.22_1171]
Rating: 9.8/10 (4 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)

文章转自:ifanr 爱范儿 ♂专注于拇指设备的小众讨论 by lordhong


Dev Camp,顾名思义,就是开发者聚会的意思。自从 iPhone 发布以来,世界各地的开发者都回不定期的举行 Dev Camp。第一期的 iPhoneDevCamp 是在笔者的母校纽约理工学院举行的。当时 iPhone SDK 还没有发布,所以 hacking 的气氛很浓,大家都在越狱了的一代 iPhone 上开发软件,其中一款 Trism ,后来在 App Store 上一个月收入 25 万美刀,一时传为佳话。后来由于 Apple 增加了很多开发者条款,而且随着 iOS 的不断完善,越狱在很多情况下已经变得可有可无了,所以今年在圣荷西举办的 Dev Camp 也就没有很多谈论到越狱或者私有 API 的话题,但总体来说,iOS 的开发者群体还是非常充满活力和创意的。

Dev Camp 的重头戏是 Hackathon,就是开发者临时组队,在1~2天内开发项目,有很多人这几天就没睡过觉,呆在场地内疯狂的编程。非常的有激情,也非常的刺激!

今年的聚会在 ebay/PayPal 总部。他们同时也是聚会的主要赞助商,提供了场地,饮料,音响,食品,等等,还提供了志愿者,非常给力。

很多开发者都从遥远的地方赶来,早早的来签到了:


现场还有免费的杂志和书拿,这边 iPad Sketch Book 相当不错:


PayPal的人上来做了个开场白,就算大会正式开始了。哦,对了,外面摆满了食物和饮料,还有啤酒,相当的厚道:


当然大家最关心的就是 Hackathon,这里是一些人在介绍自己的想法,希望吸引潜在的队友加盟,当然不仅仅是程序员,设计师,美工,测试,服务器端调试,都是很抢手的人才:)



这个团队做的项目是 SuperRover。用 iPhone 4 通过 Macbook 里的一个服务,使用蓝牙和乐高的 Mindstorm 机器人通话,发出不同的指令。(笔者看好他们的潜力,所以就早早拍了几张照片,果然不出所料,他们得了大奖)


而且,他们还有超年轻的小朋友队员:)


开发玩的游戏,当然是大家一起玩才有意思啊。这个是得奖的多人游戏 DIODE:


最后,AllThingsD 的摄影师 Alex 帮大家拍了群体照。当然,面对几百个举起的 iOS 设备(绝大部分都把阳光折射到他脸上,囧。。。),场面非常彪悍~



星期天下午,演示正式开始,各个团队成员排成一队,紧张而兴奋得等着上台:


SuperRover 的第一次演示没有成功,因为在 Macbook 上的服务器程序 crash 了


重启服务程序就搞定了,这个 SuperRover 机器人还会发送球形炸弹呢!


这个是来自乌克兰的团队,展示一个 3D 模型拆卸 iPhone 4 的应用,非常的酷!


这个是父子兵团队,开发了一个叫 PayKids 的应用。也就是小孩子通过应用向老爸要零花钱,老板通过批准后,从自己的 PayPal 帐号转帐到小朋友的 PayPal 帐号里,很有意思。

这次聚会到场估计有 350 到 400 人。以往的聚会都是厂商赞助的,这次由于经济危机,虽然有赞助,到与会者每个人还要付 50 刀门票。但 2 天聚会包三餐,还有饮料,小吃,免费 T-Shirt,免费书籍,免费讲座,当然还有 Hackathon。还有很多纪念品,绝对物超所值啦!

Hackathon 最终获奖名单在此:link 很多是开源项目:)

先到此为止,我们下个 iOSDevCamp 再会:)

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote 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)