在开始构建iOS应用程序之前,首先了解生态系统至关重要。 本文研究了Apple操作系统,各种可用设备以及Apple的App Store的基础知识。
1.为什么选择iOS?
在Android和Windows Phone到来之前,苹果是移动领域的主导者,只有诺基亚和黑莓可以与之抗衡。 随着新移动平台的出现,询问自己最适合您的平台变得越来越重要。
尽管苹果公司在2007年取得了领先优势,但其市场份额已超过iOS 。 这对iOS意味着什么? 它仍然是值得开发的平台吗? 确实是。 今天有很多重要的理由开始进行iOS开发。
- 强大的财务激励措施:人们在Apple App Store上的支出比在其他任何移动平台上的支出都多。 尽管Android已成为移动领域的主导者,但iOS平台对于开发人员而言仍然更具利润。
- 围墙花园:多年来,Apple的App Store受到开发人员和客户的很多批评,尤其是Apple的审核过程。 但是,很明显,苹果的政策导致了App Store的应用质量比其他任何移动商店都更高。 从App Store购买应用程序时,与在其他更开放的平台 (例如Google Play)上购买相比,客户也会感到更加安全。
- 社区和支持 :iOS开发者社区是一个很棒的社区。 当您发现自己遇到问题时,几乎没有限制的文章,教程和文档可以提供帮助。 此外,Apple的iOS SDK文档非常出色,更不用说Apple开发者网站上提供的数百个WWDC(全球开发者大会)视频。
人们通常会忘记或不知道Android和iOS是非常不同的平台。 尽管两个平台都是为移动空间设计的,但iOS生态系统在许多方面都与Android生态系统有所不同。
从开发的角度来看,大多数人似乎发现使用iOS开发比使用Android更容易。 不要误会我,我不是在指每个平台使用的技术堆栈,也不是在指每个平台可用的工具。 iOS和Android之间鸿沟的根源有两个,即碎片化和采用率 。
碎片化
同时,Android的核心优势之一是其主要劣势之一。 众所周知,Android操作系统是作为一个开放源代码项目发布的,因此任何人都可以使用和修改它。 许多硬件制造商已经看到了Android的潜力,尤其是在Google的大力支持下。
结果,AndroidSwift流行起来。 问题在于,每个硬件制造商都会修改Android以适应他们的需求,并且自引入Android以来出现了各种各样的外形尺寸。
即使Android的市场份额看起来像是一大笔钱,但要创建可在当前可用的每个Android版本上运行的软件仍然很痛苦。 由于运行Android的设备数以千计,因此在硬件上测试软件并非易事。 可以想象,支持和兼容性成为真正的挑战。
采用率
传统上,在许多国家/地区,无线市场受到蜂窝运营商的严格控制。 从一开始,苹果公司就知道它需要控制其移动设备,以提供最佳的用户体验。 结果是,客户可以在将其iOS设备公开发布的同一天将其iOS设备升级到最新版本的iOS。 这是iOS平台的主要优势,其结果是可观的。 iOS 9发布不到一周, 超过50%的iOS设备已升级到iOS 9。
让我们将其与Android进行比较。 在2015年9月 ,只有20%的Android用户将其设备升级到Lollipop(2014年发布),而不到40%的用户升级到KitKat(2013年10月发布)。
提出这些数字的原因不是要淡化Android平台或任何其他移动平台。 我要强调的是采用率对这些平台的应用程序生态系统的影响。
用户采用较新版本的操作系统的速度较慢,而较长的开发人员被迫支持较早版本的操作系统。 采用新技术的吸引力也越来越小,这些新技术只能在部分Android设备上使用。
2.为什么是本地人?
如果您是Envato Tuts +的经常阅读者,那么您可能听说过Xamarin , React Native , PhoneGap , Apache Cordova和Titanium Mobile等跨平台框架。 您可能想知道为什么当您可以使用C#或JavaScript创建iOS应用程序时,为什么要麻烦学习Swift或Objective-C。 如果您决定为iOS开发应用程序,请允许我简要介绍一下您的选择。
网络应用
Web应用程序是您的第一选择,实际上,这是2008年引入本机iOS SDK之前的唯一选择。Web应用程序的好处在于,它们不必处理App Store或Apple的审查。处理。 这是为什么? Web应用程序是网站的一个奇特名称,其作用和行为类似于应用程序。 您只需要一个浏览器,例如Mobile Safari或Google Chrome。
Web应用程序具有明显的优势。 由于应用程序在浏览器中运行,因此默认情况下它们是跨平台的。 另一个优势是创建Web应用程序的学习曲线。 如果您熟悉Web开发,那么您将立即启动并运行。
当然,也不应该忽略Web应用程序的缺点。 Web应用程序只能访问运行它们的设备的功能。 借助HTML5和JavaScript,移动Web应用程序非常强大。 但是,在它们可以做什么方面存在明显的局限性。 您将无法使用iPad和iPhone的出色功能。 同样,Web应用程序通常需要网络连接才能工作,尽管该规则也有例外。
通常,构建Web应用程序的最大缺点是,它们感觉比本机应用程序要慢得多。 Web应用程序的响应能力每年都在提高,但是不应忽略或忽略浏览器所继承的延迟。 经验是不同的。 毫无疑问。
移动跨平台框架
跨平台框架的承诺是,开发人员可以编写可从单个代码库部署到多个移动设备的应用程序。 这可以通过多种方法来完成。
某些框架(例如PhoneGap和Apache Cordova )使用平台的本机SDK创建用于嵌入应用程序的Web视图。 与Web应用程序一样,这在功能方面施加了限制。 主要优点是,就用户体验而言,该应用程序感觉像本机应用程序,并且可以通过平台的商店进行分发。
尽管移动开发框架可能看起来像是移动开发的圣杯,但仍有许多不利因素需要考虑。 最重要的缺点是您的应用程序依赖于第三方框架。 换句话说,您项目的代码库取决于提供跨平台解决方案的公司。 如果该公司倒闭,或者执行对本机SDK所做的更改的速度很慢,则可能被迫从头开始。 这是您需要考虑的风险。
iOS SDK
如果您要创建脱颖而出并利用设备功能的应用程序,则选择使用本机SDK进行开发是最佳选择。 选择本机应用程序还意味着您将在强大的开发环境中工作,并且可以依赖Apple的开发工具,实用程序和支持。
3. iOS生态系统
iOS生态系统最吸引人的方面之一是其简单性。 与Android或Windows Phone相比, 能够运行iOS的设备列表令人惊讶地短。 这意味着与其他平台相比,测试iOS应用程序的麻烦要小得多。
如前所述,Android的市场份额已超过iOS,但这只是故事的一部分。 iOS平台占移动设备上Web使用量的三分之一以上 。 这对移动空间有什么启示? 它告诉我们,iOS仍然是移动领域(至少是在线)的主导者,尽管Android的市场份额更大。
设备
iOS生态系统中基本上有两个设备系列:
- iPad设备系列
- iPhone设备系列,其中还包括iPod Touch
要获得完整的概述,建议您查看此列表 。 iPhone设备系列的主要区别在于硬件功能和屏幕尺寸。 对于iPhone和iPod Touch,有四种可能的屏幕尺寸:
- 3.5英寸
- 4.0“
- 4.7“
- 5.5“
对于iPad设备系列,共有三种可能的屏幕尺寸:
- 7.9“
- 9.7“
- 12.9“
屏幕大小的差异确实会影响开发,但对于大多数应用程序而言,并不会增加太多开销。 我将在本系列教程中进一步讨论这一点。
2012年,Apple推出了iPad Mini ; 2015年, iPad Pro随iPad Pro扩展。 尽管iPad Mini和iPad Pro的推出在技术行业引起了涟漪,但对iOS开发人员的影响不大。
例如,iPad Mini的屏幕明显小于9.7英寸iPad Air的屏幕,但分辨率与9.7英寸iPad设备的分辨率相同。 由于iPad Mini的屏幕较小,触摸目标的平均尺寸较小,这对于某些应用程序可能会造成问题。
的iOS
传统上,Apple每年都会发布其移动操作系统的新版本。 迄今为止,苹果已经发布了其移动操作系统的9个主要版本,最新版本为iOS 9。
设备支持是人们经常忽略的iOS方面。 以iPhone 4S为例。 iPhone 4S于2011年发布,仍然能够运行iOS9。就设备支持而言,没有任何移动平台可与之匹敌。
应用商店
开发iOS平台的关键原因之一是App Store取得了令人难以置信的成功。 得益于苹果公司在iOS和OS X上的App Store,软件的销售从未如此轻松。由于有超过一百万个应用程序,因此在iOS的App Store中变得有些拥挤,但请记住,iOS设备的数量也在持续增长呈指数增长。
移动空间尚处于起步阶段,仍有巨大的潜力等待发现。 与90年代后期的网络一样,移动空间将继续快速增长,每售出一部新的智能手机,智能手表和平板电脑,可赚的钱就会增加。
4. watchOS和tvOS
2015年,Apple宣布了两个新操作系统,Apple Watch的watchOS和Apple TV的tvOS 。 苹果已经为第三方开发人员开放了两个平台,将第三方应用程序带到您的手腕和客厅。
用于watchOS和tvOS开发的工具与用于iOS开发的工具相同。 这是选择iOS生态系统的另一个原因。 苹果的操作系统OS X,iOS,watchOS和tvOS紧密集成在一起,可能性几乎是无限的。
结论
您现在已经对iOS生态系统有了清晰的了解,希望我能够说服您开始进行iOS开发。 在下一篇文章中,我将向您展示如何通过设置开发环境来使用本机SDK。 您将对它如此简单感到惊讶。
如果您有任何问题或意见,可以将其留在下面的评论中,或通过Twitter与我联系。