Flutter初学体验

本文介绍了Flutter初学体验,重点讲解了Dart语言的关键概念,如变量声明、数据类型、控制流程语句和异常处理。此外,还探讨了Flutter框架中的Widget使用,以及与Android和iOS开发的对应关系,如Intent、Activity生命周期和网络请求的实现。
摘要由CSDN通过智能技术生成

Flutter初学体验

Flutter概述

  Flutter是一款移动应用程序SDK,一份代码可以同时生成iOS和Android两个高性能、高保真的应用程序。

  Flutter目标是使开发人员能够交付在不同平台上都感觉自然流畅的高性能应用程序。我们兼容滚动行为、排版、图标等方面的差异。

      应用程序是用Dart语言编写的,如果使用过Java或JavaScript之类的语言,则该应用程序看起来很熟悉。使用面向对象语言的经验绝对有帮助。

Flutter的优势

提高开发效率

同一份代码开发iOS和Android

用更少的代码做更多的事情

轻松迭代

在应用程序运行时更改代码并重新加载(通过热重载)

修复崩溃并继续从应用程序停止的地方进行调试

创建美观,高度定制的用户体验

受益于使用Flutter框架提供的丰富的Material Design和Cupertino(iOS风格)的widget

实现定制、美观、品牌驱动的设计,而不受原生控件的限制

Flutter基础学习

       Dart语言是使用flutter框架开发时候必备的语言,flutter是一个跨平台的框架,适配也很不错,Dart语言很友好,和java很类似,学习成本也是很低的。所以这也是我推荐学习Dart语言的一个原因。

       Dart学习要点

       关键字、变量和常量、特殊数据类型、运算符、控制流程语句、异常

  • 关键字

33个保留字(不能使用保留字作为标识符)

关键字

-

-

-

if

superdo

switch

assert

else

in

this

enum

is

throw

true

break

new

try

case

extends

null

typedef

catch

var

class

false

void

const

final

rethrow

while

continue

finally

return

with

for

default

-

-

-

其中内置标志符有:(17个)

关键字

-

-

-

abstract

deferred

as

dynamic

covariant

export

external

factory

get

implements

import

library

operator

part

set

static

typedef

   

 

跟java相比,Dart特有的关键字有:(25个)

关键字

-

-

-

deferred

as

assert

dynamic

sync*

async

async*

in

is

await

export

library

external

typedef

factory

operator

var

part

const

rethrow

covariant

set

yield

get

yield*

   
  • 变量和常量

变量的声明,可以使用 var、Object 或 dynamic 关键字。

       Var name=’张三’; dynamic name =’张三’;  Object name=’张三’;

未初始化的变量的初始值为null(包括数字),因此数字、字符串都可以调用各种方法。

       Int intDefaultValue; assert(intDefaultValue==null)

如果您从未打算更改一个变量,那么使用 final 或 const,不是var,也不是一个类型。一个 final 变量只能被设置一次;const 变量是一个编译时常量。(Const变量是隐式的final。)

  • 特殊数据类型

numbers 数字
strings 字符串
booleans 布尔
lists list集合(也称为数组)
maps map集合
runes 字符(用于在字符串中表示Unicode字符)

  • 运算符

https://upload-images.jianshu.io/upload_images/6098829-58d0dd182cb1ac4b.png?imageMogr2/auto-orient/

  • 控制流程语句

If()else语句 、for循环、switch case语句、while和do while语句、break continue 语句、assert语句(,如果布尔条件为false,则使用assert语句来中断正常执行)。

  • 异常

Dart提供了ExceptionError 类型,以及许多预定义的子类型。当然,您可以定义自己的Exception。但是,Dart程序可以抛出任何非null对象,作为Exception(不仅仅是Exception和Error对象)

  1.  Throw 以下是抛出或引发异常的示例
  2. try catch 捕获或捕获异常会阻止异常传递(除非您重新抛                                  出异常)。捕获异常使您有机会处理它:
  3. finally 无论是否抛出异常,要确保某些代码运行,请使用finally子句。如果没有catch子句匹配该异常,则在finally子句运行后传递异常。

Flutter详细学习请移步Flutter中文网

https://flutterchina.club/get-started/install/

简单总结:

  1. 在flutter中,绝大部分可使用的内容都是widget ,相当于android中的View
  2. 如果只是显示内容,不涉及更改状态,就是用StatelessWidget;如果涉及状态的变更就是用StatefulWidget
  3. StatefulWidget的实现需要两步:一个是需要创建继承StatefulWidget的类;另一个就是创建继承State的类,一般在State中控制整个状态。
  4. 更新状态一定要调用setState方法,不然不会起作用
  5. hot reload只会影响更改的内容
  6. Intent在flutter中等价于什么 ,要在Flutter中切换屏幕,您可以访问路由以绘制新的Widget。 管理多个屏幕有两个核心概念和类:Route 和 Navigator。Route是应用程序的“屏幕”或“页面”的抽象(可以认为是Activity), Navigator是管理Route的Widget。Navigator可以通过push和pop route以实现页面切换。
  7. RunOnUiThread在Flutter中等价于什么,Dart是单线程执行模型,支持Isolates(在另一个线程上运行Dart代码的方式)、事件循环和异步编程。 除非您启动一个Isolate,否则您的Dart代码将在主UI线程中运行,并由事件循环驱动

  1. OkHttp 在Flutter中等价于什么,虽然“http” package 没有实现OkHttp的所有功能,但“http” package 抽象出了许多常用的API,可以简单有效的发起网络请求 ,您可以通过在pubspec.yaml中添加依赖项来使用它   

http:  ‘>=0.11.3+12

  1. Activities 和Fragment在Flutter中,都等同于Widget
  2. 如何监听Activity生命周期,Flutter中您可以通过挂接到WidgetsBinding观察并监听didChangeAppLifecycleState更改事件来监听生命周期事件

resumed - 应用程序可见并响应用户输入。这是来自AndroidonResume

inactive - 应用程序处于非活动状态,并且未接收用户输入。此事件在Android上未使用,仅适用于iOS

paused - 应用程序当前对用户不可见,不响应用户输入,并在后台运行。这是来自Android的暂停

suspending - 该应用程序将暂时中止。这在iOS上未使用

 

  1. LinearLayout Flutter中相当于 Row的控件
  2. RelativeLayoutFlutter中相当于Couumn控件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值