从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示例。