explaingit

moezbhatti/qksms

4,589KotlinAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

QKSMS is a clean, open-source Android SMS and MMS app that replaces the default messaging app with a Material Design interface.

Mindmap

mindmap
  root((qksms))
    What it does
      SMS and MMS messaging
      Replaces default app
      Material Design UI
    Tech stack
      Kotlin
      Android
      MVVM and MVI
    Features
      Play Store and F-Droid
      Crowdin translations
      Open source
    Audience
      Android developers
      Open-source contributors
      Privacy-conscious users
    Contributing
      Bug reports welcome
      Translations via Crowdin
      GPL v3 license
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Use QKSMS directly as a daily SMS and MMS app on Android instead of the default messaging app.

USE CASE 2

Study the codebase as a real-world reference for MVVM and MVI architecture patterns in a Kotlin Android app.

USE CASE 3

Contribute translations for new languages via Crowdin to make the app accessible to more users.

USE CASE 4

Fork the project to build a customized SMS app with your own features, branding, or privacy enhancements.

Tech stack

KotlinAndroidMVVMMVI

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Android Studio and an Android device or emulator, standard Android development setup.

GPL v3, free to use, modify, and share, but any modified version you distribute must also be open-source under the same license.

In plain English

QKSMS is an open-source SMS and MMS messaging app for Android. It is designed as a replacement for the default messaging app that comes with Android, offering a cleaner visual design built around Google's Material Design guidelines. The app is available on both the Google Play Store and F-Droid, which is an alternative app store for free and open-source Android software. The project is written in Kotlin, which is the primary programming language used for modern Android app development. The code is structured using architectural patterns called MVVM and MVI, which are ways of organizing app code so that data and interface logic stay cleanly separated and easier to maintain. For people who want to use the app, installation is straightforward through either of the two app stores mentioned above. For people who want to contribute to the code, the README points to Crowdin, a platform where volunteer translators can add or improve translations for different languages. The project does not accept translations submitted directly as code changes, all translation work must go through Crowdin. Bug reports are welcomed, and the README asks that anyone reporting an issue include steps to reproduce the problem, the QKSMS version number, and the device and operating system details. This helps the maintainer narrow down what is going wrong and where. The app is developed and maintained by Moez Bhatti. The code is released under the GNU General Public License version 3, which means anyone can use, modify, and distribute it, but any modified versions must also be shared under the same license.

Copy-paste prompts

Prompt 1
I'm building an Android SMS app in Kotlin using MVVM. Show me how to structure a ViewModel that reads SMS threads from the Android ContentResolver and exposes them as a StateFlow to the UI.
Prompt 2
Generate a Kotlin data class and Room DAO for storing SMS messages locally, with a method to query threads sorted by the most recent message timestamp.
Prompt 3
How do I set my Android app as the default SMS handler? Show me the AndroidManifest.xml entries and the BroadcastReceiver needed to receive incoming SMS messages.
Prompt 4
Write a Kotlin function that sends an MMS message using Android's SmsManager API, taking a recipient phone number, a text body, and a URI pointing to an image attachment.
Prompt 5
Show me how to implement Material Design 3 theming in a Kotlin Android app, including dynamic color support for Android 12+ while falling back to a static color scheme on older versions.
Open on GitHub → Explain another repo

← moezbhatti on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.