当前位置: 首页 > news >正文

Flutter 系列---入门篇

flutter 应该是最近比较火的一门开发语言,像很多公司也都提供 flutter 的插件,比如:推送、IM、工具类等等,非常多都是支持flutter的,我自己和在不断学习中。

推荐几款插件:

  • jpush-flutter-plugin
  • jverify-flutter-plugin
  • jmessage-flutter-plugin 这个可能代码比较多,不熟悉可先看其他的
  • jmlink-flutter-plugin
    这几款flutter-plugin的原生SDK可能很多人都用过,所以看起来会更容易上手。

后续会一直推出自己整理的 flutter 笔记,供大家一起学习和分享(不喜勿喷)。

入门篇
首先我们先讲讲flutter的入门,flutter开发需要有一定的环境支持。

一、Flutter开发环境

1. 系统要求

Flutter 支持在 Window、MacOS、Linux等操作系统环境下开发 。

2. 安装 Flutter

2.1 使用镜像

由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像.

在 .bash_profile 文件中添加镜像地址

export PUB_HOSTED_URL=https://pub.flutter-io.cn 
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

终端命令:

vim ~/.bash_profile 将上面的镜像地址添加到该文件中,保存退出。 
source ~/.bash_profile 添加的地址生效

2.2 获取Flutter SDK

2.2.1 下载 Flutter

Flutter 官网下载地址分为三个不同的版本:

  • Stable channel (稳定版) 点击下载
  • Dev channel (开发版)
  • Beta channel (测试版)

2.2.2 解压 Flutter SDK 到自定义目录

获取 Flutter SDK 解压缩后 flutter/bin 的完整路径 ,例如:

/Users/admin/Documents/workspace/flutter/flutter/bin

我们需要把 Flutter 命令所在目录添加到系统的 PATH 变量中,方便后续在任何终端直接使用,而不用切换到特定目录

export PATH=$PATH:$HOME/Documents/workspace/flutter/flutter/bin

同添加镜像地址一样将这个添加到 .bash_profile 文件中 。

2.2.3 运行 flutter doctor

在终端运行 flutter doctor 命令查看是否需要安装其它依赖项来完成安装,备注 (Dart SDK 已经包含在 Flutter SDK 中无须再单独下载安装 )

执行该命令会得到相关工具配置的详细信息:

运行后会发现缺少一些其他依赖,就按照提示一个个安装好就行,我们只需要关心画 ✗ 的内容,然后按照提示安装所需的工具配置。

✗ Flutter plugin not installed; this adds Flutter specific functionality.

对于上面的的提示错误 ,如果没用过 Android Studio 来说,可能不知道怎么解决,这里是说 Android Studio 需要安装 Flutter 插件,在 Andriod Studio 的偏好设置里。

注意:直到 flutter doctor 的运行结果都是 [✓] ,编译环境工具配置就 OK 了。

2.3 IDE 配置

Flutter 的集成开发环境 IDE 有 Andriod Studio 、VS CodeIntelliJ等,我选择的是 Andriod Studio.

Andriod Studio 创建 Flutter 工程,不过注意需要在偏好设置指定 Flutter SDK path

3. 创建 Flutter 工程

我们上面配置好了开发环境后,打开 Andriod Studio 就可以看到多了一项 Start a new Flutter project

(或者总得命令创建:flutter create projectName)
 

二、一切皆为 Widgets

Flutter 可以说都是有widget 组成的,flutter有非常多类型的 widgets,这里就一一介绍,大家可以去逛网查看下

三、构建 APP

下一章给大家讲讲解,flutter 从0到1开发一款跨平台的 APP

相关文章:

  • 全球与中国汽车多楔带行业发展趋向分析及投资前景预测报告2022-2028年
  • Java IO流详解
  • 迷宫_Sarsa算法_边做边学深度强化学习:PyTorch程序设计实践(2)
  • iOS视频捕获入门篇
  • 数据可视化系列教程|六大组件基础知识
  • 《MySQL技术内幕:InnoDB存储引擎》学习笔记-第二章
  • 无线能量传输(WPT)中收发线圈的等效电路模型
  • 回归预测 | MATLAB实现BP神经网络多输入单输出回归预测
  • 新手入门:APP软件测试需要考虑哪些方面
  • .NET序列化 serializable,反序列化
  • 【源码+项目部署】Java课程设计项目_Java人力资源管理系统
  • 从云原生到数字原生,数字化转型背后的需求逻辑发生哪些变化?
  • 2022年最新宁夏水利水电施工安全员模拟试题题库及答案
  • 视频批注软件哪个好用 分秒帧在线批注怎么用
  • Express--获取URL中携带的查询参数、获取URL中的动态参数、获取URL中的动态参数
  • Codepen 每日精选(2018-3-25)
  •  D - 粉碎叛乱F - 其他起义
  • Fundebug计费标准解释:事件数是如何定义的?
  • JS专题之继承
  • MYSQL 的 IF 函数
  • MySQL-事务管理(基础)
  • ng6--错误信息小结(持续更新)
  • PHP的类修饰符与访问修饰符
  • SQLServer插入数据
  • uva 10370 Above Average
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 大整数乘法-表格法
  • 机器学习学习笔记一
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 赢得Docker挑战最佳实践
  • Java数据解析之JSON
  • 带你开发类似Pokemon Go的AR游戏
  • ​520就是要宠粉,你的心头书我买单
  • ​iOS安全加固方法及实现
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # .NET Framework中使用命名管道进行进程间通信
  • #单片机(TB6600驱动42步进电机)
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (52)只出现一次的数字III
  • (9)STL算法之逆转旋转
  • (js)循环条件满足时终止循环
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (论文阅读40-45)图像描述1
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)C#调用WebService 基础
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 使用 XPath 来读写 XML 文件