Android Native Kotlin Jetpack Compose

Tile Launcher App for Android

About this project

Android Launcher App is a modern home launcher built with Jetpack Compose, with a Material 3 tile-style interface. It focuses on performance, battery efficiency, and memory safety: a single UI state snapshot reduces recomposition, icons are cached with LruCache, heavy work runs on Dispatchers.IO, and Hilt keeps the architecture clean and scalable. It syncs installed apps on first launch and shows notification badge counts through a lightweight NotificationListenerService.

Objectives

Build a fast, battery-friendly launcher with a unique tile interface and a clean architecture, which can also be used as a flexible foundation for custom launchers.

Key Features

  • Tile-style home screen with smooth paging
  • Installed apps synced on first launch
  • Notification badge counts
  • Layout saved only on user actions
  • Back press handling to avoid launcher switch issues
  • Performance, battery, and memory-safe design

Development Process

  1. Used AI to speed up development
  2. Built with a focus on performance, battery, and memory safety

Challenges & Solutions

Smooth performance: A single UI state snapshot, key {} in grid items, LruCache for icons, and heavy work on Dispatchers.IO keep scrolling and recomposition light. Battery and memory: A lightweight notification service, no background jobs, and no Activity or Context held in singletons. Launcher behavior: launchMode="singleTask" and an overridden back press avoid launcher switching problems.

Technologies & Frameworks

Jetpack ComposeMaterial 3HiltCoroutinesStateFlow

Integrations & APIs

NotificationListenerServiceAndroid launcher

Architecture & Libraries

Single LauncherUiState snapshot, StateFlow for updates, Hilt dependency injection with @ApplicationContext, LruCache for icons

Backend & Database

No backend: runs fully on-device, and the layout is saved only on user actions (no background jobs)

Outcomes & Results

  • Working launcher with smooth paging and notification badges
  • Clean, scalable architecture that can be extended
  • Open-source on GitHub

Need something similar?

Farhan Saeed · Available for new projects