Native Mobile Developer - Food and Beverage App

Job ID: 40441728

Budget: £10 – £15 GBP

Mobile Developer - Food and Beverage App

About the Project

It is a coffee & snack shop ordering app built with Kotlin Multiplatform (KMP). The app supports multiple branches, Google/Apple sign-in, menu browsing, and order pickup. The core architecture and backend infrastructure are already in place - I'm now looking for a developer to help me finish the product with a strong focus on redefining the UX/UI across both platforms.

You'll be working alongside me on GitHub tickets that I create using claude code/codex. Expect daily collaboration over Slack, end-to-end testing of your own work.


Tech Stack

Shared (Kotlin Multiplatform)
- Kotlin 2.1.0
- Ktor 3.0.3 (HTTP)
- SQLDelight 2.0.2 (local cache)
- Koin 4.0.0 (DI)
- kotlinx-coroutines, kotlinx-datetime, kotlinx-serialization
- Supabase-kt 3.0.3 (auth + database)
- SKIE 0.9.5 (Swift interop — suspend → async, Flow → AsyncSequence)

Android
- Jetpack Compose
- Navigation Compose, Lifecycle ViewModel
- Material 3
- Credentials API (Google OAuth)

iOS
- iOS 17+, Swift 6 (strict concurrency)
- SwiftUI, Xcode 16+
- `@MainActor @Observable` ViewModels

**Backend**
- Supabase (Postgres, Auth, Storage)

---

Architecture

The project uses Clean Architecture with strict layering:

Presentation (SwiftUI / Compose) → Domain ← Data

- **Domain layer**: pure Kotlin (entities, repository interfaces, use cases, validation, errors)
- **Data layer**: repository implementations, DTOs, mappers, Supabase/SQLDelight data sources
- **Presentation layer**: platform-specific. ViewModels call **UseCases**, never repositories directly
- Use cases grouped by feature (`auth/`, `orders/`, `branches/`, `menu/`, …)
- Koin wires all dependencies; SKIE bridges Kotlin to Swift cleanly
- Android screens follow a **Screen + stateless Content** split for testability and previews
- Both platforms share the same `Strings` object for localized text

---

What's Already in Place

You won't be starting from scratch. A lot has been done and working. Just needs some help with testing.

The main remaining work is UX/UI: refining flows, applying the new design system consistently across both platforms, building the new UI components and UX flows and getting screens to visual parity between Android and iOS.

---

AI Tooling

AI-assisted development is expected and encouraged. You should bring your own AI tools, and I have a strong preference for:

- Claude Code (Claude Opus 4.7)
- OpenAI Codex (5.5)

If you're using older models or generic ChatGPT-only workflows, this probably isn't the right fit. I work this way every day and expect a collaborator who's fluent with these tools.

---
How We'll Work Together

- **GitHub tickets**: I create and prioritize them; you pick them up
- **Slack**: daily communication, async-friendly but expect to be reachable during overlap hours
- **PRs**: small, focused, with clear descriptions
- **Reviews**: I review every PR. You test end-to-end before requesting review
- **Pace**: ongoing engagement, not a one-shot delivery

---

What I'm Looking For

- Comfortable with **both** Jetpack Compose and SwiftUI - this is non-negotiable since visual parity is a core requirement
- Clean Architecture discipline
- Fluent with AI-assisted coding workflows
- Strong written English for Slack/GitHub collaboration
- An eye for UI polish, this role is design-heavy

---
How to Bid

I'll only respond to human-written proposals that show you actually read this post. In your bid, please include:

1. A short note on which part of the stack you're strongest in (KMP / Compose / SwiftUI / Supabase)
2. One example of a UI/UX-heavy project you've shipped - ideally with screenshots or a link
3. Which AI coding tools you use day-to-day and how you integrate them into your workflow

Generic copy-paste bids ("I am expert in Kotlin and can deliver in 24 hours…") will be ignored. I'd rather get five thoughtful proposals than fifty templated ones.

Looking forward to working with someone who's excited about polishing this app into something great.