Back to portfolio

Ad-free Android · Utility · com.michael.smoothmo

Smooth-Mo ad-free Android app icon

Smooth-Mo

Ad-free on-device slow-motion video app for Android. Import local clips, target 60/120 FPS, track progress, preview, and export — no ads, no footage uploaded to the cloud.

Completely ad-free — no ads, no trackers, no sponsored clutter.

Ad-free Android app

What is Smooth-Mo?

Smooth-Mo is an ad-free Android app for creating smoother slow-motion video exports on device — pick a local video, choose FPS and slow-mo settings, then preview and export without uploading footage.

Ad-free advantage: Completely ad-free — no ads, no trackers, no sponsored clutter. MichaelSam94 apps are built without banner ads, interstitial ads, or video ad interruptions.

Key capabilities

  • Local video import via system picker
  • 60 FPS or 120 FPS output targets
  • 2x–4x slow-motion mode
  • Foreground WorkManager progress tracking
  • Ad-free on-device processing

Frequently asked questions

Is Smooth-Mo ad-free?

Yes. Smooth-Mo is completely ad-free. Video processing is not interrupted by ads.

Does Smooth-Mo upload my videos?

No. Processing is designed for local footage. Export completed MP4 files into Movies/SmoothMo on the device.

Can I create 120 FPS slow motion on Android?

Yes. You can choose 60 FPS or 120 FPS output targets and optionally enable 2x to 4x slow-motion stretching.

Smooth-Mo is an ad-free Android app for creating smoother slow-motion video exports on device — pick a local video, choose FPS and slow-mo settings, then preview and export without uploading footage.

Ad-free: Completely ad-free — no ads, no trackers, no sponsored clutter.

Smooth-Mo is an Android app for creating smoother slow-motion video exports on device. It helps mobile creators pick a local video, choose an output frame-rate target, monitor background processing, and preview or share the result. The repository also includes Google Play listing assets for release preparation.

Project Overview

Smooth-Mo targets people who want quick mobile video smoothing without sending footage to a remote service. The app uses Jetpack Compose for the workflow, Room for local job history, Media3 for result preview, and WorkManager foreground work for longer processing jobs. A sibling Smooth-Mo-pv repository in the parent workspace provides the static privacy policy site used for Google Play and Netlify deployment.

Key Features

  • 🎬 Import local videos through Android's system media picker and content URI flow.
  • ⚙️ Configure 60 FPS or 120 FPS output targets before starting a processing job.
  • 🐢 Enable 2x to 4x slow-motion mode with timestamp stretching for video samples.
  • 🔔 Track foreground WorkManager progress with in-app stages and system notifications.
  • 💾 Persist queued, processing, completed, and failed jobs with Room.
  • ▶️ Preview completed results with AndroidX Media3 ExoPlayer.
  • 📤 Export completed MP4 files into Movies/SmoothMo through MediaStore.

Architecture Overview

The app follows a small clean-architecture layout:

  • presentation contains Compose screens, navigation, ViewModels, UI state, and share actions.
  • domain contains video job models, repository contracts, scheduler contracts, and use cases.
  • data contains Room persistence, metadata extraction, WorkManager scheduling, interpolation hooks, and output writing.
  • play-store contains release artwork and listing text for Google Play preparation.

Request and data flow:

1. The user picks a video and chooses interpolation settings. 2. EnqueueJobUseCase stores a VideoJob in Room and schedules unique WorkManager work. 3. InterpolationWorker reads the job, updates progress, writes a cache MP4 result, and marks the job complete. 4. The result screen observes Room, previews the output, and exports it to Movies/SmoothMo when requested.

Design patterns include repository interfaces, use-case classes, a simple application container, Room type converters, foreground WorkManager jobs, and Compose state collection through ViewModels.

Tech Stack & Libraries

LayerTechnologyVersionPurpose
Mobile platformAndroid SDKmin 24, target 36, compile 36.1Native Android runtime
LanguageKotlin2.2.10App implementation
Build systemGradle Wrapper9.5.1Reproducible local builds
Android pluginAndroid Gradle Plugin9.1.1Android module builds
UIJetpack Compose BOM2024.09.00Declarative app UI
Material UIMaterial 3BOM-managedComponents and theming
NavigationNavigation Compose2.8.9Screen routing and deep links
PersistenceRoom2.7.0Local video job database
Background workWorkManager KTX2.9.1Foreground processing jobs
Video playbackAndroidX Media31.10.1Result preview playback
ML runtimeGoogle AI Edge LiteRT1.4.2On-device interpolation model hook
ImagesCoil Compose2.7.0Compose image loading support
SerializationMoshi1.15.2Type conversion and JSON utilities
HTTP clientOkHttp / Retrofit4.10.0 / 2.12.0Available networking stack
Unit testingJUnit4.13.2JVM tests
Android testingRobolectric4.16.1Host-side Android tests
Screenshot testingRoborazzi1.59.0Compose screenshot capture
SecretsSecrets Gradle Plugin2.0.1Local .env value injection

