从写作到演讲,虾米君不断尝试的 2021 | 年终回顾

2,021 阅读17分钟

「时光不负,创作不停,本文正在参加2021年终总结征文大赛

年终岁末会有很多令人兴奋的事情,之一便是坐等各种年终盘点,但我们往往忽略了对自己的盘点。自我复盘,可不是应付他人的作业,而是用心地回顾和思考,它从来都不是一件简单的事情!

今年七月份我写过一篇年中回顾:「电子厂里撂了挑子,我默默自学起了Android|2021 年中总结」。虽说是年中回顾,但超过一半的篇幅讲的是我从事 Android 开发的契机和一路以来的故事。反响超出了预期,很多朋友在博客里留言,和我分享他们类似的经历和当下的状态。

我很欣慰自己的故事能够激起大家的共鸣,这回我想认真盘点下今年的所行、所思,期望也能够唤起你的一点点思考。

先来看个今年的一些数据:

  1. 写了 30 篇文章: 27 篇技术、1 篇翻译、2 篇随笔,总字数 15 万+
  2. 公众号、掘金、CSDN 三个平台阅读量 20 万+
  3. 肝了 8 个开源项目,总代码量 20k
  4. 做了 3 次演讲:部门、公司、GDG 直播各 1 次

30 篇文章

