Breaking Up with Google Play: Why Conversations Is Now Free

Breaking Up with Google Play: Why Conversations Is Now Free

与 Google Play 分道扬镳:Conversations 为何改为免费

Conversations, my federated instant messaging client for Android, started out as many traditional open-source projects do: as an attempt to scratch my own itch. Development started in January 2014 in my student dormitory, and within weeks I started dogfooding and using the client as the primary means of communicating with my friends. Conversations 是我为 Android 开发的联邦制即时通讯客户端,它的起源和许多传统的开源项目一样:为了满足我自己的需求。开发始于 2014 年 1 月的学生宿舍,几周内我就开始“吃自己的狗粮”(dogfooding),将其作为与朋友沟通的主要工具。

However, when it came to releasing the app to the public on March 24, 2014—exactly twelve and a half years ago today—it was immediately clear to me that I would at least try to turn my open-source project into a business. While I didn’t invent the business model of making the source code publicly available but charging for the convenience of a compiled binary, it was certainly unusual in 2014. 然而,当我在 2014 年 3 月 24 日(即今天十二年半前)向公众发布该应用时,我立刻意识到,我至少要尝试将这个开源项目转化为一项业务。虽然我并非“公开源代码但对编译后的二进制文件收费”这一商业模式的发明者,但这在 2014 年确实很不寻常。

Fast forward a decade, and I did manage to turn Conversations into a sustainable business. Ever since March 2014, Conversations—or other related activities—have been my primary source of income. Admittedly, sustaining life as a student in a tiny dormitory doesn’t take much, but luckily revenue has steadily increased as I grew older. 十年过去了,我确实成功地将 Conversations 变成了一项可持续的业务。自 2014 年 3 月以来,Conversations 以及其他相关活动一直是我主要的收入来源。诚然,作为一名住在狭小宿舍里的学生,维持生活并不需要太多开销,但幸运的是,随着年龄增长,我的收入也在稳步增加。

The exact sources of income have shifted over the years. In the beginning, it was a lot of paid development for companies that wanted to use Conversations. Some paid for features that made it into mainline Conversations; others wanted custom features so specific to their workflow that they never made sense to merge upstream. This was occasionally supplemented with providing server setup or even some consulting on instant messaging and security-related topics. Later on, grants and funding opportunities played a more and more important role. 这些年来,具体的收入来源发生了变化。起初,大部分收入来自为想要使用 Conversations 的公司进行付费开发。一些公司付费开发的功能被整合进了 Conversations 主线;另一些公司则需要针对其工作流程的定制功能,这些功能并不适合合并到上游。此外,我还偶尔提供服务器设置服务,或就即时通讯和安全相关主题提供咨询。后来,赠款和资助机会发挥了越来越重要的作用。

One surprisingly steady source of income, however, has always been the Play Store revenue. I used to say that it pays my rent. Every freelancer knows the feeling of uncertainty that comes with only being able to send out invoices every few months or receiving payment for funded projects only at the end of the funding period. Any form of regular income—especially in the early stages, when you have not yet built up any savings—is a blessing. 然而,Play Store 的收入一直是一个出奇稳定的来源。我常说它帮我付了房租。每个自由职业者都知道那种不确定感:几个月才能开一次发票,或者只有在资助期结束时才能收到项目款项。任何形式的定期收入——尤其是在尚未积累储蓄的早期阶段——都是一种福分。

My relationship with Google was never good. App updates have been rejected more times than I can count for incomprehensible reasons. Conversations has been removed twice from the Play Store. Once, Google just randomly accused me of uploading users’ contacts—which simply wasn’t true and was also not triggered by a specific update. Countless times I wished I could just talk to an actual human for five minutes. So many misunderstandings could have been cleared up in no time if I wasn’t going up against AIs and click workers. 我和 Google 的关系一直不好。我的应用更新因各种莫名其妙的原因被拒绝了无数次。Conversations 曾两次被从 Play Store 下架。有一次,Google 毫无根据地指控我上传了用户的联系人信息——这完全不是事实,也不是由任何特定更新触发的。我无数次希望哪怕能和真人交谈五分钟。如果不是在与人工智能和点击工(click workers)打交道,许多误解本可以在瞬间消除。

