历时两年半开发,Fread 项目现在决定开源,基于 Kotlin Multiplatform 和 Compose Multiplatform 实现

大家好,Fread 项目开发到今天已经有两年半了,上线也已经八个月了,目前项目趋于稳定,现在决定使用 Apache 2.0 协议将其开源。

github.com/0xZhangKe/F...

首先介绍下 Fread 的技术栈。

Fread 是一个使用 KMP(Kotlin Multiplatform) 和 CMP(Compose Multiplatform) 的移动客户端应用,所以编程语言使用的是 Kotlin,技术栈也都是基于 Kotlin 的,主要如下。

上面列举了一些具有代表性的依赖库,除此之外还有很多其他的库没有列举出来,从这些具有代表性的库可以大概了解到 Fread 的技术栈。

Fread 是一个去中心化的联邦宇宙 Micro blogging 社交客户端,目前已经支持了 Mastodon、Bluesky、RSS 三种社交平台协议,这意味着你可以在同一个 App 中同时使用这三种社交平台,Fread 不仅提供了 Micro blogging 社交的一致性,也保持了不同平台的特色功能。 更重要的是,Fread 支持创建一个同时包含了三种来自不同平台的 Feeds 流,这打破了协议之间的壁垒,进一步增强了去中心化的能力,另外 Fread 也专注于提供漂亮舒适的 UI/UX。

Fread 之所以现在决定开源,一方面是刚开始没考虑好到底是付费下载还是免费试用,但是上线一周后就直接改成了免费下载,但是之前因为是闭源所以仓库中有一些敏感的数据信息,担心开源后会泄漏出去,现在已经解决了这个问题。另外我对 Fread 有不少设想和规划,开源后需要面临其他人提交 PR 的情况,这可能会打乱开发节奏,所以在最近支持了 Bluesky 之后,项目也稳定下来,才开始着手开源的事情。

目前 Fread 虽然使用了 KMP 跨平台,iOS 也能运行起来,但是只上架了 Android 版,iOS 还有一些适配工作没完成,未来适配完成后会上架 App Store。

之前为了监控线上 Crash 情况和用户量所以接入了 Firebase analytics,后来又因为消息推送接入了 FCM,并且为了中转 FCM 消息我自己搭建了一台中继云服务,这里面因为涉及到我自己的 Firebase 账户和云服务信息,所以这部分的内容从 Fread 仓库中移除了,这个在我的私有仓库,可以作为 Fread 子模块进行编译,并且设置了可选编译,意思是指通过 Fread 主仓也可以编译,功能没有什么变化,只是会缺少 Firebase 的能力,其他没有任何影响,但是我这里可以编译出带有 Firbase 能力的包并且上架 Google Play,未来在 F-droid 上架的版本也会是不包含 Firebase 的版本。

关于 Fread 更多的技术细节大家可以直接查看代码,未来我可能会继续发布一些博客介绍 Fread 中的一些设计和细节。

play.google.com/store/apps/...

相关推荐
液态不合群37 分钟前
【面试题】MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
android·数据库·mysql
0思必得01 小时前
[Web自动化] Selenium处理文件上传和下载
前端·爬虫·python·selenium·自动化·web自动化
雪球Snowball2 小时前
【Android关键流程】资源加载
android
2501_915918412 小时前
常见 iOS 抓包工具的使用,从代理抓包、设备抓包到数据流抓包
android·ios·小程序·https·uni-app·iphone·webview
phltxy2 小时前
Vue3入门指南:从环境搭建到数据响应式,开启高效前端开发之旅
前端·javascript·vue.js
小飞大王6662 小时前
CSS基础知识
前端·css
Charlie_lll2 小时前
学习Three.js–风车星系
前端·three.js
代码游侠2 小时前
学习笔记——Linux内核与嵌入式开发1
linux·运维·前端·arm开发·单片机·嵌入式硬件·学习
玩电脑的辣条哥3 小时前
幽灵回复AI已回复但前端不显示的排查与修复
前端·人工智能
石去皿3 小时前
轻量级 Web 应用 —— 把一堆图片按指定频率直接拼成视频,零特效、零依赖、零命令行
前端·音视频