作者:Weston,原文链接,原文日期:2016-01-27
译者:saitjr;校对:Cee;定稿:千叶知风

自从我昨天发了,收到的最多的评论就是:

我应该选择哪些 App 来练手呢?

这个问题很有趣。理想情况下,如果做一款 App 又不是为了练手,那么你可能会选择你熟悉的技术。先找到自己感兴趣的、有能力解决的问题,然后再尝试用最佳实践去解决它。但我完全能想象,作为新开发者,他可能还没准备好去应对从头开发一款 App 所要解决的问题。怎么办呢,我条件反射就是「学做一款 Twitter App」。Twitter 客户端是一个有趣的项目,它涵盖了开发绝大多数 App 所要用到的技术点。我将会列出 Twitter(或其他高质量的 App)作为练手项目所用到的技术点。

用到了 UITableView

我开发的绝大多数 iOS App 都直接或间接的用到了 UITableView,它可能是最常见的 UI 元素了,如果在面试时展示你对他的掌握情况,往往会有奇效。使用 UITableView 来做 Twitter 动态展示页面正好合适。尝试实现滑动给单元行添加事件,并确保 cell 的正确重用。查找如何实现上拉加载更多推文(即,当列表页滚动到底部时,能有更多的推文加载进来)。

用到了 HTTP API…

很多 iOS App 都需要已某种形式访问网络资源。首先建立连接、验证,最后要做的就是使用网络数据了。你当然也可以不用接入 Twitter 的 SDK,但尝试访问他们的 REST 服务器能让你真正了解网络连接与 HTTP 的使用。

用到了炫酷的 UI 界面…

开发者们都希望能通过自己的 App 火一把。正好,Twitter 的 App 能帮助你展示出很多的 UI 技能,并且在这其中,还可以写出很多有趣的东西。炫酷的 UI 可以以自定义的图形按钮的形式展示,也可以以生动形象的动画效果来展示。对于我来说,我喜欢在 AppStore 上看其他受欢迎的 App 都用了哪些动画和 UI 元素,然后自己动手实现出来。

用到了持久化和数据安全…

除了存储证书外,在 Twitter App 中没太大必要做其他数据的持久化。你需要掌握如何安全的存储用户证书(就像 token 之类的东西)。虽然 Keychain API 的学习曲线比较陡,但在这里使用 Keychain API 确实很合适。而且和暴露用户信息相比,这点困难又算得了什么呢。千万别把“安全”当儿戏。

相对易于开发…

仿一个 Twitter App 并不需要花上一年时间,如果你有时间静下心来写代码,也就一两周的事。没必要把练手项目做得像个复杂的大型软件,其实 iOS 更适合做一些简洁的 App 。所以完全可以做一些简单的 App 来练手。

Twitter 只是我推荐的其中一款,毕竟它能用到很多常见的技术。如果这还不够,那看看我接下来推荐的 App,毕竟熟能生巧:

  • Notes app(可以锻炼文本处理,而且还有 iCloud 数据同步)。
  • Where Did I Park?(一款能对标记位置进行存储的应用,可以锻炼定位 API)。
  • Painting App(可以锻炼 Touch 事件和图像 API)。
  • Alarm Clock(可以锻炼本地通知和音频播放)。

无论你选择做哪一款,尽量遵循一种编码规范,让你的代码更整洁,可读性更高。如果有需要,你还可以将它打印在简历上。

做一款 App 不难,所以尽可能多的去使用那些常用的 iOS 特性。不停的打磨它,尽可能的让它变得完美。反复的练习,直到你积累了很多项目经验。

祝你好运!

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg

文章目录
  1. 1. 用到了 UITableView…
  2. 2. 用到了 HTTP API…
  3. 3. 用到了炫酷的 UI 界面…
  4. 4. 用到了持久化和数据安全…
  5. 5. 相对易于开发…