FALLHUNTER

Web & Mobile, Design & Code

Get Me Out 上线!

Get Me Out 是Mapiz开发的一款“华容道”游戏,于几日前上线,上线后被Apple Feature 作为 Board 和 Puzzle 类的New and Noteworthy。

下载链接 http://itunes.apple.com/us/app/get-me-out/id406944229?mt=8
免费版会在近期推出,希望免费体验收费版的同学请联系我要redeem


添加评论(2)

多个证书导致 codesign failed with exit code 1

编译程序时遇到了这个错误,点击详细信息,原来是ambiguous,xcode在keychain找到了多个证书,一个在system中,一个在默认的login中。Google了一下,有不少开发者都遇到这个问题了,对于我来说,其实是由于原来的证书过期了,续期之后下了新证书添加到keychain,这样就有两个同名证书了。

打开keychain,选择system,并看不到过期的证书,从菜单中选择View->Show Expired Certificates,就可以看到了,删掉完事。


添加评论

在iPhone App的main bundle中添加子文件夹

在使用xcode开发iPhone程序的时候,向项目的Resources目录下添加资源时,默认的情况会把资源都拷贝到最终的main bundle文件下,即使在Resources中添加了文件夹,最终程序里的main bundle也没有对应的子文件夹,而是把所有文件直接放在根目录下。文档里的解释是针对移动设备而做的优化处理。其实要创建子文件夹也很简单,向项目Resources里拖拽一个文件夹,在弹出对话框中选中“Create Folder References for any added folders” 就行了,如图: 对于资源较复杂的情况还是比较有用的。


添加评论

最新 AppStore 各项统计数据

来自 148apps.biz 2010年10月最新数据.

App数量

有效App总数 (当前可以被下载): 272,526
无效App总数 (当前不能被下载): 53,529
美国Appstore的App: 326,055
活跃App发布者: 55,301

App数量增长情况

Month # Apps # Games # Total
2008-05 1 1 2
2008-06 14 6 20
2008-07 819 271 1,090
2008-08 1,677 542 2,219
2008-09 3,079 950 4,029
2008-10 4,599 1,383 5,982
2008-11 6,480 1,904 8,384
2008-12 8,714 2,490 11,204
2009-01 11,561 3,149 14,710
2009-02 15,185 3,953 19,138
2009-03 19,478 4,914 24,392
2009-04 23,924 5,958 29,882
2009-05 28,939 7,014 35,953
2009-06 35,234 8,156 43,390
2009-07 42,036 9,338 51,374
2009-08 49,090 10,671 59,761
2009-09 57,775 12,279 70,054
2009-10 63,340 13,540 76,880
2009-11 71,097 15,076 86,173
2009-12 88,206 17,859 106,065
2010-01 103,887 19,818 123,705
2010-02 119,116 21,899 141,015
2010-03 134,918 24,258 159,176
2010-04 149,880 26,953 176,833
2010-05 164,952 29,017 193,969
2010-06 181,234 31,476 212,710
2010-07 198,099 33,871 231,970
2010-08 215,533 36,557 252,090
2010-09 231,097 38,790 269,887

App提交情况

截止到10月5号,10月份共提交

游戏App356个,平均每天71个;

非游戏类App共提交2281个,平均每天456个;

总计全部App共提交2537个,平均每天527个。

App审核时长

在2010年9月份,审核时间最长的是30天,平均审核时间5.74天。

App价格分布情况

游戏类App平均价格$1.20

非游戏类App平均价格$2.85

所有App平均价格$2.61

平均价格变化情况:


详细App价格统计

