别让双手闲下来,来做一些练手项目吧

  自从我昨天发了 文 ,收到的最多的评论就是:  我应该选择哪些 App 来练手呢?  这个问题很有趣。理想情况下,如果做一款 App 又不是为了练手,那么你可能会选择你熟悉的技术。先找到自己感兴趣的、有能力解决的问题,然后再尝试用最佳实践去解决它。但我完全能想象,作为新开发者,他可能还没准备好去应对从头开发一款 App 所要解决的问题。怎么办呢,我条件反射就是「学做一款 Twitter App

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

  我应该选择哪些 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 特性。不停的打磨它,尽可能的让它变得完美。反复的练习,直到你积累了很多项目经验。

  祝你好运!



标签:  app ui UI