Configuration

Android app configuration lives in:

  • app/build.gradle.kts for package name, SDK versions, signing, Compose, and dependencies.
  • gradle/libs.versions.toml for dependency and plugin versions.
  • .env for values read by the Secrets Gradle Plugin.
  • app/src/main/AndroidManifest.xml for permissions, the launcher activity, deep links, FileProvider, and foreground

service metadata.

Most Gradle, manifest, dependency, and signing changes require a rebuild. Runtime permission changes may require uninstalling and reinstalling the app during local testing.

Usage / Quick Start

Build and Run the Android App

./gradlew :app:assembleDebug
./gradlew :app:installDebug

After installation, open Smooth-Mo on the device, choose a video, select 60 FPS or 120 FPS, optionally enable slow-motion, and start processing.

Run Tests Locally

./gradlew testDebugUnitTest

This runs the JVM, Robolectric, and Roborazzi tests under app/src/test.

Build Store Assets Into a Release Workflow

ls play-store

Use the checked-in feature graphic, app icon, phone screenshots, tablet screenshots, and listing-descriptions.md when preparing the Google Play listing.

API Reference

Not applicable. Smooth-Mo does not expose a public HTTP API, CLI API, SDK API, or local service endpoint.

The app does define internal Kotlin contracts in app/src/main/java/com/michael/smoothmo/domain/repository:

ContractPurpose
VideoRepositoryStores, observes, updates, and deletes video jobs.
MediaRepositoryReads video metadata and exports completed videos to the gallery.
JobSchedulerSchedules and cancels background processing work.

Internal deep link:

MethodURLDescription
Android intent viewsmoothmo://progress/{jobId}Opens the progress screen for a background job notification.

Parameters: jobId is the Room/WorkManager job identifier generated when a job is enqueued.

Errors: invalid or missing job IDs open the progress route without a matching observed job.

Testing

Unit and host-side Android tests:

./gradlew testDebugUnitTest

Instrumentation tests on a connected device or emulator:

./gradlew connectedDebugAndroidTest

Coverage command: Not configured. The repository does not include a JaCoCo, Kover, or Android coverage task.

Test locations and conventions:

  • JVM, Robolectric, and Roborazzi tests live in app/src/test/java.
  • Instrumented tests live in app/src/androidTest/java.
  • Existing tests use JUnit 4 and behavior-focused Kotlin test names where helpful.
  • Roborazzi screenshot tests write generated captures under the test screenshot output paths.

Deployment

Android App

Debug build:

./gradlew :app:assembleDebug

Release build:

KEYSTORE_PATH=/absolute/path/to/upload-key.jks \
STORE_PASSWORD="$STORE_PASSWORD" \
KEY_PASSWORD="$KEY_PASSWORD" \
./gradlew :app:assembleRelease

The release signing config expects key alias upload. Store distribution metadata and Play Console app setup are not fully automated in this repository.

Health check: install the APK, select a short local video, run a processing job, preview the result, export it, and verify that the output appears under Movies/SmoothMo.

Privacy Policy Site

Not applicable inside this app repository. The static privacy-policy site lives in the sibling Smooth-Mo-pv repository in the parent workspace and can be deployed separately to Netlify.

Docker and docker-compose: Not applicable. No Dockerfile or compose file is present.

EdgeFlow ad-free Android app iconUtility
EdgeFlow

Ad-free Android edge gesture helper. Turn left/right screen edges into one-handed shortcut zones for Back, Home, notifications, media, and more — no ads in your gesture flow.

com.michael.edgeflow
FrozenDroid ad-free Android app iconUtility
FrozenDroid

Ad-free no-root Android app freezer with Shizuku. Disable bloatware, restore packages, use freeze profiles and wake telemetry — no ads, offline safety guidance.

com.michael.frozendroid
NotchCommand ad-free Android app iconUtility
NotchCommand