年中那边文章解释过我突然开始写作的原因,就不赘述了。今年写的技术文章主要着眼于 JetpackComposeAndroid 12 这几个 Android 平台的关键技术。所有的文章就不一一贴了,贴几篇写得极为用心的文章,并附上一些背后的想法。

  • 「深度解读 Jetpack 框架的基石-AppCompat」

    聚焦在 Jetpack 框架集合里最常见、也最容易被忽视的 AppCompat 框架,详细地阐述了它的作用、构成和原理。期望给大家介绍下这个默默无闻的功臣。这篇文章是今年写的第一篇,也是被 Android 官方转载的第一篇,对于我来说有很特别的意义

  • 「为什么推荐使用 Jetpack CameraX?」

    CameraX 框架发布已久,但我的工作内容很少涉及 Camera 功能,便趁着这个框架填补下自己的空白。所以花了很多精力去研究它的各种细节,包括其优势、Camera2 的劣势、已有的文章哪些没讲到位、如何充分覆盖到完整 API、如何美化 DEMO 等等。发布之后收到了很多好评,但也有不足的地方,比如原理未曾提及。

  • 「Android 上数据库的新选择,Jetpack Room」

    疫情不明朗的缘故过年期间留守南京,边休息、边研究 Room 框架,竟解锁了过年的新模式。为什么是 Room 呢?就是想了解下其相较单纯的 SQLite 到底方便在哪、代码能简化到什么程度。这篇文章倒是提了原理,但还是漏了一个重要方面,就是关联数据表,后面有时间我再完善吧。

  • 「Jetpack Compose 助我快速打造电影 App」

    Compose 框架多火就不用说了吧,写作的那会儿正值 Compose 的全球挑战赛。便连肝了两礼拜,快速学习了各种 API、声明式编程思想以及与其他 Jetpack 框架的配合,将之前写的 MVP 架构的电影 App 改成了 MVVM 架构的 Compose 版。成品觉得还可以,但就 Compose 技术而言,只涉及到了皮毛,就算是一种入门吧。

  • 「Jetpack Hilt 有哪些改善又有哪些限制 」

    DI 框架在后端中应用广泛,但在客户端中的使用着实有限。我自己来说,顶多就是在改造 SystemUI 的时候研究过 Dagger2 的部分。那么 Hilt 基于 Dagger2,又宣称做了很多优化、并和 Jetpack 家族的其他成员进行了深度融合,自然值得去了解一下。但当时在这个框架上投入的时间远远不够,只涉及到了 API 的使用,原理也没时间理会。后面我想着基于最新的 Hilt 版本进行强化学习。

  • 「全面复盘 Android 开发者容易忽视的 Backup 功能」

    工作中遇到深度定制 Backup 功能的需求,可网络上关于这块的内容大都止步于 autoBackup属性,少部分谈及一下原理,而且还是基于很老的系统版本。而事实上 Backup 功能,Google 非常重视,其可玩性也很高。所以借这个契机,从功能目的、操作对象、原理、命令、破解、深度定制、版本升级中的各项变化等完整角度入手,肝了 3 万字,期望填补网络关于这块的缺失。反响也超出了预期,但这块功能较冷僻,对于大家实际的帮助是有限的。

  • 「Android 12 上全新的应用启动画面,还不适配一下?」

    无意中了解到 Android 12 中 SplashScreen 的新功能,觉得十分有趣,加上之前被启动画面相关的坑困扰过,便认真研究了一波。它着眼于 App 的第一屏的打造,可如果 DEMO 太基础、太粗浅,是无法打动别人来使用的。于是研究和查找了非常多的 SVG 动画,并自己设计了多种创意动画效果,最终形成了那个还蛮炫酷的启动效果。文章出炉的时候,正值 Google IO 2021 的召开,趁着这个热点文章也着实火了一把。我的公众号单篇阅读第一次破了 1000,掘金上的点赞量则近 100。后来我把 DEMO 发到了推文,SplashScreen 功能的 Google 负责人看到之后还点赞并转发,这无疑给了我巨大的信心

  • 「Android 12 上焕然一新的小组件:美观、便捷和实用」

    这同样是基于 Android 12 一项非常重要的行为变更,即针对小组件功能进行了大刀阔斧地升级:从外观到使用再到开发者的适配。为了完整演示各项变更,我设计了各种实用的小组件进行演示,并将旧系统上的效果一并展示出来,进行直观地对比。最后的反响未达预期,但好在后来 Google 转载了这篇文章,算是一种慰藉吧。

  • 「CameraX + 华为 ScanKit:二维码扫描的终极解决方案」

    之前看到 OpenCV 大神呱哥采用华为ScanKit 框架做了二维码的深度实践,联想到之前写的 CameraX DEMO 在扫码方面尚有优化的地方。于是一边将 ScanKit 集成进来,一边增加了很多拍照和视频的优化,并将实现语言改成了 Kotlin。即便如此,还是忘记了多码选择的功能,后续我将加上这个功能,并将 Google MLKit腾讯的扫码方案也集成进来。

  • 「电子厂里撂了挑子,我默默自学起了Android|2021 年中总结」

    本打算简单总结一下半年来都干了啥,后来发现内容太过单薄,于是借着这个机会跟大家回顾了下自己与 Android 结缘的往事。这篇走心的文章让我收到了非常多的留言和鼓励,也了解到很多朋友大同小异的入行故事,算是一次很不错的尝试

  • 「一气呵成:用Compose完美复刻Flappy Bird!」

    从未做过游戏的自己一直非常想试试,加上受到了 fundroid 大神打造俄罗斯方块游戏的激励,便决定使用 Compose 框架突破一下。Flappy Bird 游戏曾经红极一时、玩法简单,就选择它作为复刻对象。从零开始推进游戏拆解、界面实现、状态更新、动画效果、计分规则等步骤,花了 2 个礼拜。这篇文章在掘金上首破 100 赞,非常满意。当然,游戏中小鸟的飞翔效果、碰撞的精确计算等细节尚可以继续优化。想着后续尝鲜 Compose Multiplatform 打造跨平台的 FlappyBird 的同时一并优化这些不足。

  • 「Jetpack新成员SplashScreen:打造全新的App启动画面」

    之前写的 Android 12 SplashScreen 文章引起不少朋友的兴趣,但部分朋友非常在意它是否兼容低版本系统。果不其然,Google 默默进行了支持并加入到了 Jetpack 大家庭。结合之前的 Flappy Bird 游戏应用上了这个框架,在 12 和 8 两个高低版本上打造了近乎一致的游戏启动效果,同时也补充了它的实现原理,这篇文章也成为了两个月后直播分享的主题。

  • 「都 2021 年了,还有人在研究 Handler?」

    无论是 App 开发还是 Android 源码实现,Handler 机制的应用随处可见,自然也成了面试过程中必问的内容。我潜心研究了 Handler 机制的 Java 层原理、Native 层原理以及各种可能涉及的问题。最后综合起来,汇聚成了 20 个问答。知识点类的硬核汇总果然很受欢迎,很快点赞即破百,这也让我产生了一个疑问:相较于新技术,这种纯纯八股文或许才是大家更“需要”的现实知识?

个人的 影响力 流量有限,从写作初期直到现在,我仍在寻求能传播更广、更良性的渠道。一年以来有幸被 Google、CSDN、掘金、鸿洋、郭霖、fundroid、Top 君、OpenCV 呱哥、Compose 博物馆以及其他多个公众号多次转载,非常感谢。其中我想着重感谢 「Android 开发者」公众号的「开发者说」栏目,今年一共转载了我 5 篇文章。我的「TechMerger」公众号应该是 2021 年度贵平台转载最多的个人公众号,我非常荣幸!

