Skip to main content
← back
skip to case study

ship native-feeling android features and a new ai image-gen app on top of merlin's existing flutter codebase, without slowing the team down.

role
mobile intern
timeline
may 2024 to oct 2024
stack
flutter · dart · firebase · kotlin · jetpack glance
01context

joining a fast-moving consumer ai app

merlin was already shipping fast when i joined: a flutter app talking to multiple ai backends, growing across ios and android. my job was to push the surface area outward: native android touchpoints, sharper ux, and a second app under the same brand.

02android

widgets, shortcuts, and intents

android users expected the app to feel native, not just look like a flutter shell. i added home-screen widgets via jetpack glance, app shortcuts, and share-sheet intents so merlin could be invoked from anywhere on the system.

push notifications got rebuilt around action affordances so a tap opens the right thread instead of dumping you on the home screen.

the cheapest engagement is the one users don't have to open the app for.
03platform

a dart client for the backend

the team was rewriting api calls in every feature. i built a dart client library that wrapped auth, retries, and typed responses, so feature work stopped being plumbing work.

alongside it: http streaming for chat responses and config caching to cut cold-start latency on flaky networks.

galleryopen any screen to enlarge · 7 shots
04wallflower

a second app, same dna

i led wallflower end to end as a standalone ai image-gen app powered by flux 1.1 pro and ideogram 2.0. generation flows, prompt ux, gallery, and sharing, soup to nuts.

it shipped on both stores and reused merlin's component vocabulary so the brand felt continuous across products.

galleryopen any screen to enlarge · 4 shots
outcomes
2 apps
shipped on ios + android
jetpack glance
android home-screen widgets
flux + ideogram
image-gen models in prod