Flutter环境搭建及版本管理

前言

Flutter已成为移动应用开发的主流选择,其跨平台优势日益凸显,使学习Flutter成为现代开发者的必备技能。越来越多的公司和团队选择Flutter构建应用,这为开发者提供了更广阔的就业机会和职业发展空间。Flutter的热度源自其强大的特性和生态系统支持,包括快速的开发周期、高性能的渲染引擎、丰富的UI组件和易学的Dart编程语言。此外,Flutter不仅适用于移动应用开发,还可用于桌面和Web应用,为开发者提供了更多创作空间和机会。学习Flutter能够帮助开发者快速掌握跨平台开发技能,促进职业发展,助力在竞争激烈的市场中脱颖而出,实现个人的技术和职业目标。

Flutter环境搭建

俗话说的好,万层高楼平地起,学习Flutter首先第一步就是环境的搭建,那么这里第一课就是学习搭建Flutter环境,因为我们开发都提倡使用Mac开发,所以本篇文章主要是围绕Mac系统搭建Flutter环境。其他系统可以参考官方教学或者博文文章自行学习。

1、查看本机环境配置

  1. 查看本机环境文件
  • 命令查看:
echo $SHELL

结果:

image.png

  • 直接打开终端,看顶部标题如果是zsh,如上图红圈1所示,就是说明环境配置文件是那个了。
  1. 查看本机环境配置

在 macOS 系统中,使用的是 bash 终端:

cat ~/.bash_profile

使用的是 zsh 终端:

cat ~/.zshrc

执行命令后,就能看到当前环境配置了。如下图

image.png

2、修改本机环境配置

  • 打开环境变量文件

bash 终端:

vim ~/.bash_profile

zsh 终端:

vim ~/.zshrc
  • 修改终端编辑状态

英文键盘状态下按 “i”切换到可编辑状态。

  • 修改环境变量设置:

在配置文件中添加、修改或删除您需要的环境变量设置。

  • 保存并退出编辑器:

首先按“esc”键退出编辑状态, 在按“:wq”+回车,进行保存修改并退出编辑器。

  • 生效配置文件

bash 终端则运行:

source ~/.bash_profile      

zsh 终端 则运行:

source ~/.zshrc 

通过这些步骤,您可以切换终端使用的环境变量文件,并确保终端在启动时加载所需的环境变量设置。

3、下载Flutter SDK

  • SDK 下载链接

https://flutter.cn/docs/release/archive?tab=macos

  • 解压SDK放置位置

如:Users/zhouweilong/fvm/versions/3.10.0

4、配置Flutter环境配置

  • 执行命令 vim ~/.bash_profile or vim ~/.zshrc 打开配置文件。

  • 点击“i” 进入编辑状态

  • 在配置文件中加上Flutter sdk配置信息

export PATH=$HOME/fvm/versions/3.10.0/bin:$PATH
  • 按esc退出编辑状态,输入“:wq”保存退出。

  • 执行命令“source ~/.bash_profile or source ~/.zshrc”让配置生效。

  • 执行“flutter --version”如下

image.png

代表flutter环境配置好了。

5、重点提醒

国内的网络环境下可能需要对 Flutter 工具进行一些额外配置,请参考文档 在中国网络环境下使用 Flutter。

根据文档可知需而外配置2项

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

Flutter版本管理

1、为什么要版本管理

  • 多个项目和团队协作

在开发多个 Flutter 项目或与其他开发者协作的情况下,每个项目可能需要使用不同的 Flutter 版本。通过版本管理,您可以为每个项目指定特定的 Flutter 版本,从而确保团队成员在同一开发环境中工作,减少因 Flutter 版本不一致而导致的问题。

  • 测试和回滚

当您的应用程序在新版本的 Flutter 上运行时出现问题时,版本管理可以使您更轻松地回滚到之前的稳定版本,从而减少测试和修复问题所需的时间和精力。

  • 新功能和实验性特性

Flutter 的新版本可能包含实验性特性或试验性功能,这些功能可能对您的应用程序产生积极或负面的影响。版本管理可以帮助您在开发过程中轻松切换和测试这些功能,以便您可以更好地了解它们,并确定是否要在应用程序中使用它们。

  • 学习开源项目

当我们在github或者其他地方下载值得学习的项目时,会发现项目使用的Flutter版本不一样,来回切换环境配置非常麻烦。所以版本管理可以有效的解决这个问题。

