Archive for the 'IPHONE' Category

APP创业项目-APP开发技术选型:Hybird还是Native

开发一个APP有很多种可行方案:原生开发(Native)、混合式开发(Hybird)、PhoneGap生成(H5)、React Native、Python+kivy、Lua+Wax等等。本文挑选前三种常见的说说。

原生开发

应用能够发挥最佳性能,是高性能需求的应用的唯一选择,例如游戏开发、复杂应用。iOS用Object-C或Swfit、Android用Java、Win10用.NET,那么我们至少需要三个成熟的程序员。程序员各干各的事情,代码除了思想外都不能共用,相同的业务逻辑需要写三遍。应用发布新版本需要等待三个客户端同时开发测试完成才可。

PhoneGap生成

克服原生开发的平台鸿沟(Gap),几乎不涉及原生代码,使用H5编写应用的所有功能。PhoneGap为H5提供了调用系统的硬件资源的能力,并且提供了打包APP的功能,开发人员无需掌握原生代码。H5部分借助Jquery Mobile、React、Ratchet、Bootstrap、AngularJS等前端框架实现单页应用,APP仅仅是一个筐子,充当着浏览器的作用。一套程序既可以用作APP、也可以用作触屏版网站、还可以嵌入到微信公众平台,真是何乐而不为。但H5的性能和兼容性问题,需要一个出色的前端工程师才能驾驭。单页应用突出的问题在于页面之间的跳转,jQuery Mobile采用Div(Page)的显示与隐藏来模拟页面的跳转,虽然也能模拟转场动画效果、侧滑菜单等一系列类似原生的效果,但是视觉体验明显迟钝。如果界面非常复杂,例如电商网站的商品列表页,需要筛选品牌、类别、价格区间等等,那H5就显得捉襟见肘了。不建议创业产品使用单页应用开发,可以考虑传统网站多页面链接跳转的方式,即使这种方式没有单页应用的界面转换效果,但是更加可用。那界面之间的跳转空白岂不是很难看?这就是混合式的价值了。

混合式开发

采用原生开发与H5相结合,克服H5单页应用的体验限制,减少原生代码量。H5部分无需升级版本可以动态更新。借助Cordova实现H5与原生系统之间的通信。那么混合式怎么解决H5的界面跳转问题呢?混合式即要H5前端程序员,又要iOS、Android和Win10开发人员,并没有减少开发人员的数量,为何不直接原生开发?什么地方用H5,什么地方用原生开发呢? 继续阅读 [ APP创业项目-APP开发技术选型:Hybird还是Native ]

一些iOS高效开源类库

因为iOS SDK相对比较底层,所以开发者就得受累多做一些体力活。不过幸运的是,有很多第三方的类库可以用来简化很多不必要的工作。笔者整理了一下在本人学习过程中用到的一些比较有用Objective-C开源类库,既是做一个总结,同时也希望通过这些分享,能提高各位的开发效率。
继续阅读 [ 一些iOS高效开源类库 ]

UIBarButtonItem 上面两个按钮切换的简单例子

这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add button。代码实现的按钮切换/隐藏功能具体就是:点击 edti button 的话,back button 隐藏,同时显示 add button。用户编辑完以后则显示 back button 隐藏 add button。这一功能在很多应用里都会用到,而且适当隐藏掉无用按钮对保持界面简洁以及引导用户操作都是有意义的。

- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
 
    [super setEditing:editing animated:animated];
 
// Don't show the Back button while editing.
[self.navigationItem setHidesBackButton:editing animated:YES];
 
if (editing) {
    self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertMe)] autorelease];
}else {
    self.navigationItem.leftBarButtonItem = nil;
//self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(backButton) ] autorelease];
 }
}

利用uipickerview获取时间的倒计时程序

利用ActionSheet弹出选取框,并在label上显示倒计时的程序。网上有不少代码,但都不完整,现整合了一下,具体代码如下:
继续阅读 [ 利用uipickerview获取时间的倒计时程序 ]

iPhone学习笔记之猜数字小游戏

今天我们将在iPhone上制作一个基于UIView的iPhone 猜数字小游戏,具体实现后的效果为先输入一个1-9999 整数作为设定数,然后就交由另一人进行猜想,并在猜想后给出高了或低了的结果,当猜中所设定的数字时,系统弹出alert窗口,并提示恭喜的字样,程序返回设定界面。 继续阅读 [ iPhone学习笔记之猜数字小游戏 ]

iPhone学习笔记之证书破解

iPhone sdk中自带了强大的iPhone模拟器,该模拟器复制了iPhone环境的大部分,包括它的主屏幕、Safari Web 浏览器、Contacts应用程序等。但是为了要在iPhone设备上运行应用程序,需要注册iPhone开发者计划,并支付99美元的费用。但是我们现在所做的内容,即使无法拿去appstore上出售,也必须支付这99美元,造成了额外的支出。本教程是在Xcode3.1.4的环境下对数字证书进行破解,使得自己编译的软件能够顺利的在已越狱的iPhone上运行,虽无法拿出去卖,但对于我们这些初学者是再好不过的消息了。
继续阅读 [ iPhone学习笔记之证书破解 ]

iPhone学习笔记之开发环境搭建

搭建iPhone SDK开发环境,首先需要有一台能运行mac OS的计算机,由于苹果公司现在采用的是Intel的x86内核,所以可以在普通的pc机上运行mac系统,但由于苹果电脑与市面上其他的pc电脑使用的配置不同,所以硬件驱动就是一个很大问题,具体的安装方式可以参考远景论坛Mac OS Snow Leopard专区,里面的教程都很详细。
继续阅读 [ iPhone学习笔记之开发环境搭建 ]