前面三篇可以算是一个小小的里程碑. 主要是介绍了 Flutter 环境的搭建.如何创建 Flutter 项目以及如何在旧有 Android 项目引入 Flutter. 这一篇我们来学习下 Flutter 的 UI. 前言 说到 UI,我就简单说下 Flutter 作为一门跨平台语言具有的优势之一,提高效率吧. 举个例子: 假设现在要开发一个界面,Android 开发需要一天,iOS 开发也需要一天.那么就是两天. 如果你用 Flutter 开发,就只需要一天(因为 Android 和 iOS 都…
前言 上一篇我们对 Flutter UI 有了一个基本的了解. 这一篇我们通过自定义 Widget 来了解下如何写一个 Widget? 然而 Widget 有两个,StatelessWidget 和 StatefulWidget,我们要继承哪一个? 下面让我们跟着文章来探索一番. 目录 1. StatelessWidget 我们先来看下继承的 Widget 为 StatelessWidget 的情况. 第一步:新建一个文件 bold_text.dart 这里文件名后面后缀 .dart 可带可不带…
前言 紧接着上一篇,这一篇我们讲一下原生怎么给 Flutter 发信号,即原生-> Flutter 还是通过 Flutter 官网的 Example 来讲解. 案例 接着上一次,这一次我们让原生主动将电池的充电状态发送给 Flutter 并在界面显示. 步骤如下. 1. Flutter 界面修改 我们在原先基础上增加一列用于显示文本. String _chargingStatus = 'Battery status: unknown.'; Text(_chargingStatus), 2. Fl…
背景 前面我们讲了很多 Flutter 相关的知识点,但是我们并没有介绍怎样实现 Flutter 与原生的通信. 比如我在 Flutter UI 上面点击了一个按钮,我希望原生做一些处理,那么原生怎么知道? 比如我在原生有些变化需要告知 Flutter,Flutter 又如何获知? 本篇我们先解决第一个问题.即 Flutter-> 原生的通信. 路由回顾 之前我们一直在讲 Flutter 相关的知识点,而且基本上都是在 main.dart 文件上面折腾,为了避免很多小伙伴觉得我们跨度过大. 因此…
本篇文章我们来讲讲一些比较常用的 Widget. 大家验证的时候使用下面的代码替换 main.dart 代码,然后在 //TODO 语句返回下面常用 Widget 示例的代码. import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { retu…
前言 迟到的总结篇,其实大家看我之前发的系列博客最后一篇,发文时间是 3 月 29 日.距离现在快两个月了. 主要是因为有很多事情在忙,所以这篇就耽搁了. 今天终于可以跟大家会面了. 系列博客背景 Flutter 正式版于 2018 年 12 月 5 日正式发布. 而我所在的团队刚好想在项目新功能里面尝试 Flutter 的引入,利用 Flutter 的跨平台特性希望可以提高开发效率,因此本人作为 Android 端开发很荣幸的投入到 Flutter 学习和使用上面,并且于 2019 年 2 月…
前言 上一篇我们讲解了如何通过 EventChannel 实现 Android -> Flutter 的通信. 并且也看到了 Flutter 内部 EventChannel 源码也是对 MethodChannel 的封装. 因此这篇我们来说下如何通过 MethodChannel 实现 Android -> Flutter 的通信. 至于 Flutter -> Android 的通信,没看过的小伙伴建议看下之前的文章 Flutter 即学即用系列博客--08 MethodChannel 实…
前言 其实如果打算在实际项目中引入 Flutter,完全将旧有项目改造成纯 Flutter 项目的可能性比较小,更多的是在旧有项目引入 Flutter. 因此本篇我们就说一说如何在旧有项目引入 Flutter. 官方 WIKI 有说明,但是里面坑还是不少的,变化也是存在的. 因此就让我们来看一看. 目录 1. 按照官网实现基本引入 Add Flutter to existing apps 上面为GitHub WIKI 的引入方式,通过 Module 的形式进行引入. 可以看出文档还是在不断更新的…
前言 之前的博客我们都是在 debug 的模式下进行开发的. 实际发布到市场或者给到用户的都是 release 包. 而对于 Android 来说,release 包一个重要的步骤就是混淆. Android 如何混淆 如何你不做任何处理,直接在原有混淆基础上打出 release 包. 当运行到 Flutter 对应代码,会 crash. 因此我们需要在 Android 项目的 proguard-rules.pro 文件进行配置. #Flutter Wrapper -keep class io.f…
前言 上一篇文章我们搭建好了 Flutter 的开发环境. Flutter 即学即用--01 环境搭建 这一篇我们通过 Flutter 的一个 Demo 来了解下 Flutter. 开发系统:MAC IDE:Android Studio 目录 1. 创建一个 Flutter 项目 第一步:主界面点击创建 Flutter 项目 第一步:如果已经打开项目,则通过 File->New->New Flutter Project... 创建 第二步:默认选择 Flutter Application 即可…