跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

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


NedK7

推荐的帖子

当前移动开发主要分为安卓开发和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

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...