从Ruby到Swift
放大
作为图灵软件与设计学院的学生,我将大部分时间都花在了Ruby,Rails和JavaScript上。 在图灵的最后一个模块中,向学生展示了Scale Up,学生可以在其中选择从事棕地项目或完成独立学习。 我选择进行独立学习,重点是学习Swift并将我学到的东西纳入一个可敬的项目中。
背景
在图灵的早些时候,我建立了EarlyBird,这是一个在线的发球时间预订系统。 这样,我构建了一个单独的EarlyBird API来提供高尔夫球场数据(名称,地址,电话号码,图像和开球时间)。 我的Scale Up目标是构建一个本地iOS应用程序,以补充我的模块三个项目EarlyBird。
最低可行产品(MVP)
我总是喜欢有一个计划。 因此,我的第一步是确定我认为可以接受的MVP。 我得出结论,我的应用程序应使用Swift完成以下任务:
- 使用EarlyBird API的高尔夫球场数据
- 在UITableView中显示高尔夫球场数据
- 允许用户预订开球时间。
没有此功能,用户将很难理解该应用程序提供的价值。
文档和教程
巩固我的MVP之后,我阅读了一些Swift文档:
- 快速浏览
- UIKit用户界面目录
- 适用于iOS的View Controller编程指南
该文档使我对Swift的语法和结构有了基本的了解。
接下来,我确定了一个合适的教程。
有很多公司提供Swift教程,但是我进入了Team Treehouse。 该公司很熟悉,并为Swift 2提供了网络编程。这似乎是一个理想的起点。
壁垒
在使用Swift 2完成网络编程时,我发现我在适应新的IDE Xcode时遇到了艰巨的时间。
由于Swift的快速发展,我发现的大多数教程都是在Swift 2的上下文中编写的。但是,对于这个项目,我正在使用Swift 3。并非总是如此。 此外,大多数博客和教程都使用情节提要,交互式生成器和可可豆荚。 我发现每一个都使我感到困惑。 我只是想编写工作代码。 因此,我开始寻找如何以编程方式在Swift中使用API。 最终,我在Swift中找到了Simple REST API调用,并在Swift 3中找到了该教程的更新。这些教程非常了不起。 Grok Swift的Christina Moulton很容易理解,并提供了详尽的例子。 这是导致我的项目取得重大进展的第一个资源。
在她的教程的帮助下,我能够结合所学到的知识来使用EarlyBird API,解析数据并在UITableView中显示课程名称和地址。
结果
我意识到自己已经没时间了,因此需要确定如何满足我最后的MVP要求:允许用户预订开球时间。 与同学们讨论之后,我找到了解决方案。 我的应用程序将允许用户本地浏览高尔夫球场列表。 然后,一旦用户点击某个球场,浏览器将在外部打开(而不是在App内),然后将他们定向到我的EarlyBird Rails App上的选定高尔夫球场。 在这里,用户可以通过选择球员人数和存储的球员名称来继续预订开球时间。 一旦点击“确认”,用户就可以查看所有过去的订单,并使用Twilio发送包含确认代码的短信。 为此,我只需在Rails应用程序中修改视图以适应移动设备。
以下是我的MVP示例。