当前移动开发主要分为安卓开发和iOS开发,对于想学习移动端开发的人来说,两者都是不错的选择。简单对比下两者的区别,安卓的app主要分布在各种厂商的应用商店,如华为,小米的应用商店,iOS的app集中在苹果的app store,苹果对于app的审核周期更长一些。安卓开发主要使用Java语言,近年也有app采用Kotlin开发。iOS的app采用Objective-C开发,近年苹果在推广Swift语言。安卓系统可以由厂商做一些定制, iOS系统是闭源的操作系统,苹果对于iOS的app审核比较严格一些。安卓开发可以在Windows或者mac平台开发,iOS的开发环境必须使用mac平台搭建。本篇文章主要介绍iOS开发入门,帮助想学习iOS开发的人更有效率地学习。

一 软件,硬件准备
学习iOS开发需要一台mac电脑,安装Xcode开发软件。至于苹果手机,如果有的话更好,使用模拟器也可以完成大部分的开发工作,除了推送,扫码等依赖真机的情况。

二 计算机基础知识
你至少需要熟悉或者了解一门编程,比如C++,java等。在学习技术的过程中,无论是前端,移动端,还是服务端,编程语言是基础。比较流行的编程语言C++或者java是要学习的,当你有编程语言基础的时候,再学习Objective-C或者Swift会很容易上手。不建议你的第一门编程语言是Objective-C或者Swift,因为很多资料是比较老的,容易误导新手。当然,除了编程语言基础,你还可以了解网络相关知识,图片、音视频相关知识等。如果你着急入门iOS开发,最简单的就是先掌握一门编程语言,其他的知识也可以后面边用边学。

三 Objective-C和Swift如何选
早年的iOS开发全部采用Objective-C,2014年,苹果推出新的编程Swift,打算用它取代Objective-C。多年过去了,已经有些app采用纯Swift开发, 但仍然有很多app采用纯Objective-C开发,或者两种编程语言混编。这给开发者带来一个问题,学习iOS究竟是选择Objective-C还是Swift呢?如果是个人开发者,想学习iOS开发或者自己做一个app上架,建议学习使用Swift,毕竟Swift是苹果力推的编程语言,今后也是iOS开发的趋势。如果你是为了求职而学习iOS开发,学习使用Objective-C依然是可取的,现在很多互联网大厂的app依然是Objective-C开发或者混合开发。先选择一门编程语言,学习它的基础知识,进行iOS开发入门,等到了解iOS开发之后,然后再学另外一门编程语言,这时的学习效率是很高的, 因为不管是Objective-C还是Swift,他们都使用的同样的iOS的api,只不过语法不同而已。编程语言不是学习技术的障碍,对于一个有几年开发经验的工程师而言,快速入门一种编程语言是基本素养。

四 iOS开发环境搭建
熟悉了Objective-C或者Swift之后,接下来可以进行iOS开发入门了。首先你要搭建开发环境,搭建iOS开发环境稍微有点麻烦,这里推荐一篇文章,按照文章的内容就可以搭建出来。
搭建iOS开发环境

五 iOS开发需要学习什么
a.了解MVC模型
认识Model,View,Controller他们的作用,这点很重要,在写任何一个页面的时候,你可能都会用到它
b.View相关的控件
也就是UIKit里面的各种UI组件,可以先学一些最常见的,UILabel,UIButton,UIImageView,UITableView,UIScrollView,UIAlertController,UISwitch等。认识这些控件后,需要学习iOS的UI布局,frame布局,autolayout布局等,学会把这些控件组合起来形成自己想要的UI样式
c.ViewController的生命周期viewDidLoad,viewWillAppear,viewDidAppear,viewWillDisappear,viewDidDisappear等,了解他们的调用时机,以及他们执行的工作
d.事件响应机制
iOS的事件采用事件链,了解事件是如何传递和响应的,这有助于你写好页面的交互用于响应用户点击、长按、拖动等。
e.JSON数据格式
了解JSON数据是如何构造的,它有哪些规范,然后是要会把JSON反序列化为一个实例对象,或者反过来,把一个实例对象序列化为JSON
f. 数据持久化
需要掌握NSUserDefaults的用法,用来存储和读取数据,如果数据量比较大的情况,可以学习iOS的数据库相关的第三方库,比如FMD,Realm等
g.多媒体
在iOS开发中,可能需要用到图片,音频,视频等相关功能,如何下载和显示图片,可以学习SDWebImage的使用,音视频相关如果有用到,也可以在网上找一些开源库学习
h.网络
一些app可能仅仅在本机运行,不需要和远端的服务器交互,但是大多app还是需要服务端参与,所以网络请求相关的知识也是必备的。需要学习NSURLSession发送网络请求,解析JSON数据,然后反序列化。也可以学习第三方库AFNetWorking,它封装了系统的API,使用它发送网络请求,解析网络数据是非常方便的。
i.动画
动画让APP的交互更加炫酷,需要学习UIView所支持的各种动画,比如frame动画等
j.多线程
在较为复杂的app中,多线程是必备的操作,比如在网络请求中需要开启子线程来发送网络请求或者解析数据,然后回到主线程渲染UI,多线程相关的知识可以学习GCD
k.调试
在开发app的过程中,不可避免会出现一些bug,基本的Xcode调试功能就派上用场了,借助于Xcode提供的调试工具,可以完成bug修复
l.开发者账号
如果你的APP想上架app store,那么你需要购买苹果的开发者账号,用于上传你app应用
m. 网络抓包
在和服务端交互时,我们需要查看数据是否正确,这时需要使用charles工具,可以在官网下载,具体使用方法可以参考这篇文章
charle抓包配置
n.CocoaPods
它是iOS开发的依赖管理工具,在开发app的过程中,会用到很多成熟的第三方库,比如上面提到的AFNetworking,SDWebImage等,这些库可以通过CocoaPods管理
o.webView
当前比较流行的h5渲染组件是WKWebview,了解iOS开发中如何使用h5页面,并且和h5进行交互,许多app采用的是原生Native开发和h5混合的模式

