美文网首页iOS 开发 iOS DeveloperiOS
iOS Objective C开发怎么入门?

iOS Objective C开发怎么入门?

作者: Filelife_v | 来源:发表于2016-02-24 12:17 被阅读270次

    [注]本文为Vincent_Jax原创文章

    入门呢,先多了解下iOS开发的知识树。树上有什么大枝大叶,心里有个数最好啦。平时多看看书,多和前辈讨论技术,就get很多经验的。选对了位置,再逐步突破不懂的点,之后开始研究一些有深度的领域,一万小时定理你懂的。

    首先推荐一些进阶的书籍(不好意思哈,看的不多。):

    1.《Objective-C基础教程》

    2.《Objective-C编程之道:iOS设计模式解析》

    3.《Objective-C高级编程(iOS与OSX多线程和内存管理)》

    4.《EffectiveObjective-C》 [机械工业出版社 Effective系列丛书]

    5.《iPhone开发秘籍》Erica Sadun著

    [注:以上除Effective那本之外,4本都是人民邮电出版社 图灵丛书系列的]

    接着,我再大概罗列下一些技术划分哈。

    初级阶段:

    就Objective-C而言:

    1.Foundation框架、Catagory、KVC、KVO、Protocol、Block、引用计数等基本知识有有所掌握。

    2.注意代码规范。

    iOS开发的通用控件而言:

    1.UIView方面相关控件(UILabel、UIImageView、UIButton、UISlider、UISwitch、UIScrollView(TableView、CollectionView、TextView)、UIWebView、UIWindow、UINavigationBar、UITabBar)。

    2.了解UIViewController的生命周期,Navigation的堆栈原理等等。

    3.千万别只用代码写UI或是仅使用Storyboard,把Xib、storyborad搞搞清楚,特别是AutoLayout用好来也很重要,此处补充推荐:Masonry Framework,算是约束方面的语法糖。

    4.NSNotifaication、观察者、代理,都是全局代码事件的必要手段,活用巧用可以进一步解耦代码。

    5.手势。UITapGestureRecognizer、UIPanGestureRecognizer、UILongPressGestureRecognizer、UISwipeGestureRecognizer、UIRotationGestureRecognizer。

    6.屏幕的旋转,不多赘述,这个坑要多走走才过的好。

    7.原声导航地图相关开发,此处不才推荐本人的一篇文章:http://www.jianshu.com/p/72652a93741d

    8.文件管理,Bundle、NSFileManager。

    9.数据存储,UserDefault,KeyChain、NSKeyedArchiver。

    10.ARC(工作一年的人最容易背面试的方向,还望反复揣摩。)

    iOS动画:

    1.UIView动画封装,此处敲黑板UIAnimation,如果有空,可以看看Lottie,可以支持很多更炫的动画效果。不过前提是你们公司有AE设计师。

    2.Controller 相关的TransitionStyle

    3.CAlayer,此处应当敲黑板,因为这部分有很多知识点,面试能够在UI方向上答到,可以加分。

    设计模式:

    这部分内容研究,建议拿一些开源企业级框架进行学习。本人当时是哪BeeFramework上手,Bee框架算是很好的MVC模式学习框架了。XML UI + Signal的View构建方式也挺优秀的。不过可惜的是现在Bee已经不再维护了,所以就拿来学习吧。(另外备注:很多公司也推行MVVM模式代表ReactiveCocoa,建议找工作的小伙子们可以看看。)

    需要了解的常用设计模式:

    1.MVC

    2.代理模式

    3.单例

    4.观察者

    5.工厂模式

    单元测试:

    1.单元测试基础原理

    2.XCTest

    3.Kiwi(此处应当有敲黑板,Kiwi是BDD(行为驱动测试)测试方案。)

    开发技术之外的还包括:

    1.项目版本管理:SVN、Git (Git的GUI,Mac上推荐Tower)

    2.项目包依赖管理:CocoaPods(OC)、SwiftPackage Manager(Swift)

    3.调试各种小技巧。比如断点(条件、全局)、lldb调试基本指令、NSZombieEnabled、

    4.一些基本概念的理解,比如进程、线程、同步、异步、队列、串行、并发。

    中级阶段。

    在这个阶段呢,我们应该更多关注性能和业务方面的优化。

    开发语言方面:

    1.Swift:Objective-C与Swift互调。

    2.JavaScript:使用Objective-C执行JavaScript。可以多熟悉了解JavaScriptCore。三方框架方面推荐WebViewjavaScriptBridge。

    3.C、C++、Objective-C混编。

    iOS方面:

    1.动画上熟悉CAAnimation(CABasicAnimation、CAKeyFrameAnimation、CAAnimationgroup\CATransition)、UIDynamics(UIDynamicAnimator、UIDynamicBehavior)

    2.Runtime:objc_msgSend、Method Swizzling;

    3.正则表达式:NSpredicate、NSRegularExpression。

    4.消息推送机制

    5.组件开发:创建Framework、打包静态库

    6.分清32位和64位编译区别,能够将32位程序迁移到64位(这部分,,,,不强求)。

    多媒体:

    VLC组件使用频率较高,但其中部分不需要的解码库可以适当的剥除以降低库大小,SDWebImage可以细致的去研究他的加载策略缓存策略。CoreAudio、COreGraphics能够调度硬件进行编解码,提升效率多半是Android一时半会达不到的。

    1.视频:MediaPlayer、AVPlayer、VLCPlayer、AVFoundation

    2.图片:CoreGraphics、SDWebImage、CoreImage

    3.音频:CoreAudio

    4.应用外重要的图像处理框架:GPUImage,你如果想进个眼下很火的拍照、短视频相关开发的公司,建议深入研究这个开源库。此处推荐我的Git仓库:https://github.com/filelife

    网络交互:

    此处应该毋庸置疑推荐研究AFNetworking(2.0、3.0)两个版本,先会用,之后开始学着封装抽象。

    1.NSStream

    2.NSURLconnection

    3.NSURLSession

    4.Json解析(model数据接收导致崩溃,多半在Json解析。)

    应用测试:

    还在为应用莫名其妙卡壳而苦恼吗,还在为找不到项目优化点而被产品同批吗?Instrument——你值得拥有。

    1.性能测试:instrument(Timer、Allocation、Leak)

    2.Fabric :上线应用的崩溃、用户操作采集统计平台。一般,你一个人开发,,用不到这个,你就蛮看看吧。

    开发环境与工程框架(个人觉得也是中后期关注比较多的点)

    工程框架

    1.包依赖管理:Cocoapods、SwiftPackageManager、Carthage。如果你为了添加一个依赖库,还在手动从Git上面下载,那么就该注意去使用这些包管理工具了。提高效率很多,并且方便团队开发时,快速构建项目框架。(注:如果你是从ObjectiveC入手,那么推荐你自己尝试推一个Podspec,完成自己的第一个远端Cocoapods仓库。)

    2.持续集成:Jenkins。首先,你先发现了自己在开发过程中对于持续集成的需求,并且发现真的很累...那么此时你就该认真的思考如何通过工具完成这一烦躁的工作了。

    3.数据安全:

    3.1数据加密:Hash(MD5、SHA1、SHA265)、RSA、AES、3DES、Base63.

    3.2HTTPS与SSL:做开发,必须要学会跳过HTTPS授权,iOS也不例外。

    4.打包工具:Jenkins、Command Line Tools、Xctool

    5.用户行为监控,崩溃日志手机:Fabric、Umeng

    开发环境

    1.git:SourceTree、Tower(强烈推荐Tower,速度比ST快多了。)

    2.SVN:Versions、Cornerstone。(讲真Versions比Cornerstone好用。)

    3.开发者账号申请和管理:

    3.1Apple Developer MemberCenter :证书(发布证书、开发证书、推送证书)、设备管理、配置文件管理(不差钱就花99刀买一个开发者账号吧)

    3.2iTurnes Connect:Appstore应用管理、应用上架审核检测、加急审核。

    5.热门技术:

    5.1支付:微信支付、支付宝支付

    5.2分享:微博、微信朋友圈等

    5.3即时通讯:XMPP、VoIP(不知道放这里合不合适哈,做过视频会议,网络电话的人都懂。)

    5.4混合应用开发:ReactNative,此处建议在完成OC学习之后进行,部分公司有需求。

    以上列出的大部分内容来自于日常开发,还有书本阅读,也有部分的内容来自于平时和前辈讨(xia)论(che)时谈到的一些技术点,都会仓鼠心态的将其收入笔记中,闲暇时候整理成知识点再逐个学习了解。

    个人比较相信一万小时原则,多码新鲜的代码多半不会错的,但学习的同时也多调整方向。

    相关文章

      网友评论

        本文标题:iOS Objective C开发怎么入门?

        本文链接:https://www.haomeiwen.com/subject/wuhikttx.html