《Swift iOS应用开发实战》——2.1为移动平台开发应用

简介:

本节书摘来自华章计算机《Swift iOS应用开发实战》一书中的第2章,第2.1节,作者:刘铭 著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.1为移动平台开发应用

如果之前根本没有为Cocoa或它的前身NeXTSTEP开发过应用程序,你可能会感觉到在最初使用Cocoa Touch(iOS的应用程序框架)开发iOS应用程序时,之前所学的所有程序语言(比如Java、.NET)在这里都派不上用场,时常处于一头雾水的混沌状态。这是初学者在学习时的正常状态,你根本不用害怕这种状态,只要坚持下去就会慢慢适应。本书假定你已经具有面向对象的开发经验,以及初步掌握了Swift语言的相关知识,这些经验和知识对于编写iOS应用程序是非常重要的。在为移动设备编写应用程序的时候,还需要考虑下面几个问题:
在iOS中,任何时候都只能有一个应用程序被激活并显示在屏幕上面。从iOS 4开始,当用户按下Home键以后,应用程序可以在系统的后台继续运行,即使是后台运行,它也会受到很多的限制。
与传统的PC应用程序不同,我们在iOS中只能运行一个窗口应用程序。除非你开发的iOS应用程序附带一个扩展屏幕,通过AirPlay和AppleTV设备投放到电视上。但是,这需要我们编写更多的程序代码。用户与应用程序之间的交互都局限在这个窗口之中,且该窗口的大小固定为整个屏幕。
虚拟键盘代替实体键盘。2007年乔布斯在iPhone发布会上向大家展示了多部当时市面上流行的“智能”手机,并毫不留情地指出了它们共同的缺点:在屏幕的下方有很大一部分空间被实体键盘所占据,如图2-1所示。不知大家是否想到过,实体键盘最致命的缺点就是按键功能被固定死了,不管你是否需要,它都会存在于屏幕下方—伴随手机的一生。iPhone就不一样了,因为有了虚拟键盘,系统可以根据App的需要,在适当的情况下调出虚拟键盘,并且会根据设定显示全键盘、数字键盘或中文的九宫格键盘等。
image

iPhone的屏幕在当今的世界中可以算是佼佼者(三星有后来居上的趋势),自从苹果推出了Retina屏的iPhone以后,一直是手持设备中分辨率最高的。这导致了原来很多必须在PC上完成的任务,现在可以在iPhone上面完成了。第一代iPhone手机的分辨率只有320×480像素,之后的iPhone 4采用了640×960像素的分辨率。如今,最新的iPhone 6 Plus屏幕达到了1080×1920像素。表2-1列出了所有设备屏幕的大小。

image

表2-1中所提到的屏幕硬件大小指的就是iOS设备实际的物理屏幕像素值。然而,在程序员开发应用程序的时候,更多的是与软件屏幕大小打交道。正如大家在表2-1中看到的,在大部分的情况下,软件屏幕大小与硬件屏幕大小是2倍的关系。之所以有两种屏幕大小,完全是因为苹果引入了Retina技术。如果苹果不做这样的区分,所有的应用程序都按设备的硬件屏幕分辨率绘制,软件在Retina设备的屏幕上面只会显示四分之一的大小,用户使用起来非常费劲。所以,苹果使用了比例因子的概念,我们开发的应用程序可以在所有的iOS设备上面都完美地全屏显示,而程序员不用编写任何的代码。针对于iPhone设备,从iPhone 4s开始都是2倍的比例因子,而iPhone 6 Plus则拥有更高的分辨率,所以是3倍的比例因子。
另外,与笔记本的14或15英寸屏幕相比,移动设备的屏幕确实要小很多,所以在设计应用程序的时候,我们要充分利用好这宝贵的屏幕空间,用更加直观的方式为用户呈现关键的信息,还要合理摆放系统所提供的各种控件,例如按钮、滑块、开关等,让用户方便、准确、快捷地进行各种操作。
考虑开发通用应用程序:为了能够让你的应用吸引更多的眼球,让它完美运行在多种不同的iOS设备上成为一种趋势。如让你的应用可以同时运行在iPhone、7.9英寸的iPad mini和9.7英寸的iPad上。
有限的存储空间:iOS设备的存储空间不大(16G~128G),因此不能存储太多的图片、音乐或视频。
不可靠的网络连接:因为是移动设备,所以注定其不会有长时间的持续可靠连接。即便有可靠的连接,发送和接收数据的速度也与无线网络信号的强弱有关。因此,在有网络连接(WiFi网络,非手机的数据流量)的情况下,你的应用程序应尽量缓存相关数据到设备上。为了保证用户使用的流畅度,在下载数据的时候必须使用多线程技术。
iOS设备的不可用性:移动设备在特殊情况下需要关机(飞机起飞时),也有可能会丢失,当电池电量不足的时候也会自动关机。所以我们的应用程序必须考虑到这些情况。

相关文章
|
2月前
|
iOS开发 开发者
苹果iOS App Store上架操作流程详解:从开发者账号到应用发布
很多开发者在开发完iOS APP、进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store的具体流程,如有未涉及到的部分,大家可以及时咨询,共同探讨。
|
2月前
|
开发者 iOS开发
iOS应用上架详细图文教程(上)
App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些事。
|
2月前
|
Swift iOS开发 开发者
iOS 应用上架流程详解
iOS 应用上架流程详解
|
2月前
|
Android开发 iOS开发 UED
appuploader   iOS 应用自动发布
appuploader   iOS 应用自动发布
|
16天前
|
存储 缓存 iOS开发
实现iOS平台的高效图片缓存策略
【4月更文挑战第4天】在移动应用开发中,图片资源的加载与缓存是影响用户体验的关键因素之一。尤其对于iOS平台,由于设备存储和内存资源的限制,设计一个高效的图片缓存机制尤为重要。本文将深入探讨在iOS环境下,如何通过技术手段实现图片的高效加载与缓存,包括内存缓存、磁盘缓存以及网络层面的优化,旨在为用户提供流畅且稳定的图片浏览体验。
|
27天前
|
安全 数据安全/隐私保护 虚拟化
iOS应用加固方案解析:ipa加固安全技术全面评测
iOS应用加固方案解析:ipa加固安全技术全面评测
36 3
|
1月前
|
运维 监控 安全
应用研发平台EMAS常见问题之sophix ios flutter热更新如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
77 0
|
1月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
47 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
181 2
|
2月前
|
Linux Android开发 iOS开发
iOS 应用上架的步骤和工具简介
APP开发助手是一款能够辅助iOS APP上架到App Store的工具,它解决了iOS APP上架流程繁琐且耗时的问题,帮助跨平台APP开发者顺利将应用上架到苹果应用商店。最重要的是,即使没有配置Mac苹果机,也可以使用该工具完成一系列操作,包括iOS证书申请、创建iOS开发者证书和 iOS发布证书等各类证书。此外,在Windows、Linux或Mac系统中上传IPA到App Store也变得简单快捷,从而大大简化了iOS APP上架的流程。