作者|
组织|小野,核可口可乐-Cola
本文整理了QCON Plus的演讲,并且是开发专家。该演讲主要讨论了选择在本机和跨平台移动开发之间选择需要选择的技术知识和工具。
本地还是跨平台?
是时候抛开所有干扰了,并专注于谈论本地和交叉平台的老板。从某种意义上说,当地人始终具有自己的比较优势,对于任何跨平台框架,他们的性能总是无法预测的。本地应用程序还可以更好地与操作系统和第三方图书馆结合使用,并具有更大的社区生态,并提供更大的技术支持。此外,“本地”一词并不是徒劳的。它可以更好地访问操作系统上的API和功能,并支持TVOS甚至各种可穿戴设备。如果您更加关注这些需求,那么本地开发是最正确的答案。此外,本地开发工具正在不断改进,即使现在它们也不是那么烦人。当然,本地发展也有自己的问题,否则跨平台框架将根本不会出现。
本地数量问题是更高的成本。企业需要为每个操作系统建立一个特殊的开发团队,以考虑基础架构和流程中的预防措施。例如,我们可能需要为iOS设置不同的连续集成(CI)过程。当然,这种情况也存在于跨平台发展。毕竟,两个平台之间的工具存在很大差异。此外,当将应用程序部署并发布到应用程序或Play,甚至平台的平台时,都有成千上万的奇怪软件商店。他们有不同的发布标准,周期和要求,必须尽早制定计划。
根据实际情况,对于大多数开发人员而言,跨平台可能是最务实的选择。毕竟,跨平台框架的效果基本上就足够了,有时甚至不比本机移动平台差。经过多年的发展,跨平台框架也取得了巨大的改进。例如,他已经开始支持热负载,以便每个人都可以测试Web上的各种更改,并且无需重新删除应用程序到设备或虚拟机(例如设备或虚拟机)的应用程序。优越的。但是,当选择跨平台时,我强烈建议您首先选择强大的设计语言,并且必须清楚地与iOS区分开。因为一旦您的设计太偏向一个,它将与另一个不兼容。此外,如果不使用本地控件,每个人都很难模仿平台上的本地视图和经验。简而言之,软件开发是如此简单的80%,但最后20%改善了一些异常困难。有兴趣的朋友可能希望尝试 - 尽管这是一个本地应用程序,但他们可以为跨平台开发人员设计语言课程。
以可穿戴设备为例
来到虚构案件的头脑风暴
假设有这样的可穿戴设备制造商,他们想参与支持应用程序。例如,智能手表,他们希望在此设备上传达,下载和显示历史趋势。是的,必须应用于实施它。用户不可能运行浏览网络。问题在这里:我们需要本机应用程序吗?您是否访问大量操作系统API?毕竟,这是本机代码的优势。答案是肯定的。智能设备需要在后台执行大量操作,因此它们肯定会经常访问操作系统API。尽管跨平台框架可以在少量匹配机制(例如蓝牙)上表现良好,但它可能是所有应用程序所有功能的正确答案。因此,诸如可穿戴设备之类的场景的判断非常简单。本地原生发育比跨平台发展更好。
框架选择:
仍然
我们总是在讨论本地和跨平台,但是这里提到的“跨平台”是哪个框架?当然,当前的三个主流选项是和谐的,当然是基于Web的框架,例如Hehe等。这里也值得一提。这是一种通过设计和与其他公司合作开发的语言。但是至少在基于Web的跨平台开发中,我将尝试避免使用后续选项。毕竟,他们的性能通常太老了,而且表现差。其中,越多的是多平台,它与它非常不同,并且相对较大。它专注于共享业务逻辑而不是UI设计。因此,在对本文的讨论中,我们关注这三个。
这是一项开发的技术,并基于同一技术。这样做的优点是,如果您的公司已经拥有经验丰富的开发团队,则可以与Web团队分享一些技能甚至代码。它还为台式机,可穿戴设备和智能电视提供实验性的第三方支持。但是,由于专注于这些元素,因此不要选择选择,因为这方面的功能远非成熟。它既有功能又完美,可用于开发B2C应用程序。实际上,市场上有许多大型应用程序可供选择。尽管它在性能方面仍然有限,但近年来它一直在探索和改进。但是,如果您在开发的应用程序中有大量的动画元素,建议不要先考虑一下。此外,应该注意的是,如果要自定义UI组件,则必须为不同平台创建并实现它。这个过程很无聊。好消息是,UI毕竟充满了“本地”,它确实使用了许多本地资产。最后,有一些坏消息。近年来,许多众所周知的应用程序被放弃了,典型的情况是。但这可能与我们自己的发展需求无关,并且与其自身的情况相结合具有指导意义。
步行完全是另一种方式。这是开发的工具。它以前曾被收费,现在可以免费开放并免费开放。如果您的公司在C#资产上进行了大量投资,并且还使用了ASP.NET和C#,它将帮助您从后端到前端建立完整的.NET堆栈。从某种意义上说,UI实现方法非常独特。您可以使用它。探索多个平台,或者您可以采用这样的本地观点(但后者是不切实际的)。简而言之,缺乏和谐的情况是相反的,强调了接近源操作系统的API。换句话说,开发人员还必须了解要播放的操作系统。毕竟,后者的作用是自动从SDK收拾现有的API并将其公开在C#中。第三方支持是有限的,并且没有很多本机库可用。就个人而言,它可能更适合具有内部应用或相对较低复杂性的应用程序。它是更多的企业,最好在开发B2C应用程序时不使用它。
这个框架的受欢迎程度正在迅速上升。 投入了大量的营销和宣传,框架本身的水平将永远不会被提升。首先,具有许多高质量的第一和第二 - 方集成,使用DART语言并与酒吧的生态合作作为依赖性。从技术上讲,我们几乎可以使用所有开发需求 - 对于移动终端,桌面端,我们还可以支持,和谐,甚至网络和嵌入式物联网。简而言之,它可以应用于APK可以运行APK的任何地方。据我所知,目前唯一不支持的是TVO。但是,如果有需要的话,我也知道可以帮助您解决问题的人。如果您的开发团队熟悉DART,则也可以直接将其用作UI。这是因为的手,因此它疯狂地向开发人员组展示了。
让我们通过几组统计数据来看看当前的跨平台开发市场规模。查看跨平台框架在Play和应用程序上的应用,我们可以看到17%在iOS和20%的末端。排名第二,双平台的份额略低于5%。紧紧抓住它,并继续表现出强烈的趋势。完全不可能匹配前三个,并且将有过时的/框架已经过时了。
这些数字还具有尚未说出的“小秘密”。例如,实际使用 -框架的开发人员中,只有三分之一。也就是说,如果您选择开发跨平台,则相当于放弃市场上三分之二的候选人才能。此外,中型和长期历史趋势还表明,还列出了网络开发框架统计信息。在过去的三年中,使用跨平台开发技术的人数正在下降,并且仍然相对稳定,其他框架至关重要。另一方面,它保持了不断上升的动力,并且有42%的移动应用程序正在使用。最后,多平台开发的发展也很好。
小说案例研究II:
金融科技业务
我们假设有一家金融科技公司需要业务应用?毕竟,可以肯定的是,竞争对手有自己的应用程序,因此我们不能错过这些项目。您需要成为本地申请吗?我们仍然使用前面提到的标准来判断。例如,我们需要大量的操作系统API吗?不需要答案。尽管这种类型的应用程序经常使用通知功能,但是此问题具有成熟的解决方案,并且不必担心它。那么用户使用此应用程序要做什么?假设目的是检查股票价格,检查和收集通知,那么这些无需由劳动力本地发展开发。选择跨平台后,下一步是哪个框架的问题。首先,假设该公司没有团队,例如,他们以前使用的是内部没有经验丰富的.NET人才,那么被排除在外。他们使用大量服务,需要各种自定义用户界面,包括精美的图形和精美的动画,因此最理想的选择是。
移动测试
最后,在移动设备上进行测试。请注意,移动设备上的单元测试也具有成熟的解决方案,真正的问题是在UI测试中。提供的UI测试可以描述为拥挤。相反,每个平台自己的工具的本地开发和使用。它几乎相同,但是在我的印象中,它使用自定义工具来开发各种平台。
在连续集成(CI)中运行UI测试时,通常有必要在板测试上缓慢运行 - 可能是物理固体机器或模拟器。尽管一些云服务提供商提供了UI测试设备,但设置和维护非常复杂,并且使用成本非常昂贵。经典的解决方案是进行更多的单元测试,最终尤其重要。考虑到这一点,它可以帮助我们作为单位测试进行集成测试。对于移动项目的连续集成解决方案,例如。
决策审查
我们做出了发展决策。在开始开发和应用时,我们还应该看到选择正确与否的实际困难。毕竟,许多错误不会立即显示出伤害。例如,一些制造商在几年后放弃了,最终可能会出现类似的情况。简而言之,请随时注意情况的发展。问题越早,我们的下沉成本就越低。
总结
首先,考虑是否需要移动开发。请记住用数据回答问题,不要依靠想象力。
其次,确保企业有能力进行移动开发,然后澄清组织结构和团队责任。
第三,在做出决策之前评估因素和权衡元素,意识到没有最佳的保释选择,并且完全理解其自己的现实。
第四,做出正确的选择并努力前进。
互动问题和答案
主持人:您讨论了几种有效的实施方法。根据个人经验,您在大多数情况下选择哪一个?
:我是一个本地发展,所以我对这个问题有明显的趋势。但是,如果您需要开发跨平台开发,那么我可能会更愿意选择,因为我在这方面有一定的经验。尽管我对DART不熟悉,但实际上与Java非常相似,也不难理解。作为次要选项,我可以选择。但是我必须承认我对此一无所知,所以我不敢说正确的事情是正确的。简而言之,只要掌握了声明和响应UI框架的工作原理,不同的框架通常只对应于不同的语义和语言特征,这些语义和语言特征基本上是连接的。
主持人:据说,当您选择实际选择时,恐怕他们仍然会受到熟悉的语言的指导。
参考链接:
今天推荐