如何制作 Flutter 应用?只需四步,轻松上手!


Flutter完全免费、开源,在全世界,Flutter正在被越来越多的开发者和组织使用。

不要犹豫,一起来走进Flutter的世界吧

1. Flutter 是什么?

Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web ([early access][])、桌面和嵌入式平台。

Flutter 旨在帮助开发者创作媲美原生的高性能应用,并遵从了各个平台不同的滚动行为、排版布局、图标样式等。这是一个名为 Gallery 的示例应用, Gallery 是一个在安装完 Flutter 并配置好环境后可以立即运行的 Flutter 示例应用集合。

Shrine 有高质量的滚动图片、交互式卡片、按钮、下拉列表以及一个购物车页面。开始开发之前无需移动开发经验。应用使用 Dart 开发,如果你曾使用过 Java 或者 JavaScript 语言,那么 Dart 看上去会很熟悉。

面向对象编程的经验对开发毫无疑问会有帮助,但即便不是程序员也可以制作 Flutter 应用!

2. 为什么使用 Flutter?

Flutter 的优势是什么?它能够帮你:

高效率
  • 在应用运行时尝试修改代码并重载(通过热重载)
  • 修复崩溃并从应用停止的地方开始继续调试
  • 利用单一代码库开发 iOS 与 Android 应用
  • 即便在单一操作系统上,也可以通过使用现代、富有表现力的语言以及声明式方法,写更少代码做更多事
  • 原型与轻松迭代
生成美观、高度定制化的用户体验
  • 受益于用 Flutter 框架构建的丰富的 Material Design 以及 Cupertino (iOS 风格) widget
  • 实现定制、美观、品牌驱动的设计,不受 OEM widget 集合的限制

3. 核心原则

Flutter 包含一个现代响应式框架,一个 2D 渲染引擎,现成的 widget 以及开发工具。这些组件协同工作以帮助你设计、构建、测试和调试应用。所有这一切都围绕几个核心原则进行组织。

3.1 一切皆 Widget**

Widget 是 Flutter 应用用户界面的基本构建单元,每个 widget 都与最终的用户界面的展示紧密相关。不同于其他框架和平台 —— 将视图 (views)、视图控制器 (view controllers)、布局 (layouts) 等其他属性分开, Flutter 拥有统一的对象模型:widget。一个 widget 可以定义:

  • 一个结构元素(比如一个按钮或者菜单)
  • 一个风格元素(比如一个字体或者配色方案)
  • 布局的一个方面(比如 padding)
  • 等等……

Widget 通过组合形成一个层次结构,每个 widget 嵌套其中,从其父节点继承属性。Flutter 中没有单独的“application”对象,与之相对应的功能由 root widgets 承担。

你可以通过告诉框架将层次结构中的一个 widget 替换为另一个来响应事件,如用户交互。框架将会对比新旧 widget 并及时更新用户界面。

3.1.1 组合大于继承

Widgets 本身往往是由许多小的、具有单一用途的 widget 组成,它们组合在一起可以产生强大的效果。比如,Container?是一个常用的 widget,由负责布局、绘制、定位和尺寸的几个 widget 组成。

具体来说,Container 是由?LimitedBoxConstrainedBoxAlignPadding、?DecoratedBox?和?Transform?widgets 组成的。

你可以将这些与其它小而简单的 widgets 用新颖的方式组合,而不是子类化 Container 以生成自定义效果。类层次结构是浅而广的,以支持尽可能多的组合。

你也可以通过组合其它 widgets 以达到控制一个 widget 的布局。例如,为了居中一个 widget,你可以把它包裹在一个 Center widget 中。还有用于设置间距、对齐、行、列以及网格的 widgets,这些布局 widgets 本身并没有视觉表现。

反之,他们唯一的目的是在某些方面上控制另一个 widget 的布局。要了解一个 widget 以某种方式呈现的原因,查看其邻近 widgets 通常很有帮助。

3.1.2 层次蛋糕非常美味

Flutter 框架由一系列层结构组成,每一层都建立在前一层之上。

框架上层会比下层使用的更频繁。

这样做的目的是为了帮助你用更少的代码完成更多工作。
例如,通过在 widgets 层组合基础 widgets 来构建 Material 层,而 widgets 层本身则是通过对来自 Rendering 层的低层次对象组合而来。这些层次为构建应用程序提供了许多选项。选择一种自定义方法来释放框架的全部表现力,或使用 widgets 层中的构建块,或混合搭配。

你可以组合 Flutter 提供的现成 widgets 或使用 Flutter 团队在构建框架时所使用的相同工具和技术来构建你的自定义 widgets。没有任何内容可以逃离你的视线,因此可以在生产力上从高级别、统一的 widget 概念中获益,且不会牺牲你想深入更底层时的能力。

