太钻 Android 了,在电鸭刷私活把我自己刷清醒了

0 阅读3分钟

这几天晚上闲着没事,我又打开电鸭,想随便找个 Android 私活接一下。一来练练手,二来也想看看自己现在到底值多少钱。结果刷了没一会儿,我就刷不下去了。

我这几年一直喜欢搞那些细碎的东西。

比如 Jetpack Compose 怎么自定义 Layout,Room 配合 Flow 和 Hilt 怎么玩得更顺,Coroutines 深一点的调度原理,RecyclerView 各种优化……我能为一个列表预加载方案折腾一整个周末,就为了让滑动再稳那么一点点。每次改完代码跑起来顺滑了,我都觉得自己挺牛的。

Android Developers Blog: Scaling Across Screens with Jetpack Compose @  Google I/O '24

可真把这些东西拿到电鸭的项目列表里一看,瞬间就蔫了。

有个需求说:要做一个带会员、支付、推送、统计的 App,要支持 Android 8.0 以上,还得兼容平板,尽快能上线。

我一看就傻眼了。 微信支付和支付宝我只在 demo 里跑过,正式对接一次都没有;推送只用过 Firebase,国内那些常用的一概没碰;会员续费、优惠券这些业务我压根没做过;埋点统计更是两眼一抹黑。

还有个需求更狠:企业内部巡检 App,要接企业微信、钉钉审批,离线地图、定位、拍照水印、动态表单…… 我连企业微信 SDK 都没认真看过,高德地图也只会基本功能,动态表单直接不会。

再往下刷,还有短视频类的,要低延迟推流、美颜、弹幕、礼物系统…… 我那些“精通”的 Compose、Coroutines,在这些真实需求面前,根本不够看。

那一刻我挺不是滋味的。

我突然意识到:我会的真的很少,知道的也很少,以前觉得自己挺值钱的那些小技术,在真实项目里几乎派不上什么用场。

The Android Build Speed Crisis And How I Fixed It for My Team | Medium

不是说这些小模块没用,而是我把它们和实际业务完全隔开了。我天天研究源码、写优雅代码,却很少想怎么把这些东西拼成一个能给客户用的完整产品。客户才不管你协程写得多漂亮,他们只关心支付能不能到账、推送能不能及时到、App 别在低端机上闪退、功能能不能按时上线。

以前我最烦别人说 Android 就是 CRUD,现在想想,能把 CRUD 和业务、三方 SDK、兼容性、性能全揉在一起跑通,才是最难也最值钱的。

最扎心的是,这种偏科是我自己一步步搞出来的。我一直躲着不学支付、不学推送、不碰业务,理由永远是“那不是核心技术”。我总觉得只要底层东西够深,机会自然会来。现在机会来了,我连最基本的集成都不会。

这次在电鸭翻车,虽然有点丢人,但确实把我打醒了。

我现在没急着去狂补各种 SDK,而是先停下来问了自己几个问题:

  1. 我以后想接的 Android 项目大概是哪一类的?(工具、内容、企业内部还是电商?)
  2. 我手里这些小模块,到底能拼成什么能拿出去卖的东西?
  3. 下次再刷电鸭,我至少希望自己能看懂并敢接哪几种需求?

写这篇东西,就是想把这个挺狼狈的清醒过程记下来。

也给那些跟我一样,天天泡在 Jetpack、Compose 里的 Android 兄弟提个醒:技术钻得深是好事,但如果一直只在小模块里转,在真实市场里很容易变成“精致的废物”。

从现在开始,我打算少看点源码分析,多看看真实项目需求;少写点个人玩具,多做点能真正交付的东西。

路还长。

你们呢?

看到那些需求,是觉得简单,还是跟我一样突然心虚?