什么是Flutter?
目前,主流的移动端包括Android和iOS,有许多可行的框架可以来开发。
一般来说,创建移动端应用是非常复杂和具有挑战性的任务。
对于移动端应用开发,Android提供基于Java和kotlin语言的原生框架。
iOS则提供基于Object-C和Swift语言的框架。
可见,要开发不同的移动平台应用,就需要不同的语言和框架。
有没有一种通用的,所谓跨平台的语言和框架来克服这样的不足呢?
有几种可用的工具用于跨平台开发,如基于Ionic、Phonegap、Xamarin和React Native。
这些框架在移动行业都有不同的成功程度。
最近,在从谷歌开发的跨平台开发系列中引入了一个新的框架,名为Flutter。
Flutter是一个 UI 工具包。
Flutter用于创建移动、Web 和桌面的快速、美观、本机编译的应用程序。
Flutter带有一种编程语言和单个代码库。
Flutter最初由谷歌开发,现在由ECMA标准管理。
Flutter使用 Dart 编程语言创建应用。
Flutter编程和其他编程语言(如kotlin swift)共享多个相同的功能。
Flutter编程可以跨编译为 JavaScript 代码。
Flutter 主要针对可在 Android 和 iOS 平台上运行的 2D 移动应用进行优化。
Flutter可以构建功能齐全的应用程序,包括相机、存储、地理位置、网络、第三方 SDK 等。
Flutter的第一版于2015年在Dart开发者峰会上宣布。
Flutter发布后,2017年5月发布了第一个Flutter Alpha版本(v-0.06)。
Google于2018年9月发布了Flutter的第二个预览版。
2018-12-4,在Flutter Live事件中发布了Flutter框架的第一个稳定版本Flutter 1.0。
该框架的当前稳定版本是2019年10月24日的Flutter v1.9.1 + hotfix.6(可能已更新)。
优点
Flutter满足了开发移动应用程序的自定义需求。它还具有许多优点,在下面列出。
由于具有热重载功能,它可以使应用程序开发过程极其快速。此功能使我们能够在更改后立即更改或更新反映的代码。
与其他移动应用程序开发框架相比,它提供了使用应用程序时更流畅,无缝的滚动体验,而没有太多的挂起或割伤。
Flutter减少了测试时间和工作量。众所周知,Flutter应用程序是跨平台的,因此测试人员不必总是在同一应用程序的不同平台上运行同一组测试。
它具有出色的用户界面,因为它使用了以设计为中心的窗口小部件,高级开发工具,高级API和许多其他功能。
它类似于反应式框架,在该框架中,开发人员无需手动更新UI内容。
由于其快速的开发过程和跨平台的特性,因此适合MVP(最小可行产品)应用程序。
缺点
前面我们已经看到,Flutter具有许多优点,但也包含一些缺点,如下所示。
Flutter是一种相对较新的语言,需要通过维护脚本来提供持续集成支持。
它提供对SDK库的非常有限的访问。
这意味着开发人员没有很多功能来创建移动应用程序。
此类功能必须由Flutter开发人员自己开发。
Flutter应用程序开始时支持Android和iOS平台。
也支持了Windows、Linux和Mac OS桌面平台。
目前,新版本也支持了浏览器平台(Web)。
它使用Dart编程进行编码,因此开发人员需要学习新技术。
但是,对于开发人员来说很容易学习。
Windows开发环境
l Git
l Java SDK
l Flutter SDK(x64?)
l Android Studio(+SDK)
l Flutter 和Dart插件
环境搭建比较费时费力,下载软件,需要翻墙,很需要耐心,而且对电脑配置要求较高。
Android Studio很占用内存,可选择相对占用较小的VS Code。
可行的配置:
Flutter + JDK + Android SDK + VS Code(Flutter插件)
Win7环境下使用VSCode配置Flutter开发环境(脱离Android Studio安装)
32位电脑出错:该版本的 D:flutterincachedart-sdkindart.exe 与您运行的 Windows 版本不兼容。请查看计算机的系统信息,了解是否需要 x86 (32 位) 或 x64 (64 位)版本的程序,然后联系软件发布者。
个人笔记本配置较差,是32位机器,与Flutter的x64不兼容,其余环境均配置正常。相关安装包已经下载,避免再次下载浪费时间。
StackOverflow上有人提问Flutter x86,回答为不支持,x64优先:
https://stackoverflow.com/questions/52008108/can-flutter-sdk-run-on-x86-windows
Github issues:没有支持x86的打算
https://github.com/flutter/flutter/issues/14925
找的学习例子:
https://github.com/pheromone/Flutter_learn_demo
Github:
https://github.com/flutter/flutter
Flutter for Web
https://github.com/flutter/flutter_web
https://flutterchina.club/web-analogs/
Flutter for Android
https://flutterchina.club/flutter-for-android/
Flutter for iOS
https://flutterchina.club/flutter-for-ios/
Flutter for 桌面
https://dev.to/droidmakk/flutter-for-desktop-2on5
官方例程: