<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Webb</title>
    <description>The latest articles on Forem by Webb (@webb).</description>
    <link>https://forem.com/webb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1203413%2F36d171c4-67dd-48e0-89a0-fce282307f8e.jpeg</url>
      <title>Forem: Webb</title>
      <link>https://forem.com/webb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/webb"/>
    <language>en</language>
    <item>
      <title>The Fread Project is Now Open Source, Based on Kotlin Multiplatform and Compose Multiplatform</title>
      <dc:creator>Webb</dc:creator>
      <pubDate>Mon, 28 Apr 2025 08:32:53 +0000</pubDate>
      <link>https://forem.com/webb/the-fread-project-is-now-open-source-based-on-kotlin-multiplatform-and-compose-multiplatform-27m3</link>
      <guid>https://forem.com/webb/the-fread-project-is-now-open-source-based-on-kotlin-multiplatform-and-compose-multiplatform-27m3</guid>
      <description>&lt;p&gt;Hello everyone, the Fread project has been in development for two and a half years, and it has been live for eight months now. With the project reaching a stable state, we’ve decided to open-source it under the Apache 2.0 license.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/0xZhangKe/Fread" rel="noopener noreferrer"&gt;https://github.com/0xZhangKe/Fread&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Fread is a decentralized Fediverse microblogging social client that currently supports three protocols: Mastodon, Bluesky, and RSS. This means you can use all three platforms within the same app. Fread not only provides a consistent microblogging experience across these platforms but also retains the platform-specific features.&lt;br&gt;
More importantly, Fread allows you to create a unified feed containing streams from all three platforms, breaking down protocol barriers and further enhancing decentralization. Additionally, Fread focuses on delivering a visually appealing and comfortable UI/UX experience.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;First, let me introduce the tech stack of Fread.&lt;/p&gt;

&lt;p&gt;Fread is a mobile client application built using KMP (Kotlin Multiplatform) and CMP (Compose Multiplatform), and therefore the primary programming language is Kotlin. The tech stack is entirely Kotlin-centric and includes the following key components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kotlinlang.org/docs/multiplatform.html" rel="noopener noreferrer"&gt;Kotlin Multiplatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.jetbrains.com/compose-multiplatform/" rel="noopener noreferrer"&gt;Compose Multiplatform&lt;/a&gt;: For UI rendering&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/evant/kotlin-inject" rel="noopener noreferrer"&gt;kotlin-inject&lt;/a&gt;: Dependency injection&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/adrielcafe/voyager" rel="noopener noreferrer"&gt;voyager&lt;/a&gt;: For navigation&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/qdsfdhvh/compose-imageloader" rel="noopener noreferrer"&gt;compose-imageloader&lt;/a&gt;: For image loading and caching&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.android.com/training/data-storage/room" rel="noopener noreferrer"&gt;Jetpack Room&lt;/a&gt;: Local database&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ktor.io/" rel="noopener noreferrer"&gt;ktor&lt;/a&gt;: Networking and communication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The libraries listed above are just the key dependencies that define the tech stack of Fread. Of course, there are many other dependencies that are not explicitly listed here, but this provides a general understanding of the technologies used.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Source Now?
&lt;/h2&gt;

&lt;p&gt;The decision to open source Fread was influenced by several factors. Early on, I was undecided about whether to charge for the app or offer it as a free trial. However, just one week after launch, I switched to a completely free download model. At the time, the private repository contained sensitive data, which made me hesitant to open source it due to potential data leaks. These issues have since been resolved.&lt;/p&gt;

&lt;p&gt;Another reason was the challenge of handling external contributions (e.g., pull requests) after open-sourcing the project. This could disrupt the development rhythm. But now, with the project stabilized — especially after recently adding support for Bluesky — we felt it was the right time to make the project open source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;For more technical details about Fread, feel free to explore the source code. In the future, I may publish more blog posts diving into the design and technical details behind Fread.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.zhangke.fread" rel="noopener noreferrer"&gt;https://play.google.com/store/apps/details?id=com.zhangke.fread&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>kotlin</category>
      <category>android</category>
    </item>
    <item>
      <title>Fread: Pioneering Decentralization with the Next-Generation Mastodon Client</title>
      <dc:creator>Webb</dc:creator>
      <pubDate>Tue, 05 Nov 2024 09:02:35 +0000</pubDate>
      <link>https://forem.com/webb/fread-pioneering-decentralization-with-the-next-generation-mastodon-client-3gm7</link>
      <guid>https://forem.com/webb/fread-pioneering-decentralization-with-the-next-generation-mastodon-client-3gm7</guid>
      <description>&lt;p&gt;Introduction to Fread&lt;/p&gt;

