赣州新闻网

首页 / 科技

Flutter 2020:跨平台状态

2020-04-11 · 赣州新闻网 · 科技

已兑现承诺

Flutter 2020:跨平台状态

Flutter cross-platform promises: mobile, web, and desktop


Flutter是Googlez ] g % 4 x支持的跨平台框架,可实现跨平台软件开发。

这意味着FlutF # ~ ^ter应用程序可以从一个代码库开发,构建并部署在多个平台上。

承诺

单一的代码库承诺非常诱人。 您可以用更少的资源,更少的时间,有时甚至是更少的技能(而不是更少的技能)来始终如一地\"完成所有工作\",这一事实是 E部署,这可能是一个巨大的挑战。

乐观地说,那些开发人员还在身边,他们可以提供支持。 沟通需求,更新所有应用程序T C : $ v并在所有平台上部署将花费多少时间?

现在,假设所有这些应用程序都来自Dart / Flutter中的单个代码库,而您只需要一支能够与Flutter合作的团队(可能只有一个人)就能更新所有应用程序。

Flutter努力兑现这一承诺。

在这一阶段,Flutter非常有能力,有望成为跨平台软件开发的p f v y C f A首选解决方案。

已交付

首先H B ] 5 m,您需要一个编辑器来编写您的应用程序代码。您可以使用任何文本编辑器和命令行工具来编译您的应用程序,尽A J -管这会有些乏味并且* ! 9 o b Z浪费您的时间。 编辑器有一些选项:Visual Studio代码(VS Code),And9 f 5roid Studio7 Y 3 H z w O,IntelliJ等。 我使用VS Code(免费),有时使用IntelliJ(付费)。 IntelliJ提供了许多不错的功能,例如自动保存,是我使用过的最好的IDE,尽管目前我不将其用于Flu_ C k o p ^ ^ Ptter项目。 我选择的Flutter编辑器是VS Code。

第二,您将需要安装Flutter。 您可以在macOS,Windows,Linux和Chrome操作系统上M p G执行此操作 c # o X。

Flutter有4个主要渠道(分支):稳定版,测试版,开发者和母版。 从左到右,新功能的增加,支持水平和整体稳定性下降。 我们将使用Flutter的最新q } - 7(并非总是)最出色的主频道。

要查看您在哪个通道上,可以在TERMINAL选项卡中使用命令颤动通道。 输出将是:

Flutter channels: masteJ ) N + ? ! _ J !r dev beta* stable


要将通道切换为主通道,应使用抖动通道主通道,然后在\" TERMINAL\"选项卡中使用抖动T $ V升级。 将会有简短的下载和带有状态的摘要输出。

第三8 J K q步(也是最后一步)是测试您可以创建一个包含所有内容的项目。 使用\"视图—命令面板\"…,然后键入Flutter,您可以选择Flutter:New Project。 如果在? a # - 1 U S\"输出\"选项卡中没有错误弹出窗口,那您就好了。

Flutter 2020:跨平台状态

The OUTPUT tab after successfully creG 5 yating a Flutter project


因此,让我们深C 5 , ;入了解Flutte 1 # l w 7 3 Dr在2020年可以做什么:

移动端

Flutter可以使用单个代码库为iOS和Android编译您的应用。

默认情况下,当O 2 n m 5我们从Flutter的任何渠道创建项目时,0 u x z , =我们都可以为移动(电话/平板电脑)iOS / Android编译该X y % W 9 Y t项目。

flutter devicJ - H 9 Tes命令将显示可用设备(已连接到开发计算机)。 例如,在我的机器上,它输 = S T n dme

• chrome

• web-javascript

• Google Chrome 80.0.3987.149Wt d V ? ,eb Server

•1 / F s web-server

• web-javascript

• Flutter Tools


如果我们运行flutter runY 1 y Y F T命令,则该项目将在上面列表中的第一个设备上编译并以调试模式(默认模式)运行。 就我J ( m V b而言,该设备是l z { /Android设d J n l l G备。

Flutter 2020:跨平台状态

Flutter sample app running on an Android device


要q t : ! * D ) ( = , f使用设备ID(每个子列表中的第一个)。 例如,要在我的iU } ]OS设备上运行,我将使用flutter run -d 000507k 3 E / ) fe0a522y G D &52f43eaa151dcbc4ebfa52bd92f0命令。

Flutter 2020:跨平台状态

Flutter sample app running on an iR e h W ~ 3 N dOS device


要# F m : 在iOS上运行,您需要一台运行macOS的计算机。 无需实际的iOS设备。 模拟器将完成这项工作。 AndrL G Q x F /oid也是如此。

网页

使用Flutter的所有渠道(稳定版除外),您还可以选择运行和构建Web平台。

