每年,都会有新版本的 iOS 出现。对于所有开发人员来说,这是一个非常重要的时刻,因为他们必须遵守所有最新更改并为这个新版本做好准备。无独有偶,最近还发布了最新的安卓——13版,代号为提拉米苏。
今天,让我们快速了解一下它对于想要完全支持最新操作系统的现有应用程序的维护者和不想对变化感到惊讶并且没有准备好的新应用程序的开发人员意味着什么它。我们将专注于原生更改,但即使您不是原生开发人员并使用像 Flutter 这样的跨平台解决方案,它仍将是关于最新更改的非常有用的指南,因为将多次引用 Google 的框架。
当涉及到重大更改时,Android 上有很多。在 iOS 上,情况看起来完全不同,因为 Apple 专注于此版本中的新功能。
Android 13 的重大变化
有一个称为前台服务任务管理器的新功能——它允许用户从通知抽屉停止应用程序。此行为不同于简单的向上滑动,因此请确保它与您的应用程序正常工作。
从 Android 13 开始,媒体控件基于PlaybackState。它不仅有助于在智能手机和平板电脑之间,而且在 Android Auto 和 Android TV 之间显示一致的界面。如果您的应用程序使用音频播放,您应该更深入地研究它。
现在,当接收应用程序中的
旧版“语音服务”现已删除。在以前的 Android 版本中,有一个不再存在的蹦床。如果您的应用使用 SpeechService,请尽快迁移到设备的默认提供程序,而不是使用特定的实现。
Android 13 中的权限
新权限是最新版本 Android 中重大更改的一部分,因为其中一些已更改。仔细查看它们并根据需要实施它们。
READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE被READ_MEDIA_IMAGES、READ_MEDIA_VIDEO和READ_MEDIA_AUDIO取代,以便对存储的媒体文件进行更精细和更简单的访问管理。
到目前为止,您不需要任何特殊权限即可发送推送通知。它现在随着POST_NOTIFICATIONS的添加而改变。您的用户将看到一个新的弹出窗口,询问是否授予您的应用这些权限。
还有处理发现和连接到附近的蓝牙和 Wi-Fi 设备的新权限。这些权限分别称为NEARBY_DEVICES和NEARBY_WIFI_DEVICES。
如果您的应用程序使用检查心率或体温的身体传感器,您可能会对BODY_SENSORS_BACKGROUND感兴趣——如果您的应用程序在后台使用它们,则它是必需的。
如果您是时钟或计时器应用程序的开发人员,您可以使用自动授予的新权限 – USE_EXACT_ALARM。但请记住,如果您的应用不是时钟/计时器/日历应用,那么它将被拒绝。
有效权限对于应用程序正常运行至关重要。如果您在 Flutter 中有一个应用程序,那么您可能使用过或至少听说过permission_handler。它背后的开发人员正在全力支持所有这些最新变化。在撰写本文时,他们已经支持具有新媒体相关权限的POST_NOTIFICATIONS 。您可以在专门的 GitHub 问题页面上查看当前工作进度。
iOS 16 中的重大变化
如前所述,就重大更改而言,iOS 并没有太多变化。尽管如此,还是有很多弃用的地方——Xcode 14 弃用了 Bitcode,iOS 16 弃用了诸如 SKDownload API 以及上传非消耗性应用内购买资产的选项、用于 URLSession 的 FTP 或 Maps Capability 中的某些 API 之类的东西。还有更多与 CoreGraphics 或 Metal 相关的低级更改,但由于它们的复杂性,您应该检查您的 IDE 是否适用于您的应用程序。
Android 13 和 iOS 16 中的新功能
两种操作系统的最新版本都具有相当多的新功能。为了给您的用户提供最佳体验,如果它符合您的需求,您可以考虑在您的应用中实现它们。看看下面列出的功能,也许您会找到适合您需求的东西。
Android 13 总结
在最新的 Android 中,您可以选择加入一项称为预测返回手势的新功能。多亏了这一点,当用手势返回时,用户可以看到他们正在返回的屏幕。它允许更轻松和更具预测性的体验。从版本 14 开始,它也将成为 Android 上的默认行为。
Android 13 引入了用于复制和粘贴的新 UI。用户现在可以查看剪贴板上的内容。不幸的是,Flutter 目前还不完全支持这个功能——敏感内容在复制时是可见的。
如果您曾经有机会查看 Material 3 设计系统,那么您可能会注意到界面的颜色是自适应的——它们会根据用户的配色方案而变化。最新的 Android 更进一步,允许您定义主题应用程序图标,这些图标将自己着色以匹配 UI 的其余部分。
如果您的应用支持多种语言,还有一些好消息。由于 android:localeConfig 和 LocaleManager 中可用的新 API,用户现在可以直接在系统偏好设置中的集中位置设置应用语言偏好设置。
如果您在过去 2 年中使用过 iOS,那么您很有可能看到了他们的新照片选择器。现在,类似的功能也出现在 Android 上。就像在 iOS 上一样,在 Android 上,你也不需要任何额外的权限来使用它,它是一个安全且非常有用的功能,可以为所有应用程序提供统一的体验。与其他应用内界面更改一样,Flutter 仍然不完全支持它并等待更新。
iOS 16 总结
今年 iOS 将有许多很棒的功能。从StoreKit 2 的更改开始,您现在可以获取购买详细信息、检查预订日期、控制消息表何时出现在应用程序中,这要归功于StoreKit 消息 API和显示代码兑换表,并在应用程序(365 天内限 3 次)。StoreKit 产品中还有一些新属性,例如价格区域设置或服务器环境,它们返回有关购买发生在哪个服务器(生产、沙盒或 Xcode)的信息。
还有一个属性显示最近连续订阅的时间段,称为最近订阅开始日期。请记住,它包括免费试用和促销购买,并在 60 天内(在沙盒环境中为 10 分钟)报告两个订阅之间的间隔作为单个订阅。
App Store Server有一些新的 API ,最有趣的可能是应用内购买历史、通知历史和发送测试通知的能力。
在 iOS 16 中,推送通知终于来到了 Safari。不幸的是,它将在 2023 年作为单独的更新发生。
Passkey是一项很棒的新功能,它允许用户完全无密码登录,从而避免任何潜在的泄漏。
与您共享 API允许您检查与您共享的所有数据。
借助Live Text API,您可以从任何照片或视频中提取文本。
通过最新的更新,Apple 还允许您使您的应用程序适应用户的焦点变化。当用户将他们的个人资料更改为例如“工作焦点”时,iOS 将调用您的 SetFocusFilterIntent,并且基于此,您可以修改应用程序的行为。
Apple 提供了一项名为WeatherKit的全新服务。它允许您在应用程序内检索天气信息并使用 Apple 提供的 REST API。如果您想创建一个基于天气数据的新应用程序,那就太棒了。
从其他功能来看,现在支持AVIF。令人惊讶的是,这并不意味着 Apple 开始支持 AVIF(AV1 图像文件格式)所基于的 AV1 视频格式。
Mac Catalyst允许将 iPad 应用程序更好地迁移到 Mac。您只能为 Mac 共享代码和添加特定功能。您可以轻松优化界面并利用所有标准 macOS API。
还有一些现场活动和锁屏小部件已经变得非常流行。实时活动基本上是应该用作显示当前重要信息的通知的小部件。例如,优步可能会使用它来显示您的司机在哪里。锁屏小部件是不言自明的。从我们所见,这些小部件是半透明的,以匹配锁定屏幕的感觉。
还有另一个变化——App Clips现在最大为 15 MB。如果您在 10 MB 存档中安装所需的所有功能时遇到问题,这可能会很有用。Flutter 有一个关于将其渲染添加到 App Clips 的实验指南,但是由于大小开销如此之大(目前超过 11 MB),坚持使用 Swift 中的本机实现是一个更好的主意。
结论
移动操作系统领域的两大巨头正在尽其所能推出新功能,帮助他们将新用户带到他们的平台上。因此,开发人员有更多的工作来跟上不断变化的 API 和功能。跟踪所有这些变化并持续支持最新和最强大的功能并非易事。
Flutter 和第三方开发者已经发布了一些更新来解决这些问题,而且还会有更多更新。尝试使您的依赖项保持最新以访问它们并定期检查更改日志。例如,audio_service在 0.18.6版本中修复了 Android 13 的构建,flutter_local_notifications 在9.8.0中添加了对新通知对话框的支持。
希望像这样的文章能让您更轻松地节省时间,让您可以通过上述所有功能为您的用户提供最佳体验。