GSoC 2026: Compose Multiplatform Migration of ListenBrainz-Android

Hi everyone,

I’m Nirvan Jain (nirvan_jain on IRC, nirvan73 on GitHub), I’m currently a pre-final year student at IIIT Jabalpur. This summer I was offered this opportunity to work with MetaBrainz through Google Summer of Code on migrating the ListenBrainz android app to Kotlin Multiplatform and Compose Multiplatform, so that most of the same codebase can eventually run on iOS under the mentorship of Jasjeet Singh (jasje on IRC).

This post covers what the project was, everything I worked on, the parts that went wrong, what’s still left, and what the summer was actually like.

How I got here

I started contributing to ListenBrainz in December 2025. It was the first external open source project I’d worked on. Everything before that was coursework, side projects, or intra-college events.

My first PRs were small work which helped me a lot to understand the codebase from the ground, the shimmer effect across the Feed and Profile tabs, then extending search to cover playlists, artists, albums and tracks, plus some bug fixes. Small changes, but they taught me the codebase and how review works when nobody knows you and the code has to stand on its own.

I picked ListenBrainz because music is a constant in my day, whether I’m coding or not, and because I like that it treats your listening history as something you own.

The Problem

ListenBrainz has an Android app but no iOS version. A previous Swift attempt just duplicated the codebase, so every bug fix had to be written twice.

This project solves that by migrating to Kotlin Multiplatform, one shared codebase for both platforms. A large part of the work is replacing Android-only libraries with multiplatform equivalents across navigation, dependency injection and paging. Media playback is the harder case. ExoPlayer and WorkManager are tied too closely to Android to share, so both go behind common interfaces, with ExoPlayer on Android and AVPlayer on iOS underneath.

Getting this foundation right is what makes the rest cheap. Once it’s in place a feature or a bug fix is written once, instead of the same business logic being implemented twice and two apps being kept in sync by hand.

One thing genuinely can’t move. The notification listener that reads what’s playing in Spotify depends on an Android-only permission, and iOS has no equivalent to offer. Those screens stay Android-only. Everything else runs from one codebase on both platforms.

Continue Reading

GSoC 2025: Onboarding Revamp in ListenBrainz Android

Hi everyone,

I’m Hemang Mishra (hemang-mishra on IRC and hemang-mishra on GitHub). I’m currently a pre-final year student at IIIT Jabalpur, India. This summer, I had the opportunity to participate in Google Summer of Code with MetaBrainz. My mentor for the program was Jasjeet Singh (jasje on IRC).

I contributed to ListenBrainz Android, where I worked on revamping the onboarding experience, improving login, adding listen submission apps, integrating Listening Now, and setting up app updates. The journey has been both exciting and full of learning, and I’m truly grateful for this opportunity.

Project Overview

ListenBrainz is a powerful platform that helps track listening history, share music tastes, and build a community around music.

The main goals of my project were:

  • Revamping onboarding – introducing users to the app’s core features and handling permissions with clear rationale.
  • Improving login –replacing simple web pages with a custom Compose-based UI, and experimenting with the DOM tree of the web page to automate form submissions and token extraction in the background.
  • Listen submission apps – prompting users during onboarding to select which apps to collect listens from, preventing unwanted submissions.
  • Listening Now integration – adding “Listening Now” into BrainzPlayer.
  • App updates – enabling updates for both Play Store and non-Play Store (F-Droid or sideloaded) releases.
Continue reading “GSoC 2025: Onboarding Revamp in ListenBrainz Android”

GSoC 2024: Artist, Album, User Pages in ListenBrainz Android App for all users 

Introduction

Hola everyone!

I am Pranav Konidena (you may know me as pranav on IRC, or pranavkonidena on GitHub.). I am a junior at the Indian Institute of Technology Roorkee (IITR) pursuing a degree in engineering with a major in Electronics and Communication. I learnt about Google Summer of Code from my club seniors and was instantly drawn towards it. While I was going through the potential organizations to which I could contribute, I was instantly drawn towards MetaBrainz as it combined my love for music and programming. 

I wanted to explore further the field of Mobile Development, I had sound knowledge of Flutter, but I didn’t know Native Android Development and decided to try and contribute to ListenBrainz Android. With that goal in mind, I started learning about Kotlin and JetPack Compose, as they were mentioned as the tech stack for the LB Android app in its General Overview Doc on its GitHub Repository. My first contribution to LB Android was fixing a minor text overflow bug.

Continue reading “GSoC 2024: Artist, Album, User Pages in ListenBrainz Android App for all users “

ListenBrainz App: Feed and UI Revamp (Release 2.3.0)

We are pleased to release the Feed for the ListenBrainz Android app, as well as a new settings page!

