苹果外围app;零基础要学习多久?

如何零基础学开发,一个月做出被苹果推荐的App?
如何零基础学开发,一个月做出被苹果推荐的App?
作者简介:韩重赞,独立开发者。零基础学习开发,用 4 个月的时间制作出「0528」「恋人清单」「开垦世界」这 3 款应用。其中,「恋人清单」曾被 App Store 首页推荐。前段时间,我在 AppSo(微信号 appsolution) 分享了自己独立开发的一款游戏——「开垦世界」。在文章留言中,发现有很多人惊讶我为何能 4 个月可以做出 3 款不错的 app。除此之外,还收到许多关于「零基础学开发经验分享」的请求。在被大家的学习热情感动之余,我写了这篇文章来分享我的开发学习经验。入门前你需要知道这些在分享之前,我列出了学开发的一些先决条件,估计也是很多人想问的问题:Q1:真是零基础学开发,而不是零基础学代码?很多人认为,零基础学代码,很可能是之前有学过或做过其他领域的开发,如 PC 端开发、后台开发,现在来重新学习移动端开发。如果你之前没接触开发,也没关系。本文是针对的是零基础,完全无开发经验的人写的。Q2: 我现在的专业/职业,跟程序员没任何关系会有影响么?说说我自己吧,我的专业是工业设计,职业是 UI 设计转产品。你说和程序员有关系么?好像有那么点,至少我懂得什么东西实现不了,什么东西难实现,什么东西容易实现。而你可能是运营专员,可能是银行柜员,也可能是卖菜的。学代码这事,打个比方就是我是一个用过冰箱的,你是一个没用过冰箱的,现在都要去造一个冰箱。不管是那种情况,我们彼此之前的路途相差并不远。Q3: 英文基础不好学得来代码么?还是说我自己,我高中英语常常全班倒数,大学英语没超过 65 分,英语四级刚过及格线,六级呵呵。所以你觉得呢?Q4: 数学基础重要么?我高中时数学算好的,大学因为是工业设计,只上过一学期的高数。其实在大部分情况下,学代码只要有初中级别的数学知识就好了。Q5: 学代码是更像学英语还是学数学?这个也是我没学代码前,一直萦绕在心头的问题。现在我的感觉是,一开始你会觉得像在学英语,后来会觉得像在学数学。写代码很多情况有点类似于做数学证明题。Q6: 需要哪些硬件设备?学 iOS 开发,一台 Mac 和一部 iPhone 真的是硬性条件,没办法(啥,你说黑苹果配 iPod touch?我觉得认真点还是算了吧)。学 Android 要求会低一点,一台普通 PC 和一部 Android 机就可。Q7: 需要会科学上网,会用 Google 么?我家里没搭梯子,一直用的国内某搜索引擎。如果你喜欢搭梯子和看英文文档,也是极好的。不喜欢也没什么可耻的,能找到知识,学到知识,会用知识才是本质。Q8:做 iOS 是学 Swift 好呢,还是 Object-C?有很多人说,Swift 强势来袭,没必要学 OC 了。我也在工作的时候曾花了几个晚上,学过一点 Swift。不得不说,Swift 的程序逻辑真的很人性化,很简洁,很优雅。但是,现在学习的话为时尚早,不论是教学视频、demo 例子,还是疑难解答都少的可怜。很多时候,你想要一个效果都找不到资源来做。而 OC 的话,已经非常成熟,从小白到高手之间的所有资源,网上都找得到。Q9: 需要看什么书,有什么教学网站推荐,甚至是相关学习 app?最后这部分,估计是大部分人最想知道的。书籍:初学者可以先看看《Objective-C 基础教程 第 2 版》这本书,我当时看的是电子版,上下班时在地铁上用手机看。看了几天,大概到书一半内容的时候就云里雾里,完全看不下去了。我尝试过从头开始看,还是不行。但是没关系,这很正常,你只要对 OC 这门语言有一定印象就行。就像一个冰箱,你知道它大概多大、多重,有什么形状等信息就好了。教学网站:我只看过极客学院和慕课网的,里面的教学视频良莠不齐。我看过几个 OC 入门系列。每个视频的时间都不是很长,大概 10 分钟到 30 分钟,照着里面的步骤,依样画葫芦做下来就好了。一开始很简单,后来的比较难,学完一遍就忘了,自己完全不知道怎么写。但是没关系,这也很正常。你只要对 Xcode 这个工具有一定的印象就行了。就像一个冰箱,你知道它需要用电,可以冷藏,可以冷冻啥的这些信息就好了。论坛和资源:GitHub 是程序员们的乐园,但小白看一下就好了,你可能很久以后才会真正用到;CocoaChina 是不错的论坛,小白也可以看看,以后有问题可以去这里;Code4App 上有很多 demo 例子,入门之后做一些好的效果,可以去这里看看。但一定要切记,真正动手做东西才是成长最快的方式,看书、看视频、逛论坛都只是辅助而已。看到这里,如果你觉得自己有这些条件和觉悟,那就可以继续接着看,我做第一个 app 的经历。我的第一款 App 开发经验注:下面的内容会涉及到一些 iOS 的开发术语,如果你没有接触过 iOS 开发,可能会看不懂,我尽量用最简单的话来说明。经验一:不要选择一个超出能力范围太大的 app 来做,先做一个技术含量最低的产品练练手,增长自信心。2016 年的 6 月 16 日,我下定决心开始我的独立开发之路。当时,虽然自己在过年前后看过一本入门的书和一些教学视频。但小半年下来,我已经忘得一干二净,甚至连 Xcode 的打开新建流程,还是找了之前的网页书签重新练了一遍。我知道以我那时的水平,做个拍照 app 简直异想天开,估计连记事 app 也够呛。我又急于做一个成品出来,这个成品不能是烂大街的计算器、天气预报这类,没有发挥余地的 app。所以,这个成品必须对技术要求很低,可以用其他比如创意或设计来弥补。看着自己手机里上百个 app,突然,我看到了一款符合目标的文字冒险游戏—— Lifeline(生命线)。如果剔除掉 Lifeline 的一切辅助功能,如推送、模式转换、语言更改等,它的核心技术点其实很简单,就是一个显示文字的视图和两个增加文字的按钮。所以,我只要实现「点击一个按钮,让视图加一行字」这个功能,基本上就可以做出一款像 Lifeline 一样的 app 了。(这是我当时真实的想法,后来发现核心技术远远不止这些,只能说幸亏当时这么单纯,不然就不可能一步步做下去了。)经验二:一切以用户体验为中心,以目标产品为大方向。一步步从易到难解决问题,各个击破。沉迷于技术研究或设计细节只会误入歧途。确定好产品方向之后,我开始制作 demo。打开 Xcode,根据网上教程往 Storyboard(可以往里面拖各种控件的可视化工具,对新手很友好)上拖了一个文本视图和一个按钮。我先在这个文本视图里打上一行字,如「苟利国家生死以」。接着要做的事就是,点这个按钮让文本视图增加第二行字「岂因祸福避趋之」。我的直觉告诉我,这件事应该分为两个步骤:先学会如何点一个按钮触发一个效果再学会做一个效果,让文本视图加一行字于是,我在某搜索引擎上搜索「iOS 如何点击按钮触发一个事件」,点开了几个搜索结果,找到一个看起来挺靠谱的教程,就照着做。同理,我又把加文字的功能学会了。很快在这个视图里,就出现了两行字「苟利国家生死以」、「岂因祸福避趋之」。我每次点一下按钮,「岂因祸福避趋之」就会出现。但是,我发现了一个问题:每行字挨得太近了。我很聪明地在「岂因祸福避趋之」前面加了两个回车符号,看起来就好多了。在欣喜之余,我又发现一个问题:当我按钮点得多了,新增的「岂因祸福避趋之」会超出文本视图区域。难道让用户每次点一下按钮,然后手动滑上去么(太蠢了)?我回头看了一看 Lifeline,发现他会把新增的文字顶上来,这样,就可以看到最下面的那句话了。我又去网上搜教程,很快我就知道了让文本自动顶上来的方法。经验三:做好 demo、设计稿、其他素材的准备,让你在学习开发的过程中没有后顾之忧,有万事俱备只欠东风之感。就这样,我根据心里想的产品原型方向,一步步完善这个 demo。每当我遇到一个问题,就去找资料搜教程。解决完之后无比兴奋,但很快又会陷入新的难题当中。在如此循环 N 次之后,终于完成了一款小明上学被车撞的超简单文字冒险游戏。在有了这样一个 demo 的基础上,我相信,要做出一个像 Lifeline 一样的游戏只是时间问题了。所以,我开始放心地设计 UI 和编写故事,花了大约 4 天时间,经历了反复修改设计稿和小说情节的痛苦之后,一套 UI 和一纸故事文档已准备完毕。经验四:一个好的老师是成功的一半,但不要一味的靠别人指点来解决问题,做伸手党只会让你毫无进步。在接下来没日没夜的十几天时间里,我遭遇了一个个更高层级的技术挑战:如何使用 tableView如何控制剧情的显示如何保存数据到本地如何删除数据如何加背景音和点击音效如何加 GIF如何打包并提交 app在此期间,我也数次遇到寻遍各种资料,也找不到解决方法的情况。但幸运的是,我的一个程序员朋友每次都能出手解决我的问题,并细心告知我其中的原理。就像七龙珠里的设定一样,当赛亚人濒死时如果有幸(比如吃仙豆)死里逃生,就会成长很多。如果没有这位朋友,我可能已经死了不知多少回了。就这样,2016 年 7 月 12 日成功上线了我的第一款产品——「0528」。从 6 月 16 号正式走向独立开发的道路,到完成这款游戏,总共用了不到一个月的时间。在这篇文章中,我回顾了自己从零开始学开发,以及第一次独立开发产品的所有经验。也希望自己的经验,能对想要零基础学开发的朋友提供帮助。记住,真正动手做东西才是成长最快的方式。本文由让手机更好用的 AppSo 原创出品,关注微信号 appsolution,回复「开垦世界」获取本文作者韩重赞最新开发的游戏和背后的理念故事。默默地打开了 Human Resource Machine。
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
百家号 最近更新:
简介: 让智能手机更好用的秘密
作者最新文章4 个月学习 iOS 开发的经验 (0基础到上架 AppStore)
稿源:简书
文章开头先说下上架的这款 App 吧,赶在春节前收到了 Apple 的审核通过邮件,当时还是挺高兴的,算是对自己4个月学习的肯定,开发这款 App 原因很简单,只是因为自己经常忘记下雨拿伞,期间 UI 设计改了好多次,代码也重写了几次,最后的成品基本满足自己的心里预期,为了赶在春节前上架,有些 Bug 还没有处理,1.1版本目前已经提交, UmbrellaWeather 这款 App 差不多长这样:
我是从去年 9 月下旬开始学习 iOS 开发的,作为一个 0 基础并且英语也不怎么好的人,学习编程首先当然就是兴趣,因为自己已经在工作了,每天都是抽出空闲时间学习,从学习到第一款 App 上架 App Store 差不多4个月时间,这里我给出一些自己的学习过程和经验
从 RAY 的第一个教程开始&
我是从 RAY 的第一个开发 APP 的教程开始了我的学习,这个教程的第一个项目很简单,代码非常少,让我对 iOS 开发有了基本的了解和认识,了解 Xcode 的使用,当然里面有些地方当时还不是很能理解,而且本来英语就不怎么好的我来说,看起来还是非常吃力的,在这个过程中,我既锻炼了自己的英语水平,又对 iOS 的开发有了一个基本了解和认识,后面在围绕着一些疑问学习,会起到很好的提高作用.
学习 Swift 语言
有了开发一款 APP 的学习经验,在看 Swift 语言,很多地方都会有豁然开朗的感觉,我感觉这种方式是学习一个新知识最好的过程, Swift 语言建议细读,并且配合 Xcode 的 Playground 全部敲一遍,尽量做到理解,作为 0 基础的我来说,在学习 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基础组件的使用,这个月我要开发出一个项目,这样更能坚持和持续下去
实践出真知,实践出真知,实践出真知,重要的事情说三遍
有好的文章希望站长之家帮助分享推广,猛戳这里
本网页浏览已超过3分钟,点击关闭或灰色背景,即可回到网页

我要回帖

 

随机推荐