除了原创文字,我一直想尝试其他的形式或方式,比如转载、视频、翻译啥的。简单了解之后发现视频这种形式需要学习的东西非常多,短时间学不透、更玩不转。遂作罢并打算先尝试下翻译这种 轻巧 偷懒 的方式。恰好发现 Jetpack 家族推出了实用的新框架 DragAndDrop,就试着翻了一下官方的文章。篇幅不大,但翻译得很有兴致,因为这种先理解别人的意思、再通过自己的技术背景去转化为别人能理解的文字的过程,非常有趣。后续我将发掘和翻译更多新颖的技术文章。

「Jetpack 叒一新成员 DragAndDrop 框架:大大简化拖放手势开发!」

8 个开源项目

围绕 上面的技术文章,总共肝了 8 个开源项目,一共 20k 代码量。

其中:

  • ComposeMovie作为用 Compose 重写的电影 App,算是 Compose UI 架构的入门吧,竟然还被 Compose 培训课程拿去做了宣传,这是不是也算一种认可,哈哈。

    github.com/ellisonchan…

  • ComposeBird 游戏值得学习一下小游戏的实现思路,以及如何玩转 Compose 的状态刷新机制。star 数很快突破了 100,对我来说意义非凡。

    github.com/ellisonchan…

  • JetpackDemo 则是我迄今为止学习完的 Jetpack 框架的源码集合,有每个框架比较详尽的使用实例,这也是我会持续完善的一个项目。

    github.com/ellisonchan…

  • SplashScreenNewAppWidgets 两个项目作为 Android 12 新特性和行为变更的 DEMO,有不少创意的设计,值得大家参考一下。

    github.com/ellisonchan…

    github.com/ellisonchan…

3 次演讲

  • 《我与手机的不解之缘》

    虽与部门内的同事共事多年,但互相的了解着实有限。于是在部门分享的时候我选择了手机这个切入点,将大学和工作以来用过的手机、发生的故事串了起来。期望拉近彼此的距离,也给年轻一些的同事一些职场上的启发。

  • 《MAD,现代 Android 开发》

    公司层面每年都会举办大型的技术分享活动,我想着如今 Android 开发技术已发生重大变革,便以现代 Android 开发为话题着重阐述了 Android 重点开发栈的前世今生。

  • 《使用 Jetpack SplashScreen 重塑应用启动画面》

    起初收到 GDG 朋友邀请参加「社区说」直播分享的时候,担心自己讲不好,但还是爽快地答应了。一来因为一直在幕后默默写文章,也想跟大家面对面交流;二来想要突破自己,尝试没有体验过的直播形式。当然为了不辜负朋友们的信任,我花了很多时间去优化 DEMO、PPT 效果、文案等细节。最终的直播成绩算是满足了自己的预期,但毕竟是处女秀,也有很多可以改善的地方,以后再努力吧~

    B站地址:www.bilibili.com/video/BV1gS…

1 堆奖品

上半年参加了两场代码挑战赛:Google 举办的 Compose 挑战赛和华为举办的鸿蒙开发者大赛,都拿到了心心念念的奖品。尤其是 Google 和乐高联名的 Jetpack 积木冒着疫情漂洋过海来到了我手里,很特别,值得珍藏 !

除此之外、因 Google 转载文章、参加掘金的各项创作活动,也得到了 1 堆礼物:5 件T恤、6 个杯子、3 个抱枕、月饼、积木、机械键盘、京东卡、电脑包、鼠标垫、帆布袋、帽子、各种主题贴纸。

几乎承包了我一年的职场物件,比心♥️。

参加活动的间隙也收获了些认可,注册掘金的 8 个月里有 4 个月拿到了移动端前 20 名,感谢平台专业、用心的包装。

可能源自压力和紧迫感的缘故,我以前排斥参加一切有明显竞争性质的活动。但今年抱着试试看的态度参加了十几次活动之后,收获了压力之外的很多体验。建议大家多参加,这对于自己、平台来说,是双赢的。

1 些数据

平台粉丝阅读量收益
公众号1200+篇均阅读:200+流量主加上赞赏勉强够吃顿烧烤吧 😭
掘金近 5008万+1 堆奖品,不是钱能比拟的 😊
CSDN400+10万+谈那干啥,肝就完了 ⛽️
知乎不到 10012万+无私奉献,要啥自行车 😠

公众号、博客和 CSDN 这三个主要更新的平台,今年总共有 20 万+ 的阅读量。加上中断了的知乎和多方公众号转载数据的话,总阅读量应该近 50 万

这个数据自然无法跟大佬相比,但达成了自己的预期~

得与失!

至此,分享了一年来的很多收获。如果到这就完了,那么势必成为流水账。我想再多一些文字,跟你分享这一整年来的心得体会和心路历程。

