Jeswang's Blog

盲目跟随还是独立去做,To be or not to be?

LeetCode for iOS 以及开发应用的收获

| Comments

LeetCode for iOS

本来准备找工作要刷 LeetCode,结果刷着刷着就不务正业了,连画图再写程序,给 LeetCode 做个离线的客户端。

目前实现的功能:

  • 离线查看题目
  • 题目排序
  • 搜索题目名称
  • 登录并跟进答题的进度
  • 查看自己提交过的代码(在网页中)
  • 支持 iPad

应用购买链接:https://itunes.apple.com/us/app/leetcode/id874923973

开发一个应用给我带来了什么

从大三那年给 x61 装黑苹果到现在购买这么多苹果的设备,学习 iOS 开发已经是第四个年头。虽然其间折腾了很多其他的东西,但是制作满足自己的需求的 APP 一直是我喜欢做的事情。

我对制作 APP 如此地念念不忘是因为:App Store 是我见过最自由、最国际化的市场,这里是个人开发者的乐园,只要你有想法、产品做得够好,就一定能掘出一桶金来。对于个人开发者的激励和完全自由竞争的市场带来了前所未有的创新,一大批小而美的应用出现在 iOS 和 Mac 平台,它们带着制作者的本色影响甚至改变着它们的使用者。这种人与人之间的交流是前所未有的,通过这小小的应用,我们表达了许多言语无法说明的东西。

虽然在接触了 iOS 开发这么久之后,我并没有成为一名 iOS 专家,但是我仍然认为学习 iOS 开发的过程给我带来了好运,因为在这个过程之中,我学到了太多和写程序有关的知识:

  • 为了实现一个 APP,你不得不学习制作 APP 的每一个环节
  • 制作过一个 APP 之后,你就会开始嫌弃自己写的代码——它们实在太难看了,简直就是用沙子堆里来的小土包,然后你就不得不去学习重构这些代码的方法
  • 制作了几个 APP 之后,你就会开始厌恶一些重复的工作,思考如何重用那些写过的代码,然后你就不得不去学习设计模式相关的代码
  • 应用了一些设计模式之后,你发现自己的代码还是又臭又长,而且有时效率还很低下,然后你就不得不去学习一些更加高级的主题(内存管理、Block的实现的原理之类)以保证自己写出“正确”的代码
  • 知道了高级的主题还不够,你还要不断地去阅读甚至去模仿 Github 上那些优秀的代码,理解它们为什么这么写,最终还有可能找出错误来
  • 最后,你终于写出了一个自己满意的 APP,但是你惊奇地发现有一大把需要学习的内容

制作 APP 除了锻炼了编码能力之外,还给我带来了许多写程序之外的东西:

  • 使用 Google
  • 在 StackOverflow.com 提问甚至回答别人的问题
  • 认识更多志同道合的个人开发者
  • 设计相关的内容,让自己设计出不丑的 APP
  • 开心地拥有了自己的用户

制作一个 APP 给我带来了太多太多,但是我想我并不能说清楚,这些年学习制作 APP,我到底收获了什么,毕竟,有些事情可能只有在亲身经历过了之后,才会明白。

- EOF -

Comments