综上所述,版本管理对于确保 Flutter 应用程序的稳定性、兼容性和可维护性非常重要。它可以帮助开发者更好地管理 Flutter 的使用和更新,并确保团队之间的协作顺畅。

2、FVM 版本管理

  • FVM是什么

官方:https://fvm.app/

  • FVM安装

Mac使用brew进行安装 ,其他系统安装具体链接:点击这里

brew tap leoafarias/fvm
brew install fvm

确定是否安装成功

image.png

  • FVM环境配置

官方:https://fvm.app/documentation/getting-started/configuration

FVM_CACHE_PATH:指定Flutter版本的缓存路径。

FVM_GIT_CACHE:全局启用/禁用 git 缓存 ( true/ false)。

FVM_GIT_CACHE_PATH:设置本地git引用缓存的路径。

FVM_FLUTTER_URL:定义 Flutter 存储库 git URL。

FVM_PRIVILEDGED_ACCESS:启用/禁用 FVM 的特权访问 ( true/ false)。

案例:

export FVM_FLUTTER_URL=https://github.com/flutter/flutter.git
export FVM_CACHE_PATH=$HOME/fvm
export PATH=$PATH:~/fvm/default/bin
  • 执行 fvm use 3.10.0

image.png

  • 全局配置Flutter版本
fvm global 3.0.5

//环境变量配置
export PATH=$PATH:~/fvm/default/bin

执行命令后,全局flutter使用版本就变成了3.0.5,不用修改配置文件了

3、如何在项目中使用FVM切换版本

  • 打开案例项目flutter_project ,执行 fvm use ,项目根目录会出现一个.fvm文件夹

image.png

  • 我们可以复制flutter_sdk全局路径配置flutter使用路径,方便fvm切换版本

第一步:
image.png

第二步:

image.png

第三步:

image.png

配置完后,直接使用fvm use xxx,xxx就是flutter的版本号,执行命令后,项目就会自动切换到xxx版本上了,是不是很方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/500200.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【动手学深度学习-pytorch】-9.3深度循环神经网络

到目前为止,我们只讨论了具有一个单向隐藏层的循环神经网络。 其中,隐变量和观测值与具体的函数形式的交互方式是相当随意的。 只要交互类型建模具有足够的灵活性,这就不是一个大问题。 然而,对一个单层来说,这可能具有…

WebCopilot:一款功能强大的子域名枚举和安全漏洞扫描工具

关于WebCopilot WebCopilot是一款功能强大的子域名枚举和安全漏洞扫描工具,该工具能够枚举目标域名下的子域名,并使用不同的开源工具检测目标存在的安全漏洞。 工具运行机制 WebCopilot首先会使用assetsfinder、submaster、subfinder、accumt、finddom…

layui laydate日期初始化的一些坑

layui laydate日期初始化的一些坑 背景坑一:利用class属性初始化时间控件失败坑二:后加载页面时间控件初始化失败坑三:结束时间需要默认追加23:59:59 背景 在日常开发中,总是会不可避免的用到日期插件,不同的日期插件…

IoT网关在智能制造工厂生产线监控与管理中的应用-天拓四方

随着工业4.0时代的到来,智能制造已成为工业发展的重要方向。IoT网关在智能制造工厂中扮演着关键角色,它能够实现设备间的互联互通、数据的实时采集与处理,以及生产线的智能监控与管理。本案例将详细介绍IoT网关在智能制造工厂生产线监控与管理…

100 个 Kotlin 面试问题及答案(其二)

尤其是在Android开发中,Kotlin已经成为一种流行的编程语言。为了帮助您在 Kotlin 面试中取得成功,我们为您简化了 100 个最常见的面试问题。本指南涵盖了广泛的主题,包括基本语言概念和高级功能。每个问题都附有简单的答案和实际示例&#xf…

Spring原理

这次我们来研究Bean的相关知识和spring boot自动配置的相关流程 1.Bean的作用域 1概念 在SpringIoC&DI阶段,我们学习了Spring是如何帮助我们管理对象的. 1. 通过 Controller ,Service , Repository , Component , Configuration , Bean 来声明…

Android R 广播注册与发送流程分析

静态广播注册时序图 动态广播注册时序图 发送广播时序图 前言 广播接收器可以分为动态和静态,静态广播接收器就是在 AndroidManifest.xml 中注册的,而动态的广播接收器是在代码中通过 Context#registerReceiver() 注册的。 这里先从静态广播的流程开始…