App Price # Apps # Games Total % of Total
Free 69,763 13,018 82,781 (30.38%)
0.99 71,992 16,985 88,977 (32.65%)
1.99 30,728 5,350 36,078 (13.24%)
2.99 16,250 2,011 18,261 (6.70%)
3.99 8,253 442 8,695 (3.19%)
4.99 10,162 846 11,008 (4.04%)
5.99 3,808 97 3,905 (1.43%)
6.99 2,054 72 2,126 (0.78%)
7.99 4,013 58 4,071 (1.49%)
8.99 931 10 941 (0.35%)
9.99 4,763 129 4,892 (1.80%)
10.99 735 2 737 (0.27%)
11.99 813 3 816 (0.30%)
12.99 851 8 859 (0.32%)
13.99 834 2 836 (0.31%)
14.99 1,536 6 1,542 (0.57%)
15.99 475 10 485 (0.18%)
16.99 401 1 402 (0.15%)
17.99 214 0 214 (0.08%)
18.99 369 4 373 (0.14%)
19.99 1,131 40 1,171 (0.43%)
20.99 68 1 69 (0.03%)
21.99 86 2 88 (0.03%)
22.99 120 1 121 (0.04%)
23.99 94 0 94 (0.03%)
24.99 685 5 690 (0.25%)
25.99 181 0 181 (0.07%)
26.99 109 0 109 (0.04%)
27.99 64 0 64 (0.02%)
28.99 27 0 27 (0.01%)
29.99 420 7 427 (0.16%)
30.99 40 0 40 (0.01%)
31.99 6 0 6 (0.00%)
32.99 30 0 30 (0.01%)
33.99 16 0 16 (0.01%)
34.99 112 0 112 (0.04%)
35.99 8 0 8 (0.00%)
36.99 19 3 22 (0.01%)
37.99 56 0 56 (0.02%)
38.99 3 0 3 (0.00%)
39.99 187 2 189 (0.07%)
40.99 2 0 2 (0.00%)
41.99 22 0 22 (0.01%)
42.99 9 0 9 (0.00%)
43.99 10 0 10 (0.00%)
44.99 26 0 26 (0.01%)
45.99 3 0 3 (0.00%)
46.99 12 0 12 (0.00%)
47.99 3 1 4 (0.00%)
48.99 8 0 8 (0.00%)
49.99 236 17 253 (0.09%)
54.99 22 0 22 (0.01%)
59.99 85 0 85 (0.03%)
64.99 35 0 35 (0.01%)
69.99 44 1 45 (0.02%)
74.99 39 0 39 (0.01%)
79.99 37 3 40 (0.01%)
84.99 15 0 15 (0.01%)
89.99 29 0 29 (0.01%)
94.99 9 0 9 (0.00%)
99.99 138 6 144 (0.05%)
109.99 8 0 8 (0.00%)
119.99 15 0 15 (0.01%)
129.99 20 0 20 (0.01%)
139.99 12 0 12 (0.00%)
149.99 28 2 30 (0.01%)
159.99 4 0 4 (0.00%)
169.99 2 0 2 (0.00%)
179.99 11 0 11 (0.00%)
189.99 4 0 4 (0.00%)
199.99 29 2 31 (0.01%)
219.99 4 0 4 (0.00%)
249.99 6 0 6 (0.00%)
299.99 12 0 12 (0.00%)
349.99 7 0 7 (0.00%)
399.99 5 0 5 (0.00%)
449.99 6 0 6 (0.00%)
499.99 5 0 5 (0.00%)
899.99 3 0 3 (0.00%)
999.99 7 0 7 (0.00%)
Total # apps: 233,379 39,147 272,526 (100.00%)
Total cost to buy all apps: $665,270.84 $46,839.71 $712,110.55
Average App Price $2.85 $1.20 $2.61

App类型分布

App数量最多的前五个分类为:

1 – Books (47331)
2 – Games (39147)
3 – Entertainment (30624)
4 – Education (21260)
5 – Lifestyle (17733)



添加评论(1)

用Flash CS5 开发 iPhone App

