这些工程学科必须共存并协同工作,才能在不断发展的数字环境中提供安全可靠的应用程序。
译自 Intertwined Worlds: Platform and Mobile App Engineering,作者 Usman Siddiqui。
平台工程和移动应用工程共享一种共生关系,这种关系推动创新并增强用户体验。
由于高需求和新设备,移动应用工程变得越来越突出。据 Statista 称,2550 亿个移动应用 每年在全球下载,自 2016 年以来,下载的应用数量增加了 82%。
与此同时,一种新的工程形式作为其对应物出现:平台工程。
平台工程通过优化应用开发和通过提供具有自动化基础设施操作的自服务功能来提高生产力,从而加速应用交付和它们产生业务价值的速度。据 Gartner 称,80% 的大型软件工程组织 将在 2026 年之前建立平台工程团队,作为应用交付的可重用服务、组件和工具的内部提供商。
从本质上讲,平台工程奠定了基础,用于支持各种应用在不同设备和操作系统(包括开发可扩展架构、优化性能和确保安全措施到位)上的无缝操作的强大基础设施。另一方面,移动应用工程专注于打造直观、功能丰富的体验,以满足移动设备的独特需求。
借助这些底层平台,移动应用开发者可以利用推送通知、位置服务和设备硬件集成等功能来创建引人入胜的用户界面和交互。这两种工程学科之间的建设性协作能够将应用无缝集成到更广泛的平台环境中,从而在设备和平台之间促进互操作性、可扩展性和一致的用户体验。
想象一个繁华的城市建立在坚实的基础之上,可以保护和维护其结构,确保市民享有无缝、顺畅的体验。平台工程在软件开发领域扮演了类似的角色。它为内部开发者平台(IDP)奠定了基础,IDP是一个自助服务平台,可以赋予应用程序开发者力量。IDP通过提供以下功能来帮助平台工程师:
- 基础设施作为代码(IaC):用于自动化基础设施供应和管理的工具和流程,确保一致性和效率。
- CI/CD:用于构建、测试和部署应用程序的精简管道,可加速开发周期。
- API管理:管理API的中心枢纽,向移动应用程序公开功能,促进互联互通。
- 监控和可观测性:获取平台运行状况和应用程序性能实时洞见的工具和实践,实现主动故障排除。
- 移动应用程序工程:构建吸引人的用户体验。
另一方面,移动应用程序工程师利用IDP的功能构建功能丰富且用户友好的移动应用程序。他们的任务是设计、开发和实施专门为移动设备(如智能手机和平板电脑)定制的软件应用程序,与设计师、产品经理和其他利益相关者密切合作,将概念和要求转化为具体的、用户友好的应用程序。他们的专长在于:
- 原生应用开发:使用特定于平台的语言和框架(如iOS的Swift或Android的Kotlin)来创建与原生设备功能和UI/UX范例无缝集成的应用程序。
- 跨平台应用开发:使用React Native或Flutter等框架构建可在iOS和Android上运行的应用程序,这些团队可以优化开发时间和资源。
- 移动后端服务(MBaaS):与平台提供的后端服务集成,提供用户认证、数据存储和推送通知等功能。
通过提供具有自动化工具和高效工作流的可靠 IDP,平台工程师:
- 提高开发人员的工作效率: 减轻管理基础设施的负担,让移动应用程序工程师专注于核心应用程序功能。
- 增强代码质量和一致性: IaC 和 CI/CD 管道强制执行最佳实践,从而实现更可靠且可维护的代码库。
- 缩短上市时间: 简化的开发流程使移动应用程序能够更快地交付到市场。
反过来,移动应用程序工程师提供有价值的见解和用例,为 IDP 的演进提供信息。他们:
- 识别平台差距和限制: 他们的实际经验帮助平台工程师识别 IDP 功能中需要改进的领域。
- 通过实验推动创新: 突破移动应用程序开发的界限可以将新特性和功能纳入 IDP,从而使整个开发生态系统受益。
随着移动技术格局的不断演变,平台和移动应用程序工程师面临的挑战和机遇也在不断变化。一些新兴趋势包括:
- 微服务架构: 将应用程序分解为更小、独立的服务,提供更大的灵活性、可扩展性和可维护性。平台和移动应用程序工程师都需要通过提升技能和重新学习技能来适应他们的技能组合,以便在这个动态环境中有效工作。
- 无服务器计算: 这种基于云的模型允许开发人员专注于应用程序逻辑,而无需管理基础设施。平台工程师需要构建和维护 IDP 以有效支持无服务器部署,而移动应用程序工程师可以专注于构建更具可扩展性和成本效益的应用程序。
- 人工智能和机器学习: 将人工智能和机器学习集成到移动应用程序中为用户体验和功能提供了新的可能性。平台和移动应用程序工程师都需要了解这些进步。
平台工程和移动应用程序开发必须共存并并行工作,才能在不断发展的数字环境中提供安全可靠的应用程序。
平台工程和移动应用程序开发都为业务发展和数字人才职业成长提供了激动人心的机会。查看一些有价值的资源,以便为自己配备这两个主题所需的技能和知识:
教程:
思想领导力:
移动应用程序开发:
- Udacity course: “Android Kotlin Developer”
随着对移动应用需求的不断增长,对设计、开发和维护这些应用的熟练开发人员的需求也在与日俱增。了解如何雇佣 React Native 开发人员进行跨平台应用程序开发。