Page tree
Skip to end of metadata
Go to start of metadata

iOS 篇

本内容由 veightz 编写。

下面废话我自己都觉得比较多,简单地理一下。

要学 iOS 的话,首先学好 ObjectiveC。 如果你想走 Swift 路线的话,首先学好 ObjectiveC。 要学好 ObjectiveC 的话,首先学好 C。 C 要学到什么程度呢,我就告诉你 iOS UI 库里的控件对象,全是指针。

不知不觉学习 iOS 开发已经一年多了,想起一开始遇到的种种困难,也不知道自己怎么一路走来。

无线这几年都比较火热,协会里比较专注无线的人并不多,尤其是 iOS。这也从侧面反映了移动开发有一定的入门成本。

基础

说实话,如果同学们没有一点编程经验,或者对编程本身没有太大的概念,我并不建议一开始就上手 iOS 开发。如果是第一次接触编程,当然也是没问题的,只是要做好心理准备,可能会比想象的难。

首先是语言,iOS开发需要使用 ObjectiveC 语言,不知道有没有人听说过 Swift 这门年轻的语言,不可否认 Swift 的确有巨大的魅力和令人期待的未来,无论你是否是一个 Swifter,你都需要很好的掌握 ObjectiveC。

然而 ObjectiveC 的语言相对来说,还是比较独特的。可以这么说,你学会了 C 语言的函数调用,基本能之间看懂市面上80%语言的函数调用,而 ObjectiveC 的函数调用,你可能在一段不短的时间里都看得比较崩溃。如果有一定 OOP 的经验,再稍加探索,这条路就会轻松不少。

环境

一方面是学习环境,由于 iOS 的人并不多,尽管火热,但是经验丰富的 iOS 开发者仍旧不是太多。交流和探索之路会相对比较孤独。国内靠谱的学习网站也不多,大多是国人大牛的博客。系统性的资源网站基本都是英文的,或者直接啃官方文档,再或者是看系统库头文件里面的注释。所以对读英文要有一定的心理准备,并且一开始面对一大堆术语,也有不小的压力。

另一方面是开发环境,iOS 开发入门的第一步开始,不是一个单文件,而是一个简单的小工程。这意味着里面已经有一大堆东西(虽然都各自有意义)在里面了,你可能开始是就茫然不知所措。同时稍一修改你的工程文件,就可能造成你的 App 一运行就崩溃。在学习的一开始,对整个环境的理解比较混沌时,也不太容易找到描述这个问题的一些信息,只是觉得,呀,怎么一运行就挂了,可能加大了排除故障的难度。当然,这也是协会带新人的一个很大原因。 提到这个问题,不得不说下,相比其他方向的学习,你们需要更早的接触 git – 一个代码版本管理软件。它能帮助你管理你代码的一次次修改,就像 Windows 的创建系统还原点。在你无意导致程序崩溃的时候,它可能帮你回滚到你创建的某个点。同时它也能帮你看清,你的一些操作,本质上改变了什么。 git 一开始学习起来很痛苦,一大堆概念不知所以,希望不要急于速成,坚持使用。我也是接触了大半年,才开始有一点头绪。

入门

对语法有一定了解后,可以去网易公开课,找斯坦福 iOS 的教程,有一位白胡子老爷爷讲得很不错,也是国内很多前辈的入门恩师。这个阶段可以接触一些常见的类,UIViewController / UIView / UIScrollView / UIImageView / UITableView。也熟悉一些概念,如 KVO / MVC / Delegate / DataSource。

这个阶段最重要的事情,就是学会用语言表达逻辑后,使用 iOS 提供的类,去展现一些视觉。

这个时候,对 iOS 混沌的世界慢慢开始看得清晰,可能你觉得已经知道怎么去做个简单的 App。

进阶

这个时候,很多好玩的东西可以开始玩起来了。知识体系上,并发异步网络,数据缓存,多线程开发, Runtime, RunLoop,AOP 等。UI 体系上,Core Animation,AutoLayout,Size Class,UICollectionView 等。工具上 lldb,Reveal,chisel 等。反正爽得飞起,等你到了这个阶段,已经完成了 iOS 的入门。

高级

哦,我还在进阶。

Android 篇

本内容由 weiwei 编写。编写时间为 2015 年,可能有些内容已产生变化。

作为一个接触 Android 不过 1 年的菜鸟,实在不能说在这里是想教你们一些什么,更多的是跟你们一起分享吧。

基础

Android 是使用 Java 作为主要编程语言的,也有会用上 C 或者 C++ 写的。我们之所见的 App,其背后都是一行行代码堆叠而成的。如果你没有任何的编程基础,那么我建议你先从 C 语言开始学起,当然你也可以从 Java 开始学起。不过,如果你想打下比较扎实的基础,建议你还是从 C 开始学起。然后在学习 Java,学好了编程语言,你才能走好接下来的路。

环境

前不久爆出的 xcodeghost 事件让 iOS 开发者感觉很蛋疼(楼上的 veightz 学长,你疼吗?),原因就是苹果公司没有大陆的服务器,所以访问 iOS 的开发页面比较慢。当然 iOS 开发者无疑比 Android 开发者要幸福,起码他们面对的不是“您访问的页面不存在”。由于一些众所周知的原因,Google 公司的部分服务不能在大陆访问,也就导致了这么一个现象——20% 的初学者被挡在了墙里,并且选择了放弃。所以,翻墙是你成为一名 Android 开发者,安全者首先要学会的事情。

其次就是开发 Android 所需要的庞大的编程环境,Android Studio 是 Google 在开发方面的“亲儿子”,完整一点的 Android SDK 基本都在二十个G以上,如果你打算完全通过 VPN 来下载的话,一晚上就可以了。在我开发的时候,确实也碰到过很多坑,比如包重复导入,最低适配版本,权限控制等等。这些坑你们自己肯定都得一个一个踩过来,所以如果碰到解决不了的问题,不要烦躁,出去走一圈,说不定回来就有解决思路了呢。

想要搭建 Android 开发环境,首先要搭建 Java 的编程环境,包括 JDK,JRE。至于学习工具方面,我会在后面具体说。

学习途径

网络视频教学网站,比如慕课网,极客学院,网易云课堂等等。有系列的,也有专题的。 比较第一种,我更推荐第二种——看书。毕竟看人家的视频,是人家的思想,看书你就会有自己的思考。具体推荐书就不推荐了,不过人民邮电出版社,机械工业出版社,图灵图书,华章图书系列都不错,不光光实在 Android,在 IT 方面,这些出版社出版的都不错。

入门

看完 Java 之后,你基本可以开始编写 Android 了。 首先,Android 的四大组件要知道,Activity, Broadcast Receiver, Content Provider, Service。这是最最基本的东西,一般来说,刚刚开始写,用的最多的是前两个。 其次,Android 的四种基本布局,LinearLayout, RelativeLayout, FrameLayout, TableLayout。以及一些基本的控件,Button, TextView, EditView等等。对这些的理解运用决定了你的 APP 是否好看。 有了上面的两个点,你就可以写出一个最最基本的 APP 了。

进阶

开始引用第三方库,当然,你要看懂简单的第三方库,如果只会导入,却看不懂,那你就发挥不出一个优秀的第三方库的功能。 Android 的数据库——SQLite,是一款轻型的数据库,更适合性能较低的移动端。语法还是一般的 SQL 语法,有两种不同的方法进行查找。 还有很多我至今都没有玩过的技巧。 

高级

楼上的都是进阶,我就更不用说了。


  • No labels