Dorck's Blog

乾坤未定,你我皆是黑马。

独立开发者需奉行的原则

独立开发者们是一个相对自由的群体,他们可以按照自己内心的写照来变成现实,或许正是因为是善于思考和灵活变通让他们收获人生的第一桶金。然而,这条路还是需要“有章可循”的,毕竟人的思想是主观的,并不是任何时候都会找准当下的目标,偶尔偏移路线还是会浪费不少精力并消磨你的意志。对于独立开发者而言,如何正确的开发一款独立产品并在过程中行之有效的进行下去是值得我们反复思考和回顾的。 如何启动一个 S...

Git 默认编辑器替换

一般情况下,Git 的默认编辑器是 vim,对于新手来说上手可能比较困难。例如常见地我们输入 git commit 会看到如下场景,终端自动通过 vim 打开了本地 git 文件: 那么,通过以下方式我们可以指定默认编辑器,这里以 vscode 为例。首先下载安装完 VsCode 后点击工具栏 View » Command palette (或者快捷键 Shift + command ...

文章发布流程记录

隔了两个月未更新本地文章到 Github,今天突然想去发布两篇,结果流程命令全然忘记了。为防止以后出现类似情况,这里描述一下文章发布的工作流,仅作记录使用。 Posts Blogging is baked into Jekyll. You write blog posts as text files and Jekyll provides everything you need to t...

关于 StateFlow 使用的一次车祸现场

最近了解了一下 Kotlin 中的协程,这两天得闲就想着把 Flow 拿来练练手,没想到车祸现场立马就来了。 关于流的概念官方说的也比较多,提供了很多参考文章,此处就不细说了,直奔主题。在 Android 里,考虑到生命周期和之前 LiveData 的兼容性,官方推出了 StateFlow 来供我们使用。于是,就有了下面这一段代码: 1 2 3 4 5 6 7 8 9 10 11 12 ...

Markdown 流程图绘制的二三事儿

作为一位经常出入各大博客站点的取经人来说,Markdown 显然已经成为一项必备技能。很多人平时写文档或者博客都会用常见的 Markdown 编辑器,如:有道、Atom、Typora等等。我们经常会有绘图需求,常见的有流程图、类图、序列图和甘特图等等,然而,当你还在苦苦寻找一些免费易用的画图软件时,殊不知 Markdown 早就已经具备了此项功能。 flow 绘图 如果我们想按照以下流程...

关于如何避免低效学习的所思

医者,讲究对症下药,何谓“低效”? 也许大家平时都会有这样一种感觉:明明主动花时间去投入时间学习或者工作,但最终的产出却少的可怜,一天恍恍惚惚过去了,却好像什么事情都没做成。顾名思义,低效主要表现在:原计划可能 1 天就能完成的事情却偏偏拖到第 3 天才完成。我们在晚上睡觉前不妨坦诚布公地问自己以下几个问题「非常重要」: 今天哪件事最重要?我完成它了吗? 是什么导致手头的计划没...

MotionLayout:打开动画新世界大门(partII)

距离上一篇文章「 MotionLayout:打开动画新世界大门(partI)」已经过去了很久,由于个人原因,MotionLayout 系列文章姗姗来迟。在之前的文章中,我们领略到了 MotionLayout 的魅力,了解到它继承自 ConstraintLayout,并具有它“约束布局”的特性。同时,关于如何创建和使用 MotionScene 及其内部的 KeyFrameSet 也都做了一些简...

一篇文章带你领略Android混淆的魅力

在 Android 日常开发过程中,混淆是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码混淆的基本操作。那么,混淆到底是什么?它的好处有哪些?具体效果如何?别急,下面我们来一一探索它的”独特”魅力🐳。 混淆简介 代码混淆(Obfuscated code)是将程序中的代码以某种规则转换为难以阅读和理解的代码的一种行为。...

Flutter 开发小结 | Tips

接触 Flutter 已经有一阵子了,期间记录了很多开发小问题,苦于忙碌没时间整理,最近项目进度步上正轨,借此机会抽出点时间来统一记录这些问题,并分享项目开发中的一点心得以及多平台打包的一些注意事项,希望能对大家有所帮助😁。 UI 组件使用 官方为我们提供了大量原生效果的组件,如以 Android 中常见的 Material Design 系列组件和 iOS 系统中让设计师们“欲罢不能”...

Flutter 中“倒计时”的那些事儿

好久不见了,文章有一段时间没有更新了,最近一直在沉迷工作无法自拨😂。上周,应公司号召以及上次Google大会中Flutter宣讲的感染,计划将公司新项目采用Flutter技术实现。大概花了几天熟悉了一下Flutter基础语法和结构组成,便着手开始项目的搭建和基础模块功能开发,毕竟只有通过实战才能加快新技术的熟悉和“消化”。 说到验证码功能,我们通常的做法可能是借助于计时器来实现,抱着几乎肯...