0%

每周更新 weekly update (16/52)

2020年第十六周

Dart & Flutter 学习

最近在疫情期间,闲着无聊想去学一下新东西,刚好在YouTube上就推荐了 Google 的 Flutter 大会视频(应该是之前看 Flutter 介绍视频的联想),简单看了一下视频,觉得还是蛮有意思的。 于是这周周末的时候,就花了一些时间,简单看了一下 Dart 语言和 Flutter 框架, 打算做个 App 试试看。

Dart 语言应该十分简单,对于有C/C++基础的同学应该都不会陌生,看着 Dart 官方给的一些 Samples,基本上就能够快速上手。

而 Flutter 框架显然是一个 Google 想要统一所有平台应用开发的一个更 general 的框架, 正因为如此,它的官方文档除了提供最基础的入门教学,还给出了不同平台有基础的开发者的快速 cookbook , 我则是直接看的 Flutter for Android developers, 所以基本上花了一个多小时,仔细对比了 Android 和 Flutter 的特性, 大概了解到了 Flutter 框架目前的一些现状:

  1. 框架总体还在完善中, 跨平台支持主流的移动和桌面平台,包括 Android/iOS/Windows/macOS/Linux 等;

  2. 前端界面支持已经比较完善了,有些是能够支持到对应平台的原生控件样式;

  3. 后端发展得有些不够完备,如GPS、相机等API都是目前只有社区包支持;

  4. 一些高级的特性还在处于 Beta 版本, 如 Native Code Support , 这对应 Android 里面的 NDK 开发,所以如果有需要本地运行的性能要求软件,可能会要有别的方式去“绕行”。

最后,简单配置了一下环境以及工程,在本地的 iOS Simulator 和 macOS 上跑了一样样例程序, 觉得还是蛮简单的,后续可以尝试更多有趣的ideas。

first_macOS_flutter_app

first_ipad_flutter_app

阅读笔记

可视化Git的操作

文章链接:CS Visualized: Useful Git Commands

这周刷微博,偶然看到这位程序媛的关于Git文章,被她用于可视化的gif给惊艳到了,这对于普通人理解Git的实际工作原理,有很好的帮助,很值得花时间去回顾一下。而且有一些命令我以前不怎么用过,经过她的介绍,也算是学到了新东西。

Multi-stage build for Docker

文章链接:A Guide to Docker Multi-Stage Builds

使用了一段时间Docker用于研究和开发,总有感觉自己在用的 Dockerfile 是那么的臃肿,而最终使得生成的Image是非常大的。

举个例子,在我之前的一个项目中需要用到OMPL和FCL的库,而在实际的使用上我们只要用到运行库,但我们为了在特定的系统上使用,而不得不重新编译这个库,进而去安装一堆依赖库去编译,从而增加了Image的大小和降低了纯净度。从这个角度出发,我会想只需要把这些库在一个独立环境里先编译好,然后COPY到最终的使用环境,这样就好了。

毫无疑问,看完这篇文章,我觉得就刚好解决了我这个痛点,它介绍了 Docker 17.05的版本的一个叫multi-stage build的新特性,使得我们可以在一个 Dockerfile 里去定义不同 stages,然后不同的 stages 能够互相访问,且各自独立,所以使得最终我们运行环境下的Image尽可能compact,达到我们对可维护和可控制的需求。