NoGooleApps

Everyday Android apps without Google. Privacy-friendly rebuilds of the standard Google apps, for people who want the polish of the originals without Play Services, tracking or an account. Made with GrapheneOS, CalyxOS, /e/OS and LineageOS in mind, and works the same on any stock Android phone.

Not affiliated with, endorsed by or connected to Google. These are independent, clean-room rebuilds: no Google code, assets, icons, fonts or text are used.

Apps

App Replaces Status Install
Uhr (uhr/) Google Clock / Pixel Clock alpha, in daily testing Obtainium · F-Droid: not yet
Wetter (wetter/) Google Weather / Pixel Weather alpha, in daily testing Obtainium · F-Droid: not yet

More apps will follow, one folder each. Each one goes through the same pipeline (see How these apps are made).

Wetter

A weather app with the look and feel of Pixel Weather: an animated sky that changes with the conditions, a large hero temperature, hourly and 10-day forecasts, and shaped Material 3 Expressive detail tiles (wind, sun, UV, air quality, visibility, humidity, pressure, pollen).

  • No Google Play Services. Location uses the platform's own providers (including the AOSP fused provider), so it works on GrapheneOS without sandboxed Play.
  • No account, no tracking, no analytics. Everything stays on the device. Coordinates are rounded to two decimals (about 1 km) before they reach the weather service.
  • Open data sources only: Open-Meteo for forecasts, 15-minute precipitation, air quality, pollen and place search (CC BY 4.0), and Nominatim / OpenStreetMap for naming your current location.
  • Features today: current location and saved cities (swipe between them), search with a full preview before saving, precipitation-in-the-next-hours card, a rule-based daily summary, day detail view, units and theme settings, light and dark mode.
  • Six home-screen widgets: a minimal clock with date and current weather (transparent by default), a weather card that grows from 3×2 to 4×5 (hourly panel, then a daily list), a pill, a tilted pill, a one-line bar with a cookie badge, and a classic card. The widget picker shows real previews. Each one can be customised when added or later: location, system/light/dark, colours (wallpaper Material You, current weather, or five fixed palettes, all WCAG AA checked) and background opacity from 100 % down to fully transparent.
  • Coming next: severe weather alerts (DWD / MeteoAlarm), precipitation radar map, card reordering, notifications.

Home, sunny Home, clear night, dark mode Rain with the next-hours precipitation card

Full forecast with detail tiles Day detail Settings

Home-screen widgets: clock, weather card, pill, bar, classic, tilted pill

Screenshots are rendered from a real Open-Meteo response (Berlin) by the app's screenshot tests; widgets are rendered on a Pixel with the wallpaper colours of that phone.

Requires Android 10 (API 29) or newer.

Uhr

A clock and alarm app with the look and flow of the Pixel clock: alarms in expandable cards, world clock, several timers at once, stopwatch with laps, and a bedtime schedule.

  • Reliable alarms without Google. Exact alarms via AlarmManager.setAlarmClock (exempt from Doze, shown in the status bar), rescheduled after reboot, time or time zone changes and app updates. Wall-clock based: 7:00 stays 7:00 across daylight saving and travel; the scheduling logic is unit-tested for DST gaps and zone changes.
  • Ringing done right: a full-screen screen over the lock screen with slide to snooze or stop, alarm-stream audio that gets louder gradually, vibration, automatic silence after a set time, and notifications for upcoming, snoozed and missed alarms. Volume keys can snooze or stop.
  • No network permission at all. World clock cities come from the system time zone database (names localised offline), sounds from the device, the app's own tone, or your own audio files.
  • Also: days and labels per alarm, pause until a date, skip the next ring, timers with ring progress and +1:00 that keep running in the background with a live countdown notification, stopwatch with fastest/slowest laps, analog or digital clock, wallpaper colours (Material You), three home-screen widgets (live digital clock, analog clock, next alarm).
  • Coming next: widget style options like Wetter, screensaver/night clock, sunrise alarm, sleep sounds, reordering world clocks.

Alarm list Alarm expanded Ringing screen with slide to snooze or stop

World clock Timers Stopwatch with laps

Screenshots rendered by the app's screenshot tests with the fallback palette; on Android 12+ the app uses your wallpaper colours.

Requires Android 10 (API 29) or newer.

Install with Obtainium

Obtainium installs and updates apps straight from this repository's releases, with no store in between.

Wetter

Get it on Obtainium

Open the button on your phone with Obtainium installed and confirm the import. The link carries the complete configuration, so nothing has to be set by hand:

setting value why
Source https://git.mrblake.cc/MrBlake/NoGooleApps this repository (note the spelling: NoGooleApps)
Override source Forgejo (Codeberg) the repository runs on a self-hosted Gitea, which Obtainium does not detect on its own; Gitea speaks the same release API
Filter release titles ^Wetter several apps share this repository; only weather releases count
Filter APKs ^wetter-.*\.apk$ picks the weather APK from the release assets

If the button does not open Obtainium (some browsers block links to apps; the page then shows a button to tap, or enable "open links in apps" in the browser), paste this link into the phone's browser address bar, or add the app by hand with the settings above:

