Cake Android

Completed

May 2022 - Nov 2022 (7 months)

Cake Android is a Kotlin Android app stream for CAKE Admins and Affiliates, covering authentication, MFA, settings/account utilities, and affiliate reporting surfaces.

From May to November 2022, delivery progressed from login foundations to a broader navigation/report/settings experience, then into stabilization and release automation with Crashlytics and Fastlane.

Built with: Kotlin, Android, Jetpack Compose, Jetpack Navigation, Hilt, Mavericks (MvRx), Ktor, Kotlinx Serialization, Firebase (Analytics/Crashlytics), AndroidX Security, and Fastlane.

Project Activity

Recent updates for Cake Android. Completed

November 2022

  • Expanded reports capability by adding the affiliate report API integration path and wiring the related data flow into the Android reporting stack.

September 2022

  • Improved report navigation ergonomics by introducing ViewPager2 paging for report pages, enabling smoother lateral switching across report sections.

August 2022

  • Completed a focused auth/settings quality pass by implementing MFA login use-case wiring, fixing saved-account count refresh after delete, adding affiliate-id prepend behavior, and shipping the About screen entry in Settings.
  • Refactored settings account-management paths and introduced swipe-to-delete interactions for stored credentials to improve account cleanup UX.
  • Delivered the saved-credentials screen and polished settings/list UI with reusable components, including forward-arrow affordances for list cells.
  • Added settings logout behavior so authenticated sessions can be terminated cleanly from the account settings surface.
  • Advanced the in-progress settings feature set and applied supporting refactors to stabilize structure before subsequent settings expansions.
  • Connected authentication to post-login app flow by wiring login success into the main tabbar experience.
  • Implemented the login use-case with dependency injection and completed a broader refactoring pass to improve module boundaries and maintainability.
  • Persisted current-user state on successful login, enabling session continuity for returning users.

July 2022

  • Added Firebase Crashlytics telemetry and introduced Fastlane Firebase App Distribution scripting to strengthen release diagnostics and delivery automation.
  • Finalized login-to-main navigation transition and added Android back-button exit dialog handling for clearer app-exit behavior from the tabbar context.
  • Implemented MFA code API handling for 200/302/401/403 responses and aligned navigation branches to each server outcome.
  • Shipped the MFA code-entry screen, establishing the dedicated second-factor UI step in the authentication flow.
  • Completed core login screen implementation and cleaned sample artifacts to keep the workspace aligned with production-focused code.
  • Performed early repository cleanup by isolating/ignoring sample code and absorbing unlabeled bootstrap commits while preparing the main app path.
  • Introduced the navigation component and refactored LoginActivity into a fragment-based entry so successful login can route into a separate main screen.
  • Ran a codebase refactor to simplify early auth/navigation scaffolding before feature expansion.

June 2022

  • Completed saved-login capability by delivering the remember-login switch UI, full save-login behavior, and polished login-screen presentation.
  • Implemented login-button execution flow and added encrypted credential persistence in internal storage (demo path) as groundwork for secure remember-me behavior.
  • Improved admin URL input UX with autocomplete support and autofocus behavior to speed up environment endpoint entry during login.
  • Built a reusable autocomplete text-field component to standardize typed selection inputs across auth/config surfaces.
  • Added login error dialogs, prototyped a Compose multi-selection text-field sample, and applied refactors to support cleaner UI component integration.
  • Implemented response-code-driven login flow handling for 401/403/302 server outcomes to support correct authentication branching and MFA routing.

May 2022

  • Initialized Android implementation work and established the first login-flow development baseline for the app.

Objective Link to heading

  • Deliver an Android affiliate app that moves users from login into report and settings workflows with resilient MFA handling and account/session persistence.
  • Build a maintainable foundation for reporting expansion (affiliate reports first) while keeping release quality high through dependency-injection architecture, telemetry, and deployment automation.

Delivery scope Link to heading

  • Implemented login and MFA flows with explicit API response handling (200/302/401/403), encrypted credential storage, and saved-account management.
  • Built navigation from login into the main tab-based experience and expanded settings capabilities (logout, about, affiliate-id handling, and saved-credentials UX).
  • Delivered affiliate reporting support and iterated report navigation with ViewPager2-based paging.
  • Reworked UI components across login/settings/list surfaces, including reusable Compose views and interaction refinements like swipe-to-delete.
  • Added operational hardening via Firebase Crashlytics integration and Fastlane-based CI/CD lanes for testing and distribution.

Technical architecture focus Link to heading

  • Kotlin Android app using Jetpack Compose and Navigation, with fragment/activity routing for login, MFA, reports, and settings flows.
  • Hilt-based dependency injection and Mavericks (MvRx) state-driven view models across feature modules.
  • Ktor client plus Kotlin serialization for API integration and response mapping.
  • Security and reliability through AndroidX Security encrypted storage and Firebase Analytics/Crashlytics telemetry.
  • Delivery workflow supported by Gradle + Fastlane automation for Firebase App Distribution and Play Store releases.