Ad-free Android notch utility. Turn the punch-hole camera cutout into gesture shortcuts, battery sweep, and audio visualizer ring — no ads, privacy-first overlay tools.

com.michael.notchcommand
StoreClear ad-free Android app iconUtility
StoreClear

Ad-free Android storage cleaner. Find hidden space, remove duplicates, visualize large folders, clean empty folders/cache, and securely shred files — no ads, no file uploads.

com.michael.storeclear
Wi-Fi Drop ad-free Android app iconUtility
Wi-Fi Drop

Ad-free Android file transfer over local Wi-Fi. Send photos, videos, documents, and folders nearby with live progress or Web Share via QR — no ads, no cloud account.

com.michael.wifidrop
AuraSound ad-free Android app iconAudio
AuraSound

Ad-free offline ambient sound mixer for Android. Layer focus, nature, ambient, and sleep loops with volume controls, presets, and a sleep timer — no ads, no streaming account.

com.michael.aurasound
BLE Finder ad-free Android app iconDeveloper
BLE Finder

Ad-free BLE scanner for Android. Find nearby Bluetooth Low Energy devices with RSSI radar, hot/cold proximity, and optional audio pings — no ads while you track peripherals.

com.michael.blefinder
Bulk QR & Barcode Suite ad-free Android app iconScanner
Bulk QR & Barcode Suite

Ad-free bulk QR and barcode scanner for Android. High-speed batch scanning, CSV/Excel exports, and branded logo QR generation — no ads, offline-first inventory tools.

com.michael.bulkqrscanner

All ad-free Android app names

Complete index of completely ad-free Android apps by Michael Samuel Naeem on Google Play and GitHub — utility, privacy, productivity, developer, media, finance, and device tools with no ads. Completely ad-free — no ads, no trackers, no sponsored clutter. Every listed Android app is published without ads. Search engines can discover each exact product name, package, marketplace listing, and source page from this index.

  • AuraSound ad-free · Audio · com.michael.aurasound · ad-free ambient sound mixer Android
  • BLE Finder ad-free · Developer · com.michael.blefinder · ad-free BLE scanner Android
  • Bulk QR & Barcode Suite ad-free · Scanner · com.michael.bulkqrscanner · ad-free bulk QR barcode scanner
  • ClearVoice AI ad-free · AI · com.michael.clearvoiceai · ad-free noise reduction Android
  • ClipVault ad-free · Productivity · com.michael.clipvault · ad-free clipboard manager Android
  • DevPocket ad-free · Developer · com.michael.devpocket · ad-free developer toolkit Android
  • Doc Scanner Vectorizer ad-free · Document · com.michael.docscannervectorizer · ad-free document scanner Android
  • EdgeFlow ad-free · Utility · com.michael.edgeflow · ad-free edge gestures Android
  • FolderFlow ad-free · Productivity · com.michael.folderflow · ad-free app organizer Android
  • FrozenDroid ad-free · Utility · com.michael.frozendroid · ad-free app freezer Android Shizuku
  • InsightlySpend ad-free · Finance · com.michael.insightlyspend · ad-free personal finance Android
  • Micro Budgeting ad-free · Finance · com.michael.microbudgeting · ad-free offline budget app Android
  • NotchCommand ad-free · Utility · com.michael.notchcommand · ad-free notch shortcuts Android
  • PDF Toolkit ad-free · Document · com.michael.pdftoolkit · ad-free PDF toolkit Android
  • Photo Optimizer ad-free · Media · com.michael.photo.optimizer · ad-free photo compressor Android
  • PrivAI ad-free · AI · com.michael.privai · ad-free on-device AI notes OCR
  • SensorScope ad-free · Developer · com.michael.sensorscope · ad-free Android sensor diagnostics
  • Smooth-Mo ad-free · Utility · com.michael.smoothmo · ad-free slow motion video Android
  • StoreClear ad-free · Utility · com.michael.storeclear · ad-free storage cleaner Android
  • Subtrackr ad-free · Finance · com.aistudio.subtrackr · ad-free subscription tracker Android
  • Tic Tac Toe ad-free · Game · com.michael.tic_tac_toe · ad-free tic tac toe Android
  • Todo App ad-free · Productivity · com.michael.todoapps · ad-free todo list Android
  • WalkPlanner ad-free · Health · com.michael.walkplanner · ad-free walk route planner Android
  • Wi-Fi Drop ad-free · Utility · com.michael.wifidrop · ad-free Wi-Fi file transfer Android