Android到IOS开发的转换

Cynthia ·
更新时间:2024-09-20
· 950 次阅读

  很早想入手ios开发,但是一直没有机会,个人没有水果机器,上个公司上班的那台mac mini虽然在我身边,灰都有一层了,但是一直没有机会开机学习下,因为事多,自上一篇文章后,离职后,新公司给配备了mac pro,正好满足了自己都心愿,开始水果软件开发。自己也是从0开始,学习它不过这3-4天而已,但是之前对oc还是有些了解,因此凭着android的感觉去做,移动端嘛,不都是布局上丢组件,我相信也有人如果从android走到ios也会有这样的思想吧,我的思路是:   · 先翻翻ios的结构   · 布局一个view,如何布局并且操纵布局中的对象   · 基本的button,listview,gridview等等所有的组建的使用   · view跳转传值   · sqlite操作   · 网络操作   · 本地文件操作   · 内存管理   到这里基本来说可以做一些简单的应用了,好的方式是赶紧加入一个ios项目组,接下来的东西是深入了,对于有android的开发经验来说,走到ios开发去不是很难,可能难的地方是对oc的理解,我也不得不说oc的语法对于用惯了java/c+的人来说确实很奇葩,像做php的热突然看见erlang一样。   准备)oc基础,从面向对象起步   关于oc的语法http://www.cnblogs.com/lm3515/archive/2010/12/20/1911135.html这个朋友总结的很好,看完这个基本能开始了。   一)HelloWorld   任何语言都是从它起步,不解释,当我拿到水果机的第一件事是干嘛?打开xcode赶紧创建一个ios的helloworld。

  看到上面的目录结构,相信做过cocos的朋友看起来是不是有点熟悉?其实它的运行流程都和cocos差不多。   ios里面文件的后缀:   .h:和c一样,头文件   .m:message的缩写,也是oc对h文件对实现   .mm:如果我们的一个文件里面即有c++代码,也有oc代码,将它命名为.mm后缀,编译器会分别处理oc和c+代码。   .xib:以前叫nib,nib是直接编译成二进制,xib是xml文件,也是布局文件,是android里面的layout_xxx.xml。项目里面由一个LunachScreen的xib文件,它是ios在刚刚启动的时候显示的东西,如果你的应用启动快,它是一闪而过,启动慢可能会显示久点,相当于loading。二)流程   ios的入口函数是main.m文件,里面   一个项目项目结构图如上所示,看到这个结构,我们很关心它的流程是怎样,ios里面它的入口是main.m文件,在main里面声明了代理类的运行:   #import <UIKit/UIKit.h>   #import "AppDelegate.h"   int main(int argc, char * argv[]) {   @autoreleasepool {   return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));   }   }   这里我们看到由main启动了appdelegate这个代理类,在这个代理类里面我们可以设置ios默认启动哪个试图作为第一个显示试图,如下所示: #import "AppDelegate.h" #import "ViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { _window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; ViewController *friendController=[[ViewController alloc]init]; UINavigationController *navigationController=[[UINavigationController alloc]initWithRootViewController:friendController]; _window.rootViewController=navigationController; [_window makeKeyAndVisible]; return YES; } - (void)applicationWillResignActive:(UIApplication *)application { } - (void)applicationDidEnterBackground:(UIApplication *)application { } - (void)applicationWillEnterForeground:(UIApplication *)application { } - (void)applicationDidBecomeActive:(UIApplication *)application { } - (void)applicationWillTerminate:(UIApplication *)application { } @end   在这里我们设置了默认显示的第一个视图为:ViewController,并且我们设置了一个东西:   _window.rootViewController=navigationController;   这个我们可以理解为android的Context,有了这个我们可以全局控制管理view,开始我没有设置这个,所以view页面跳转老是跳转不过去,并且官方也推荐使用这种方式而不是直接在view中跳转。   三)view   现在我们来到了ViewController,它是android中的activity,activity继承至Activity,而ios中它继承UIViewController,因此在这里可以操作这个页面的视图,而View的跳转也是我们android里面activity的跳转。   它的跳转方式如下:   LoginViewController *ickImageViewController = [[LoginViewController alloc] init];   [self.navigationController pushViewController: ickImageViewController animated:true];   是push和pop view的方式,通过我们前面定义的根view。   四)布局   ios的布局可比android舒服多了,因为屏幕少啊,再多也没android多吧,在ios里面布局分为三种:   代码:代码布局是不是用xib文件,直接代码创建button之类的,这个在ios里面是可行的,因为ios项目组开发中,美工在效果图的时候,还会给出组建的xy坐标位置,并且代码可复用程度较高。   xib:xib是前面将的,和android一个activity对应一个布局xml一样,一个ios的view对应一个xib,但是不得不说的是ios里面的拖拉拽比android里面的穷矮挫舒服多了,效果好很多很多。   Storyboard:这个东西是新生儿,统一了上面两种方式,它管理的所有view的布局。   五)结尾   好吧,这两天后能够使用3种布局创建一些界面,然后在上面丢一些组件,操作下本地数据库,网络下载点东西,之前我一直做服务器,也在andrid下搞xmpp,正好ios下也练手。   至于对于ios的深入分析了解,还真不是两天能学出来的,能做和懂是两码事了,后者好是和别人学习。   写的有些随意和杂。



ios开发 IOS Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号