obtainium://app/%7B%22id%22%3A%22app.wetter%22%2C%22url%22%3A%22https%3A%2F%2Fgit.mrblake.cc%2FMrBlake%2FNoGooleApps%22%2C%22author%22%3A%22MrBlake%22%2C%22name%22%3A%22Wetter%22%2C%22overrideSource%22%3A%22Codeberg%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22appId%5C%22%3A%5C%22app.wetter%5C%22%2C%5C%22includePrereleases%5C%22%3Atrue%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22%5EWetter%20%5C%22%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22%5Ewetter-.%2A%5C%5C%5C%5C.apk%24%5C%22%2C%5C%22autoApkFilterByArch%5C%22%3Afalse%2C%5C%22verifyLatestTag%5C%22%3Afalse%2C%5C%22releaseTitleAsVersion%5C%22%3Afalse%7D%22%7D

Uhr

Get it on Obtainium

Same setup as Wetter, with the filters ^Uhr (release titles) and ^uhr-.*\.apk$ (APKs). Raw link:

obtainium://app/%7B%22id%22%3A%22app.uhr%22%2C%22url%22%3A%22https%3A%2F%2Fgit.mrblake.cc%2FMrBlake%2FNoGooleApps%22%2C%22author%22%3A%22MrBlake%22%2C%22name%22%3A%22Uhr%22%2C%22overrideSource%22%3A%22Codeberg%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22appId%5C%22%3A%5C%22app.uhr%5C%22%2C%5C%22includePrereleases%5C%22%3Atrue%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22%5EUhr%20%5C%22%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22%5Euhr-.%2A%5C%5C%5C%5C.apk%24%5C%22%2C%5C%22autoApkFilterByArch%5C%22%3Afalse%2C%5C%22verifyLatestTag%5C%22%3Afalse%2C%5C%22releaseTitleAsVersion%5C%22%3Afalse%7D%22%7D

Releases. Every app is published as a release titled <App> <version> (for example Wetter 0.1.0, tag wetter-v0.1.0) with one asset named <app>-<version>.apk. Obtainium shows "no matching version" until the first release of an app exists.

F-Droid: not available yet. The apps contain no proprietary libraries, so an F-Droid build is planned (either the main repository or a self-hosted F-Droid repo).

How these apps are made

The Replica pipeline

Every app is rebuilt with Replica, an open set of eleven Claude Code skills by Jake Schincariol for cloning an app's functionality and UX patterns clean-room style. Each skill writes files the next one reads, and everything is kept in replica/<app>/:

Step Skill What it produced for Wetter
1 replica-recon Recon map built from public sources (help center, reviews, store listing): 15 screens, 9 user flows, components, inferred data model, feature matrix
2 replica-architect Architecture and schema: native Kotlin, offline-first, no server, public APIs only
3 replica-design Design tokens and component specs, WCAG AA contrast checked (70 colour pairs), generated into Compose code
4 replica-build The app itself, screen by screen, with a build log and screenshots rendered from a real API response
next replica-test, replica-diff, replica-entrepreneur, replica-brand, replica-launch, replica-deploy, replica-backend QA, parity scoring against the original, reading real user reviews for improvements, naming and branding, store listing, release

Uhr went through the same steps from scratch: recon (17 screens, 9 flows), architecture, design tokens (39 pairs AA), build log and screenshots.

The rules Replica enforces, and that this project follows:

  • Public sources and our own devices only. No decompiling, no private APIs, no reading the original's code or network traffic.
  • Everything written fresh. Code, icons, weather glyphs, the animated sky and every label are made from scratch. Reference screenshots of the originals live in replica/<app>/screens/ for layout comparison only and never ship.
  • What cannot be cloned is left out on purpose: Google's own forecast models, Gemini summaries, Calendar/Gmail-based insights and account sync. Open alternatives replace them where it makes sense.

Built with AI, steered by a human

The code, the design system and this README were written by Claude Opus 5.5 (Anthropic's model, ID claude-opus-5-5) running in Claude Code, working through the Replica skills step by step. The human side of the project (that's @MrBlake) sets direction, supplies reference screenshots, tests every build on a real Pixel phone and reports what feels wrong. Issues found that way, like stutter during scrolling or slow location, are measured on the device and fixed. A typical loop:

  1. A skill produces its document or code; the human reviews it.
  2. The app is built and rendered to screenshots on the JVM (Roborazzi), and the screenshots are checked against the reference.
  3. The release build is installed on the phone over adb and used for real; frame timings (dumpsys gfxinfo) and logs guide the fixes.

Each commit says what changed and carries a Co-Authored-By line for the AI.

Building from source

Requirements: JDK 17 or newer and the Android SDK (platform 36).

cd wetter        # or: cd uhr
./gradlew :app:assembleRelease            # APK in app/build/outputs/apk/release/
./gradlew :app:testDebugUnitTest          # unit + screenshot tests
./gradlew :app:recordRoborazziDebug       # re-render replica/wetter/clone-screens/

Release builds are signed with the project key from ~/.android/nogoogleapps-release.properties (kept outside the repository); without it they fall back to the debug key for local testing. scripts/release.sh <app> builds, signs and publishes a release in the format Obtainium expects.

Repository layout

replica/<app>/    recon, architecture, design system, build log, screenshots (one folder per app)
wetter/           the weather app (Kotlin, Jetpack Compose, Glance widgets, Room, WorkManager)
uhr/              the clock and alarm app (Kotlin, Jetpack Compose, AlarmManager, Glance, Room)

Credits

License

Not chosen yet. Until a license file is added, all rights are reserved by the author.

S
Description
No description provided
Readme
24 MiB
Languages
Kotlin 98.7%
Python 1.1%
Shell 0.2%