4 个月学习 iOS 开发的经验 (0基础到上架 AppStore)

2016年02月19日 11:52 151 次阅读 来源: 素文宅 作者: 路人甲

文章开头先说下上架的这款 App 吧,赶在春节前收到了 Apple 的审核通过邮件,当时还是挺高兴的,算是对自己4个月学习的肯定,开发这款 App 原因很简单,只是因为自己经常忘记下雨拿伞,期间 UI 设计改了好多次,代码也重写了几次,最后的成品基本满足自己的心里预期,为了赶在春节前上架,有些 Bug 还没有处理,1.1版本目前已经提交, UmbrellaWeather 这款 App 差不多长这样:

我是从去年 9 月下旬开始学习 iOS 开发的,作为一个 0 基础并且英语也不怎么好的人,学习编程首先当然就是兴趣,因为自己已经在工作了,每天都是抽出空闲时间学习,从学习到第一款 App 上架 App Store 差不多4个月时间,这里我给出一些自己的学习过程和经验

从 RAY 的第一个教程开始

我是从 RAY 的第一个开发 APP 的教程开始了我的学习,这个教程的第一个项目很简单,代码非常少,让我对 iOS 开发有了基本的了解和认识,了解 Xcode 的使用,当然里面有些地方当时还不是很能理解,而且本来英语就不怎么好的我来说,看起来还是非常吃力的,在这个过程中,我既锻炼了自己的英语水平,又对 iOS 的开发有了一个基本了解和认识,后面在围绕着一些疑问学习,会起到很好的提高作用.
RAY 官方网站

学习 Swift 语言

有了开发一款 APP 的学习经验,在看 Swift 语言,很多地方都会有豁然开朗的感觉,我感觉这种方式是学习一个新知识最好的过程, Swift 语言建议细读,并且配合 Xcode 的 Playground 全部敲一遍,尽量做到理解,作为 0 基础的我来说,在学习 Swift 语言的时候,很多概念还是有些困惑,不过学习过程就是这样,明白了一个知识点,马上有新的知识点需要了解,就是这样一个循序渐进的过程,在这个阶段我对编程语言的 字符串 变量和常量 集合类型 循环方式 类和结构体 有了基本的认识,必须要说的是, Swift 语言是后面学习经常回头看的内容,因为在后面的学习中,很多不明白的地方,结合当时的项目,马上就能理解其中的含义,毕竟在项目里面的使用才是理解问题的最好方式.
Swift语言中文翻译版
Swift语言苹果英文原版

网络教程

网上免费的 iOS 开发教程还是挺多的,这个阶段我主要是把 iOS 的一些基本框架了解了一下,首先当然是 UIKit 的学习,把系统的基础组件都过了一遍,例如 UIButton UILabel Storyboard 等等内容,第二阶段学习了TableView ScrollView 这两个核心组件的基本使用,还有页面传值的方法 delegate Storyboard
这里再推荐一个国外免费 Swift 学习的网站,基本包括了所有常用组件和 Api.
Hacking with Swift

RAY 的剩余三个开发项目


在有了前面组件和语言的学习,剩余三个项目的学习,就是融汇贯通的过程,因为前面只是学习了 <它是什么?> 这里通过 RAY 的教程了解 <如何巧妙的运用到项目中>, RAY 的 iOS 开发教程都是从简单的实现到巧妙的运用逻辑整理代码的过程,这个过程可以很好的理解复杂逻辑和代码的实现方式和使用方法还有编程的逻辑思维能力.

第一个项目让我对 传值 TableView 有了更深的理解,
第二个项目是对于 定位 SDK 的系统学习还有各种错误的处理方式和思路.
第三项目是网络编程的学习,如何请求数据展现数据等.

这三个教程我做了很多笔记,可以说四个项目的开发学习主要就是让我开始有编程的逻辑思维能力,这都是在学习的时候无形中提高的,这也是 RAY 的开发教程最大的财富所在,当然也大大提高了英语阅读能力,虽然不能说有质的提高,至少是对 iOS 开发这块的词汇有了很深的记忆

开发个人项目

在有了前面几个项目的学习,我对 iOS 开发有了比较系统的了解,这个时候我开始了我的第一款 iOS 的开发,跟着别人学,和自己遇到困难想出解决方法并学习,这两个学习方式还是很大区别的,第一个锻炼自己解决问题的能力并且印象更加深刻,第二个,实践出真知,许多知识点也只有你真正实践过,才更加明白其中的含义.

在开发这款 App 的时候我用的最多的当然是 Google 和苹果的官方文档 ,必须要说的是,查询资料不是查询如何开发,而是在自己想到了点子的情况下,查询代码的实现方式,然后实现,在这个项目中我对 Swift 开发语言有了更深的了解,还有数据持久化储蓄和网络请求这一块.
在实际开发过程中很多前面学习到的模糊概念这里得到修正,可能前面你以为理解了的东西,发现好像不对或者说有点问题,因为只有在实际项目中出现 Bug 或者没有达到预期效果,你才会回头思考这个知识点是不是原来的理解有误区.
在这个项目中,我使用了第三方远程推送,也学习了推送的注册和使用,iOS 的后台机制,Animation 的简单使用,项目的发布过程和内购的实现等等,因为使用的是国内天气 API 的免费服务,每天请求次数是有限制的,为了尽量减少用户不必要的网络请求次数,优化请求次数也下了不少功夫,设计 UI 还简单学习了下 Sketch 这款软件的使用,整个项目最大的进步应该是自学能力的提高吧!

下步计划

在第一款 App 项目的审核阶段,我已经开始了第二款 App 的开发工作,在项目的开发过程中,构思功能并且解决是学习 iOS 最好的方式,在接下来的学习计划中,我准备把斯坦福的公开课视频过一遍,研究学习透几个 Swift 开源项目,这差不多是我后几个月的学习规划.

说说经验

在学习前期,多看一些优秀的开发项目,是学习的最快和最有效的途径, RAY 的这4个教程就起到这个作用,因为它会在教程中一步步告诉你实现的逻辑和方式,对于刚学习编程的人来说很好理解,如果对一些地方的实现方式有些困惑, Xcode 的 Playground 是最好的研究场所,没事多在里面敲敲代码,比什么都强,学习编程并不像其他东西那样你掌握了1在学习2这样一阶一阶学习进步的,很多时候,1可能你还没能理解,在学习3或者4的时候才对1豁然开朗,不要因为某个知识点没搞懂就感觉自己学不来丧失学习热情,很多地方都是了解了面才掌握了点,尽量多用 Google 不要怕看英语,不要忽视了英语的学习,这个也是学习编程必须提高的东西.

学一个新东西不要一开始就设定一个很大的目标,那样可能很容易放弃,设定一个个小目标,比如今天我要搞懂类是什么,明天我要了解下TableView ,这周我要了解UIKit基础组件的使用,这个月我要开发出一个项目,这样更能坚持和持续下去

实践出真知,实践出真知,实践出真知,重要的事情说三遍

本文转载自:http://www.jianshu.com/p/088c1a8c6af8

还可以输入136 讨论区:
评 论