使用 React Native 的 Google Photos 开源替代方案
各位开发者们,大家好!你们可能已经听说了 Google Photos 本月将正式成为付费服务的消息。我们一直在关注这个日期,并且正在准备一些我们认为很酷的东西!鼓声响起……Photos UI 部分功能已使用 React Native 实现!先睹为快:
此实现与后端无关,您可以 fork 代码库并实现一个接口,将其连接到您自己的后端!我们还在开发一个开源的 p2p 后端实现,本文稍后会详细介绍。
如果您喜欢所看到的内容,您可以通过以下方式帮助我们将其提升到一个新的水平:
- 在 GitHub 上为该 repo 加注星标!
- 加入讨论,告诉我们您对下一步发展方向的看法。
- 贡献代码!照片目前仅由Ehsan维护,他热切欢迎新的合作者!
- 我们计划了许多精彩的活动,包括 Kickstarter 众筹!加入邮件列表,获取最新资讯!
- 我们正在积极寻求资金,如果您能以任何方式提供帮助,请给我们留言!
- 您还可以在Twitter、Telegram和YouTube上关注我们。
这仍处于原型阶段,尚未准备好迎接黄金时段,但我们希望尽早分享以听取您的宝贵反馈,并希望有兴趣的人加入我们,围绕一个雄心勃勃而崇高的目标建立一个社区:
通过构建开源p2p应用程序来结束大型科技公司的统治!
让照片付费?真的吗?谷歌不是已经通过利用我们的照片和视频训练人工智能模型赚了数十亿美元了吗?我们作为产品还不够,现在我们也应该付费了吗?
我不想显得傲慢或忘恩负义。说实话,我个人欠科技巨头们太多了!比如,如果不是因为Windows(以及我这个书呆子),我根本不会写出这些词!我之所以能用Windows,是因为当时有一个版本,可能连微软都不知道:MRT Windows!(MRT是创建它的那个家伙的首字母缩写)
我们出生在一个与全球经济脱节的国家,无法合法使用 Windows 之类的软件,但MRT 先生却用BitTorrent和大量空白 CD 来满足我们 :) P2P正是这片拼图中缺失的一块:虽然我们实际上拥有了对微软知识产权的非法访问权,但得益于(非法的)民主化软件访问,整整一代开发者得以成长。这些人并非世人所期待的刻板圣战分子,而是相当文明,其中一些移居海外后,如今正在为大型科技公司工作。
与此同时,根据强制法律,大量美国公民无法自由使用 Windows。那些最终在一月份袭击国会大厦的人,如果小时候就用 Windows 长大,他们的行为或许会有所不同!
希望上述例子能够传达出自由使用软件的重要性,无论是言论自由还是啤酒自由!
是否真的存在交付和维护免费软件的可行解决方案?
是也不是。确实存在架构和运营方面的问题。不过,我们可以通过重构Web 3.0找到解决方案!它可以帮助我们应对以下几个挑战:
1. 服务器价格昂贵,如何支付服务器费用而不向用户收费?
确实,任何拥有足够用户的应用程序每月都会产生巨额的 AWS 账单。但为什么这对开发工具来说不是问题呢?即使是针对特定库中的状态管理等小众用例,我们也拥有一流的 UI 。当然!这些工具不需要服务器 :) 我们的开发机器就是这些工具的服务器。嗯……开发人员有自己的服务器,对吧……
如果用户也拥有自己的“个人服务器”会怎样?以Plex为例,这种模式已经奏效,那么更进一步如何?每家每户都有冰箱来储存食物,那么拥有一个“数据存储”是否更有意义?这就是我们的核心理念,对于一些已经拥有 PC 的利基市场(例如 PC 游戏玩家、仍在使用旧 PC 的人等等),我们可以编写软件,将 PC 转变为服务器,满足家庭的数据需求。
事实上,大型科技公司对我们施加的威胁是:
当然,为全球人口提供服务需要耗费大量的数据中心。但对于一个家庭来说?一台树莓派和几TB的硬盘难道不够吗?我们甚至可以把它打包成一个设备,让它更具吸引力。我们还可以支持云功能,比如在这种点对点环境下提供可靠的备份,将照片副本备份到其他地方,例如父母家。
个人服务器的概念,又名“Box”,更多信息请阅读fx.land
2. 同时做后端和前端很困难
绝对!我们必须解决这个问题。谷歌之类的公司每个应用都拥有大批开发者,谁能与之竞争?别担心!我们可以向全球数百万前端 JavaScript 开发者寻求帮助!他们已经在构建各种酷炫的应用了。后端其实不是什么问题,他们中的许多人都精通无服务器云函数的使用。所以,如果我们能提供同样的“开发者体验”,我们能吸引到这些优秀的人才吗?
为了满足后端需求,以及可能使用的硬件计算能力有限,我们目前正在实施的解决方案是“托管服务”。首先,我们在libp2p之上开发了两个协议:
- 文件协议:用于上传和下载文件,提供传统文件服务器的功能。
- 数据协议:用于持久化 JSON 数据。这相当于 REST 或 GraphQL 端点的 Web 3.0 版本。通过将 JSON 数据链接为DAG-JSON格式并使用IPFS保存,我们还可以实现类似数据库的常规查询。
更多托管服务正在开发中。我们很快就会需要为类似照片这样的应用提供机器学习服务!
这些托管服务打包在一个 JavaScript 模块中,@functionland/graph
因此应用开发者无需再费心处理后台的复杂操作。他们将获得与使用无服务器函数非常相似的体验。瞧!
这项工作正在“box” monorepo 中进行:
3. 如果一款应用程序是开源的,开发者如何利用它谋生?
这是开源领域一个长期存在的问题,区块链或许最终能给我们答案。讽刺的是,像比特币这样的知名区块链已经变得有点中心化,真正的去中心化发生在普通人运行验证器节点的时候。目前情况并非如此,但如果未来每个家庭都有服务器,真正的去中心化就可能开启!新一代区块链的资源占用率要低得多,以Mina为例,整条链的快照永远只有22KB!
这样,我们就可以让家庭服务器也成为区块链验证节点,有效地全天候印钞!这样,我们就可以拥有一个去中心化的应用商店,从这个商店下载和更新应用可以在链上进行,并获得支付。但用户无需自掏腰包,而是用他们服务器上挖到的部分币来支付(自由税 :)。
这方面仍处于构思阶段,我们很乐意集思广益并听取您的想法。
4. 用户体验是否会受到任何影响?
无论如何,用户体验将会得到提升。隐私问题不再存在,用户拥有自己的数据。没有广告,没有锁定。而且在开源领域,任何有用例的东西都会有一个贡献者社区围绕它。所以我们不会再看到有用的应用变成广告软件了(还有人记得ShareIt吗?)。也不会再有残留在几年前最新更新中的孤立应用。我们开发者在开源工作流程中享受的所有酷炫功能,现在都可以通过日常应用轻松获取!
文章来源:https://dev.to/fx/google-photos-open-source-alternative-with-react-native-80c热切期待听到您的评论!请毫不犹豫地彻底驳斥这个想法!我们完全不介意。只有依靠常识才能发展,没有人无所不知,尤其是那些发起这个的菜鸟 :) ——爱与和平,Functionland