Flutter-学习笔记
对移动端感兴趣,利用周末时间学习Flutter开发,持续记录学习笔记。
介绍
GPT回答
Flutter 是由谷歌开发的一个跨平台移动应用开发框架,可以使用单一代码库构建高性能、高保真度的移动应用程序。它使用 Dart 编程语言,并提供了丰富的 UI 组件和工具,使开发者能够快速构建出漂亮、流畅的应用程序。
入门学习 Flutter 需要掌握以下几个关键知识:
-
Dart 编程语言:Flutter 使用 Dart 作为开发语言,所以对 Dart 的基本语法、数据类型、控制流程、函数、类和对象等有一定的了解是必要的。你可以通过 Dart 官方文档和 DartPad(一个在线的 Dart 编辑器)来学习 Dart。
-
Flutter 基础知识:学习 Flutter 的基础知识,包括 Flutter 的核心概念、Widget(UI 组件)的使用、布局和样式等。你可以通过 Flutter 的官方网站、Flutter 官方文档和 Flutter Gallery(一个展示各种 Flutter 组件和布局的示例应用)来学习。
-
响应式编程:Flutter 使用一种称为 "响应式编程" 的模式来构建用户界面。了解响应式编程的基本概念和使用方法对于使用 Flutter 构建应用程序非常重要。你可以学习 Dart 中的 Streams 和 RxDart 这样的库来了解更多关于响应式编程的知识。
-
Flutter 组件库和插件:Flutter 提供了丰富的 UI 组件和插件,可以帮助你快速构建应用程序。了解这些组件和插件的使用方法,以及如何与 Flutter 的生态系统进行交互,将有助于你提高开发效率和应用程序的质量。
-
Flutter 开发工具:掌握 Flutter 开发工具的使用,包括 Flutter SDK、Flutter 命令行工具、Flutter IDE(如 Visual Studio Code、Android Studio)和 Flutter DevTools(用于调试和性能分析)等。
Dart 是一种现代化的、面向对象的编程语言,最初由谷歌开发,用于构建跨平台的移动、Web 和桌面应用程序。Dart 的语法风格与许多其他编程语言相似,包括以下几种:
-
JavaScript: Dart 借鉴了 JavaScript 的一些语法,例如函数声明、变量声明和赋值等。这使得从 JavaScript 切换到 Dart 相对较容易。
-
Java / C#: Dart 在语法上与 Java 和 C# 有一些相似之处。例如,Dart 和 Java/C# 都是静态类型的语言,具有类、接口、继承等概念。
-
Python: Dart 的一些语法特性与 Python 类似,如使用缩进来表示代码块,以及提供了类似于 Python 的迭代器和生成器等功能。
-
Swift / Kotlin: Dart 与 Swift 和 Kotlin 这两门现代化的编程语言有一些相似之处。它们都是面向对象的语言,支持空安全、扩展函数和集合操作等高级功能。
总体而言,Dart 在语法上汲取了多种编程语言的优点,创造了一种简洁、直观且易于学习的语法。即使你对其他编程语言有所了解,学习 Dart 也应该是相对容易的。
Flutter架构
我们通过官方的一张图来看一下Flutter的架构:
学习资料
开发环境
Win-SDK
检验安装
dart --version
Vscode开发配置
安装2个插件
Helo World
main() { print("Hello World"); // Hello World }
这样下来没问题,本地开发环境就配置好了,下面开始学习Dart的语法
基础语法
变量定义
Dart是强类型的语言,可以声明类型,也可以自动推导,注意 ;和PHP一样分号结尾
main() { var name = "GJH"; print(name); //GJH int age = 23; print(age); }
常量
在 Dart 中,const
和 final
都是用于声明常量的关键字,
const
:const
关键字用于声明在编译时就已经确定的常量。在使用 const
声明的变量时,它的值必须是在编译时已知的,不能是运行时计算出来的。const
可以用于声明常量值、字符串、布尔值、数值和对象等。
const PI = 3.14;
final
:final
关键字用于声明只能赋值一次的变量。与 const
不同,final
可以在运行时计算并赋值。final
变量在第一次赋值后不能再次修改。
final PI2 = 3.14;
使用 final
声明的变量是在运行时确定的,因此可以根据需要赋予不同的值。每个 final
变量都具有唯一的值,并且可以在运行时根据需要进行计算或赋值。
数据类型
-
Numbers(数字):
int
:表示整数,如1
,100
,-10
。double
:表示浮点数,如3.14
,1.5
。
-
Strings(字符串):
String
:表示一串字符,如"Hello"
,'Dart'
,"123"
。
-
Booleans(布尔值):
bool
:表示布尔值,只有两个取值:true
和false
。
-
Lists(列表):
List
:表示一个有序的集合,可以包含多个元素。列表中的元素可以是任意类型。例如:[1, 2, 3]
,['apple', 'banana', 'orange']
。
main() { var list1 = ["GJH", 111, "xxxxxxxxxx"]; print(list1); //[GJH, 111, xxxxxxxxxx] print(list1.length); // 3 print(list1[0]); // GJH List list2 = [1, 2, 3, "Dart"]; print(list2); //[1, 2, 3, Dart] }
-
Maps(映射):
Map
:表示一组键值对的集合,每个键关联一个值。键和值可以是任意类型。例如:{'name': 'John', 'age': 30}
。
-
Sets(集合):
Set
:表示一组互不相同的元素的集合。例如:{1, 2, 3}
,{'apple', 'banana', 'orange'}
。
-
Runes(Unicode 字符):
Runes
:表示一个字符串的 Unicode 字符集合。例如:Runes('Hello')
。
-
Symbols(符号):
Symbol
:表示 Dart 程序中声明的标识符。例如:#mySymbol
。
条件判断和别的语言都一样 Go php Java js