美文网首页Flutter
1. Flutter 开发初识 Hello World

1. Flutter 开发初识 Hello World

作者: Aliv丶Zz | 来源:发表于2021-03-10 23:29 被阅读0次

    跨平台解决方案发展历史:

    1. webview:最早出现的跨平台解决方案。基于JavaScript和WebView。主要通过HTML来构建自己的界面,再讲其显示在各个平台的WebView当中。性能相对较差。
    2. React Native : 是Facebook最早开元的JS框架React在原生移动平台衍生的产物,使用JS语言以及CSS来开发移动应用。在保留基本渲染能力的基础上,用原生自带的UI组件实现核心的渲染引擎,保证了良好的渲染性能。但是由于RN的本质是通过js VM调用原生接口,通信效率相对较低。而且框架本省不负责渲染,而是间接通过原生进行渲染的。
    3. Flutter:利用Skia绘图引擎,直接通过CPU、GPU进行绘制,不需要依赖任何原生控件。性能基本与原生相同。

    1. Flutter 环境配置

    官方文档:安装和配置 Flutter 开发环境
    这里不做赘述,网上有也有很多教程。

    ps:之前我这边出现过一个问题,我用的开发工具是VSCode 我想跑在Xcode模拟器上,第一天项目好好的,正常运行,结果第二天就一直连不上,提示超过60s,一直连接不到,最后用终端命令 flutter doctor 检测,提示Xcode版本号不符合,需要更新。

    2. 创建Flutter项目

    创建Flutter项目有两种方式:通过命令行创建通过开发工具创建,注意项目名称不能带特殊符号,切不能大写。

    2.1 通过命令行创建

    flutter create firstdemo
    

    2.2 通过开发工具创建

    1. 打开 View > Command Palette。
    2. 输入 “flutter”,选择 Flutter: New Application Project。
    3. 创建或者选择新项目的父文件夹。
    4. 输入项目名称,比如 myapp,然后点 Enter
    5. 稍等一下项目创建成功,目录中就会生成 main.dart 文件。

    官方文档:https://flutter.cn/docs/get-started/test-drive?tab=vscode

    项目目录简介:
    android: 安卓平台相关代码
    iOS : iOS平台相关代码
    lib:flutter相关代码,我们主要编写代码的文件
    test:用于存放测试代码
    pubspec.yaml : 项目配置文件,配置项目名称、项目描述、项目所需依赖等。
    main.dart:它是我们Flutter启动的入口文件,里面有main函数;

    3. Hello World

      上面也提到main.dart是Flutter启动的入口文件,首先先删除里面的内容。然后编写 Hello World代码

    3.1 编写 Hello World 代码

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(Text(
        'Hello World',
        textDirection: TextDirection.ltr,
      ));
    }
    

    这样页面上就显示出了 Hello World,但是没有居中,字体也有点小;

    3.2. 代码分析
    main:Flutter启动的入口文件
    runApp : 是Flutter内部提供的一个函数,当我们启动一个Flutter应用程序时就是从调用这个函数开始的
    Text : 为Flutter的部件,继承自StatelessWidget,StatelessWidget继承自Widgetl。

    3. Hello World 显示优化(体验)

    void main() {
      runApp(MaterialApp(
        home: Scaffold(
          appBar: AppBar(
            title: Text('Flutter Demo'),
            backgroundColor: Colors.red,
          ),
          body: Center(
            child: Text(
              'hello world',
              textDirection: TextDirection.ltr,
              style: TextStyle(
                  fontSize: 40, color: Colors.red, fontWeight: FontWeight.bold),
            ),
          ),
        ),
      ));
    }
    
    helloworld.png

    MaterialApp: 即为app的通用设计风格,这意味着整个应用我们都会采用MaterialApp风格的一些东西,其中的很多内置Widget,方便我们对应用的设计,并且目前我们使用了其中两个属性:

    title:显示的标题
    home:是该应用启动时显示的页面,我们传入了一个Scaffold

    Scaffold: 脚手架,脚手架的作用就是搭建页面的基本结构;可以理解为iOS中的 UIViewController
    所以我们给MaterialApp的home属性传入了一个Scaffold对象,作为启动显示的Widget;
    Scaffold也有一些属性,比如appBar和body;
    appBar是用于设计导航栏的,我们传入了一个title属性;
    body是页面的内容部分

    material是什么?

    material是Google公司推行的一套设计风格,或者叫设计语言、设计规范等;
    里面有非常多的设计规范,比如颜色、文字的排版、响应动画与过度、填充等等;
    在Flutter中高度集成了Material风格的Widget;
    在我们的应用中,我们可以直接使用这些Widget来创建我们的应用

    相关文章

      网友评论

        本文标题:1. Flutter 开发初识 Hello World

        本文链接:https://www.haomeiwen.com/subject/xhpvqltx.html