前段时间经常使用的一款APP无秘下架了,伤感(。_。) ,于是想开发一款类似的APP。自己对后端还算熟悉,但是没有客户端的实际开发经验。开发语言Java & OC(Swift)也不熟悉,于是这时我有两个选择,学习Andorid还是iOS,正好身边有iOS开发大牛,另外苹果推行的Swift语言语法不像OC那么别扭(Swift语法特别像Golang,好感+1),加上平时使用的iOS应用体验比Android要好不少,于是选择了学习使用Swift语言开发iOS应用,这里记录初学者使用Swift开发iOS应用的体验。

一、开发工具
毋庸置疑,选择苹果官方的Xcode8,尽量选择最新版本,苹果每次升级iOS的时候都会升级Xode,避免最新版本iOS没法调试,所以最好安装最新版本Xcode。市场上虽然有AppCode、Qt第三方IDE可以开发iOS应用,毕竟不是官方开发的,新人避免入坑,所以使用Xcode。

二、创建工程
选择iOS,Single View App,语言选择Swift,ProductName填写App名字(后面可以更改),一路Next创建工程。

三、目录结构
我认为学习一门新的开发框架,首先需要整体了解工程结构、每个目录文件的存放的什么,这样有利于进一步深入学习。以创建工程名为LoveFinder为例,有如下文件夹:

  • LoveFinder:项目代码,AppDelegate.swift为工程生命周期文件、ViewController.swift文件为UI中View关联的Controller、Main.storyboard为APP 主界面UI文件(可以实现控件的拖拽、可包含多个View)、LunchScreen.storyboard为APP启动UI文件、Info.plist为APP配置信息,比如productName,还可以加入自己的dict,比如Http API接口配置等
  • LoveFinderTests:单侧
  • LoveFinderUITests:UI单测,Tests暂时不需要太多了解
  • Products:APP产出信息

最重要的是LoveFinder源代码目录,搞清里面文件功能关系就ok了。

四、Swift语法
Swift语法可以在菜鸟教程上学习http://www.runoob.com/swift/swift-tutorial.html,在Xcode里多动手写。对初学者迷惑的还是Swift中的Optionals可选类型,比如:

var age: Int?

age是一个含有两种情况的枚举,None 和 Int类型,用来表示可能有或可能没有值。使用前可以先判断变量是否为nil,确定有值的情况下使用age!强制解析。

五、控件使用
过去自己有过使用MFC、Qt开发Windows桌面客户端的项目经历,开发客户端程序入门都比较类似:绘制View(拖拽控件、或者代码中编写布局)、关联View与Controller,Controller里面有View的生命周期函数,对应View中控件的事件函数也会在Controller中生成,进而可以响应控件的操作了,再往后定义Model层,进行数据产出,这不就是MVC的思想么。

iOS开发先学会使用TextField、Button、Tab、TableView等控件使用,这些展开讲内容还是挺多的,控件是交互的基础,学会了这些之后再学习网络请求、数据库操作这些更底层的使用。如果你有其他语言开发经验,相信这些不是障碍。

六、package管理
我们知道Java有Maven、PHP有Composer、Python有pip,iOS也有cocoposd进行包管理,使用也非常方便,在此提供安装方式:

sudo gem install cocoapods
pod setup

安装cocoapods成功之后,在Xcode工程下新建名为Podfile的文件,将依赖的库名字依次列在文件中即可

platform :ios
pod 'JSONKit',       '~> 1.4'
pod 'Reachability',  '~> 3.0.0'
pod 'ASIHTTPRequest'
pod 'RegexKitLite'

最后执行安装

pod install

工程中import具体package即可使用,更详细的教程参见:http://blog.devtang.com/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/

六、后记
学习iOS开发还有很多路要走,自己会把它当做一个兴趣继续学习下去。控件的使用展开讲可以写很多文章,自己往往想在一篇文章中写全学习过程中涉及的方方面面,发现很难!这里先记录下入门过程中的大概,遇到不懂的多谷歌,多问身边同学,同时需要self-motivated,keep-curiosity,这太重要了!


参考
http://blog.devtang.com/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/

标签: swift, iOS

评论已关闭