Three new feeds now allow app users to keep up with the activity of their ListenBrainz friends, as well as discover new music from listeners with similar music tastes.

My Feed shows the activity of your follows, including what they’ve reviewed, pinned, recommended, and more. Follow Listens displays the listens, chronologically, of all your follows, so you can check on what your friends are jamming right this second. Similar Listens displays, chronologically, the listens of your closest musical ’neighbours’, a great way to discover new music and perhaps even make new friends.

Continue reading “ListenBrainz App: Feed and UI Revamp (Release 2.3.0)”

GSoC 2023: Feed Section in ListenBrainz Android

Hello everyone!

I am Jasjeet Singh (also known as jasje on IRC and 07jasjeet on GitHub). I am an undergraduate student pursuing information technology at UIET, Panjab University, Chandigarh, India. This year I participated in Google Summer of Code under MetaBrainz and worked on implementing a feed section in the new and upcoming ListenBrainz Android app derived from the ListenBrainz website. Along with the implementation of the original feed section, I have also added new features to the section that are currently available only on the app. My mentor for this project was Akshat Tiwari. (akshaaatt on IRC)

Continue reading “GSoC 2023: Feed Section in ListenBrainz Android”

Mobile Apps: Let’s welcome the ListenBrainz App!

Greetings, Everyone!

During the recent summit, we discussed the future of our mobile apps. We believe that the MusicBrainz app serves a particular user base which is highly interested in scrolling through their collections, using the barcode scanner, searching for entities and viewing this data with a native mobile experience. The tagger in the android app is not accurate and doesn’t carry forward the expectations brought in from using Picard on the Desktop. Hence, we have decided to retire the tagger from the MusicBrainz app.

Recently, we have added the BrainzPlayer to the app, Spotify support and functionalities to review and submit listens to ListenBrainz. While the features are really good, they don’t align with the MusicBrainz app and confuse the two separate user bases, that of MusicBrainz and ListenBrainz.

Given that we have limited contributors working on our mobile apps, we have decided to separate the two mobile apps with their respective features. MusicBrainz App will be stripped of these excessive features, while also removing the tagger and continue to be available on the Play store as a minimalistic app.

Our major focus will move to the ListenBrainz app which will continue to have regular updates and features made while existing on the Play store as a separate app.

We are excited and happy with this announcement. Hope you agree with our decision. Thank you!

MusicBrainz Android App: Adding BrainzPlayer in Android App

Greetings, Everyone!

I am Ashutosh Aswal (IRC nick yellowhatpro), pursuing my bachelor’s from Punjab Engineering College Chandigarh, India. As a Google Summer of Code’22 contributor, I worked for MetaBrainz, on the MusicBrainz Android app and added a music playback feature to the app, which we call BrainzPlayer.

During the GSoC period, I was mentored by Akshat Tiwari (akshaaatt). Through this post, I will be summarizing my journey throughout the summer with MetaBrainz.

Let’s begin!! ( •̀ ω •́ )✧

Continue reading “MusicBrainz Android App: Adding BrainzPlayer in Android App”

MusicBrainz App 2021 Updates

Greetings, Everyone!

2021 has been a great year for the MusicBrainz Android App. The app has received updates regularly throughout the year!

Now that we are very close to 10,000+ users on the Playstore, it is evident that the app caters to the needs of a number of users, which is wonderful!

We have plans to introduce new features, involving those of ListenBrainz and CritiqueBrainz in the app. We are confident that the app serves its purpose of introducing everyone to the MetaBrainz world very soundly.

The app now features both a light and dark mode for the users!

Notable feature updates made this year can be found at https://musicbrainz.wordpress.com/2021/07/30/musicbrainz-app/

During the end of the year, we have made some remarkable technical updates to the codebase by introducing Fastlane to the app. This eases the process for the developers and allows us to make a release with the click of a button. This means now we can have a production release every month, day, or hour.

Although going strong and steady, the MusicBrainz developers would love more contributors to join in and share their knowledge with us, while we dive deep into the world of music.

Play Store: MusicBrainz – Apps on Google Play

F-Droid: MusicBrainz | F-Droid – Free and Open Source Android App Repository

Github: metabrainz/musicbrainz-android

Thank you!

GSoC’21: MusicBrainz Android App: Dawn of Showdown

Greetings, Everyone!

I am Akshat Tiwari (akshaaatt on IRC), an undergraduate student from Delhi Technological University, India.

It has been an exhilarating experience for me, right from submitting a proposal for GSoC to becoming a part of a fantastic community.

The Google Summer of Code 2021 Edition finally comes to an end after the 3-Month long journey. I will be detailing the journey of working towards my summer of code project today. This blog is a summary of all the work done.

Continue reading “GSoC’21: MusicBrainz Android App: Dawn of Showdown”