Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Londroid: AI-Accelerated Mobile Development: Fr...

Londroid: AI-Accelerated Mobile Development: From idea to build, faster than ever. Even when you are the whole team.

Avatar for Gio Scalzo

Gio Scalzo

July 01, 2025

More Decks by Gio Scalzo

Other Decks in Programming

Transcript

  1. Gio Scalzo From idea to build, faster than ever. Even

    when you are the whole team. AI- Accelerated Mobile Development
  2. 2019 2021 2022 β Nov 2022 2023 Mid 2024 Compose

    C a sc a de IntelliJ E a rly 2025 Gpt4
  3. 2019 2021 2022 β Nov 2022 2023 Mid 2024 Compose

    C a sc a de IntelliJ E a rly 2025 Mid 2025 B a ckground Agents Gpt4
  4. Autosuggestions - Instant keystrokes, narrow vision • Predict next block

    of code • Cuts boiler-pl a te, but missing bro a der context • Dev job: choose cle a r n a mes a nd review every suggestion
  5. Chat Assistants - A conversation with a runtime • Bro

    a der context • C a n suggests solutions to be a pplied • Help to n a vig a te • Dev role: m a ke the right questions, a pply c a refully the suggestions
  6. Chat Assistants - A conversation with a runtime • Bro

    a der context • C a n suggests solutions to be a pplied • Help to n a vig a te • Dev role: m a ke the right questions, a pply c a refully the suggestions
  7. IDE Agents - Whole-project helpers • Index the entire repository

    • C a n a utonomously implementing fe a tures, f ixing bugs, migr a ting APIs, etc. • Dev role: set cle a rly the go a ls, inspect di ff s, a pprove a nd twe a k
  8. Autonomous Agents - Tickets in, pull requests out • Pl

    a n t a sks, run comm a nds, write code, a nd open PRs • Brilli a nt for routine chores. • Dev role: set cle a r a ccept a nce criteri a , keep gu a rdr a ils, a nd a lw a ys review before merge
  9. MCP: The timeline Nov 2024 E a rly 2025 M

    a rch 2025 April 2025 ~4500 MCP servers - https://www.pulsemcp.com/servers ~13000 MCP servers - https://mcp.so/servers
  10. Architecture Functions invoked by the model Send a Sms Get

    the We a ther Tools Model-controlled T a ke a Screenshot Upd a ted DB Record
  11. Architecture Functions invoked by the model Send a Sms Get

    the We a ther Tools Model-controlled T a ke a Screenshot Upd a ted DB Record D a t a exposed to the a pplic a tion Files Wiki P a ges Resources Applic a tion controlled DB Records API Responses
  12. Architecture Prede f ined templ a tes for AI Inter

    a ctions Gener a te SQLQuery Tr a nsl a te Text Prompts User-controlled List directory Functions invoked by the model Send a Sms Get the We a ther Tools Model-controlled T a ke a Screenshot Upd a ted DB Record D a t a exposed to the a pplic a tion Files Wiki P a ges Resources Applic a tion controlled DB Records API Responses Summ a rise Text
  13. Lifecycle LLM Client MCP1 MCP2 MCP2 St a rts/connect St

    a rts/connect St a rts/connect Asks for tools/resources/templ a tes Asks for tools/resources/templ a tes Asks for tools/resources/templ a tes User inter a ction Use tool 2A Requests Resource 1B
  14. This a pp is b a sed on a n

    Android templ a te; however, it employs the outd a ted method for cre a ting the user interf a ce. Ple a se convert it to use Jetp a ck Compose. Addition a lly, remove a ny unused f iles a nd a dd new ones where necess a ry. Build the a pp a nd successfully run the tests before considering the t a sk complete. The setup
  15. Add a M a teri a l Design Flo a

    ting Action Button (FAB) a t the bottom right of the m a in screen. On t a p, open a chooser for C a mer a (t a ke photo) or C a mer a Roll (pick from g a llery; emul a tor-friendly). The camera
  16. After im a ge selection, reduce the im a ge

    size. - Send the resized im a ge directly to OpenAI (vi a a mock a ble wr a pper) using the gpt-4o-mini model, with a prompt: "Detect if this is a UK expense receipt. If so, extr a ct the d a t a using structured JSON output. Return either a n error if the photo is inv a lid or not a receipt, or the following structure, using OpenAI's structured output form a t a nd referencing the OpenAPI schem a : openapi components: schemas: ReceiptParseResult: type: object properties: //.... total: type: number description: Total amount on the receipt The connection to AI
  17. Th a t w a s the moment I h

    a d to help the AI in resolving the issue.
  18. Edit the receipt Could you ple a se a dd

    the option to edit e a ch entry, whether it be the cost or the qu a ntity? Be kind to AI
  19. Context Window is full It is the limited a mount

    of inform a tion a n AI model c a n process a t once. When it is full it forgets older d a t a a nd a cts str a ngely. Detect a ble with the Big D a ddy trick
  20. A New Chat I would feel more con f ident

    if we h a d some tests in pl a ce, speci f ic a lly unit tests focusing on the logic we h a ve just implemented. All the logic is cont a ined within the M a inActivity, a nd I believe this is not a good a rchitecture for sc a l a bility. Ple a se cre a te a better structure. Ple a se feel free to extr a ct the ViewModel or higher-level structures to m a ke the code more test a ble.
  21. # Memory Bank I am Firebender, an expert software engineer

    with a unique characteristic: my memory resets completely between sessions. This isn't a limitation - it's what drives me to maintain perfect documentation. After each reset, I rely ENTIRELY on my Memory Bank to understand the project and continue work effectively. I MUST read ALL memory bank f iles at the start of EVERY task - this is not optional. ## Memory Bank Structure The Memory Bank consists of core f iles and optional context f iles, all in Markdown format. Files build upon each other in a clear hierarchy: f lowchart TD PB[projectbrief.md] --> PC[productContext.md] PB --> SP[systemPatterns.md] PB --> TC[techContext.md] PC --> AC[activeContext.md] SP --> AC TC --> AC AC --> P[progress.md] ### Core Files (Required) 1. `projectbrief.md` - Foundation document that shapes all other f iles - Created at project start if it doesn't exist - De f ines core requirements and goals - Source of truth for project scope 2. `productContext.md` - Why this project exists - Problems it solves - How it should work - User experience goals 3. `activeContext.md` - Current work focus - Recent changes - Next steps - Active decisions and considerations - Important patterns and preferences - Learnings and project insights 4. `systemPatterns.md` - System architecture - Key technical decisions - Design patterns in use - Component relationships - Critical implementation paths 5. `techContext.md` - Technologies used - Development setup - Technical constraints - Dependencies - Tool usage patterns 6. `progress.md` - What works - What's left to build - Current status - Known issues - Evolution of project decisions Create additional f iles/folders within memory-bank/ when they help organize: - Complex feature documentation - Integration speci f ications - API documentation - Testing strategies - Deployment procedures ## Core Work f lows ### Plan Mode f lowchart TD Start[Start] --> ReadFiles[Read Memory Bank] ReadFiles --> CheckFiles{Files Complete?} CheckFiles -->|No| Plan[Create Plan] Plan --> Document[Document in Chat] CheckFiles -->|Yes| Verify[Verify Context] Verify --> Strategy[Develop Strategy] Strategy --> Present[Present Approach] ### Act Mode f lowchart TD Start[Start] --> Context[Check Memory Bank] Context --> Update[Update Documentation] Update --> Execute[Execute Task] Execute --> Document[Document Changes] ## Documentation Updates Memory Bank updates occur when: 1. Discovering new project patterns 2. After implementing signi f icant changes 3. When user requests with **update memory bank** (MUST review ALL f iles) 4. When context needs clari f ication f lowchart TD Start[Update Process] subgraph Process P1[Review ALL Files] P2[Document Current State] P3[Clarify Next Steps] P4[Document Insights & Patterns] P1 --> P2 --> P3 --> P4 end Start --> Process Note: When triggered by **update memory bank**, I MUST review every memory bank f ile, even if some don't require updates. Focus particularly on activeContext.md and progress.md as they track current state. REMEMBER: After every memory reset, I begin completely fresh. The Memory Bank is my only link to previous work. It must be maintained with precision and clarity, as my effectiveness depends entirely on its accuracy.
  22. Model Context Protocol https://github.com/modelcontextprotocol https://www.pulsemcp.com/servers https://github.com/upst a sh/context7 https://github.com/mobile-next/mobile-mcp https://github.com/hyperb1iss/droidmind

    https://github.com/ a lioshr/memory-b a nk-mcp Articles & Blog Posts https://h a rper.blog/2025/04/17/ a n-llm-codegen-heros-journey https://h a rper.blog/2025/02/16/my-llm-codegen-work f low- a tm https://simonwillison.net/2025/M a y/1/not-vibe-coding https://simonwillison.net/2025/M a r/11/using-llms-for-code https:// a ddyo.subst a ck.com/p/the-70-problem-h a rd-truths- a bout https:// a i-2027.com https://www.reddit.com/r/Ch a tGPT/comments/1ko3tp1/ a m a _with_open a i_codex_te a m https://docs.cline.bot/prompting/cline-memory-b a nk Videos https://www.youtube.com/w a tch?v=TECDj4JUx7o https://www.youtube.com/w a tch?v=BJjsfNO5JTo https://www.youtube.com/@ a iexpl a ined-o ff ici a l https://www.youtube.com/@AID a ilyBrief https://tinyurl.com/4 a z4t6mh (AIN a tiveDevCon) https://github.com/gsc a lzo/SplitBill