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.
Links
Related Projects
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.