I have some basic programming experience from taking C++ and Python courses in college, mostly involving algorithms, data structures, and terminal-based programs. I've never built a graphical or mobile application before.
I have an idea for a relatively simple app that should run locally on both my iPhone and Android phone. It won't need a backend, accounts, cloud storage, or other online services. I'm considering Kotlin Multiplatform, Flutter, React Native, or using AI to generate most of the code, but the number of choices is overwhelming.
I'm not trying to become a professional mobile developer. I'd like to learn enough to build this as a side project without spending dozens of hours watching beginner courses before making anything. Would React Native with Expo, Flutter, or another approach be the quickest sensible route? Is it realistic to use AI as a coding assistant, or would I be better off learning the fundamentals first?
3 Answers
Be realistic about the learning curve. Having studied algorithms and terminal programs is useful, but mobile development also involves layouts, events, application state, platform differences, packaging, and debugging. You may be able to make a rough version quickly, but becoming comfortable enough to maintain it will likely take more than a weekend. Start with the simplest screen and avoid adding accounts, networking, or complex architecture until the core idea works.
AI can absolutely help you get a prototype working, especially for a small local app, but it won’t replace understanding the basics. Generated code can be outdated, insecure, or subtly wrong, and debugging it is difficult if you can’t explain what the code is doing. Ask the AI to teach you while it generates each piece, read the output, and test every change instead of accepting a large code dump.
For your situation, React Native with Expo is probably a practical choice. Expo lets you run the same project on both major phone platforms and can also produce a web version, so you can start experimenting quickly without learning two separate native toolchains. Build a very small prototype first, then add features one at a time. You don’t need to finish a huge course, but you should learn basic JavaScript or TypeScript, component-based UI, state, navigation, and how local storage works.

I have essentially no GUI experience, so that makes sense. I’m mainly hoping to avoid spending months on theory before I can see a basic version of the idea running.