近年来,Netflix 不断推进电视节目与电影制作领域的创新,重点研发了 Prodicle 移动应用。在全球各地差异化生产和需求背景下,工作的本质变化催生了对高耐久性和离线支持的强大移动端解决方案的需求。鉴于约三分之一用户的网络连接不稳定且容错能力有限,一个小型工程团队认识到,提高软件可靠性和加速产品交付至关重要。
针对网络连接不可靠的问题,Netflix 决定打造具备强大客户端持久性和离线支持的移动解决方案,并选择了多平台架构来快速部署产品。通过运用 Kotlin Multiplatform,Netflix 可以在 iOS 和 Android 应用中复用同一套业务逻辑代码库,仅在必要时编写特定平台的代码,比如实现原生界面或调用特定平台的 API。
Kotlin Multiplatform 有别于传统的跨平台移动开发技术,它不是意图彻底替代平台特有的开发方式,而是作为现有技术的补充,专注于替换那些平台无关的业务逻辑。这一策略已取得显著成效:
Android 和 iOS 版本的 Studio 应用现拥有共享架构,可以在两个平台上编写近乎一致的业务逻辑。
约一半的 Android 和 iOS 应用生产代码已与底层平台解耦。
借助 Kotlin Multiplatform,Netflix 可灵活尝试 Android Jetpack Compose、Swift UI 等最新技术,无需担心兼容性问题。
面对用户在各产品间多样化的需求,Netflix 开发了内部工具 Hendrix 的移动 SDK 来管理应用程序配置。利用 Kotlin Multiplatform,Netflix 构建了一个轻量级的 Hendrix 移动 SDK,该 SDK 集成了灵活的业务逻辑和全面的平台无关性,从而解决了网络连接不佳和配置频繁变动导致的问题。
在 Android 上,导入 Hendrix Multiplatform SDK 作为 gradle 项目的依赖项,几乎不影响原有流程;而在 iOS 平台上,SDK 以通用框架形式嵌入到 Xcode 项目中。
源代码可在 Android Studio 和 Xcode 中进行编辑、编译,并结合带断点的调试器(包括 lldb 支持)进行调试,Xcode 需要安装 TouchLabs 的 xcode-kotlin 插件才可实现开箱即用。
使用 Ktor 的 MultiplatformHttpClient 在 SDK 中处理网络请求,将规则集下载到本地设备。
考虑到网络连接的不确定性,借助 SQLDelight 及其原生与 Android 数据库驱动实现 Multiplatform 的磁盘缓存功能,确保规则集安全保存。
Netflix 对 Kotlin Multiplatform 的关注度持续提升,认定该项目已经迎来关键的发展时刻。随着 Xcode 工具与构建系统的显著改进,开发人员得以减少对多平台特定实现的关注,转而将精力集中到更高价值的应用设计与开发上。尽管 Netflix 的 Android 和 iOS Studio 应用之间的代码共享潜力依然巨大,未来可能进一步探索JavaScript 的转换。Netflix 对于打造具有共享业务逻辑的精简 UI 层的 Studio 移动应用充满信心,并将持续分享他们在发展历程中的经验与洞见。
文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系多特删除。(联系邮箱:[email protected])
近期热点
最新资讯