At the time of writing this blog post, I’ve been waiting 14 days for Google to review an app update. Review times were never good or anything close to what I would deem acceptable, but they have been getting a lot worse over the last year or so. One can imagine that part of the problem is an avalanche of AI-generated slop apps—something Google played no small part in creating in the first place. But Google should have the responsibility to prioritize long-standing, non-AI-generated apps with infrequent updates. Waiting a little longer for new features might not sound like a big deal to some, but Google makes no distinction between feature updates and security updates. Delaying security updates by days or weeks is outright dangerous. 在撰写这篇博文时,我已经等待了 14 天,Google 仍未审核我的应用更新。审核时间从来都不理想,也远未达到我所能接受的程度,但在过去一年左右的时间里,情况变得更糟了。可以想象,部分原因是大量 AI 生成的垃圾应用涌入——而 Google 在这方面难辞其咎。但 Google 有责任优先处理那些长期存在、非 AI 生成且更新频率较低的应用。对某些人来说,新功能晚点上线可能不算什么,但 Google 并不区分功能更新和安全更新。将安全更新推迟数天甚至数周是极其危险的。

At this point, I should add some context. Google takes a 15% cut on my app sales. This effectively means I’m paying Google more than 1000 Euro per year for their services. 1000 Euro per year is 1.5x what I’m paying for my internet access. It’s roughly what I’m paying for my notebook per year if you assume I use it for three to four years. When my internet breaks, someone drives to my house and fixes it. When my notebook breaks, someone drives to my house and fixes it. When Google fucks up, there is absolutely nothing I can do. Apparently that amount of money doesn’t give me the privilege to talk to a fucking human for five minutes once per year. 此时,我需要补充一些背景信息。Google 从我的应用销售额中抽取 15% 的分成。这意味着我每年要为他们的服务支付超过 1000 欧元。这笔钱是我互联网接入费用的 1.5 倍。如果按使用三到四年计算,这大约是我每年购买笔记本电脑的成本。当我的网络坏了,有人会开车到我家修理;当我的笔记本坏了,也有人会来修理。但当 Google 把事情搞砸时,我却束手无策。显然,这笔钱并不能让我获得每年与真人交谈五分钟的特权。

For years I’ve felt like I was in a toxic relationship with Google, and the only reason I stayed was economic dependency. Over time, the source of my income has shifted more and more towards grants. Sometimes via NLnet, sometimes more directly from the European Commission. I have secure funding via various grants until the end of 2029 and I’m fairly confident that other funding opportunities will come up for the time after that. 多年来,我一直感觉自己与 Google 处于一种有毒的关系中,而我留下的唯一原因就是经济依赖。随着时间的推移,我的收入来源越来越多地转向了赠款。有时通过 NLnet,有时直接来自欧盟委员会。通过各种赠款,我的资金可以确保到 2029 年底,而且我有信心在此之后会有其他的资助机会。

Conversations was always available on F-Droid, but in the beginning, I didn’t advertise the option of downloading it for free. Initially, the F-Droid package maintainers asked for my permission, knowing that Conversations was a paid app on Google Play. I didn’t refuse, but I also didn’t link to F-Droid from the official website because I wanted to steer users towards the paid version. Over time, as my sentiment toward Google shifted from bad to worse, I did start linking to F-Droid. Now F-Droid has become the primary method of distributing the app. The APK distributed over F-Droid is now built reproducibly and signed with my personal signing key. Conversations 一直在 F-Droid 上提供,但起初我并没有宣传免费下载的选项。最初,F-Droid 的包维护者征求了我的许可,因为他们知道 Conversations 在 Google Play 上是付费应用。我没有拒绝,但也没有在官网上链接到 F-Droid,因为我想引导用户购买付费版本。随着时间的推移,我对 Google 的态度从糟糕变得更糟,我开始链接到 F-Droid。现在,F-Droid 已成为该应用的主要分发方式。通过 F-Droid 分发的 APK 现在是可复现构建的,并由我的个人签名密钥进行签名。

Fortunately, I’m no longer economically dependent on Google Play Store revenue. Google doesn’t deserve me and my money anymore. I’m done. Fuck the gatekeepers. 幸运的是,我不再在经济上依赖 Google Play Store 的收入。Google 再也不配拥有我和我的钱了。我受够了。去他的守门人。