AI is a tool, not a replacement. And as a mobile developer, I’ve had to learn where to draw the line.
Where it works well
AI is excellent at generating boilerplate, writing repetitive tests, and explaining APIs you’re not familiar with. In KMP, where there’s a lot of ceremony in module configuration, it saves me time generating the base structure.
Where it doesn’t work
I don’t let it make architecture decisions. I don’t let it choose between StateFlow and LiveData, or between MVVM and MVI. Those decisions depend on the project context, the requirements, the team preferences.
My rule
AI suggests, I decide. If I don’t understand the code it generates, I don’t merge it. It’s tempting to accept suggestions without reading them when it seems to work, but that leads you to maintain code you don’t comprehend.