Flutter 即学即用系列博客总结篇】的更多相关文章

前言 迟到的总结篇,其实大家看我之前发的系列博客最后一篇,发文时间是 3 月 29 日.距离现在快两个月了. 主要是因为有很多事情在忙,所以这篇就耽搁了. 今天终于可以跟大家会面了. 系列博客背景 Flutter 正式版于 2018 年 12 月 5 日正式发布. 而我所在的团队刚好想在项目新功能里面尝试 Flutter 的引入,利用 Flutter 的跨平台特性希望可以提高开发效率,因此本人作为 Android 端开发很荣幸的投入到 Flutter 学习和使用上面,并且于 2019 年 2 月…
前言 上一篇我们对 Flutter UI 有了一个基本的了解. 这一篇我们通过自定义 Widget 来了解下如何写一个 Widget? 然而 Widget 有两个,StatelessWidget 和 StatefulWidget,我们要继承哪一个? 下面让我们跟着文章来探索一番. 目录 1. StatelessWidget 我们先来看下继承的 Widget 为 StatelessWidget 的情况. 第一步:新建一个文件 bold_text.dart 这里文件名后面后缀 .dart 可带可不带…
前面三篇可以算是一个小小的里程碑. 主要是介绍了 Flutter 环境的搭建.如何创建 Flutter 项目以及如何在旧有 Android 项目引入 Flutter. 这一篇我们来学习下 Flutter 的 UI. 前言 说到 UI,我就简单说下 Flutter 作为一门跨平台语言具有的优势之一,提高效率吧. 举个例子: 假设现在要开发一个界面,Android 开发需要一天,iOS 开发也需要一天.那么就是两天. 如果你用 Flutter 开发,就只需要一天(因为 Android 和 iOS 都…
前言 上一篇我们讲解了如何通过 EventChannel 实现 Android -> Flutter 的通信. 并且也看到了 Flutter 内部 EventChannel 源码也是对 MethodChannel 的封装. 因此这篇我们来说下如何通过 MethodChannel 实现 Android -> Flutter 的通信. 至于 Flutter -> Android 的通信,没看过的小伙伴建议看下之前的文章 Flutter 即学即用系列博客--08 MethodChannel 实…
前言 紧接着上一篇,这一篇我们讲一下原生怎么给 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…
前言 其实如果打算在实际项目中引入 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 即可…
背景 在进行 Flutter UI 开发的时候,控制台报出了下面错误: flutter: ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY >╞═════════════════════════════════════════════════════════ flutter: The following message was thrown during layout: flutter: A RenderFlex overflowed by 826 pixels…
前言 工欲善其事,必先利其器 所以第一篇我们来说说 Flutter 环境的搭建. 笔者这边使用的是 MAC 电脑,因此以 MAC 电脑的环境搭建为例. Windows 或者 Linux 也是类似的操作. Flutter 有英文版的官网和中文网,大家可以根据自己的喜好和情况进行选择. 点击下面的链接可以到对应的安装页面. Flutter 官网安装链接 Flutter 中文网安装链接 我们这边以官网为例进行说明. 目录 1. 配置镜像 点击进入官网,可以看到下图: 我们点击 Using Flutte…
Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能.到目前为止,Swift为2.1版本.去年翻译的Swift书籍是1.0版本,所以上面一些东西并不在适用.虽然Swift语言仍在更新,但是其整体的基础框架已经形成,大的改动应该不会有,版本的更新更多的是语言新功能的添加和完善,所以并不用担心现在学的Swift会过时.更新也就是在原有的基础上去更新,所以学学Swift还是很有必要的.新的Swift版本中引入了好…
前言 最近我感觉自己比较浮躁,重来没有好好地沉下心来做一件事情,而且针对自己在专业水平上仍然还有很多欠缺,于是我想我应该为自己做些什么来证明一下自己真的是潜心研究东西的人,于是我萌生了一个想法,真正地写一系列的博客,将ARM的结构体系完完全全地梳理一遍!虽然是学过了,但是学得应该仅仅是皮毛吧!正好趁着自己还有时间,为什么不做一个自己想认真做的事情呢? 系列博客的介绍 博客园里面的大神们都很多,有许多人对Linux.ARM等都有相应的了解,因而,如果你是老鸟的话,就当飘过啦,如果你是新手的话,哈哈…
这个系列博客主要用来记录本人学习JavaScript的笔记,从0开始,即使有些知识我也是知道的.但是会经常忘记,干脆就写成博客,没事的时候翻来看一看,留下一点学习的痕迹也好.可能写博客的水平暂时不太好,但是慢慢来吧! 想要走前端开发的路,JavaScript是最核心的内容,必须熟练掌握,尽量不要急于求成,把一些东西理解得比较透彻再去接触像vue之类的一些框架,不然学了也等于白学.好,废话不多说,直接开始JavaScript的学习. 首先JavaScript是解释型语言,和Java语言不一样,不需…
Django 系列博客(十六) 前言 本篇博客介绍 Django 的 forms 组件. 基本属性介绍 创建 forms 类时,主要涉及到字段和插件,字段用于对用户请求数据的验证,插件用于自动生成 html. Form 类内置字段介绍 Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 help_text='', 帮助信息(在标签旁边显示) error_mes…
Django 系列博客(十四) 前言 本篇博客介绍在 html 中使用 ajax 与后台进行数据交互. 什么是 ajax ajax(Asynchronous Javascript And XML)翻译成中文就是''异步 JavaScript 和 XML''.即使用 JavaScript 语言与服务器进行异步交互,传输的数据为 XML(现在更多地使用 json). 同步交互:客户端发出一个请求后,需要等待服务器响应结束,才能发出第二个请求: 异步交互:客户端发出一个请求后,无需等待服务器响应结束,…
Django 系列博客(十三) 前言 本篇博客介绍 Django 中的常用字段和参数. ORM 字段 AutoField int 自增列,必须填入参数 primary_key=True.当 model 中如果没有自增列,则会自动创建一个列名为 id 的列. IntegerField 一个整数类型,范围在-2147483648 to 2147483647. CharField 字符类型,必须提供max_length参数, max_length表示字符长度. DateField 日期字段,日期格式…
Django 系列博客(十二) 前言 本篇博客继续介绍 Django 中的查询,分别为聚合查询和分组查询,以及 F 和 Q 查询. 聚合查询 语法:aggregate(*args, **kwargs) # 计算所有图书的平均价格 from django.db.models import Avg Book.objects.all().aggregate(Avg('price')) aggregate()是 QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典.键的名称是聚合值…
Django 系列博客(十一) 前言 本篇博客介绍使用 ORM 来进行多表的操作,当然重点在查询方面. 创建表 实例: 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关系(one-to-one). 出版商模型:出版商有名称,所在城市. 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);一本书只应该由一…
Django 系列博客(十) 前言 本篇博客介绍在 Django 中如何对数据库进行增删查改,主要为对单表进行操作. ORM简介 查询数据层次图解:如果操作 mysql,ORM 是在 pymysql 之上又进行了一层封装. MVC 或者 MTV 框架中包括一个重要的部分,就是 ORM,它实现了数据模型与数据库的解耦合,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,极大地减轻了工作量,不需要面对因数据变更而导致的无效劳动. ORM 是''对象-关系-映射''的简称…
Django 系列博客(九) 前言 本篇博客介绍 Django 模板的导入与继承以及导入导入静态文件的几种方式. 模板导入 模板导入 语法:``{% include '模板名称' %} 如下: <!-- base.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> <link rel=…
Django 系列博客(八) 前言 本篇博客介绍 Django 中的模板层,模板都是Django 使用相关函数渲染后传输给前端在显式的,为了想要渲染出我们想要的数据,需要学习模板语法,相关过滤器.标签. 模板简介 你可能注意到下面的例子返回文本的方式有点特别.当我们使用相关函数来渲染模板的时候,首先是打开了模板文件,然后将需要传入的参数填到文件中在返回给前端. def current_datetime(request): now = datetime.datetime.now() html =…
Django 系列博客(七) 前言 本篇博客介绍 Django 中的视图层中的相关参数,HttpRequest 对象.HttpResponse 对象.JsonResponse,以及视图层的两种响应方式 CBV 和 FBV,还有简单的文件上传. 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何东西都可以.无论视图本身包含什么逻辑,都要返回…
Django 系列博客(六) 前言 本篇博客介绍 Django 中的路由控制部分,一个网络请求首先到达的就是路由这部分,经过路由与视图层的映射关系再执行相应的代码逻辑并将结果返回给客户端. Django 中路由的作用 URL 配置(URLconf)可以比作是 Django 支撑网站的目录.它的本质是 URL 要为该 URL 滴啊用的视图函数之间的映射表.以这种方式告诉 Django,对于客户端发来的 URL 要具体调用视图层的哪段代码. from django.urls import url f…
Django 系列博客(四) 前言 本篇博客介绍 django 如何和数据库进行交互并且通过 model 进行数据的增删查改 ORM简介 ORM全称是:Object Relational Mapping(对象关系映射),其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来.举例来说就是,我定义一个对象,那就对应着一张表,这个对象的实例,就对应着表中的一条记录. 比如在大名鼎鼎的 pythonWEB 框架 Django 就是使用了对象关系映射,这个对应 Django 中的 model文…
Django 系列博客(三) 前言 本篇博客介绍 django 的前后端交互及如何处理 get 请求和 post 请求. get 请求 get请求是单纯的请求一个页面资源,一般不建议进行账号信息的传输. 配置路由 from django.conf.urls import url from django.contrib import admin import app.views as app_views import newApp.views as new_views urlpatterns =…
Django 系列博客(二) 前言 今天博客的内容为使用 Django 完成第一个 Django 页面,并进行一些简单页面的搭建和转跳. 命令行搭建 Django 项目 创建纯净虚拟环境 在上一篇博客中已经安装好了虚拟环境,所以用虚拟环境来安装指定版本的 Django.为了可以从头到尾的走一遍流程,我重新创建了一个虚拟环境. 激活虚拟环境并安装 Django 首先进入虚拟环境路径下的 bin 目录 使用命令激活虚拟环境 安装指定版本 Django 首先使用 pip3 list 命令查看 可以看到…
Django 系列博客(一) 前言 学习了 python 这么久,终于到了Django 框架.这可以说是 python 名气最大的web 框架了,那么从今天开始会开始从 Django框架的安装到使用一步步的学习,这系列博客不会像前端的那样水了(立个 flag),希望可以成为高质量的博客.那么本篇博客介绍 Django 的安装以及如何在电脑上运行第一个 Django 应用. Django 的安装 Django 的安装很简单,在 win 和 mac 上面都可以使用 pip 安装命令安装,也可以通过…
JavaScript 系列博客(七) 前言 本篇博客介绍页面节点概念.文档结构以及如何使用 js 操作文档节点还有事件 target 以及 BOM 操作. 节点 dom与dom属性 // DOM: 文档对象模型 => 提高给用户操作document obj的标准接口 // DOM树: 以document为根, 树状展开所有子节点 节点分类 // 节点分类: 6个 // document | doctype | element | text | attr | comment 节点常规操作 var…