&lt;p&gt;Developed by independent developer Zhangke over a span of two years, &lt;strong&gt;Fread&lt;/strong&gt; stands out as a decentralized microblogging client that champions the seamless integration of Mastodon protocols and RSS feeds. This tool is not just another social media platform; it's a testament to the power of decentralization envisaged for Web 3.0.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F661hezi6y5m1ipl4lr1r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F661hezi6y5m1ipl4lr1r.png" width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read more about Fread and download it &lt;a href="https://play.google.com/store/apps/details?id=com.zhangke.fread" rel="noopener noreferrer"&gt;here on Google Play&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What Makes Fread Different?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-Protocol Support:&lt;/strong&gt; In the evolving landscape of the internet, boundaries are set to dissolve. Fread is at the forefront, supporting not just Mastodon, but with planned future updates to incorporate Bluesky and other decentralized networks. What's significant here is not just linking different protocols, but creating a unified platform where content reigns supreme, without barriers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Account Management Innovation:&lt;/strong&gt; One of the standout features of Fread is how it addresses the operational hassle of managing multiple accounts. Rather than toggling manually between profiles, Fread intelligently directs the content to the appropriate account, simplifying the user experience significantly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of Content Integration:&lt;/strong&gt; Whether entering a URL from a Mastodon instance, a user's homepage, or an RSS feed, Fread simplifies setting up a personalized feed. It guides you through blending sources and once saved, a tailored stream of content is ready at your fingertips. Support extends to OPML file imports, broadening its utility for content aggregators.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;UX and Design Philosophy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With a design curated by professional UI experts, Fread offers a visual and interactive experience that stands out in the realm of decentralized clients. Its sleek, user-centric interface ensures that managing diverse feeds and accounts remains straightforward and elegant.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Future-Readiness of Fread&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Already robust in its support for Mastodon and RSS, Fread isn't just keeping up; it's setting the pace for the future of decentralized social networking. Its vision of cross-protocol harmony aligns perfectly with the uncharted terrains of Web 3.0.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get Involved&lt;/strong&gt;: We’re excited about the future and would love to hear from developers and tech enthusiasts about how Fread can grow. Your inputs could help shape a platform that’s built for the community, by the community.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Download Now&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Experience Fread and be part of the decentralization movement. Download now on &lt;a href="https://play.google.com/store/apps/details?id=com.zhangke.fread" rel="noopener noreferrer"&gt;Google Play&lt;/a&gt; and step into the future of social networking.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Join the Discussion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Are you a developer, tech enthusiast, or just curious about decentralized social media? Join the conversation about how decentralized technologies are reshaping our digital interactions. Share your thoughts, experiences, and ideas — let’s build the future together.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Technical&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fread is developed using Kotlin Multiplatform to support cross-platform, and the UI part uses Compose Multiplatform. The development experience is very good. Compose's declarative UI is very different from traditional UI development. The performance issues I was worried about did not exist.&lt;br&gt;
The Kotlin Multiplatform ecosystem has been gradually improved, and I rarely encountered problems that could not be solved during the development process.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://zhangke.space/" rel="noopener noreferrer"&gt;More blog about me or Fread&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.zhangke.fread" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0csf502rfqpsy05tuhn.png" width="270" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>android</category>
      <category>web3</category>
      <category>socialmedia</category>
    </item>
    <item>
      <title>Clean Architecture for Android MVI</title>
      <dc:creator>Webb</dc:creator>
      <pubDate>Mon, 04 Dec 2023 08:12:52 +0000</pubDate>
      <link>https://forem.com/webb/clean-architecture-for-android-mvi-2c9n</link>
      <guid>https://forem.com/webb/clean-architecture-for-android-mvi-2c9n</guid>
      <description>&lt;p&gt;&lt;a href="https://medium.com/proandroiddev/clean-architecture-for-android-mvi-1763ab78855e" rel="noopener noreferrer"&gt;Clean Architecture for Android MVI&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>androiddev</category>
      <category>kotlin</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
