Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official

iOS APP开发教程【含有Github在线电子书】

 Share


NedK7

Recommended Posts

当前移动开发主要分为安卓开发和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 基础教程》 GitHub在线阅读:https://github.com/viktyz/iosnotebook

Link to post
Link to comment
Share on other sites

 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...