3.2 构建 widget

可以通过完善?build()?函数来定义一个 widget 拥有的特性,该函数返回一个 widget 树(或者层次结构)。该树通过更具体的方式来表示用户界面上的 widget 部分。

例如,一个 toolbar widget 可能会有一个返回一些?水平布局?文本?和?各种?按钮?的构建函数。

框架会递归地去构建这些 widget 直到达到最底层?完全具象的 widgets,然后将它们拼接成一棵树。一个 widget 的构建函数应该没有副作用。

不论何时调用,widget 总应该返回一颗新的 widgets 树,不论其之前返回了什么。框架会将先前构建与当前构建仔细进行比较,并确定需要对用户界面做哪些修改。

这种自动比较非常有效,可实现高性能的交互式应用。构建函数在设计上通过专注声明 widget 的构成,而不是处理更新用户界面状态的复杂性,来达到简化代码的目的。

3.3?处理用户交互

如果一个 widget 的特性需要根据用户交互或其他因素改变,那么这个 widget 是有状态的。例如,如果一个 widget 包含一个随用户点击按钮而递增的计数器,则计数器的值便是 widget 的状态。

当该值更改时,则需要重新构建 widget 以更新 UI。这些 widget 继承自?StatefulWidget(而不是?StatelessWidget)并将它们可变的状态存储在?State?的一个子类中。

不论何时你操作一个 State 对象(例如,递增计数器),你必须调用?setState()?方法来通知框架通过重新调用 State 的构建函数,以此达到更新用户界面的目的。

有关状态管理的示例,可以查看随着任何一个新 Flutter 项目生成的 MyApp 模版。将状态与 widgets 对象分开可以让其他 widgets 以相同的方式处理无状态和有状态的 widget,而不用担心丢失状态。不同于通过维持一个子节点来保留状态,父节点可以自由地创建子节点实例,而不会丢失子节点的持久状态。框架会在适当的时候做完查找和重用现有状态对象的所有工作。

4. 试试!

既然你已熟悉 Flutter 框架的基本结构和原理,及如何构建应用并使其具有交互性,那么你已准备好开始开发与迭代了。

(1)试试看?Flutter 布局基础教程?(无须下载 Flutter 或 Dart)

