今天是2015年的第171天,又半年了。
也是该收收心写下代码了。
三天不写程序,就感觉好像没学过一样。而这个六月我连碰键盘的次数都很少。
写文章的初衷是想记录一下开发一个苹果应用的完整过程,技术上的。也顺便想改掉我做事老是半途而废的坏毛病。这个系列的文章大概会有二十多篇,需要三个星期左右的时间。内容基本上是在一个老外的博客上抄袭过来的,没办法,我自己水平不够嘛,不过我还是会在文章中加进自己的一些东西的,比如会用到git。总而言之,希望自己能坚持下来吧,也希望能在7月底之前能找到一份合心水的工作,毕竟就目前的股市来看,情况不容乐观啊。
===============我是萌萌的分割线===============
半个月之前的WWDC2015大概是我们苹果开发者一年中最兴奋的时刻了。不过今年和去年相比,是失色不少的。虽然iOS 9如期而至,但是整个大会给我的感觉更像是在给自家软件升级,而最后更是用了半个小时来介绍apple music,至于吗?不就是一个音乐应用嘛,我们中国的酷狗音乐功能也做得差不多吧。唯一的亮点大概就是发布了Swift 2并且将它给开源了。正如Craig Federighi所说的:“我们认为Swift将会是下一代大型编程语言,在未来20年里,它将在使用在所有手机应用和系统编程中。我们认为每个人都将使用它。”开源后它将可以在Windows和Linux上使用,看来这次苹果真的开始尝试去统治世界了。
好了,扯得有点远了。
在开发iOS apps之前,首先要准备几个工具:
1,买一个mac
是的,没办法,苹果就是这么坑。什么都还没开始学就得先交几千块买设备。不过相信我,一旦你用上了mac,就再也不想回到Windows的世界了。
2,注册成为苹果开发者
不用担心,这个是免费的,注册之后你才可以下载Xcode,获取iOS SDK文档等东西。
3,安装Xcode
Xcode是你唯一的开发环境。
4,加入iOS开发者计划(可选的)
原装正版的需要99刀,每年。好贵,刚开始也用不上,反正我现在是不急着买,等到真正需要发布应用的时候再买吧。幸好我们有万能的某宝,18rmb搞定,就可以愉快地在真机上去调试了。
现在可以开始写代码了。
所有编程语言的开始:Hello World.
打开Xcode,新建一个Single View Application:
填好应用的名称,编程语言选择Swift,不要选择Use Core Data,点Next,完成之后,就得到了新创建的Project:
正式写代码前,先熟悉一下Xcode:
这是代码编辑区:
这是Storyboard,故事板,做界面的地方:
因为我比较懒,所以比较细节的地方我就不截图解释了,到用到的时候我再向大家介绍吧。
其实到现在为止,它已经是一个完整的应用了,可以在模拟器里先运行一下看看,按下command+R:
看到了吧?虽然现在是一片空白(因为我们一行代码都还没写),但是那些功能强大的apps都是在这基础之上添加功能而已。
下面就是发挥想象力的时间了。
我想这应该就是编程的魅力了。你可以用你的代码去做任何你想做的事情(合法的)。
我们的Hello World程序的功能很简单:
1,我们需要一个Button,它叫Hello World.
2,点击这个按钮的时候,它能弹出一条欢迎信息。
我该怎么做呢?我们开发的程序是要给iPhone用户使用的,用户必须看得见吧,这个就叫做UI(User Interface),用户界面。上面说过,我们做用户界面的地方是在Storyboard里面,打开main.storyboard,在右下角对象库里拖一个Button到View里面,利用校准线对准正中间,然后将它的名字改成Hello World:
怎么样,我们一行代码还没写,就已经创建好一个Button了。这也正是iOS开发优雅的地方,它的代码和用户界面的设计是分开的,虽然我并不知道Android那边是怎样做的:-)
你可以在模拟器上运行一下,你会发现,Button有是有了,但是按下它的时候没反应啊,当然了,我们一行代码都还没写嘛,它当然不知道它要干嘛了。
终于,终于我们要写代码了。当你按下这个Button的时候,它肯定是要执行我们写的代码的,我们是在另外一个文件写代码的,Xcode有一个很强大的功能就是它能很容易的就将用户界面上的控件和代码连接起来,通过control+drag的方式,这个方式我很难截图去演示,大家就自行脑补一下吧:
代码区旁边那个小实点就代表了你的控件已经连接到这个函数了。
往那个函数里面加入以下代码:
let alert = UIAlertController(title: "Hello World", message: "这是你的第一个程序", preferredStyle: .Alert) let action = UIAlertAction(title: "OK", style: .Default, handler: nil) alert.addAction(action) self.presentViewController(alert, animated: true, completion: nil)
运行一下:
这就成功了吧!:-)