1、你不需要是个天才,才有资格分享知识——《Show Your Work》
2、除了目标,还要关注实现目标的体系,享受提升自我的过程
3、1%定律:每天提升1%——《Atomic Habits》
4、多样化收入来源
5、你觉得很普通的事情,在别人看来可能会很了不起——《Anything You Want》
6、每日重点:梳理待办事项的优先级——《Make Time》
7、勇敢去做:不一定要遵循既定规则去过人生——《Do What You Can’t》
8、家庭、个人、工作的平衡——《平衡的智慧》
9、找个人谈谈心——《你当像鸟飞往你的山》、《也许你该找人聊聊》
10、成功的公式——Y2b:Ali Abdaal
Flutter 2.8 发布 | 性能及工具链优化、Firebase 功能、WebView 3.0
官方发布说明:medium.com/flutter/wha…
北半球的冬意已至,黄叶与气温均随风而落,而年终的最后一个稳定版本已悄然来到你的面前。 让我们向 Flutter 2.8 打声招呼~ 本次更新包含了 207 位贡献者和 178 位审核者 的辛勤劳作, 所有人共同产出了 2424 个 PR,关闭了 2976 个 issue。 在此特别感谢本次发布中最突出的社区贡献者:来自 Very Good Ventures 的 Flutter 开发工程师 Bartosz Selwesiuk, 他专注于 Web 平台的 camera 插件并提交了 23 个 PR。
以上的所有产出让 Flutter engine 和 DevTools 都有了非常显著的性能提升, 同时带来的还有 Google 移动端广告 SDK Flutter 版本的稳定版发布、 一系列针对 Firebase 的新功能和优化、Flutter WebView 3.0、 新的 Flutter Favorite package、向桌面端 Stable 迈出的一大步, 以及支持更多 package 的新版本 DartPad。 虽然这是今年最后一个稳定版本,但它并不是最不重要的。让我们一起来看看!
Jetpack Compose 入门学习
简介
- Jetpack Compose:利用声明式编程构建Android原生界面(UI)的 工具包
优势
- 更少的代码、代码量锐减
- 强大的工具/组件支持
- 直观的 Kotlin API
- 简单易用
编程思想
声明性编程范式:声明性的函数构建一个简单的界面组件,无需修改任何 XML 布局,也不需要使用布局编辑器,只需要调用 Jetpack Compose 函数来声明想要的元素,Compose 编译器即会完成后面的所有工作。
简单的组合函数
1
2
3
4@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}声明性范式转变:在 Compose 的声明性方法中,微件相对无状态,并且不提供 setter 或 getter 函数。实际上,微件不会以对象形式提供。您可以通过调用带有不同参数的同一可组合函数来更新界面。这使得向架构模式(如 ViewModel)提供状态变得很容易,如应用架构指南中所述。然后,可组合项负责在每次可观察数据更新时将当前应用状态转换为界面。
动态 :组合函数是用 Kotlin 而不是 XML 编写
重组:在 Compose 中,您可以使用新数据再次调用可组合函数。这样做会导致函数进行重组 – 系统会根据需要使用新数据重新绘制函数发出的微件。Compose 框架可以智能地仅重组已更改的组件。
- 可组合函数可以按任何顺序执行
- 可组合函数可以并行运行
- 重组会跳过尽可能多的内容
- 重组是乐观的操作
- 可组合函数可能会非常频繁地运行
Alfred进阶教程,自定义Workflows
在上一篇《Mac装机必备-Alfred的基础使用教程》中,已为大家介绍了Alfred的基础功能。其实除了Alfred已有的功能外,Alfred还支持用户自定义工作流。
通过设置好触发器、输入、操作、实用程序、输出,就可以自由搭建工作流。在本教程中,我将创建一个简单的热键工作流,用来一键启动我每天多次使用的一些应用程序和网页。
进入Alfred的偏好设置中的workflows*标签页,点击左下角的“+”,然后选择Templates > Files and Apps > Launch file group from hotkey*,创建一个用热键打开的工作流。
Flutter完整学习路线解读
Flutter如何开发web端
flutter开发移动端与开发web端有些区别,开发移动端会涉及到各自原生系统里特有的一些内容,iOS端与Android通过插件的形式引入的项目当中,但不需要考虑响应式布局。而web端开发需要考虑到窗口的大小变化,需要考虑响应式布局。
开启对web开发的支持
flutter开发要支持web,需要在命令行中输入以下命令打开支持的平台(以下列举了各个平台支持的命令行):
flutter config —enable-web-desktop
flutter config —enable-windows-desktop
flutter config —enable-macos-desktop
flutter config —enable-linux-desktop
之后再次输入 flutter config
检测开启的情况,如果检测到如下图所示则表示开启成功。
这时候可以创建项目了,创建的时候勾选Web选项即可。
Flutter cached_network_image 图片加载流程分析
使用
组件CachedNetworkImage可以支持直接使用或者通过ImageProvider
。
引入依赖
1 | dependencies: |
执行flutter pub get
,项目中使用
Import it
1 | import 'package:cached_network_image/cached_network_image.dart'; |
添加占位图
1 | CachedNetworkImage( |
进度条展示
1 | CachedNetworkImage( |
《批判性思维》随笔记
Why?
然而在这样一个信息过载的时代里,形形色色的声音与观点鱼龙混杂。生活在信息洪流中的我们,应该如何避免随波逐流,做到真正的独立思考?
或许可以了解一下“CriticalThinking”——「批判性思维」。
What?
批判性思维是以一种合理的、反思的、心灵开放的方式进行思考,从而能够清晰准确地表达、逻辑严谨地推理、合理地论证,以及培养思辨精神。
在批判性思维的情感倾向方面,科南特(J.Kurland)于1995年提出:批判性思维与过分情感主义、智力懒惰和封闭思维相反,它关注证据、智力、诚实和开放思维。因此批判性思维强调依靠证据而非情感,全面考虑各种可能的观点和解释,警惕个人动机和偏见的影响,更关注寻求真理,不拒绝非流行的观点,意识到自己的偏见、歧视,自觉避免或减少这些偏见对判断的影响。此外,具有批判性思维并不意味着总是对任何人和任何事持否定态度和吹毛求疵,批判精神意味着敏锐的思维、好奇的探究、对推理的热情、对可靠信息的渴望。