(2)安装?Flutter SDK?(?LinuxWindows?和?macOS?

(3)查看 Flutter?使用教程(cookbook)

(4)尝试一些?Flutter 样例

(5)试试看上手一些?Flutter codelabs

链接:https://flutter.cn/docs/codelabs

(6)试试看这些?Flutter 教程

(7)看看?Widgets 介绍文档

(8)看看这些?Flutter 技术视频

     **入门到进阶实战学习视频,关注我,私信【flutter】领取**

最后

BATJ、字节跳动面试专题,算法专题,高端技术专题,混合开发专题,java面试专题,Android,Java小知识,到性能优化.线程.View.OpenCV.NDK等已经上传到了的我的GitHub

大家点击我的GitHub地址:https://github.com/Meng997998/AndroidJX点下star一起学习

原文地址:https://blog.51cto.com/14606040/2466116

时间: 2024-11-01 05:51:25

如何制作 Flutter 应用?只需四步,轻松上手!的相关文章

ATFX推出Adobe Sign网上签署服务系统,只需四步轻松签约

近期以来,ATFX在科技创新方面取得的成果十分显著,一系列融合人工智能.大数据以及云计算的金融科技产品相继上线.为了进一步优化及提升客户的体验,ATFX加大了对金融科技的投入力度,自去年11月ATFX上线人脸识别开户系统以来,近日,ATFX又推出了Adobe Sign网上签署服务系统. Adobe Sign网上签署服务系统是ATFX针对合作伙伴重磅推出的高科技产品,该产品充分运用了现代成熟的新兴技术,让ATFX合作伙伴极速.便捷.安全的完成线上协议签署,享受高效.精益求精的服务体验. Adobe

只需四步,帮助企业做好MaxCompute成本优化

摘要: 阿里云在和很多企业交流的过程中发现他们在使用MaxCompute的时候往往会遇到一些成本相关的问题,而在与客户不但交流沟通的过程中,阿里云在成本优化方面也积累了大量的经验,因此也希望能够将这些经验沉淀下来分享给更多的企业和开发者,本文就将与大家分享帮助企业做好MaxCompute成本优化的"四步走"战略. 摘要:阿里云在和很多企业交流的过程中发现他们在使用MaxCompute的时候往往会遇到一些成本相关的问题,而在与客户不但交流沟通的过程中,阿里云在成本优化方面也积累了大量的经

如何将CAD图纸转换成彩色,只需几步即可轻松搞定!

如何将CAD图纸转换成彩色,只需几步即可轻松搞定!在日常的工作中,建筑设计师们在编辑器完图纸后,基本图纸都是黑白的,这样不利用我们更好的进行查看,那就需要将CAD图纸的颜色进行转换,如何将CAD图纸转换成彩色,具体要怎么操作了?本篇教程就教教大家在迅捷CAD转换器中如何将CAD图纸转换成彩色只需几步的具体操作方法,想要了解的朋友就感觉来看看吧! 第一步:打开常用电脑,在电脑桌面中任意的打开一个浏览器,在浏览器的搜索框中搜索迅捷CAD转换器,然后鼠标点击进入官网,点击 下载安装最新版本的CAD转换

vuex其实超简单,只需3步

前言 之前几个项目中,都多多少少碰到一些组件之间需要通信的地方,而因为种种原因,event bus 的成本反而比vuex还高, 所以技术选型上选用了 vuex, 但是不知道为什么,团队里的一些新人一听到vuex,就开始退缩了, 因为vuex 很难? 真的很难吗?今天我们用简单的3步来证明一下,vuex有多简单. 纯属个人经验,难免有不正确的地方,如有发现,欢迎指正! 这是一个针对新手的入门级教程.入门级教程.入门级教程 第零步 新建一个vue项目,安装vuex,这里不做过多介绍,能点进来的,默认

在Unity 5.2中,只需几步即可轻松使用Unity服务!

孙广东  2015.9.14 转载自官方: 上周我们发布了Unity 5.2,通向Unity服务的大门已为您敞开!在编辑器内轻松使用Unity Ads, Unity Analytics,Unity Cloud Build 和 Unity Multipalyer, 从此告别SDK!就是这么简单,只需几步! 1 打开服务窗口 在窗口菜单点击Unity Service,或者点击右上角的"Cloud"图标. 2 创建项目ID 下面就开始创建您的项目Project ID了,请注意:Project

只需 4 步,手把手教你如何实现滤镜功能

源地址:http://zihua.li/2014/06/implement-instagram-like-filters/ 滤镜对于照片而言,起到的是雪中送炭和锦上添花的作用.优秀的滤镜,能让随手之作显得别有风味,又能为已经绝色的照片画龙点睛.现在几乎凡是和照片相关的应用程序都有滤镜功能,而相较而言介绍滤镜原理和实现的文章又少之又少,为此我专门写了这篇文章来系统地讲解滤镜是如何实现的. 什么是滤镜 滤镜最初是指安装在相机镜头前过滤自然光的附加镜头,用来实现调色和添加效果.一些数字图像处理软件(最

Android实战——轻松集成百度自动更新SDK,只需3步

轻松集成百度自动更新SDK,只需3步 集成百度自动更新SDK前提: 1.需要上线作品进行测试,本人用自己上线的作品进行了测试. 2.需要上线的作品defaultConfig中的versionCode大于手机端的versionCode,本人上线的作品versionCode为2,测试机为1. 本人作品:一款免下载,免安装,即点即用的应用收纳集,应用袋:http://shouji.baidu.com/software/9529251.html 步骤一:在百度开发者平台选择下载百度自动更新SDK,htt

只需两步快速获取微信小程序源码

只需两步快速获取微信小程序源码 第一次在掘金这样高大上的社区写文章,忐忑地敲下我获取小程序源码过程中的经验分享. 最近在学习微信小程序开发,半个月学习下来,很想实战一下踩踩坑,于是就仿写了某个小程序的前端实现,过程一言难尽,差不多两周时间过去了,发现小程序的坑远比想象的要多的多!!在实际练手中,完全是黑盒的,纯靠推测,部分效果在各种尝试后能能做出大致的实现,但是有些细节,实在不知道如何去实现.这种时候,真的很想一窥源码,查看究竟,看看大厂的前端大神们是如何规避了小程序的一些比较奇葩的坑. 于是就

PPT如何压缩大小?只需两招轻松搞定

在工作中我们接触比较多的就是PPT了,自己美滋滋的做了一个很满意的PPT在保存的时候发现,这个PPT文件太大了,这样的话在发送的时候就很不方便了,可是自己辛苦半天的成果,不能这么浪费了,那么该怎么办呢?其实是可以对PPT压缩的,这样的话就能够使用啦,那么PPT如何踏实大小?压缩了的PPT大小又不影响美观和具体的效果呢?想知道的话就一起来看看下面的文章吧,只需两招轻松搞定哦.方法一:PPT直接压缩操作步骤:一.首先是打开我们需要压缩的PPT文件,单击"文件"按钮.二.打开之后,我们点击&