`

Flutter 是移动应用程序开发的未来?

阅读更多

本文原文:https://www.freecodecamp.org/news/why-i-think-flutter-is-the-future-of-mobile-app-development-768332b73c0d/,本文为 CSDN 翻译,转载请注明来源出处。作者|Eric Grandt 译者|王艳妮,责编|屠敏 出品|CSDN(ID:CSDNnews)

随着系统以及应用复杂性的日益增高,「write once,run anywhere」开始成为越来越多开发工具的终极目标。

基于此,Google 于 2017 年的 I/O 大会上隆重推出了移动 UI 框架 Flutter,可以让开发者在 iOS 和 Android 系统上快速构建高质量的原生用户界面。与此同时,苹果也于2019年 WWDC 为开发者们带来了一套可横跨苹果几大操作系统的 UI 框架 SwiftUI。

那么在此趋势下,类似 Flutter 的这种工具真的是新一代移动开发的未来吗?

几年前,我在Android和iOS开发中略有涉足,使用的是Java和Objective-C。在花了大约一个月的时间学习后,我决定不再深入学习了。我就是无法找到那种深入其中的状态。

但最近,我了解了Flutter,并决定在移动应用程序开发方向上再试上一试。我当即就爱上了它,因为它使开发多平台应用程序变得贼有趣。自从了解它以来,我已经使用它创建了一个app和一个库。Flutter似乎是一个非常有前景的一步,下面我想解释一下我之所以相信这一点的几方面的原因。

1 由Dart提供技术支持

Flutter使用的是由谷歌开发的Dart语言。如果你之前使用过Java,那么会比较熟悉Dart的语法,因为它们非常相似。但除了语法之外,Dart跟Java就很不同了。

我不打算深入讨论Dart,以免跑题,但我想讨论一下我认为它最有用的功能。这个功能就是异步操作。Dart不仅支持异步操作,而且还使其变得非常容易。

如果你正在进行IO或其他耗时的操作(例如查询数据库),那么你有可能在所有Flutter应用程序中使用异步操作。如果没有异步操作,任何耗时的操作都会导致程序冻结直到此操作完成。为了防止这种情况,Dart为我们提供了async和await关键字,以允许我们的程序在等待这些较长操作完成的过程中继续往下执行。

让我们看看几个例子:一个有异步操作,一个没有。

并分别查看输出:

这不太理想。没人会想用在执行长时间操作时会卡住的App。所以让我们稍微修改一下并使用async和await关键字。

并再次输出:

有了异步操作,我们在执行需要比较久才能完成的代码的同时,其余代码的执行也不会被妨碍。

2 只写一次代码,就能同时在Android和iOS上运行

考虑到需要为Android和iOS使用不同的代码库,开发移动应用程序可能需要花费大量时间。除非您使用像Flutter这样的SDK,这样您就将拥有一个能适配两个操作系统的代码库。不仅如此,你还可以完全原生地运行它们。这意味着诸如浏览页面和导航之类的东西,完美配合不同的操作系统。

一言以蔽之,只要您有个设备或模拟器在运行着,Flutter就可以使构建和运行您的应用程序来进行测试的过程简单到动动手指就能完成。

3 UI开发

UI开发几乎是我最不期待的事情之一。我更像是一个后端开发人员,所以当涉及到严重依赖它的东西时,我只想要一些简单的东西。这就是Flutter在我眼中闪耀的地方。

UI通过将不同的小部件组合在一起并修改它们以适合你的App外观来创建。你几乎可以完全控制这些小部件的显示方式,因此你最终总是会得偿所愿。为了布局UI,可以使用诸如Row,Column和Container之类的小部件。对于内容,有诸如Text和RaisedButton之类。这只是Flutter提供的小部件中的几个,除这些之外还有很多。使用这些小部件,我们可以构建一个非常简单的UI:

Flutter像一个拥有各种各样道具的魔术师,使你能轻而易举地构建App的主题。你可以通过手动更改字体,颜色,并逐个设置所有内容,但这需要太长时间了。相反,Flutter为我们提供了一个名为ThemeData的东西,它允许我们为颜色,字体,输入字段等等设值。此功能在保持应用外观的一致性方面很出色。

使用此ThemeData,我们设置应用程序颜色,字体系列和一些文本样式。除文本样式之外的所有内容都将自动应用于整个app范围。每个小部件的文本样式必须手动地一个一个设置,但这仍然很简单:

为了进一步提高效率,Flutter可以热重新加载应用程序,因此您无需在每次更改UI时重新打开它。您现在可以进行更改,保存,然后在大概一秒内就能看到更改后的效果。

4 库

Flutter提供了许多开箱即用的强大功能,但有时你需要更多功能。考虑到Dart和Flutter的大量可用的库,这根本不是问题。是否有兴趣在你的应用中投放广告?有这方面的库。想要新的小部件吗?有这方面的库。

如果你更喜欢自己动手DIY,可以创建自己的库并马上就能与社区其他人分享。向项目添加库很简单,可以通过向pubspec.yaml文件添加一行代码来完成。例如,如果要添加sqflite库:

将它添加到文件后,运行flutter packages get,这样就好了。各种各样的库使开发Flutter应用程序变得轻而易举,并为开发过程节省了大量时间。

5 后端开发

现在大多数App都依赖于某种数据,所有这些数据需要存储在某个地方,以便以后可以显示和使用。因此,在寻找使用新SDK(例如Flutter)创建应用时,牢记这一点非常重要。

再重复一次,Flutter App是使用Dart制作的,而Dart在后端开发方面非常出色。我在本文中谈到了很多简单易行的功能,Dart和Flutter的后端开发也不例外。不管是对于初学者还是专家,创建数据驱动的App都非常简单,但这种简单性并不等同于质量底下。

可以使用库,以便你使用所选择的数据库。使用sqflite库,我们可以非常快速地启动并运行SQLite数据库。感谢单件模式,我们可以访问数据库并从几乎任何地方都可以进行查询,而无需每次都重新创建一个对象。

从数据库中检索数据后,可以使用一个模型将其转换为对象。或者,如果要将对象存储在数据库中,可以使用相同的模型将其转换为JSON。

如果没有将其显示给用户的方法,这些数据就不是那么有用了。这就是Flutter带着诸如FutureBuilder或StreamBuilder这样的小部件登场的时候了。如果您对使用Flutter,SQLite和其他技术来创建数据驱动型App有兴趣做更深一步的了解,我建议你查看我写的这方面的文章:

  • 《在Flutter中使用Streams,BLoCs和SQLite》:Streams,BLoCs和SQLite在处理Flutter中的数据时是一个很好的组合(https://medium.com/@erigitic/using-streams-blocs-and-sqlite-in-flutter-2e59e1f7cdce)。

6 最后的一些思考

有了Flutter,就有了几乎无穷无尽的可能性,因此即使是体量巨大的App也可以轻松地被创建出来。如果你是做移动App开发的并且尚未尝试过Flutter,我强烈建议你试一下,因为我相信你也会爱上它的。使用Flutter几个月之后,我认为可以说这是移动开发的未来。如果不能算未来的话,这也绝对是朝着正确方向迈出去的一步。

逆锋起笔是一个专注于程序员圈子的技术平台,你可以收获最新技术动态最新内测资格BAT等大厂的经验精品学习资料职业路线副业思维,微信搜索逆锋起笔关注!

分享到:
评论

相关推荐

    使用 Flutter 进行移动应用程序开发 - ijrpr.pdf

    ### 使用Flutter进行移动应用程序开发 #### 摘要与引言概述 本文主要探讨了使用Flutter框架进行移动应用开发的相关内容。随着COVID-19疫情的爆发,移动应用的需求急剧增加,这使得开发者们面临着更加激烈的竞争...

    移动应用开发赛卷.zip

    全国职业院校技能大赛是每年备受关注的教育盛事,旨在提升学生的实践...全国职业院校技能大赛的移动应用开发赛卷,无疑为学生们提供了一个展示才华、提升技能的宝贵平台,也为未来的IT行业输送了具备实战能力的人才。

    移动应用开发:构建高质量的移动应用程序.md

    本篇文章将从四个方面——移动应用程序框架、移动应用程序设计、移动应用程序测试与移动应用程序发布,详细介绍移动应用开发的关键技术和实践方法。 #### 一、移动应用程序框架 移动应用程序框架是指在移动设备上...

    FLUI是一种全新的数据存储格式专门用于Flutter应用程序

    在当今的移动应用开发领域,Flutter作为Google推出的开源跨平台框架,以其高效、便捷的开发体验和美观的用户界面设计赢得了开发者们的青睐。然而,随着应用程序功能的日益复杂,数据存储的需求也随之增加。FLUI,...

    Flutter课程仪表板UI开发

    在本“Flutter课程仪表板UI开发”教程中,我们将深入探讨如何使用Google的Flutter框架构建一个健身应用程序的用户界面。Flutter以其高效的开发速度和丰富的可定制性,为开发者提供了构建美观且高性能移动应用的工具...

    移动应用开发是指开发用于移动设备(如智能手机和平板电脑)的应用程序.docx

    ### 移动应用开发概述 移动应用开发是一项技术领域,主要关注于为各种移动设备(例如智能手机和平板电脑)创建应用程序。...随着技术的不断进步和发展,未来移动应用开发领域还将迎来更多新的挑战和机遇。

    FLUTTER TECHNOLOGY AND MOBILE SOFTWARE ... Flutter 技术和移动软件.pdf

    随着技术的不断进步和完善,Flutter有望在未来移动应用开发领域发挥更加重要的作用。 #### 展望 未来,随着更多开发者对Flutter技术的深入研究和应用,我们有理由相信,这项技术将会进一步推动移动应用开发领域的...

    flutter的概述、原理及应用.pdf

    4. **性能优化**:由于Flutter使用自绘引擎和硬件加速技术,应用程序通常具备快速的响应时间、流畅的动画效果以及较低的内存占用,成为开发高性能移动应用的理想选择。 5. **社区支持和生态系统**:Flutter拥有庞大...

    Flutter完整开发实战详解系列.pdf

    Flutter是谷歌开发的一个开源UI软件开发工具包,用于创建在iOS和Android上都能运行的编译型移动应用。Flutter完整开发实战详解系列是一套涵盖了从基础到深入探索、再到实战的系列教程,旨在帮助开发者全面掌握...

    Flutter完整开发实战详解系列.txt

    根据提供的文件信息,我们可以推断出这是一套关于Flutter开发实战的教程或文档。...在未来的学习和实践中,不断深入探索Flutter的每一个细节,将有助于更好地利用这一强大的工具开发出优秀的移动应用。

    逆向Flutter应用的复杂性.pdf

    随着移动开发技术的不断发展,Flutter作为一种跨平台的应用开发框架,受到了广泛的关注与应用。它不仅能够为开发者提供高效且高质量的应用构建能力,同时也因其独特的技术栈而给逆向工程带来了新的挑战。本文将深入...

    Flutter 完整开发实战详解系列

    状态管理是现代应用程序开发中的重要话题。这一章节将深入探讨Flutter中状态管理的不同设计模式,包括Provider、Bloc等,并分析它们的优缺点。 #### 十三、全面深入了解触摸和滑动原理 触摸和滑动是移动应用中常见...

    移动应用开发资源.docx

    移动应用开发是指专为智能手机和平板电脑等移动设备定制的应用程序的设计、构建和维护过程。它涉及多种编程语言、框架和工具,例如用于Android开发的Java和Kotlin,以及用于iOS开发的Swift和Objective-C。 #### 四...

    利用Flutter开发的漂亮天气App

    本项目是基于Flutter开发的一款漂亮天气应用程序,它展示了如何使用Flutter构建一个功能完备、用户界面友好的天气查询应用。 【描述】: "利用Flutter开发的漂亮天气App" 这个项目不仅涵盖了基本的天气信息展示,如...

    flutter简介及使用.pdf

    Flutter是一个由Google开发的开源移动应用开发框架,能够高效地构建在iOS和Android平台上运行的高质量原生用户界面。该框架利用Dart编程语言进行开发,支持热重载功能,使得UI的迭代与调试更为迅速便捷。 #### ...

    移动应用开发常见面试题.pdf

    ### 移动应用开发常见面试题解析 #### 1. 移动应用开发的流程和技术栈 移动应用开发流程通常包括需求分析、设计、编码、测试、发布与维护等几个阶段。具体步骤如下: - **需求分析**:明确应用的目标用户、主要...

    2. 闲鱼 Flutter 工程化之混合开发框架-余玠.pdf

    Flutter Engine 是一个核心组件,负责渲染 Flutter 应用程序的 UI 组件。Flutter ViewController 是一个容器,负责管理 Flutter Engine 和 native 组件之间的交互。Plugins 是一个插件,负责提供额外的功能和服务。 ...

    移动应用开发赛项.zip

    移动应用开发是一项涵盖众多技术领域的综合实践,主要目标是创建能在智能手机、平板电脑等移动设备上运行的应用程序。本赛项可能关注iOS、Android、Windows Phone或其他平台的应用开发,旨在测试参赛者的编程技能、...

    敏捷与高效——手机应用程序开发模式研究

    ### 敏捷与高效——手机应用程序开发模式研究 #### 一、手机应用程序开发现状 随着信息技术的迅猛发展,智能手机正逐步从简单的通讯工具转变为功能强大的个人数字助手。硬件方面,ARM内核CPU的广泛应用极大地提升...

Global site tag (gtag.js) - Google Analytics