Android Native Kotlin

Screen Recorder & Editor App for Android

About this project

Screen Recorder & Editor is a modern, offline Android app for recording and editing screen videos in one place. It is built with Kotlin, Jetpack Compose (Material 3), the MediaProjection API, OpenGL ES, and AndroidX Media3, following MVVM + Clean Architecture with unidirectional data flow.

Objectives

Most screen recorders either ship with ads and watermarks, or force you to use a separate app for editing. The goal was to build a simple, offline, high-performance app that combines recording, selective area capture, and editing in one place, without uploading any user data.

Key Features

  • Full-screen recording from 480p up to 4K, at 24 to 60 FPS
  • Selective area recording with a drag-and-resize selector
  • H.264 / H.265 encoding with bitrates from 2 to 50 Mbps
  • Microphone, internal, mixed, or muted audio
  • Floating bubble, Quick Settings tile, countdown timer, and shake-to-stop
  • Built-in editor: trim/split, speed 0.25x to 3x, region blur, rotate/crop
  • Local library with instant sharing and file info

Development Process

  1. Planned the app using AI
  2. Generated the base code with AI
  3. Manually handled debugging (especially the OpenGL/EGL pipeline), UI refinement, testing, and final polish

Challenges & Solutions

  • Selective area cropping: Real-time cropping required a custom OpenGL/EGL capture pipeline, and debugging it was the hardest part of the project
  • The solution was a dedicated GlCropHelper that crops frames on the EGL surface.
  • Device fragmentation: OEMs handle MediaProjection, hardware encoders, and overlay permissions differently.
  • Optional permissions and a foreground-service-centered design keep the core flow stable.
  • Privacy while editing: A custom AreaBlurEffect lets users blur sensitive information such as passwords and emails before exporting.

Technologies & Frameworks

Jetpack ComposeMaterial 3MediaProjection APIOpenGL ES 2.0 / EGLAndroidX Media3Kotlin Coroutines

Integrations & APIs

MediaProjectionMediaRecorderVirtualDisplayMediaStoreMedia3 TransformerQuick Settings TileServicesystem overlay (SYSTEM_ALERT_WINDOW)

Architecture & Libraries

  • MVVM + Clean Architecture with unidirectional data flow (UDF)
  • StateFlow / SharedFlow,
  • Coil Compose, Accompanist Permissions,
  • Foreground services (recording, floating overlay, area selector, tile service)

Backend & Database

  • No backend: the app is fully offline
  • Room Database for local metadata
  • DataStore Preferences for settings
  • MediaStore API (scoped storage compliant)

Outcomes & Results

  • Fully working app, tested on the developer's own device
  • Recording, area capture, and editing combined in a single app
  • Open-source under the Apache 2.0 license on GitHub
  • Privacy-first: no telemetry and no uploads

Need something similar?

Farhan Saeed · Available for new projects