Android开发:三个经验教训

Android开发:三个经验教训

时间:2021-3-4 作者:admin

这个月我们采访了迭戈·奥杰达,Android Lead@阿皮乌姆。在这次采访中,他分享了他在Android应用程序开发中学到的三大教训,并讨论了一些建议和Android发展趋势,这些都对今天的开发过程产生了影响。

如何开始使用AndroidSDK

SDK(SoftwareDevelopmentKit)是由Google开发和发布的一套工具,这样程序员就可以开发运行在当今最流行的移动操作系统Android上的应用程序。在这个SDK中,我们找到了允许我们与设备交互的工具,例如从计算机上安装应用程序,解压缩.apk文件以查看其内部,调试我们的应用程序等等。

除了这些工具之外,这个SDK还包含了必要的库,以便能够通过代码与Android操作系统进行交互,也就是说,开发我们自己的应用程序。使用此SDK的最简单方法是下载用于开发Android应用程序的官方工具:AndroidStudio。这是一个IDE,从我们启动它的那一刻起,它就允许我们开始编写我们自己的应用程序,并在我们的设备和模拟器上运行它们。此外,谷歌还提供免费课程,让你从其代码实验室平台进入应用程序开发的世界。

GooglePlay Instant和Instant应用程序

有人还记得21世纪初的游戏演示吗?在要求你买完整游戏之前,那些小片段允许你玩一两级游戏吗?即时应用是现代版的。您不必在设备上安装功能完整的应用程序,而是可以访问一个小部件来试用它,或者在设备上不需要安装任何东西就可以执行特定的操作。

这些即时应用最好的例子就是游戏。你是否想尝试一个游戏,而不需要在你的设备上安装它并下载它占用的数百兆字节?通过即时应用,你可以。然而,和计算世界上的其他一切一样,即时应用也有它们的缺点。例如,您不能接收推送通知–它们会使您的RAM超载,并且只能在Android6.0之后的设备上工作。

即使如此,即时应用仍然是移动应用开发领域的一个突破,因为它允许开发者通过允许用户在下载之前测试他们的应用程序,从而极大地扩展了他们的用户群。

跨平台应用程序选择颤振的原因

自从最受欢迎的移动平台(Android和IOS)诞生以来,人们一直试图找到一种统一它们的方法;换句话说,他们试图使用单一的代码库来获得一个同时适用于Android和IOS的应用程序。这一过程已经进行了十多年,在这段时间里,这些技术得到了发展和改进。

最近最受欢迎的发展之一是Google致力于跨平台应用的发展。Fltter是一个使用DART作为编程语言开发移动应用程序的框架。对于谷歌来说,这是一个高度创新的项目,因为它是第一个允许声明用户界面的此类框架。

即使如此,与竞争对手的主要区别,也是它之所以如此受欢迎,是因为我们的颤振应用程序的代码被编译成了每个平台的本机代码,这样我们就可以使用它们中的每一个功能–例如,对相机的访问不是像在其他类似框架中那样通过插件完成的。Fltter还从一个代码库成功地在Android和iOS上实现了本机外观,使其组件转换为每个平台的组件,从而提高了用户体验,减少了开发人员为使其应用程序适应这些平台而付出的努力。

Android开发的前三名经验教训

在我们开发Android应用程序的多年经验中,我们学到了很多,我们也遇到了在移动应用程序开发中反复出现的错误。以下是我们学习的一些例子:

从“约束层”的引入看范式的转变

在这种布局出现之前,视图是通过在LinearLayout内部嵌套LinearLayout生成的,它们之间有一些RelativeLayout或FrameLayout。这使得操作系统构建视图和开发人员维护代码非常昂贵,因为带有这些视图的.xml文件非常庞大。ConstraintLayout改变了这一点,因为它允许有一个平面视图层次结构,其中根据其他视图及其父视图指定视图的位置,这解决了上面提到的大多数问题。

Kotlin Coroutines滥用

在Kotlin被宣布为Google正式推荐的Android应用程序开发语言几个月后,Cooutines发布了。Cooutines是一种工具,可以帮助我们解决在应用程序中以顺序和非阻塞方式处理异步代码的问题。根据我们的经验,我们发现在Android应用程序中实现这些协同机制是不正确的,因为没有正确地理解范围的概念或在不将其与活动的生命周期相关联的情况下启动协同线的含义。

视图模型误用

不久前,Google推出了它的架构组件库(Architecture Components Library),其中包括ViewModel–这是Google解决在应用程序中切换时重新创建活动/片段的问题的方法,例如,在景观模式和纵向模式之间切换。这些视图模型是对应用程序生命周期不可知的组件,这也是它们在这些方向变化中幸存下来的原因。在我们的经验中,我们遇到了许多情况,即在ViewModel中有对视图的引用,或者依赖于它们所链接的活动的生命周期的操作,这与这些ViewModel存在的原因背道而驰。

如果你想需要软件开发,可以点以下链接进行询问

版权所有:https://www.eraycloud.com 转载请注明出处