Android Native Kotlin Jetpack Compose

Fake Cracked Screen Prank App for Android

About this project

Fake Cracked Screen is a Kotlin and Jetpack Compose prank app that makes a phone screen look cracked. Users pick from five crack styles (Spiderweb, Corner Shatter, Bullet Hole, Horizontal Fracture, and Multi-Point Shatter), and the crack appears with a glass-breaking sound and vibration. It can be triggered by a tap, a phone shake, or a delay timer, and a background prank mode can show the crack on top of other apps. It is built with Clean Architecture and includes a safe way to exit the prank at any time.

Objectives

Build a funny but safe prank app with a very realistic cracked glass effect, where the prank can always be ended easily, and the code is organized cleanly enough to extend.

Key Features

  • Five realistic vector crack styles drawn with Compose Canvas
  • Triggers: tap, shake, delayed timer, and preview
  • Background prank mode with a system overlay on top of other apps
  • Realistic glass sounds (four variants) with adjustable volume, plus vibration
  • Tap the screen to crack it more, and an animated glass glint
  • Adjustable shake sensitivity, delay, auto-dismiss, and overlay auto-expire time
  • Safe exit: long-press for about 2 seconds, or double-tap the top-right corner
  • First-time exit tutorial, and settings saved on the device

Challenges & Solutions

Compose inside a system overlay: A custom lifecycle owner, ViewModelStore, and saved state registry let a ComposeView run in a WindowManager overlay outside an Activity. Realistic sounds without audio files: Glass sounds are synthesized as PCM audio and played with AudioTrack, so they play instantly and work offline. Avoiding accidental shakes: A filter needs a sustained shake and adds a cooldown, so bumps, steps, or pocket drops do not trigger the prank. A prank you can always end: A long-press or double-tap in the corner exits at any time, with a first-time tutorial.

Technologies & Frameworks

Jetpack ComposeMaterial 3Navigation ComposeCoroutinesFlowDataStoreAndroid Sensors

Integrations & APIs

SensorManagerWindowManagerforeground serviceAudioTrackVibrator

Architecture & Libraries

Clean Architecture (domain, data, presentation) with use cases, repositories, MVVM ViewModels with UI state, manual dependency injection through an AppContainer, and DataStore for settings

Backend & Database

No backend or database: everything runs on the device, and settings are stored with DataStore

Outcomes & Results

  • Working prank app with five realistic crack effects
  • Clean, layered architecture that is easy to extend
  • Background prank mode with safe exit and auto-expire

Need something similar?

Farhan Saeed · Available for new projects