zoukankan      html  css  js  c++  java
  • 【转】iOS开发路线简述

    简单看了下楼主说的很详细,尤其是最后面那个图描述很直观,让想学习ISO开发的程序猿很清晰每个步骤学习的内容,在此收藏下。

    iOS系统以及iPhone的出来都要感谢乔布斯,一个完美主义者,从如此优秀的iOS系统和iPhone就可以看出来。下面就简单介绍一下我iOS开发的感受,也是学习iOS开发的一个体系架构。

    1 iOS开发环境

    1.1 开发环境

    标准的配置是MacOSX+Xcode。

    MacOSX的话首选用苹果电脑,macmini最便宜只要4000多就好了然后自己配一个显示器,macbookpro 也可以,不推荐使用macbookair。还有很多人使用黑苹果或者虚拟机甚至在windows上装一些工具都是不可取的。

    另外官翻版的也可以去买,很便宜就可以买到好机子,官翻版

    Xcode这个开发工具自己继承了iPhoneSDK,所以不用单独下载SDK。调试的模拟器可以从Xcode里面下载不同版本的模拟器。

    1.2 账号 证书 上架 等

    iOS调试真机是需要证书的,所以这个时候需要从申请一个iDP账号,不过仅仅需要调试的话,某宝上有很多卖20几块的证书。应用上传appstore的话有很多种方法,证书分为企业和个人,个人的可以到appstore,企业是不可以的。

    2 Obejct-C语言

    Object-C语言通常写作objective-c或者obj-c,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言, 它能够和C、C++混合编程。OC是一个编译型的语言,通过gcc编译器把object-c代码编译成机器指令。关于基本概念可以参考,十分钟让你明白Objective-C的语法(和Java、C++的对比) 。

    2.1动态特性

    Object-C具备一些动态特性,包括动态类型、动态绑定、动态加载,也就是Object-C在运行时才能知道一些对象的类型以及所调用的方法。

    2.2内存管理

    OC是使用引用计数原则,现在OC引入ARC(自动引用计数原则)。引用计数有几个规则,一是谁创建谁释放,通过alloc、new和copy创建对象, 然后调用release或者autorelease去释放对象,第二是,除了alloc、new和copy之外创建的对象都是autorelease的, 第三谁retain了,谁释放。

    2.3 一些语言特性

    OC首先是只有单一继承,没有多重继承。

    属性访问,@property加上@synthesize使用后能够自动生成setter和getter方法。

    category,中文一般叫做类别,他能够为现有的类提供新的方法,他将类的实现分散到多个不同的文件或框架中,创建对私有方法的前向引用,向对象添加非正式协议。

    block语法,块,他通常代表小段的自包含的代码片段,因此,他们封装为可以并行执行的工作单元额外有用,还可以用于在集合中进行遍历,或者在其他操作 完成时作为回调。块代替传统回调函数的意义有两个:一是他们允许在方法实现的调用中就近写入代码,而且块经常被作为框架中一些方法的参数;二是他们可以访 问本地变量。

    OC中有很多类是以NS开头的,那是cocoa层里面Foundation框架的类库。

    3 iOS开发

    3.1 iOS操作系统简介

    iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。每层都包含很多系统框架,例如著名的UIKit框架就是在cocoa touch。

    3.2 常用的设计模式

    最基础的是MVC模式,就是把项目分为Model、View和Controller三层进行管理。

    常用的还有代理模式,通过协议和block实现。观察者模式的话体现在了KVO和notification上了。target-action模式是OC中 非常常见的对象之间方法调用的方式,一般在和UI打交道的时候处理各种GUI上的事件会利用到这种模式,他通常会有一个target作为消息的接收者。单 例模式,使得单例对象在项目中只会创建一次。工厂模式,是一个类族的概念,很符合敏捷软件开发的开放封闭原则。关于各种设计模式,可以看卡奴达摩的专栏

    3.3 Interface Builder和Storyboard

    一般写iOS的UI有三种方式。xib,Storyboard以及代码创建。

    我之前自学用了一会的xib,之后一直用代码创建,代码更容易区做多语言版本,而且

    xib启动需要事件比用代码直接写慢,xib文件比代码建立UI文件也大。

    具体对比可以看喵神的博客代码手写,xib和StoryBoard间的博弈

    3.4 常用系统框架和第三方库

    UIKit是最常用的框架,主要是用来做UI的。包括视图UIButton、UILabel,控制器UIViewController等,还有一些触摸事件、手势等。

    QuartzCore、CoreAnimation框架是一些绘图、动画的类库。

    第三方库的话,可以查看github上object -c的仓库排名,Search · GitHub 。

    3.5数据存储

    iOS数据存储主要有四种方式。

    NSKeyedArchiver,采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议。归档形式保存数据只能一次性归档保存以及一次性解压,只能针对小量谁,而且数据操作笨拙,即如果想改动数据的某一小部分,需要解压整个数据或者归档整个数据。

    NSUserDefaults,用来保存应用程序设置和属性。

    第三种,Write写入文件。

    第四种,相对前两种更为复杂,但也最好用。SQLite,可以自己封装,也可以使用FMDataBase等第三方封装库,还可以使用系统的CoreData。

    3.6数据通信

    iOS的数据通信有几种方式,应用层的HTTP,以及传输层的封装TCP或者UDP的socket接口,还有就是蓝牙通讯。

    HTTP的网络服务一般可以用post、get或者soap等方式请求数据,可以用系统的NSURL也可以用第三方类库(MKNetWorkKit、AFNetWorking),这两种类库都可以做缓存,数据交换的格式一般有JSon和xml。

    socket可以通过c语言的socket和CoreFoundation框架的CFNetwork实现,也可以用第三方类库asyncsocket。

    蓝牙4.0的话使用的是CoreBluetooth框架。

    3.7多线程编程

    iOS的多线程有NSThread、NSOperation以及GCD。NSThread比其他两个轻量级,但是需要自己管理线程的生命周期,线程同步。 线程同步对数据加锁会有一定的系统开销。operation则不需要关心线程管理,GCD是一个替代NSThread和operation的技术。

    3.8iPad开发

    iPad和iPhone开发是异曲同工,但是不要试图去适配iPad和iPhone,因为他们的UI差别太大。

    3.9其他

    iOS的地图是使用MapKit框架,定位用CoreLocation。

    iOS有一个云端机制iCloud,iOS还有一个推送机制,可以由服务器推送消息到手机应用程序,iOS还可以做本地化。

    iOS有一些内置的传感器可以利用起来编程,比如三轴加速传感器,用来测加速度的,还有陀螺感应器,测角速度,感知移动的。

    关于iOS的相机、相册以及音视频都有相应的类库。

    4 工具

    第一是多人协作的问题,你可以用svn或者git,git是比较流行的,但是大多数的公司还在用svn;

    第二,iOS的数据持久化有很多方案,最高效的就是sqlite,在mac上有很多sqlite的可视化管理工具,我用的是sqlitemanager。

    第三,关于查看模拟器或者真机的沙盒内容,模拟器可以使用SimPholders,真机可以用ifunbox。

    第四,屏幕取色工具,sip。

    第五,另外xcode也可以安装很多辅助工具,例如,格式化xcode代码的ClangFormat,第三方库管理工具CocoaPods,压力测试工具uiautomonkey。

    第六,移动开发有一些常用的平台的,比提供社会化分享、统计分析等的友盟,sharesdk;内测平台fir.im,蒲公英;云测平台testin;广告平台google的admob

    5 书籍 网站推荐

    关于看书,对于某一个东西入门的化,其实不适合看书,或者你想看随便挑一本入门的书就跟着看就好了。

    code4appiOS开发社区 – 开源中国社区cocoachina是国内常用的三大代码库网站,国外我会上版本控制的网站github,并且欢迎关注我的github,coderyi

    这里有一个别人整理的iOS学习资料,

    马上着手开发 iOS 应用程序 (apple官方整理),

    Aufree/trip-to-iOS · GitHub(资料最全) ,

    iOS资源 – Code4App.com ,

    iOS开发60分钟入门 ,

    iOS开发从新手到上架

    6 iOS学习路线图

    最后附赠一张传智播客的iOS学习路线图 ,这一些东西只是iOS开发的冰山一角,哪一东西要做好都要学很多东西,学好最重要的就是你对他的热情,路漫漫其修远兮,吾将上下而求索。

    iOS开发路线简述 - 第1张  | IT江湖

    原文:http://www.itjhwd.com/ioskaiflx/

  • 相关阅读:
    pgspider sqlite mysql docker 镜像
    pgspider docker 镜像
    pgspider基于pg 的高性能数据可视化sql 集群引擎
    diesel rust orm 框架试用
    golang 条件编译
    Performance Profiling Zeebe
    bazel 学习一 简单java 项目运行
    一个好用node http keeplive agnet
    gox 简单灵活的golang 跨平台编译工具
    mailhog 作为smtp server mock工具
  • 原文地址:https://www.cnblogs.com/davygeek/p/4359417.html
Copyright © 2011-2022 走看看