AI's Impact on Mobile Development: The Rise of 'Vibe Coding' and Professional Frustration
A veteran mobile developer reflects on how the advent of AI and LLMs has introduced 'vibe coding,' disrupting professional standards, code quality, and traditional freelance development workflows, leading to significant frustration.
Having dedicated nearly 15 years to the mobile development industry, I find the current era, dominated by Artificial Intelligence (AI) and Large Language Models (LLMs), to be profoundly disheartening. My career has primarily involved freelance, gig, and milestone-based projects, with approximately 90% of my experience centered on greenfield development. I specialize in building applications for clients rather than owning my own, making a living through coding.
Before the AI Era
In the past, client kickoffs typically involved receiving a comprehensive document containing UI prototypes and a clear list of features. The development process would then commence from scratch: initializing a new project and a Git repository. Development proceeded calmly, with clients usually requesting weekly or monthly updates, understanding the complexities of mobile development. This allowed me to focus on delivering high-quality work, writing clean code, using proper variable naming conventions, and maintaining tidy Git commits. Within two to three months, an alpha or beta build would be ready, and clients were consistently delighted to see their ideas transformed into functional applications.
The Onset of the AI Era
This shift began subtly, perhaps two to three years ago. As a freelancer, I naturally sought to adapt to the latest industry trends. Initially, AI's influence was limited to code snippets. Clients would occasionally inquire, "Hey! I asked AI for this code, do you think this will work? I think you should use it." Receiving code suggestions from non-technical clients was a new experience. My typical response was, "It's alright, I have existing, production-tested code blocks that work perfectly. Thanks for the suggestion!"
However, these AI-generated code snippets gradually grew in size and complexity. While I appreciated the intent behind these suggestions, they often created additional work. Integrating AI-sourced code, with its distinct coding styles and variable naming conventions, into an existing codebase required significant effort to maintain consistency and quality.
The "Vibe Coding" Phenomenon
The true indicators of "vibe coding" — a term I've coined for this approach — emerged distinctly. A client, whom I believed to be a software developer, began merging their own code directly into the main branch without prior warning or pull requests, using git push --force origin main. Upon inspecting this merged code, I was immediately struck by the prevalence of emojis within print() statements. It felt incredibly unprofessional and peculiar. I initially suspected the client might simply have a fondness for emojis, but a quick search revealed that AI-generated code frequently incorporates such visual elements.

Another troubling aspect was the chaotic branching and merging strategies, possibly influenced by AI, or perhaps just a misguided approach to feature requests. One "vibe coded" project, for instance, had accumulated an astounding 1,227 branches and was still growing. I refrained from merging any of them, leaving that task to the client. The last time I checked, this particular Xcode project failed to compile, or even come close to a working state.

The most frustrating revelation occurred when I discovered that all the UI logic, view models, and data models within these "vibed" projects were consolidated into a single ContentView file. For those unfamiliar, ContentView is the default SwiftUI file created when a new Xcode project is initiated. The fact that a project with such fundamental architectural flaws, where crucial components were crammed into one file, was actually live on the App Store was the final straw.

Conclusion
I understand that everyone needs to earn a living, and app creation is a viable path. However, I feel a profound sadness witnessing how AI has, in my view, undermined and degraded the profession I've diligently cultivated over the past 15 years. The principles of best practices, structured processes, and meaningful collaborative development seem to have vanished, replaced by the daunting task of sifting through thousands of lines of disorganized code at the outset of every new project.