什么是flutter

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

flutter具有以下几个优点

  • 快速开发(具有热加载功能,类似于webpack配置的devServer的热加载)
  • 富有表现力,漂亮的用户界面
  • 现代的,响应式框架(State类,通过调用setState,改变对应的值,widget就会重新渲染)
  • 访问本地功能和SDK
  • 统一的应用开发体验

移动端解决方案的几个阶段

  1. webview在原生app中嵌入h5页面
  2. hybrid 通过JSBridge来做native与非native之间的桥梁(本质还是web模式)
  3. react-native 将view编译成原生的view从而达到良好的体验,但还是需要JSBridge做连接
  4. Flutter 吸收了前者的教训之后,在渲染技术上,选择了自己实现(GDI)

reactive-native原理图

flutter实现原理

开始搭建flutter

使用镜像

flutter官方为中国开发者搭建了临时镜像,大家可以把下面的环境变量加到用户的环境变量中mac直接vim ~/.bash_profile修改即可,如果用了zsh 也可~/.zshrc,修改完source ~/.bash_profile即可

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

获取Flutter SDK

传送门需要翻墙,或者直接去github下载安装包

下载完解压,然后添加flutter到相关工具的path中export PATH=pwd/flutter/bin:$PATH

注意pwd为你解压flutter安装包的路径

运行flutter

运行flutter doctor来查看还有什么东西没有安装,然后根据提示安装相应的东西即可

创建一个flutter项目

以上所有安装都完毕后可以再terminal通过flutter create 目录名来创建项目,然后执行open -a Simulator打开苹果手机模拟器

安装下面的包来确保能进行ios模拟调试

brew update
brew install --HEAD libimobiledevice
brew install ideviceinstaller ios-deploy cocoapods
pod setup

在你Flutter项目目录中通过 open ios/Runner.xcworkspace 打开默认的Xcode workspace.最后执行flutter run你的第一个flutter项目就跑起来了

flutter推荐的编辑器有vscode以及Android studio安装对应的插件即可

详细安装教程可以具体看flutter官网,本教程为自己的学习笔记,后面会另外开文如何使用flutter来进行开发

学习笔记:flutter项目搭建(mac版)的更多相关文章

  1. SpringCloud(一)学习笔记之项目搭建

    [springcloud项目名称不支持下划线] 一.创建父项目 File---new---project: 填写项目信息: 默认即可,点击finish创建完成: 由于父项目只用到pom文件 所以把sr ...

  2. vue开发环境搭建Mac版

    一.前言 要做一个移动端app,面对webapp最流行的三个技术React,angular,vue,三选一,如何选,可参考blog移动app技术选型,react,angular, vue, 下面是对  ...

  3. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  4. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  5. vue学习(1) vue-cli 项目搭建

    vue学习(1)  vue-cli 项目搭建 一.windows环境 1. 下载node.js安装包 官网:https://nodejs.org/en/download/ 选择LTS下载 2. 安装 ...

  6. OD调试学习笔记7—去除未注册版软件的使用次数限制

    OD调试学习笔记7—去除未注册版软件的使用次数限制 本节使用的软件链接 (想自己试验下的可以下载) 一:破解的思路 仔细观察一个程序,我们会发现,无论在怎么加密,无论加密哪里,这个程序加密的目的就是需 ...

  7. thinkphp学习笔记3—项目编译和调试模式

    原文:thinkphp学习笔记3-项目编译和调试模式 1.项目编译 在章节2.4项目编译中作者讲到使用thinkphp的项目在第一次运行的时候会吧核心需要加载的文件去掉空白和注释合并到一个文件中编译并 ...

  8. 网络协议学习笔记(二)物理层到MAC层,交换机和VLAN,ICMP与ping原理

    概述 之前网络学习笔记主要讲解了IP的诞生,或者说整个操作系统的诞生,一旦有了IP,就可以在网络的环境里和其他的机器展开沟通了.现在开始给大家讲解关于网络底层的相关知识. 从物理层到MAC层:如何在宿 ...

  9. JavaWeb学习笔记(一)Mac 下配置Tomcat环境

     最近,想鼓捣与服务器端的交互,只能自己搭建环境了. 上个周一鼓捣了一点,周五再鼓捣,发现忘得已经差不多了.好记性不如烂笔头,还是记录下来比较好. 首先,去Tomcat的官网,下载Mac版的Tomca ...

随机推荐

  1. 网站启动,报编译错误:类型“ASP.global_asax”同时存在两个文件夹的问题

    CS0433: The type 'ASP.global_asax' exists in both 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\T ...

  2. js控制input框输入数字时,累计求和

    input框输入数字时,自动开始计算累加 <div class="form-group"> <label for="inputPassword3&quo ...

  3. 07.Django学习之model进阶

    一 QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. >>> Entry.objects.all( ...

  4. 【linux】linux固定ip

    vi /etc/sysconfig/network-scripts/ifcfg-ens33  ifcfg-ens33为ifconfig显示的网卡名 TYPE="Ethernet"P ...

  5. Build a Contest-创建比赛 CodeForce1100B

    题目链接:Build a Contest 题目原文 Arkady coordinates rounds on some not really famous competitive programmin ...

  6. ASP.NET 服务端接收Multipart/form-data文件

    在网络编程过程中需要向服务器上传文件. Multipart/form-data是上传文件的一种方式. /// <summary> /// 上传工程文件 /// </summary&g ...

  7. Hadoop源代码点滴-基础概念

    大数据特征:volume(数量).variety(多样性).velocity(产生的速度) 大数据特征:多.乱.快.杂 数据的来源:业务数据.日志.管理文档(OCR).互联网.物联网.外购

  8. idea在debug模式下的启动特别慢?

    程序执行到这里时,一直卡着不动? 原因可能是在方法上打了断点导致的: 将方法上的断点去掉,点击[Done]即可.

  9. 解决thinkphp批量上传图片只有一张上传成功解决方案

    批量上传时 存在一个生成文件名的问题 如果出现此bug,则不要用原生的生成规则来命名图片文件名 如果你试试同时上传两个不同类型,例如一张jpg,一张png,你就发现的确是可以两张同时上传的! 方案1: ...

  10. python selenium模拟登陆qq空间

    不多说.直接上代码 from selenium import webdriver driver = webdriver.Chrome() driver.get('http://qzone.qq.com ...