Hello, iOS!

helloworld

高中的时候使用的是安卓手机,想要开发Android app于是高三结束时接触了Java语言,之后学习了安卓,现在,自己的第一个app已经在安卓上线。大一的时候有了第一台iPhone,但是自己却对iOS开发一无所知,前几天终于狠下决心去试着把自己的ThinkPad装上Mac OS X,从此开始了iOS开发的学习之路。这篇文章将讲述刚刚学习iOS开发时的学到的一些知识整理。

黑苹果好用吗?

我的机器是ThinkPad T440p 装上黑苹果效果还行,只不过没有网卡驱动不能联网,一开始也没有声音,所以在OS X系统下是不能作为主力使用的,只能平时来学习iOS开发,但是长期并不推荐这么做,因为黑苹果可能并不是很稳定,而且没有网络的环境,连开发者证书都无法获取,所以似乎连真机调试都不能进行。但是相比虚拟机开发还是流畅了很多,整个操作流畅程度和MacBook Pro 应该没有没有区别,毕竟是Intel i7 4710MQ的处理器,编译速度也非常的快。

451044531569026960

 

iOS的开发环境

iOS的开发环境是苹果自家的Xcode,是苹果向开发人员提供非集成开发环境 (IDE),可以用来开发OS X和iOS的应用程序。

screen800x500

本人是一个安卓开发者,一直在Windows上使用Android Studio来开发安卓app,这两款IDE都很友好,只要有开发经验的人都可以很快适应,但是对于设备模拟器,在Windows系统下,Android虚拟器真的是不太理想,启动比较慢,有时候还有卡顿,尽管Intel对此已经做出了很大的改进,但是Xcode自带的iOS simulator不同,使用起来非常快,非常流畅,感觉初期学习的时候只要使用iOS模拟器就够了。等到开发大型项目的时候或者需要传感器的时候再使用真机调试。

Xcode现在最新版本是7.1,支持了Swift 2.0语言,可是由于我的系统是很早的10.9.3版本而不能安装,现在使用的是Xcode 6.0 beta版本,这个版本才刚刚支持Swift语言而且不是正式版。

关于易用性我觉得iOS开发环境比Android更加方便,在Android开发中,将一个控件和代码绑定,需要调用findViewById方法,并且还要手动实现监听器接口,而在Xcode操作中,只要拖动几下鼠标就可以实现这些基本的逻辑,实在是方便。

 

iOS的编程语言

Swift:

Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。

swift-2-jpg

对于以前使用过Java或者C++开发的人来说,这个语言在初期上手非常快,几乎看第一眼iOS代码的时候就可以大概认出语法,并且可以猜测出函数的意图,或者这段程序想要做什么。Swift语言我大概在业余时间看了点视频来学习,赋值,函数闭包,流程控制,面向对象等等基础知识都可以很快的上手。而且发现了一个很新奇的特性就是Swift的函数可以返回多个值,觉得这个特性在之后的开发中可以省下很多事情。

Objective-C:

Swift是在2014年公布的,而Objective-C正是以前用来开发OS X和iOS的语言。Apple公司领导着Objective-C语言的发展与维护,包括Objective-C运行时,Cocoa/Cocoa-Touch框架以及Objective-C语言的编译器。

swift-vs-objective-c

虽然有了新兴的Swift语言,并且Swift的发展很健康,已经到了2.0版本,但是这并不意味着Objective-C被淘汰了,这个语言同样重要,而且很成熟,学习的话网上的资源也很多。

但是,相比起Swift语言,Objective-C的上手就难得多,当我第一眼看见OC语言的时候,根本不知道上面写的是什么意思。。。 根本看不出来这些语法符号都是神马玩意。

 

设计模式

iOS开发中大量使用MVC设计模式,MVC (Model-View-Controller),模型-视图-控制器 模式是一种软件设计模式,现在广泛用于用户交互应用程序中。

Model 可以理解为操作层,就是你的应用程序是什么,是用户界面无关的部分

Controller可以理解为业务层, 你的应用程序如何将Model显示给用户(UI逻辑),是中心是桥梁,连通Model和View。

view 可以理解为界面层,一切听从Controller的指挥,并及时将重要事件报告给Controller。

traditional_mvc

 

 

从Java转向Objective-C

由于之前一直在用Java开发程序,面对一个新的语言,必须得知道两门语言在特性上有着什么差异。

Java和OC有着很多的不同,比如OC并没有垃圾回收期,但是OC保留有释放方法,在必要的时候也可以在OC程序中进行垃圾回收。

Java具有抽象类,但是OC没有。Java可以声明final类来阻止子类被更改,但是OC却允许在运行时向任何类添加方法。

还有就是异常处理机制,Java中大多数错误都是通过异常来处理但是OC中的异常处理取决于所使用的API。Cocoa通常只会在开发人员出错无法清除时才抛出异常。但是OC的异常处理特性和Java差不多,使用try,catch,finally语句块。

以上就是这几天课余时间大概了解到的关于iOS开发的知识,可能还不是很全面,希望通过以后的学习可以一直进步。

打赏

Leave a Reply

Your email address will not be published. Required fields are marked *