谈起的话,除了上述的认可和奖品以外,得数今年认识到的很多 nice 的朋友。基本上每周都能结交或作者、或读者的朋友,咱们通过邮件、博客、公众号、微信线上交流,让我学到了很多、也打开了更广阔的视野。期望有机会与一些朋友线下面基。

得到很多的同时也留有一些遗憾。

因为很忙的缘故,运动的部分有所懈怠,目标达成的情况不如去年,12 个月中只完成了一半。好在因为饮食克制得还不错,身型仍然在线。

另外,其中有一段时间由于更文的压力和熬夜的陋习,情绪变得急躁、焦虑,对待家人也缺乏耐心和关心。可怕的是自己都没有察觉到自己的这种变化,好在后面自己察觉到了。感谢家人的理解和支持,后面我会注意写作和生活的平衡,尽最大努力去调节自己的状态,可持续地做好我想做的事情。

明年?

几个泛泛的目标:

  1. 一直以来没有统一、高效、长足的知识体系,明年计划认真重构并持续维护自己的笔记系统,可能的话考虑开源出来
  2. 继续研究 Jetpack 其他框架和新框架,尤其是 Compose 的其他妙用、跨平台以及原理
  3. 了解和实践 Firebase 技术
  4. 强化 Kotlin 的学习,尽可能首选 Kotlin 编程
  5. 开始着手一直心心念念的 AI 对话应用,构想很大、很难一蹴而就,尝试慢慢实现并逐步开源,整个过程考虑做成连载文章
  6. 针对 Android 开发者某个痛点造个好用的轮子,并坚持维护下去
  7. 跟着 B 站上一个有趣的 UP 主学做个 Python 方面的小工具,比如图片批量转圆角

几个量化的目标:

  1. 更文频次:周更的压力很大,1 月 2 篇的频次推出高质量文章,公众号的话会穿插转载高质量文章或视频
  2. 更灵活的形式:除了原创文章和开源项目以外,尝试 3 次翻译1 次视频的形式
  3. 宽泛些的主题:尝试技术、总结以外创作关于职场产品体验等非技术的主题,各 1 篇
  4. 公众号粉丝达 3000+,篇均阅读量力争 500+
  5. 掘金:达到 Lv 4,取得优秀创作者头衔
  6. CSDN:阅读量达 20 万+、粉丝冲 1000,为博客专家的头衔努力
  7. 健康:12 个月的运动目标起码完成 9 个月,另外争取拿到日行 30000 步单日爬楼 200 层的勋章

简单来说,期望明年继续突破自己、并努力在实用和新颖数量和质量之间找到一个平衡!

步履不停~

如果非要给我的 2021 找个关键词的话,我会选择 尝试 这个词。可以说,我这一整年都在保持尝试,从发掘各种效率工具、到复刻心心念念的小游戏、再到研究各种感兴趣的框架、再到逼着自己去直播分享和 Coding 竞赛。。。

途中的很多个瞬间我都想躺平,但转而一想以前热衷的快餐视频和游戏早已乏善可陈、审美疲劳。试着做一些未曾涉足、饶有兴味的事情,虽然不那么爽、不那么快得到满足,但摸索其中的过程总能让我有另一番体验,如何停得下来?

可能你没发现,成年人看似自由,但事实上随着年龄的增长,活动的空间反而日渐缩小和固化,所做的事情、所思的想法日趋一成不变。但凡有点机会,尽可能尝试些不一样的东西,跟工作相关的、不相关的,你喜欢的、却一直犹豫的,都可以。

分享几个自己一直想要做的鸡汤小例子:

  • 去一直以来向往的城市、街巷转转

  • 去看一部一直没来得及看的高分纪录片

  • 去感受一首很特别的歌曲、纯音乐

  • 去沉浸到一本美妙的杂志,感受久违的纸张

  • 去了解一门知道但没尝试过的语言或技术语言

  • 去购买一款付费软件,解锁更多的功能和便捷

  • 去尝试阅读一篇英文长文,获得第一手的资讯

  • 去付费一个课程,精准解决自己的软肋

  • 去精雕细琢你的笔记并公开出去,分享你的独家典藏

  • 去做个开源的小玩意,技术类非技术类的都可以

  • 去认真读完收藏夹里吃灰已久的一篇长文

  • 去攻克一个一直不太明白又很在意的知识点并分享出来

  • 去和其他久违的朋友聊聊,分享彼此的近况

尝试不断地切换你的状态、更新你的视角、收获更多丰富的体验,一旦勇敢地开始,你会发现自己根本停不下来。

欢迎大家在评论区留言,说说你这一年的见闻和感悟~