iOS初体验

对于React-Native(以下简称RN), 我最大疑惑是, 如何把应用安装到自己的手机里? 因为RN最终还会编译成原生代码, 所以这个问题其实是如何安装自己开发的iOS应用. 因为RN的官网上语焉不详, 所以我想趁着有时间, 干脆玩下iOS原生开发, 在自己手机里装个简单的iOS App

然而事实证明, 没那么简单…

搜索教程

有了想法后, 就行动起来

一开始是打算下载书来看的, iPhone开发实战/深入浅出iPhone开发. 但这些书都是2012年以前的, 用的是Object-C. 语言倒是无所谓, 但当我发现里面Xcode的视图/按钮都跟我电脑上有较大出入时, 我就果断放弃了.

于是按照学习React的套路, 看官方入门教程. 教程里使用Swift, 工具也不会过时, 并且每个章节还有源码可以下载, 非常方便.

动手实践

我直接跳过Swift里的基本介绍, 原因是我是来体验iOS的开发流程的, app从0到1的过程明显与网页从0到1的过程有巨大的区别, 这些是更重要的东西, 语言的差异反倒是次; 另外介绍也太长了, 时间有限, 可以后面再看.

然后我就发现:

  • iOS使用storyboard, 先有UI界面, 再来写代码, 并且是事件驱动(教程里说的), 感觉的确不一样. 如果是写html, 你根本不知道页面长什么样, 纯靠经验由自己脑补; 感觉脑补不出来了, 就要去看一下浏览器, 再回来写; 用java写界面, 也是先有代码再有UI的, 比较苦逼
  • 模拟器感觉很好玩, 安装过的应用都在上面(我打开后, 能看到之前RN安装的应用), 跑起来也快
  • Xcode对git的支持做得非常好. 先建一个项目, 获得允许后, 它就会为这个项目建立对应的git仓库. 因为Mac自带git的, 所以不用担心本地没有git的问题. 从这点我就觉得, iOS开发天生就亲近git
  • Xcode视图太多了, 各种窗口/视图, 我都快眼花缭乱了, 我觉得我需要一本Xcode入门指南😂

编译报错

到了官方教程第六章, 我遇到了难题, 这句话编译不通过, 下载官方源码打开后, Xcode同样报错.

1
button.addTarget(self, action: #selector(RatingControl.ratingButtonTapped(_:)), forControlEvents: .TouchDown)

多方求证, 找到原因: #selector是swift2.2的新语法. 命令行下, 执行swift, 进入swift的REPL, 看到我的swift版本为2.1.1, 所以上面的语句报错了(REPL退出的命令为: quit)

很明显, 我需要升级swift, 则我需要升级Xcode到7.3或以上(我现在是7.2), 它里面自带swift2.2或以上.

但Xcode7.3, 需要操作系统升级到10.11(EI Captitan)或以上, 而我现在是10.10.5.

也就是说, 为了一句代码, 我就要升级操作系统, WTF? 心里一万只草泥马奔腾而过…

后记

其实这个报错已经跟把App安装到iPhone里没有关系了–我把一个打开后只显示”Hello World”的App安装到iPhone里, 那也是达到我最初的目的呀.

还好这里报错了, 让我及时止步. 最后, 我成功App安装到自己的手机里了, 详情看后文: iOS真机测试

Fork me on GitHub