Pygame基础6-旋转

6-旋转 当我们想要旋转一个图片的时候, 我们可以使用pygame.transform.rotozoom获得旋转后的图片: kitten pygame.transform.rotozoom(kitten, angle, 1)问题是,每次旋转都会降低图片的质量。如果旋转很多次后,图片的质量会变得…

农村集中式生活污水分质处理及循环利用技术指南

立项单位:生态环境部土壤与农业农村生态环境监管技术中心、山东文远环保科技股份有限公司、北京易境创联环保有限公司、中国环境科学研究院、广东省环境科学研究院、中铁第五勘察设计院集团有限公司、中华环保联合会水环境治理专业委员会 本文件规定了集中式村镇生活…

【动手学深度学习-pytorch】9.2长短期记忆网络(LSTM)

长期以来,隐变量模型存在着长期信息保存和短期输入缺失的问题。 解决这一问题的最早方法之一是长短期存储器(long short-term memory,LSTM) (Hochreiter and Schmidhuber, 1997)。 它有许多与门控循环单元( 9.1节&…

婚恋交友APP小程序H5源码交付-支持二开!实名制交友,可服务器审核,亦可后台自己审核!同城交友,多人语音!

一、需求分析 在征婚交友网站开发初期,需求分析是至关重要的环节。这需要深入了解目标用户的需求和期望,包括他们的年龄、职业、兴趣爱好、交友条件等方面。通过收集和分析这些信息,开发团队可以明确网站的目标用户,并为他们提供…

东特科技现已加入2024第13届国际生物发酵产品与技术装备展

参展企业介绍 温州东特科技有限公司是一家集设计、生产、销售及服务为一体的卫生级流体设备企业。专业从事各种乳食品、制药、化工、啤酒设备、不锈钢卫生级阀门,管件,视镜,及非标配件定制等产品的销售与服务。先进的设计理念专业的技术优势一…

深度思考:雪花算法snowflake分布式id生成原理详解

雪花算法snowflake是一种优秀的分布式ID生成方案,其优点突出:它能生成全局唯一且递增的ID,确保了数据的一致性和准确性;同时,该算法灵活性强,可自定义各部分bit位,满足不同业务场景的需求&#…

使用html实现图片相册展示设计

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>图片&#xff08;相册&#xff09;展示设计</title><link rel"stylesheet" href"./style.css"> </head> <b…

SQL--报错注入(join无列名注入)

SQL报错注入 平时在做SQL题时&#xff0c;如果发生语法的错误时&#xff0c;就会产生报错&#xff0c;报错的信息就会显示在前端 报错注入大多是利用函数会报错的特性&#xff0c;将需要的信息通过报错信息回显出来 报错注入函数&#xff08;后面主要的还有一个floor函数暂时…

虚拟机 centos 安装后与主机 ip保持一致

1、安装时 网络模式 悬着自动检测 &#xff08;桥接&#xff09; 2、打开网络 这里如果没有打开 就去 编辑 该文件。把ONBOOTno 改为yes 后 vim /etc/sysconfig/network-scripts/ifcfg-ens160 刷新配置 systemctl restart network 再查看addr 与本机 192.168.31.xx 在同…

Python Flask Web框架初步入门

前言 flask基础 搭建flask服务器 定义html 使用templates模板定义页面的html html页面编写 render_template传参变量 定义图片 创建static目录&#xff0c;存入图片 html编写 flask入门 网站多域名 网站之间超链接跳转 入门案例 将centos的rpm包下载链接集成到自…

13-API风格(下):RPCAPI介绍

RPC在Go项目开发中用得也非常多&#xff0c;需要我们认真掌握。 RPC介绍 根据维基百科的定义&#xff0c;RPC&#xff08;Remote Procedure Call&#xff09;&#xff0c;即远程过程调用&#xff0c;是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机…

发光二极管限流电阻对电路性能有哪些影响?

目录 1.控制电流 2.稳定电压&#xff08;亮度控制&#xff09; 3.功耗控制&#xff08;保护元件&#xff09; 4.节能控制 发光二极管&#xff08;LED&#xff09;限流电阻在电路中对电路性能主要有以下几个影响&#xff1a; 1.控制电流 限流电阻通过限制电流&#xff0c;使LED工…

WebGIS开发

1.准备工作 高德开发API注册账号&#xff0c;创建项目拿到key和密钥 高德key 2.通过JS API引入高德API <html><head><meta charset"utf-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><metaname&quo…