0%

买了个新玩具:树莓派3b+,挺好玩。

  1. 一个开发板(包含cpu、内存、网卡、usb接口)。
  2. 一张扩展卡(内存卡,就是之前手机上用的那种TF拓展卡,用来装系统,开发板上有专门的卡槽用来安装扩展卡)。
  3. 一根网线(其实开发板上是有无线网卡的,据说配置起来听麻烦,就用网线上,插上就能用)
  4. 一根HDMI视频线,毕竟安装系统的时候可能会用到
  5. 其他配件,比如散热风扇、外壳、摄像头什么的随意,毕竟不是必须的
阅读全文 »

InheritedWidget是Flutter中非常重要的一个功能型Widget,它可以高效的将数据在Widget树中向下传递(只能向下传递,无法向上传递,如果需要向上传递可以使用Notification)、共享,这在一些需要在Widget树中共享数据的场景中非常方便,如Flutter中,正是通过InheritedWidget来共享应用主题(Theme)和Locale(当前语言环境)信息的。这里建议阅读以下theme.dart的源码

阅读全文 »

作为一个状态共享的解决方案,不复杂,好理解,代码量不大的情况下,可以方便组合和控制刷新颗粒度 , 而原 Google 官方仓库的状态管理 flutter-provide 已宣告GG , provider 成了它的替代品。和scoped_moded比起来,入侵性比较小,也适合比较复杂的应用场景。

具体的代码在 https://github.com/huangyuanlove/test_flutter/tree/master/lib/provider

阅读全文 »

管理多个页面时有两个核心概念和类:RouteNavigator。 一个route是一个屏幕或页面的抽象,Navigator是管理route的Widget。Navigator可以通过route入栈和出栈来实现页面之间的跳转。所谓路由管理,就是管理页面之间如何跳转,通常也可被称为导航管理。这和原生开发类似,无论是Android还是iOS,导航管理都会维护一个路由栈,路由入栈(push)操作对应打开一个新页面,路由出栈(pop)操作对应页面关闭操作,而路由管理主要是指如何来管理路由栈。

阅读全文 »

公司已经开始在项目中使用Flutter进行跨平台开发了,并且已经在其中一款应用上线了,过程并没有多曲折,按照官网教程一步步进行,继承、打包、测试、发版。

最近另外一个项目有新的需求,也开始使用Flutter,在集成打包的时候出现了问题:

A/flutter: [FATAL:flutter/shell/common/shell.cc(218)] Check failed: vm. Must be able to initialize the VM.

收集到的错误日志如下:

阅读全文 »

由于众所周知的原因,为了防止文章被和谐,文中会出现明显(脑残)的解释说明上的错误,懂的自然都懂

使用pip安装ssserve以及对应的配置

使用bbr拥塞控制算法进行加速

使用v2ray脚本安装v2ray

阅读全文 »

2018年谷歌I/O 发布了一系列辅助android开发者的实用工具,合称Jetpack,以帮助开发者构建出色的 Android 应用。
这次发布的 Android Jetpack 组件覆盖以下 4 个方面:Architecture、Foundation、Behavior 以及 UI。
该系列博客介绍一下Jetpack中常用组件,本篇介绍LiveData、ViewModel、LifeCycle。最后借助于https://github.com/android/sunflower 来写一个完整的应用

阅读全文 »

安装vim后,执行vimtutor就好了。。。

Vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中
就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这
些命令,您就能够很容易地将 Vim 当作一个通用编辑器来使用了。

完成本教程的内容大约需要25-30分钟,取决于您训练的时间。

注意:
每一节的命令操作将会更改本文。推荐您复制本文的一个副本,然后在副本上
进行训练(如果您是通过"vimtutor"来启动教程的,那么本文就已经是副本了)。

切记一点:本教程的设计思路是在使用中进行学习的。也就是说,您需要通过
执行命令来学习它们本身的正确用法。如果您只是阅读而不操作,那么您可能
会很快遗忘这些命令的!

好了,现在请确定您的Shift-Lock(大小写锁定键)还没有按下,然后按键盘上
的字母键 j 足够多次来移动光标,直到第一节的内容能够完全充满屏幕。
阅读全文 »

Flutter的设计灵感部分来自于React,主要是数据与视图分离,由数据来驱动视图的渲染。而对于我们在实际工程中的应用,就目前状态来讲,只是用来做UI,并没有用Flutter来做多少业务逻辑,涉及到的逻辑也不过是界面之间的数据、状态传递等。但并不排除将来会将重心稍微往Flutter侧偏移。

目前使用StatefulWidget完全可以适应目前的需求。但是需要考虑到后续扩展,需要找一种能够解决状态同步问题的方案。在了解了几种方案后确定使用BLoC。

https://juejin.im/post/5bac54c45188255c681589d3

https://www.jianshu.com/p/e7e1bced6890

https://www.jianshu.com/p/7573dee97dbb

阅读全文 »