要在网络JavaSH z a ` { ]cript平台上运行,我们可以使用flutter run -d chrome或flutter rA J 3 g uun -d web-server。

第一个选项可在Chrome浏r + Z / :览器中运行该应用。 顾名思义,第二个在Web服务器中运行该应用程序。

选项之间的% ] M D W V P &区别在于,第一个选项可在I W s K I f f / rChrome中启动应用程序,而另一个选项仅提供您可以使用首选浏览器导航到的地址。 此外,Chrome选项允许进行高级调试和配置。

Flutter 2020:跨平台状态

The sample app running in MicrosofR + m ~ 8t Edge & Internet Explorer 11, Opera, Chrome, Firefox, and Safari


警告:Flutter对Web开发的支持还不稳定,并且尚未在生产环境中进行全面测试。

桌面

与处于测试阶段的Web平台不同,在开发/功能/支持方面,桌面平台至多处于早期alx W S持(请注意,只有在运行Windows的计算机上才能运x D 7行和构建此类应用程` 2 1 E j P s }序)。

如果运行未连接物理设备的抖动设备,则会得到:

3 connected devices:Windows

• Windows

• windows-x64

• Microsoft Windows Chrome

• chrome • web-javascript

• Google Chrome 80.0.3987.149] * ^ #Web Server

• web-server

• web-javascript

• Flutte@ @ 7 ! V ) X fr Tools


要将特定于构建的文件夹添加到我们的项目中,我们必须运行fluX ; V z Z q gtter c6 s q S J o q _reate ..

最后,要在Windows上运行我们的桌面应用程序,我们使用flutter run -d Windowsp e 5 P命令。

Flutter 2020:跨平台状态

Flutter sample app ru_ r O D o z 5 Cnning on Windows


警告:当前的Windows Shell是早期的技术预览。 最终嵌入的API可能与当前的API表面明显不同。

Linux

在我们刚刚使用master通道创建的项目中,flutt* i M } 4 ber confiD f I ^ R 4 ug --enable-linux-desktop命令将启用对Linux上桌面应用程序开发的支持(请注意,只有在运行Linux的计算机上才能运行和构建此类应用程序)。

如果运行未连接物理设备的抖动设备,则会得到:

1 connected device:O I ` 2 + c FLinux

• Linux

• linux-x64

• Linux


要将特定于构建的文件夹添加到我们的项目中,{ 9 t 5 G 3 : ;我们必须运行flutter create ..

最后,要在Linux上运行桌面应用程序,我们使用flutter run -d Linux命令。

我在Windows 10计算机上将Ubuntu 18.04 LTS设置为WSL(Linux的Windows子系统)- 3 _ q { p。 在一段时间内,可以在Windows内运行Linux。 不幸的是,我无法成功让Xming UI运行示例应用程序。

然后打开以在Windo m M X @ws上使用VirtualBox,由于某种原因,VirtualBox无法安装Ubuntu。

最终,我设法使VirtualBb G + + z Box在macOS上运行Ubuntu文W ~ b g c @ n x G件。

Flutter 2020:跨平台状态

Flutter sample ai u * f X 4 $ : Hpp running on Linux (Ubun& u 2 ~ } g k ) L是GLFW占位符,以允许早期试验。 最终外h ( ] ! - w ` t壳的API与当前实现会有根本的不同。

总结

我们设法使示例应用程序在移动设备(U A oiOS和Android),Web8 D F W T Y ^ H V(在Microsoft Edge和Internet Explorer 11中R ; J j g X q @,Opera,Chrome,Firefox1 0 @ W ) :和Safari浏览器中)和b R a & c H ( ]台式机(macOS,Windows和Linux系统)上运行。

尽管没有正式的支持,但有了一些黑客手段,我们甚至可以使示例应用m K d P B % 7 4 ,程序在RaspberryG j 3 / = Z 6 P ^ Pi(IoT上下文)上运行。

您可能已经注意到,我仅将应用程序的默认标题修改为Fluttering UP! (在不久的将Y u _ Q H来对此有更多的了解),并通过使n D N用deb0 ] wugShowChk C F y Q T }eckedModeBanner删除了调试横幅:MaterialApp为false。

此外,还要注意的另一点是S b } X l p,在Flutter附带的示例应用程序的呈现上存在细微差异(不同平台之间呈现的颜色,字体,阴影,大小有所不同,在Web平台a I C V S/浏览器的情况下, 浏览器到浏C a 7 r C 6 ]览器)。

桌面平台y [ a 8 . / O B还没有关于稳定性和可用性的信息,但是正处于正确的轨道。

如果要开始使用Flutter,可* } K ! O O ;以直接进入默认的示例应用- A s 9程序并从那里开始。 有很多资源可供发8 ` 5 ^ d现和用于构建您的应用程序J d L I } R。 您( q E Y I @ $ 8 o还可以从Dart的一些基础知识开始,Dart是使这K b O b Y a $一切成为可能的秘密武器(编程语言)。

在这一阶段,Flutter非常有能力,有望成为跨平台软件开发的首选解决方案。

Tha(nk | t\'s)全部!

(本文翻译自Constantin Stan的文章《Flutter 2020: The Statex F % u of Cross-Platform》,参考:https://medium.com/@constanting/flutter-2020-state-of-cross-platform-814f1d8ff16)

测试项目工作需求文章设置平台定南状态