背景

近一年时间都在用 React Native 开发公司的 APP,水平基本上可以说是登堂入室了。前一段时间兴起一阵 Flutter 热,后端的同事都有推荐,今年 Google 大会又推出 flutter_web,偶有闲暇,就赶紧来看看这个新的多端兼容框架。

与 RN 的封装原生组件通过 Bridge 调用不同,Flutter 的模式是使用 Google 的 UI 引擎另起炉灶,使用 Dart 语言编写,最终还是编译成原生的代码。性能方面相较RN有所提升,但是RN已经有近5年的发展了,社区相当活跃,Flutter的底层组件完全依赖Google的开发,而且起步晚,所以功能上面并不完备。

安装、配置和入门实例可以按照官方的文档——Flutter 入门,文档非常详细。

有几个注意的地方

  1. Flutter 安装的版本,我选择的是最新版本的 Beta 版本,内容比较新而且问题相对较少
  2. 环境变量的配置,我的是 Mac + zshell,所以我 大专栏  flutter 入门(Mac)将变量写进 .zshrc 文件中
  3. 编辑工具的选择,我暂时用的是 Android Studio
  4. Android Studio 安装 Flutter 和 Dart 插件后在启动预览界面会出现“Start a new Flutter project”的选项,点击之后需要等待一段时间,并不是进程死掉
  5. 新建项目时,配置完成之后开始创建,弹出“Creating Flutter Project”的窗口,会一直卡住,我开VPN用全局模式都不行,大概10分钟左右项目基本结构已经创建好了,这时候强制退出 Android Studio 的进程,然后重新打开,选择项目打开,进入项目之后会提示修复项目,马上就能修复好
  6. 官方组件地址 http://pub.dartlang.org/flutter 打不开,当然,可能是我们家的网有问题
  7. Android 模拟器无法安装实例,我只能用 iOS 的模拟器测试

总结

  1. 可能是习惯问题,感觉 RN 写起来更舒服一些,用 Wedget 写起来太乱了,而且很死板
  2. 相关配套的服务不太完善,如pub等
  3. 之前一直在用文本编辑器写代码,用了一下 IDE,好省事

flutter 入门(Mac)的更多相关文章

  1. Flutter入门之有状态组件

    StatefulComponent使用方法入门 在上一篇Flutter入门之无状态组件中我们讲到了无状态组件,所谓的无状态组件指的就是其内部的状态是来自其父组件并使用final类型的变量来存储,当组件 ...

  2. flutter入门开发的一些坑

    flutter入门开发的一些坑 很久没写博客了,最近在准备物联网比赛,顺便抽出时间学习了一下flutter,花了近2周完成了一个查看博客博文的一个小的APPdemo,随便截了两张图,如下: 首页 博客 ...

  3. Flutter入门教程(四)第一个flutter项目解析

    一.创建一个Flutter工程 1.1 命令行创建 首先我们找一个空目录用来专门存放flutter项目,然后在路径中直接输入cmd: 使用 flutter create <projectname ...

  4. 使用 Flutter 开发 Mac 桌面应用

    Flutter 可以开发 Mac,Linux,Windows 桌面,但是对于平台目前只能打对于的包,以及调试本平台的包. 切换到 master 分支 首先必须切换到 master 分支.我之前在 de ...

  5. flutter 安装环境 Mac

    1.这是我第二次mac 安装 flutter环境了,但是这种东西记不住.打开写一下 有用的东西 一. ls vi 等命令 command not found原因是因为环境变量的问题,编辑profile ...

  6. Flutter入门教程(一)Flutter简介

    这是Flutter系列第一篇文章,后续会持续更新Flutter相关知识,本篇就主要对于Flutter技术做一个简单的入门介绍 一.Flutter简介 Flutter是谷歌的移动UI框架,可以快速在iO ...

  7. 手把手教你入门mac idea

    一.前沿 去年入职后, 公司有很多人使用的是idea , 而不是eclipse. 之前就想转向idea, 但一直没转过来~~原因是团队的人提倡用开源eclipse.现在下定决心转向idea. 虽然, ...

  8. IDEA快速入门(Mac版)

    [持续更新]一篇今年年头的老文章顺道发布了,大家有任何问题可以留言沟通.当时刚刚加入团团,愿大家有机会还是购买一台MAC,确实能给大家的效率赋能,虽然在一开始会有一些艰难!⛽️ 望借着换工作的东风,好 ...

  9. Flutter入门之无状态组件

    Flutter核心理念 flutter组件采用函数式响应框架构建,它的灵感来自于React.它设计的核心思想是组件外构建UI,简单解释一下就是组件鉴于它当前的配置和状态来描述它的视图应该是怎样的,当组 ...

随机推荐

  1. mac 编程环境

    新mac (EI Capitan),需要在python中使用xgboost,通过pip安装未成功. 配置pip cat $HOME/Library/Application\ Support/pip/p ...

  2. E. Delete a Segment(删除一个区间,让并区间最多)

    题:https://codeforces.com/contest/1285/problem/E 题意:给定n个区间,最多删除一个区间,让最后的并区间个数最大 #include<bits/stdc ...

  3. Debian8.8同步时间

    1.安装ntpdate 2.设置当前年月   如:sudo date -s 2017-05-18 3.同步:sudo ntpdate /usr/sbin/ntpdate time.nist.gov

  4. day54-mysql-库、表、数据操作

    . 什么是数据库 存储数据的仓库 . 什么数据: 大家所知道的都是数据.比如:你同学的名字,年龄,性别等等 . 数据库概念 .数据库服务器 .数据库管理系统 重点 .库 .表 .记录 .数据 参考画图 ...

  5. itext实现横向pdf打印内容

    Document doc = new Document(PageSize.A4); 这个是用PageSize.A4设置的是纵向A4大小 进入 com.itextpdf.text.PageSize的源码 ...

  6. Centos内核更新

    内核更新操作后面补上.暂时记录删除多余内核操作 删除卸载多余内核 1.系统启动时,选择需要保留的内核进入系统,通过uname -a命令查看当前内核版本,以防误删 2. 使用rpm -qa | grep ...

  7. Ubuntu 设置静态 IP

    一.背景 如果没有设置静态IP,由于某些情况,会导致系统的 IP 地址发生变化. 为了避免 IP 发生变化,就需要进行静态 IP 的设置. 注:这里 Ubuntu 版本为 19.10 二.解决方案 1 ...

  8. shiro PermissionUtil

    package org.linlinjava.litemall.admin.util; import org.apache.shiro.authz.annotation.RequiresPermiss ...

  9. 吴裕雄--天生自然C语言开发:作用域规则

    #include <stdio.h> int main () { /* 局部变量声明 */ int a, b; int c; /* 实际初始化 */ a = ; b = ; c = a + ...

  10. E - Minimum Spanning Tree Gym - 102220E (转化+贡献)

    In the mathematical discipline of graph theory, the line graph of a simple undirected weighted graph ...