将扩展集成到大型iOS应用程序中

Written by Artur Stepaniuk and Max Husar

作者 Artur Stepaniuk Max Husar

Today, when you open Apple Maps and choose a destination, you are able to see a list of available Lyft offers, seamlessly routing you to the Lyft app to book your next ride. To create this fluid and user-friendly experience across the iOS ecosystem, however, engineers must tackle a range of technical challenges, from managing dependencies in a highly modular application to optimizing performance while maintaining a high quality user experience.

今天,当您打开Apple Maps并选择一个目的地时,您可以看到一系列可用的Lyft优惠,顺利地将您引导到Lyft应用程序以预订您的下一次行程。然而,为了在iOS生态系统中创建这种流畅且用户友好的体验,工程师们必须解决一系列技术挑战,从在高度模块化的应用程序中管理依赖项到优化性能,同时保持高质量的用户体验。

Disclaimer: For the purpose of this deep dive, we assume that you have a general understanding of what a build system is, including concepts like modules, static/dynamic frameworks, dependency graphs and build settings customization via flags.

免责声明:为了深入探讨,我们假设你对构建系统有一般了解,包括模块、静态/动态框架、依赖图和通过标志自定义构建设置等概念。

Demo of Lyft’s integration to Apple Maps

Lyft与Apple Maps集成的演示

From an implementation perspective, this involves creating a separate application extension. Detailed descriptions of API for booking rides can be found in the relevant Apple documentation, which includes multiple code examples.

从实现的角度来看,这涉及创建一个单独的应用程序扩展。有关预订乘车的 API 的详细描述可以在相关的 Apple 文档 中找到,其中包括多个代码示例。

Let’s explore the architectural nuances, challenges faced during development, and solutions implemented to overcome these obstacles:

让我们探讨一下架构的细微差别、开发过程中遇到的挑战以及为克服这些障碍而实施的解决方案:

  • The Dependency Jungle and how to manage constraints in a highly modular application, complying with RAM and binary size limitations;
  • 依赖丛林 以及如何在高度模块化的应用程序中管理约束,遵守 RAM 和二进制大小的限制;
  • Development process caveats & SiriKit integration tips to maintain a consistent development user experience.
  • 开发过程中的注意事项 & SiriKit 集成提示 以保持一致的开发用户体验。

Most of the faced complications in this specific use case can be generalized to integrations with different parts of the iOS system or other applications.

在这个特定用例中遇到的大多数复杂情况可以推广到与iOS系统或其他应用程序的不同部分...

开通本站会员,查看完整译文。

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-26 01:15
浙ICP备14020137号-1 $Carte des visiteurs$