iOS开发书籍推荐
《Objective-C 基础教程》

iOS开发文档推荐
Objective-C官方文档
About Objective-C

Swift官方文档
Swift文档

UIKit官方文档
UIKit

iOS开发视频推荐
斯坦福大学iOS开发视频

以上是我总结的iOS开发需要掌握的一些内容,比较偏基础学习,绝大部分内容都是实际开发常用的,因此需要重点学习。随着技术的不断发展,iOS开发也跟随着在演化,近年来跨端技术蓬勃发展,以Weex,RN,Flutter等为代表的框架也被很多app采用,在熟悉了iOS开发之后,再去学习这些内容更佳。在iOS开发技术相对成熟的今天,用户体验依然是比较重要的话题,在熟悉iOS开发之后,可以去了解iOS的app如何监控,埋点,做性能优化等,这里面有很多内容,可以逐步了解。

iOS开发入门学习路线相关推荐

  1. 0811 iOS开发完整学习路线

    1.iOS开发需要学习哪些内容? 2.开发步骤 3.框架 为了方便开发者开发出强大的功能,苹果提供了各种各样的框架 [1]UIKit:创建和管理应用程序的用户界面 [2]QuartzCore:提供动画 ...

  2. IOS开发入门之Xcode使用教程详细讲解(全)

    摘要:本次的IOS开发入门学习中,Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac ...

  3. 游戏开发完整学习路线之美

    游戏开发完整学习路线(各个版本都有) 转载自http://www.cnblogs.com/majianchao/p/6523455.html 在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个 ...

  4. python速成要多久2019-8-28_2019最全Python入门学习路线,不是我吹,绝对是最全

    近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学 ...

  5. 人工智能新手入门学习路线!附学习资源合集

    有段时间没跟大家分享编程资源福利了!今天为大家整理了人工智能新手入门学习路线,同时附700分钟的学习资源合集,相信这套福利可以帮你顺利入行AI!文末领取全部资料. 一.AI基础好课学习资料整理(约31 ...

  6. 自学python推荐书籍2019-2019最全Python入门学习路线,不是我吹,绝对是最全

    近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学 ...

  7. 自学python推荐书籍2019-2019最全Python入门学习路线,绝

    近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学 ...

  8. 2019最全Python入门学习路线,绝对是最全

    近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学 ...

  9. IOS开发入门之二——第一个App

    如果你对怎么开始IOS开发都不懂的话,请看点下面的链接,先学习关于IOS开发环境的配置以及Swift语言入门: IOS开发入门之一--Swift语言基础     本章将教大家创建一个标准的苹果手机应用 ...

  10. iOS开发入门——项目创建

    iOS开发入门--项目创建 1.新建项目 2.项目模版 3.项目配置 配置好之后点下一步就好.... 4.确定存储位置 5.启动模拟器 这就是第一个空白项目的创建过程,后面将持续更新iOS开发学习经历 ...

最新文章

  1. c程序封装linux,Linux系统使用C语言封装线程读写锁
  2. vmware esxi 5.1 开启嵌套虚拟化
  3. DRF_APIView之认证、授权配置
  4. USACO翻译:USACO 2012 JAN三题(3)
  5. 文献学习(part19)--Graph Connectivity In Sparse Subspace Clustering
  6. Android版:验证手机号码的正则表达式 (转)
  7. 英语面试功略:英语口语突击法
  8. mysql datetime默认时间_Mysql中datetime默认值问题
  9. 种草电商怎么做,我助你从0到1搭建种草商城
  10. 三向振动台的计算机辅助测试实验分析原因,振动试验原理及试验考虑的条件
  11. matlab分析地形,matlab绘制地形图
  12. 产品数据管理系统框架与信息安全
  13. python制作搜索工具,深挖电脑里的小九九
  14. 数据同步工具Sqoop
  15. 时间、延迟及延缓操作
  16. java uri用法_javaurl类的用法
  17. 最优化方法:八、多目标优化
  18. BUUCTF:[SWPU2019]神奇的二维码
  19. 设计模式(单一职责原则)
  20. Java基础 基础数据类型

热门文章

  1. 北斗卫星定位系统原理
  2. 动态网站开发技术学习2:VS 2010制作作第一个简单示例网站
  3. mysql万能密码_万能密码:‘or 1=1-- 实战SQL注入,秒破后台
  4. 海外RPA企业盘点:谁是领导者,谁是挑战者?
  5. iOS 知名公司资讯汇集~招聘内推
  6. 微软私有云服务器,微软发布私有云解决方案及数据平台
  7. ExpandableListView 的使用
  8. PSP游戏下载地址大全
  9. SitePoint / Flippa Hack Day:入侵我们的第一个物联网项目
  10. 【软件开发规范七】《Android UI设计规范》