My journey using AI for mobile development

Igor Kulman
https://blog.kulman.sk

How I started

  • GitHub Copilot Pro: free as an open source contributor, early access
  • VSCode integration: First Ask, Edit for simpler tasks, later Agent for harder tasks
  • iOS projects: Started experimenting with Swift and iOS development
  • Learning curve: Figuring out what AI could actually handle vs what it could not

Model evolution in Copilot

  • Sonnet 3.5 → 3.7: Some improvements, but still hit-or-miss
  • Then came Sonnet 4: Better, but inconsistent performance
  • Gemini 2.5 Pro: Added to the mix, each with different quirks and failures

The "no billing" period

  • Until July 2025: GitHub did not have billing implemented
  • Unlimited usage: Could experiment freely without worrying about limits
  • Experimentation freedom: Tried everything, learned what actually worked vs hype

What I learned during this period

  • Model selection: Matters a lot
  • Context helps: Especially explicitly selecting files to read
  • Custom instructions: Started developing project-specific guidelines
  • Sometimes not worth it: Faster to do things your self at least partially

The token-saving situation

  • Gemini Pro 2.5: Started being too aggressive about saving tokens
  • File-by-file refusal: Would refuse to work on files one by one
  • "Continue, continue": Had to constantly write "continue" to get work done
  • Productivity killer: Turned a helpful tool into a frustrating experience

The billing wake-up call

  • 300 premium requests/month in Github Pro: Suddenly had to be strategic about usage
  • Less iteration: Trying to give long commands doing multiple things to save requests
  • Token Optimization: Noticed Copilot started being more aggressive about saving tokens in general

Exploring alternatives: Gemini CLI

  • The appeal: Generous free tier, large context window
  • Timing matters: Sometimes gets overloaded, switches from 2.5 Pro to Flash
  • The trade-off: Great context window, less control than Copilot with changes selected in VSCode
  • Still buggy tools: Sometimes fails writing into a file or gets stuck in a loop
  • CLI: It can be used from other tools like Claude Code when large content window is needed
  • Open source: Full code on Github, can create issues, see what gets fixed
  • Zed integrations: Can be used as Agent directly in Zed editor

Exploring alternatives: Kiro

  • The appeal: Offers systematic planning as a choice
  • Slow start: Starts indexing, fans go full blast, no progress indicator, cannot even find files
  • Planning: Takes a lot of time, needs to be corrected, slower than prompt iteration
  • Model: Uses Sonnet 4 but somehow gives worse results than Sonnet 4 in Copilot
  • Overloaded: Was free so often overloaded and not working

Exploring alternatives: Claude Code

  • Hype: everyone seems to be talking about it, using it
  • CLI: better version of Gemini CLI, better step explanation and reasoning, less mistakes
  • Pricing: no free tier
  • More tooling: Crystal, VibeTunnel (also for Gemini CLI)
  • Results: Better results than Gemini

Exploring alternatives: Codex

  • CLI tool: for using
  • Hype: GPT5 was supposed to be amazing
  • ChatGPT plus: includes Codex in subscription, with limits
  • Disappointment: Very slow and not better than Claude Code or Gemini CLI

MCP: the promise

  • MCP servers: Everyone talking about them as the next big thing
  • Initial excitement: Seemed like they would solve integration problems

MCP: the reality

  • Mostly hype: Only the official Figma MCP actually proved useful to me
  • Overload: Can overload the AI agent with too many options, giving irrelevant context, Copilot has a limit and per project settings
  • Terminal is better: AI agents using terminal commands work better than most MCPs

What Actually Matters

  • Model: It all often comes down to the quality of the model
  • Context Window Size: The biggest differentiator between models
  • Tooling: Tooling matters more than I expected, Sonnet 4 is used by Claude Code, Copilot, Kiro with different results
  • Custom Instructions: Prevent hallucinations with project-specific guidelines
  • Prompt Quality: Garbage in, garbage out - but even good prompts can fail randomly

What's Consistently Frustrating

  • Random Performance: Good Tuesday, terrible Wednesday, working at first, the breaking everything
  • Complex Logic: Anything requiring real architectural thinking
  • Token Optimization: Hurts user experience across all tools
  • Throttling: Models getting slow or unavailable in peek hours
  • Different pricing: From free without the ability to pay to per token accounting

What I actually use right now

Custom instructions: I have CLAUDE.md, GEMINI.md, copilot-instructions.md set up for every project
ChatGPT: for basic non-programming questions, simple scripts and commands
Claude Code: Usually start with, unless big context is needed (analyzing logs)
Gemini, Copilot: Try if Claude Code cannot handle it or I am over limit
Figma MCP: Claude Code and Copilot are good at creating SwiftUI views directly from Figma

How I use AI in my workflow

  • Code generation: Writing boilerplate code, simple functions, UI components (Figma MCP)
  • Bug analysis: Analyzing reports, logs, suggesting fixes (Gemini)
  • Start with planning: For complex tasks I ask for options, their pros and cons, then pick one (Claude Code)
  • Saving tokens: I do not let agents run xcodebuild or tests automatically, if yes I pipe build to only get errors