文本针对想做小我开发者讲述若何从头至尾完成一款App(次要是ios平台)的开发造造,同时假设有一些伴侣想领会App开发是怎么一回事,事实是怎么样的一过程,也同样合适。费话不说,我精简的介绍下我的开发过程:
一、针对手艺人员
假设你有C语的根底那更好,没有也没有关系,只需要兴致加恒持。iOS App根底语言为Objective-C有手艺根底的同窗,能够花上一两周的时间往进修掌握它;在那个根底长进一步进修苹果的Cocoa Touch开发框架,那是整个iOS四层框架的最顶层了。iOS四层框架从底层到顶层分为 Core OS, Core Service, Media和Cocoa Touch。一般情状开发者掌握Core Service, Media和Cocoa Touch那三层的手艺就能够应对常规的开发工做。 跟着进修和工做的深进能够进一步进修更底层的内容。当然在你的开发使命中有可能也会用到底动的手艺。别的iOS差别版本新的手艺特征也需要掌握。我不做深进的手艺议论,但给出每层的手艺框架构成及iOS更新版本的手艺特征供列位有兴致的同窗做为进修的手艺脉络:
Core OS层
Sytem
系统层包罗内核情况,驱动及操做系统层unix接口。内核以mach为根底,它负责操做系统的各个方面,包罗治理系统的虚拟内存,线程,文件系统,收集以及历程间通信。那一层包罗的驱动是系统硬件和系统框架的接口。出于平安方面考虑,内核和驱动只充许少数系统框架和利用法式拜候
科学运算框架
Accelerate.framework
附件框架
ExternalAccessory.framework
撑持ios设备与其它设备停止通信, 30针基座接口和设备相连,也能够通过蓝牙毗连,通过external accessory框架,能够获取设备并初始化一个通信会话,然后能够使设备撑持的号令间接对其停止操做
数据平安框架
Security.framework
用于包管利用法式所治理的数据的平安,该框架供给的接口可用于治理证书,公钥,私钥以及相信战略。它撑持生成加密的平安伪随机数。同时也撑持对证书和keychnia密钥停止保留,是用户灵敏数据的平安创库。
核心蓝牙框架
CoreBluetooth.framework
容许开发人员停止交互专门与蓝牙低能量附件(le)。通过oc接口容许您扫描le的配件,毗连和断开,阅读和写办事的属性,注册办事和属性更改通知,以及更多。
通用平安办事框架
Gss.framework
iOS利用法式供给了一个平安相关的办事原则。在IETF RFC2743 和RFC 4401 指定那个框架的根本接口。除了供给原则接口,ios包罗增加一些治理不指定的原则,但许多利用法式所需要的根据。
陀螺仪框架
CoreMotion.framework
包罗拜候加速计以及陀螺仪的数据接口。
Core Service 层
Core Services在Core OS根底上供给了更为丰富的功用, 它包罗了Foundation.Framework和Core Foundation.Framework, 之所以喊Foundation ,就是因为它供给了一系列处置字串,摆列,组合,日历,时间等等的根本功用。Foundation是属于Objective-C的API,Core Fundation是属于C的API。别的Core servieces还供给了其他的功用,好比:
Security, Core Location, SQLite, 和Address Book. 此中Security是用来处置认证,密码治理,按平安性治理的; Core Location是用来处置GPS定位的;SQLLite是轻量级的数据库,而AddressBook则用来处置德律风薄材料的。下面是详细介绍:
Core Foundation框架
CoreFoundation.framework
c语言接口,它们为ios利用法式供给根本数据治理和办事功用。
Foundation框架
Foundation.framework
利用Objective-C封拆CoreFoundation框架的许多功用
快速查看框架(预览未知的文件内容)
QuickLook.framework
利用法式能够通过该框架预览无法间接撑持查看的文件内容。假设利用法式从收集下载文件或者需要处置来源未知的文件,则十分合适利用此框架。因为应该法式只要在获得文件后,挪用框架供给的视图掌握器就能够间接在界面中展现文件内容;
商铺框架
StoreKit.framework
内购框架
视频框架
CoreMedia.framework
供给AVFoundation框架利用的底层媒体类型,只要少数需要对音频或视频创建及展现停止切确掌握的利用法式才会涉及该框架。
CoreData 框架
CoreData.framework
一种治理模子-视图-掌握器利用法式数据模子的手艺,它适用于数据模子已经高度构造化的利用法式。通过此框架,您再也不需要通过编程定义数据构造,而是通过xcode供给的图形东西构造一份代表数据模子的图表。在法式运行的时候,core data框架就会创建并治理数据模子的实例,同时还对外供给数据模子拜候接口。
德律风信息框架
CoreTelephony.framewok
此框架为拜候具有蜂窝无线的设备上的德律风信息供给接口,利用法式能够通过它获取用户蜂窝无线办事的供给商信息。
收集办事框架
SystemConfiguration.framework
可用于确定设备的收集设置装备摆设。您可利用该框架揣度wifi或蜂窝毗连能否正在利用中,也能够用于揣度某个主机办事能否可用。
收集毗连框架
CFNetwork.framework
一组高性能c语言接口,它们为利用收集协议供给面向对象笼统。通过那些笼统,您能够对协议栈停止更精巧的掌握,并且能够利用诸如BSD Socket 类底层构造。您也能够通过该框架简化诸如与ftp或主机解析那类使命。
GPS框架
CoreLocation.framework
定位框架:gps,蜂窝基站或wifi信号。
Mobile Core Service 框架
MobileCoreServices.framework
定义同一类型标识符利用的底层类型
日历框架
EventKit.framework
拜候用户设备的日历事务供给接口。能够拜候用户日历中现有事务,能够增加新事务,日历事务能够闹铃,能够设置装备摆设激活规则。
地址本框架
AddressBook.framework
撑持编程拜候存储于用户设备中的联络人信息。假设利用法式利用到联络人信息,则可通过该框架拜候并修改用户联络人数据库的笔录。
Media 层
好像其名,Media层供给了图片,音乐,影片等多媒体功用。图像分为2D图像和3D图像, 前者由Quartz2D来撑持,后者则是用OpenglES.与音乐对应的模组是Core Audio和OpenAL, Media Player 实现了影片的播放, 而最初还供给了Core Animation来对强大动画的撑持。详细介绍如下:
资产框架
AssetsLibrary.framework
该框架供给一个查询界面,您能够通过它查找用户照片和数据。通过利用该框架,您能够拜候photos治理的资产,包罗用户保留的相册以及导进到设备中的图片或视频。您能够将照片或视频保留到用户相册。
图形框架
CoreGraphics.framework
包罗Quartz 2D绘图API接口,Quartz 是Mac OS X 系统利用的向量绘图引擎,它撑持基于途径绘图,搞锯齿,渐变,图片,颜色,坐标空间转换,pdf文件创建,展现息争析。固然api基于c,但是它利用基于对象的笼统以表达根本绘图对象。
QuartzCore.framework
包罗Core Animation接口, Core Animation 是高级动画造造和混合手艺,它利用颠末优化的衬着途径实现冗杂的动画和视觉效果。它供给高级objective-c接口可对动画效果停止设置装备摆设。 然后在设备硬件中停止衬着,以进步性能。 Core Animation框架被整合到ios社会多部门(uikit 的 uiview) 能够为多种系统行为供给动画效果。
OpenGLES.framework
OperGL es 供给东西可用于绘造2d 3d内容。基于 c, 在ios5中供给了oc的封拆glkit
CoreText.framework
简单高效的c接口,对文本停止规划,字体处置。
ImageIO.framework
用于导进导出图像数据及图像元数据,该框架建构于CoreGraphics数据类型和函数之上,可以撑持ios上所有原则图像类型。
音频框架
MediaPlayer.framework
利用法式播放视频和音频内容供给高级撑持。 能够利用原则系统界面播放视频。ios3.0增加了对拜候用户itunes库的撑持。因而,您能够利用该框架播放音,播放列表,搜索歌曲向用户展现姐体拔取界面。
AVFoundation.framework
oc类用于播放音频内容。能够是文件或内存中的音频数据。能够同时播放多个声音。
OpenAL.framework
方位音频的跨平台原则;游戏或有方位音频输出的利用中实现高性能,操行的音频。
CoreAudio.framework
AudioToolbox.framework
AudioUniT.framework
c语言接口,可用于操做立体声音叔。通过core audio 框架,您能够在利用中生成,录造,混合或播放音频,也能够拜候设备的震动功用。
视频框架
MediaPlayer.framework
播放视频,音频供给高级撑持;有原则系统界面播放视频;ios3.0增加了对拜候用户itunes库的撑持。
CoreVideo.framework
为core media 供给缓存和缓存池的撑持。 大大都利用法式都不该该间接利用该框架。
CoreMedia.framework (Core Services) 属于办事层
对较高极框架利用的底层类型停止描述,同时也供给一些底层接口,它们用于对媒体停止处置。
MIDI 框架
CoreMIDI.framework
IOS4.2 推出,供给了一个原则的与midi设备停止沟通,包罗硬件键盘和合成器。您能够利用此框架来发送和领受midi动静和交互毗连到一个基于ios的设备的基座毗连器或络的midi外设。
GLKit 框架
GLKit.framework
在ios5中引进的,包罗了一套oc为根底的适用东西类,简化了创建一个opengl es2.0利用所需要的勤奋。
帐户框架
Accounts.framework
NewsstandKit 框架
专门对数字出书做的一个新功用。它能把所有用户订阅的报刊或杂志类的app都放在一组图标里。
Cocoa Touch层
最上面一层是Cocoa Touch,它是Objective-C的API,
此中最核心的部门是UIKit.Framework,利用法式界面上的各类组件,满是由它来供给闪现的;
除此之外它还负责处置屏幕上的多点触摸事务,文字的输出,图片,网页的展现,相机或文件的存取,以及加速感应的部门等。详细介绍如下:
UIKit 框架
UIKit.framework
用户界面层利用的类和办法
撑持图形和窗口;
撑持触摸事务处置;
用户接口治理;
供给用来表征原则系统视图和控件的对象;
撑持文本和Web内容;
通过URL scheme与其他利用的集成。
为供给根底性代码成立利用,UIKit也撑持一些与设备相关的特殊功用,如下所示:
加速计数据;
内建Camera;
用户图片库;
设备名称和形式信息。
Twitter 框架
twitter.framework
邮件框架
MessageUI.framework
地图框架
Mapkit.framework
告白框架
iAD.framework
P2P及游戏内语言框架
GameKit.framework
点对点毗连;
游戏内语音功用
建构于Bonjour之上。
地址本框架
AddressBookUI.framework
oc 接口,能够展现创建或编纂联络人的原则系统界面。
iOS差别版本晋级的开发特征:
iOS3.0
开发特征
一点对点蓝牙毗连
二长途阅读内容
三毗连周边产物(硬件)
四其它利用能够利用maps
五定位软件
六推送功用
七收集德律风(voip)
八灌音
九 播放音乐
十加强了 app store
iOS4.0
开发特征
一点对点蓝牙毗连
二长途阅读内容
三毗连周边产物(硬件)
四其它利用能够利用maps
五定位软件
六推送功用
七收集德律风(voip)
八灌音
九 播放音乐
十加强了 app store
iOS5.0
一iCloud
iCloud存储API使法式能够将用户文档和关键数据存储到iCloud中,并同时将改动推送到用户所有的计算机和设备上那一切都是主动的
二通知中心
三新闻综述
利用News stand kit
四主动引用计数(ARC)
五深度集成twitter
六Storyboard
七AirPlay
做为在 iOS 4.2 引进的新功用,AirPlay 可以将视频,音频和照片做为媒体流输进到 Apple TV 上。在 iOS 5 中,AirPlay 能够将 iPad 2 上的
任何内容通过 Apple TV 无线镜像到 HDTV 上。您的利用法式会主动撑持那一功用。您也能够挪用额外的 API 从而在每个 HDTV 和 iPad 2 屏幕上展现差别的内容。在 iOS 5 中,利用了 AV Foundation 框架的利用法式能够通过 AirPlay 将视频和音频内容转成媒体流,而且 AirPlay 如今撑持通过 媒体流发布加密的媒体流内容
八Core Image
您能够利用 Core Image 在镜头和编纂图片的利用法式中创建令人赞颂的效果。Core Image 是一个硬件加速的框架,使您能够轻松地加强 照片和视频。Core Image 供给了一些内置的滤镜,例如颜色效果,变形和变更等。同时它还包罗一些高级功用如主动加强,消弭红眼, 脸部识别等
九GameCenter
游戏中心在 iOS 5 中撑持多人游戏中的回合造游戏。在回合造游戏中,玩家能够在便利的时候才做出游戏动做,而游戏中心会治理每一个 回合。游戏中心将主动通过通知中心发送一个 推送通知到下一个游戏玩家。其他为开发者供给的功用还包罗,添加玩家到现有的多人游 戏中,展现成就通知,每个排行榜撑持差别的图标。
十OpenGL ES
加了GLKit
十一 iMessage
十二新的东西
十三无需pc
十四模仿位置信息
iOS6.0
一 地图 放弃了googlemap 利用了自家地图
二 深度社交收集集成 ios5时深度集成了twitter, ios6集成了facebook, sina weibo
三passbook 和passkit
四gamecenter 次要联机对战
五提醒 开放了向reminder里添加工具和从读取的api (event kit) 和原则用户界面
六新的iap
能间接从itunes store 购置音乐
七collection views 瀑布流规划
八主动规划
iOS7.0
1.UIKIT 全新偏化风络
2.UIKIT 力学模子,增加UIDynamicItem拜托
3.游戏撑持 加了本身的精灵系统 SpriteKit 2d游戏引擎 xcode 还供给创建粒子 系统和贴图东西
4.撑持专门游戏硬件
5.点对点毗连:用来发现和毗连四周的设备并传输数,而那一切不需要有收集 毗连 (direct wifi (P2P Wifi)手艺, 所以iOS7 的airdrop 需要 iPhone5 或最新iPad/iPad mini才撑持,因为还依靠硬件)
6.Store Kit:IAP方面摘用了新的订单系统,削减内购实现流程和内购破解。实现
对订单的本机验证
7.Inter-APP Audio 利用间的音频
统一设置差别利用之间发送midi指令和传送音频才能,好比在一个利用中利用
AudioUnit灌音,然后在另一个利用中打以处置.
8.地图MapKit
MKMapCamera:能够将一个MKMapCamera对象加到地图上,在指明位置,角度和标的目的后将 闪现3d效果
MKDirections
MKGeodesicPolyline
MKMapSnapshotter
改动了overlay对象的衬着体例
9.多使命
iOS7之前
后台完成某些费时间的特定使命
后台播放音乐
位置办事
ip德律风
newsstand
iOS7
改动了后台使命的运行体例 除收集外的后台使命,被散布到差别的利用唤醒系
统时施行.
收集传输的利用定见利用NSURLSessioin 创建后台的session并停止网格传输.
增加了后台获取 Background Fetch
利用翻开前有时机施行代码来获取数取,刷新ui,省往了收集加载过程
增加了推送唤醒( 寂静推送,Slient Remove Notifications)
增加了后台传输(Background Transfer service)
总结以上那些手艺框架和差别iOS版本的开发特征,可能让你觉得太多太冗杂太难,那个不消担忧,那些内容不需要你往死记硬背的记住它。但你要对它有一些领会。做为盈利性量的开发者我认为至少要掌握下面那些开发框架:
Core Service层
Foundaction.framework
StoreKit.framework 做内购用的,在利用或游戏中卖一个道具或解锁一个利用功用
CoreLocation.framework 做gps定位用的
Media 层
CoreGraphics.framework
QuartzCore.framework
MediaPlayer.framework
AVFoundation.framework
Cocoa Touch层
UIKit.framework
MessageUI.framework
iAd.framework
Mapkit.framework
GameKit.framework 游戏必备,做利用就不消了
选举进修道路
先掌握Foundaction.framework, UIKit.framework, QuartzCore.framework
然后要掌握iOS7.0的新特征,那个根底上
做音频,视频播放的话就接学MediaPlayer.framework, AVFoundation.framework; 做有关地图的利用就Mapkit.framework;做绘造的利用就学CoreGraphics.framework或opengles; 做游戏的话需要cocos2d 或撑持iOS7.0游戏开发特征加上GameKit.framework; 做定位就学CoreLocation.framework; 集成告白就用iAd.framework
;做内购StoreKit.framework。假设能完成以上那些内容,你本身就有标的目的根据开发使命往掌握其它框架;
我的收益形式
不管什么利用我出两个版本,一是完全版本,一个免费完全版本。完全版就不消说了。次要讲下免费完全版本:那个版本功用是完全的,只不外加了告白,并设想了相关的内购项目,好比:往告白,销售附加资本等。 别的告白那还有admob 告白需要你本身往领会。更好能把iad和admob整合到一路,如许好比iad恳求失败就我恳求admob的,admob恳求失败我就恳求iad的。
我的创意
创意是最难点,根本上一小我的设法有限,想不出太有意义的工具来。我是一边参考app store一边做些小立异,我来根据我的Clear Cal 中文名称喊 清新计算器来说下创意过程:如今app store 上偏平化的计算器不是太多,如许能够设想一款偏平化风气的计算器, ui难度不会增加;加上我比力喜欢利用黑色风气,我利用纯黑色做布景,浅黑色做按钮色;次要功用就是常规的数学计算和科学扩展计算;那款app的盈利点仍是要设想的,我根本摘用告白加内购,而告白又banner告白和全屏告白;内购项根本上是往告白和销售一些附加资本好比图片;别的再加上app的设置项如许整个app就个大致雏形了。版本上撑持iPhone,iPad。下面图文并茂表现以上几点:
主功用页设想
app运行时告白盈利页做为第一页,主功用页做为第二页,设置页为第三页,但展现上以主功用为主,所以实现的展现时会从告白页主动滑动到主功用页,用户能够左滑动进进告白页,向右滑动进进设置页,并能够自在返回到主功用页来。 App里的所有功用按钮点击时带有声音效果,并能够封闭;同时根据按钮文字颜色产生一个同样颜色的边框线动画由中心向四边弹开。在开发过程中我突然想能让用户本身抉择风气,于是就设想两种风气,一种是上面图中的黑色风气;另一种是app能够从我的办事器上下载一些标致的图片做为布景图,在用户切换布景时,那些黑灰的按钮全都以动车的形式酿成半通明效果,根据用户抉择的图片差别,整体效果城市发作改变。App详细操做细节能够从下面的下载址获取并安拆。因为app自己能下载了好多图片,如许那些图片每一张都有操做供用户保留到本机上。但因为几十张的图片可能保留太累,所以我设想别的一个内购项目就是假设用户撑持$1.99我就能够把所有的图片主动的保留到当地,音效的体例也类似。国内可能不太承认那种付出,但国外比力承认。我之前的气候版本是赚了一些那品种似办事的收益。想想是一年前的工作了,我也贴出那种小软件之前的收益截图做为鼓励某些同窗的参考吧。
以上只是粗略的介绍下我的创意与设法,实正的实现就要打xcode停止现实的代码或界面的搭建工做了,假设我发现感兴致的人多的话,我想要从根底语言起分几部门再写出一些文章供同窗们参考!
假设列位同窗想深进的领会我的app 请猛击下面那个地址:
注:app开发在没有不变扎实的根底前,不要贸然往做,那能够做为业余的喜好,把本身比力好的设法创意找个闲暇时间做出来,说不定也能带来不测收成!