不久前,Apple发布了新的开发者协议,不再限制app的开发工具(https://developer.apple.com/appstore/guidelines.html),这意味着开发人员可以使用任何工具来开发app了!

没错,Flash可以开发iPhone App。这无疑是个是个大消息,无数的flash开发者,瞬间变成了app开发者。我们在也不需要学习复杂的ObjectiveC,我们只要会简单的flash as,甚至会用flash做动画,就可以发布app了!

Flash做app,真的这么容易吗,我们来看一下。

能做app的Flash版本是Flash cs5

打开Flash cs5,新建,会看到一个iPhone OS选项:



选择这个选项,会创建一个符合iphone屏幕大小的工程。

接下来就可以开始做flash啦,做完之后再回来看。

flash做完之后,选择File>iPhone OS Settings,会看到这个对话框:

这里可以配置一些选项:

  • Output file:输出文件名称
  • App name:显示在iphone上的程序名称
  • Version:版本号
  • Aspect ratio:横版还是竖版
  • Full screen:是否全屏,是否带iphone状态栏
  • Auto orientation:是否自动旋转视图
  • Rendering:是否使用GPU硬件加速。文档上说这个对性能影响很大,但在Hunter的试验中感觉区别不大。
  • Include files:包含的文件,如果需要增加其它资源,如xml数据,在这里添加。

然后看一下Deployment选项卡:



这里需要配置app需要的信息,最上面的p12文件是证书和私钥,需要在申请apple开发帐号的时候制作并导出,注意导出的时候一定要加密码,并把密码填写在下面,否则无法发布。

下面就是provisioning 文件,也是从apple开发帐号后台制作得到的。

可以看出,虽然开发工具变成了flash,对apple开发帐号的依赖还是没有变化,依然要交钱,依然要各种麻烦的证书和文件。

下面填上app id,然后选择一个与provisioning文件对应的发布方式就可以了。

后面还有一个Icon选项卡,可以配置app的图标,很简单,不再解释。

点击Publish(发布),这个过程比较慢,根据不同的发布方式,要好几分钟,耐心等待。

发布成功后没有什么提示,设置里的Output file已经生成了,这样,一个app就制作完成了!

FallHunter 做了一个简单的动画,装到机器上一看,运行起来明显比较慢,修改为GPU硬件加速后,没有明显的改观。也许是由于我的机器(iPone 3G)比较老的缘故。

总结一下,用flash做app,看来是可行的,并且更简单,但也有一些潜在的问题:

  • 性能很可能是一个重要原因,使得flash无法完全替代objC。
  • app文件尺寸比较大,一个简单的动画就需要好几M。

flash的官方文档给出了一些优化建议,但似乎并没有太多可做的。

或许,flash做app,并不想我们想的那样容易;也或许apple正是充分了解到这一点,才把标准开放。不管怎样,开放都是一件好事,更多的选择都是一件好事,这一定会带来更多更好的产品,也会带来更多竞争,最终推动整个行业发展。


添加评论

iPhone开发/ObjectiveC 面试题目

在做iPhone开发过程中,收集了一些常见到问题,可以用作面试题目,供大家参考,如果这些问题对你来说完全没有难度,可以发一份简历到 join@mapiz.com

  1. ObjC中,与alloc语义相反的方法是dealloc还是release?与retain语义相反的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?
  2. 在一个对象的方法里面:
    self.name = “object”;

    name =”object”
    有什么不同吗?
  3. 这段代码有什么问题吗:
    @implementation Person
    - (void)setAge:(int)newAge {
    self.age = newAge;
    }
    @end
  4. 什么是retain count?
  5. 以下每行代码执行后,person对象的retain count分别是多少
    Person *person = [[Person alloc] init];
    [person retain];
    [person release];
    [person release];
  6. 为什么很多内置类如UITableViewController的delegate属性都是assign而不是retain的?
  7. 定义属性时,什么情况使用copy,assign,和retain
  8. autorelease的对象是在什么时候被release的?
  9. 这段代码有什么问题,如何修改
    for (int i = 0; i < someLargeNumber; i++)
    {
    NSString *string = @”Abc”;
    string = [string lowercaseString];
    string = [string stringByAppendingString:@"xyz"];
    NSLog(@“%@”, string);
    }
  10. autorelease和垃圾回收机制(gc)有什么关系?
  11. IPhone OS有没有垃圾回收(gc)?
  12. 什么是Notification?
  13. 什么时候用delegate,什么时候用Notification?
  14. 什么是KVC和KVO?
  15. Notification和KVO有什么不同?
  16. KVO在ObjC中是怎么实现的?
  17. ViewController 的 loadView, viewDidLoad, viewDidUnload 分别是在什么时候调用的?在自定义ViewController的时候这几个函数里面应该做什么工作?
  18. ViewController 的 didReceiveMemoryWarning 是在什么时候被调用的?默认的操作是什么?
  19. 未完待续…


添加评论

IPhone WebApp 设计开发工具与资源

 

/*
做IPhone相关的开发也有一阵子了,过程中使用了不少来自互联网的各种工具与资源,在这里整理一下,希望能将互联网给我们的帮助再回馈给互联网,感谢互联网,当然,要先感谢祖国
*/

IPhone 的 App 固然有很多吸引人的地方,然而Web毕竟是大势所趋,已经有越来越多应用用 WebApp 的方式来实现了。所谓 WebApp,说白了就是Web应用而已,只不过是专门对手机尤其是IPhone的特点来定制界面,更有甚者,把界面做的跟本地IPhone App一摸一样,以至于我们都难以区分它是一个App还是一个Web。

优秀的WebApp

先来看看各种漂亮的WebApp,除了用IPhone上的safari里面的默认书签,进到IPhone 的 WebApp 列表 http://www.apple.com/webapps/, 还有不少地方能看到WebApp的展示,如http://cssiphone.com/  汇集了各种优秀的IPhone站点,这些优秀的CSS设计可以给你不少灵感

IPhone 设计素材

WebApp开发框架

IPhone App第三方库

其他IPhone资源站点


添加评论(3)

使用 python/django 发送iPhone push消息

 

iphone的push notification功能是个好东西,可以在一定程度上模拟后台运行程序的效果。但这个东西配置起来确实有点麻烦。好在apple的文档说的还算详细,仔细按照文档做,慢慢生成那一堆配置文件吧。

服务器端的配置:

在开发mac上,从keychain中将生成的keyexport出来,这里要注意要同时选中对应cer与private key两个项目,一起倒出到一个.p12文件中。

将倒出的p12文件放到服务器上,将p12文件转换为pem文件:

openssl pkcs12 -in cred.p12 -out cert.pem -nodes -clcerts

然后,按照 APNSWrapper 里的文档就可以测试了,随便使用一个token,如果没有异常就说明认证OK啦, APNSWrapper 真是个好东西。

感谢互联网,感谢Python~~~

参考资料


添加评论

实现自适应高度的 UITableViewCell 或 UILabel

 

在iphone开发中处理table时常常会有这样的问题,table中cell的高度不是固定的,而是是根据其中的内容不同而不同的。对与这种情况,sdk本身并没有很好的支持,经过一翻摸索,发现大家通常的做法都是在实现 heightForRowAtIndexPath 方法时,根据内容计算出来显示的高度。

幸运的是,nsstring内置了几个好用的函数可以方便的计算出来字符串被现实出来时占有的屏幕高度:

  • - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size; 
  • - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size  
             lineBreakMode:(UILineBreakMode)lineBreakMode; 
  • - (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width  
              lineBreakMode:(UILineBreakMode)lineBreakMode; 
  • - (CGSize)sizeWithFont:(UIFont *)font  
              minFontSize:(CGFloat)minFontSize  
              actualFontSize:(CGFloat *)actualFontSize  
              forWidth:(CGFloat)width  
              lineBreakMode:(UILineBreakMode)lineBreakMode; 

 

参考资料


添加评论

如何学习iphone开发

/*
且不讨论这个post算不算是tutorial,反正fallhunter还很少写这种纯技术的post。
首先,这并不是
Don’t write tutorials 中所说的tutorial
本文的起因,不过是因为:fallhunter记忆力严重衰退,刚刚解决过的问题转眼就忘了,更别说记住那一大堆url
整理在post里算是个好办法
*/

官网

其实,无论学习什么技术,最开始要去的地方就是它的官方网站,只有在这里,你才能得到最真实最权威的信息。iphone开发的官网为http://developer.apple.com/iphone/, 你最好使用一个safari 浏览器,这里的网页,只有在safari下面浏览效果才是最好的,我用其他浏览器,不时会出现一些显示或布局上的小问题,不要让这些影响你,就用safari吧。

然而官网上的信息也足够多,从哪里开始。上面不是有个”getting started“么,哈哈。这个时候不要急于开始学习开发,而是要尽多去了解iphone的一些background,iPhone Human Interface Guidelines 是个很好的文章,值得了解。如果你有一个iphone或ipod touch,就更好了,多去使用别人的程序吧。iPhone Development Guide 是整个iphone开发流程的介绍iPhone Application Programming Guide 就是正统的教材了,以它为主,参考官网上的各种 reference,  sample code 等就可以啦!

Mac OS X

从官网的信息你会了解到,要做iphone开发必须有一个mac系统!如果资金还允许,去买一个mac的系统吧,这会省去你很多麻烦。如果你像fallhunter一样穷,只有一个pc,如果你的pc性能足够,你可以考虑安装一个mac的虚拟机,否则,你可以想办法在你的pc上装mac:  mac on pc ,不到万不得已,不要这么干,也许你觉得这样很酷,也许你觉得长知识,可毕竟你的目的是学习iphone开发,而不是破解mac。

Object-C

这时候你已经了解,iphone开发用的编程语言不是c,c++,java 而是object-c。虽然很多地方与c/c++相似,却也有很多地方与其不一样。如果你还分不清楚object-c 与 cocoa 的关系,大致可以这样去想: object-c 只是一个单纯的语言,而cocoa则是用object-c写成的iphone基础类库与框架。如果把object-c比作c++, 那么cocoa 大概可以比作MFC,  再者, php 与 zendframework。

既然object-c是一个单纯的编程语言,你在windows下也可以学习与使用它,一个方法是 http://www.gnustep.org/ , 但是经过我的实验,好像并不支持 object-c 2.0 中的特性,还是尽量用mac吧

XCode

xcode 是mac下的ide,相当于windows下的visual studio,其强大程度有过之而无不及,估计vs抄了其不少特性。在xcode中编码,简直可以乐不思蜀,这也是为什么apple可以做出伟大产品的一个原因吧,它让写代码都很爽!如果你习惯windows开发,可能还想要个msdn,去help里面找吧,里面带有与官网一样的referenc和文档。

第三方库

虽然iphone sdk里面提供了很强大的基础类库,然而总会有不能满足情况的时候,去google一些第三方库,而不是自己从头开发,这会省掉你很多时间与精力。如果不知道用什么,去 http://www.stackoverflow.com 问一下。

回到官网

很多时候,我们在开发中碰到问题,并不是因为rp或传说中的宇宙射线,而是我们没有好好读文档。对iphone开发来说,官网的文档相当丰富,质量也很高,即使你从数百个连接中随便拿个文档来看,也可以快速找到方向。因为几乎每一篇文档都会告诉你谁该读这个文档,在读本文档之前你应该读哪些文档,你还可以读哪些文档来了解更多信息,相关的代码和其他文档有哪些,不要忽略这些内容,熟悉它们,以致熟悉整个官网文档的组织结构,即使遇到问题,也可以快速找到相关的文档。对iphone开发来说, read the fucking manual 同样适用。

关于读文档

虽然写代码的时候只会用到api reference,但是读文档的时候不能只看reference,要多读一些类似guide,overview,discuss之类的文档,把其来龙去脉搞清楚,把背后的思想搞清楚,使用的时候才好灵活确定怎么来用如此多的class和api。要从总体上把握,否则只见树木,不见森林。同时,这也是最省时间的方法,可以节省你写不必要的代码的时间,很多系统的api都有很多个层次,你可以在任何一个层次上开始你的代码,如果你选择了底的层次,则需要自己处理很多的逻辑,重复很多工作,而这些可能系统已经帮你封装到了另一个非常简单的api里


添加评论

© 2009 FALLHUNTER. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.