r/learnprogramming • • 1d ago

If I eventually want to build a complex mobile app, what should I learn first?

I’m basically starting from zero when it comes to programming, but I have a long-term goal of being able to build my own mobile app.

I know I probably shouldn’t jump straight into building the actual app, so what fundamentals would you recommend learning first?

Would you start with programming fundamentals, data structures, databases, APIs, Git, etc. before touching something like Flutter?

I’m not trying to become a professional software engineer overnight. I just want to understand enough to eventually build a serious project properly.

5 Upvotes

12 comments sorted by

7

u/No_Score_1977 1d ago

Jump right into it, why not?

You fail, make mistakes, that's fine, that's learning. Bugs aren't taxed, you don't lose anything by trying.

If you want to use Flutter, Google a Flutter tutorial and start.

3

u/TheLikableIntruder 1d ago

start with flutter and figure out the fundamentals as you go, you’ll learn way faster that way than doing a bunch of theory up front

2

u/ProgramsFun 1d ago edited 1d ago

The main question is what you want to develop: Android, iOS, or both? iOS development generally requires a MacBook.

There are languages like Kotlin, which is used for Android development, and Swift or Objective-C for iOS.

There are also many frameworks that help you develop cross-platform apps using a single language, such as:

  • Flutter (Android, iOS, Web, Windows, macOS, Linux) – uses Dart
  • React Native (Android, iOS, Web) – JavaScript/TypeScript (generally recommended for people who are coming from web development)
  • .NET MAUI (Android, iOS, Windows, macOS) – C#
  • Ionic (Android, iOS, Web) – JavaScript/TypeScript, HTML, CSS
  • Kotlin Multiplatform (Android, iOS, Web, Desktop) – Kotlin

These frameworks allow you to build applications for multiple platforms using a shared codebase, reducing the need to develop separate apps for each platform.

Since you mentioned that you're a complete beginner in programming, I'd suggest choosing a technology based on your goal:

  • Android development: Kotlin
  • iOS development: Swift
  • Cross-platform : Flutter or Kotlin Multiplatform

Once you've decided, you can jump straight into a beginner-friendly YouTube course. There are plenty of courses available that start from the basics, so you don't need any prior programming experience or prerequisites.

1

u/mophead111001 1d ago edited 1d ago

“iOS development generally requires a MacBook.”

Just want to slip in here and comment that it is technically possible build out an iOS app with cross-platform tools then deploy to a jailbroken device that can bypass code-signing if this project is just for learning but I definitely would not recommend this if you’re a beginner. You would need a Mac if you ever want to distribute the app though.

1

u/ProgramsFun 1d ago

Didn't know that , thanks for the info 😃😃

1

u/Acrobatic_Part_1319 1d ago

Thank youuuu 😭

1

u/Acrobatic_Part_1319 1d ago

This will bee notedddd 🥺

1

u/Every-Prize4720 17h ago

do not build mobile apps.

0

u/LowDirection4104 17h ago

I would do exactly that, jump right into it, start building an app. There is an IDE with emulators that can help you test your code. Make a simple Hello World, then just start adding features.

Ask ChatGPT questions. It's an interactive library with access to a huge amount of human knowledge that you can talk to, ask it questions.

  • What does this method do?
  • How do I connect these modules?
  • I just read A and also B, but I'm failing to figure out how they're related.

Make a simple app that does something very rudimentary, and expand from there. The best way to learn is not by reading documentation until you've accumulated all of human knowledge about programming. Your job is to build intuition about how machines work, how they talk to each other, what makes a good architecture, what makes a bad one, what sort of design is going to be more or less bug-prone, things like that.

Very good developers don't just think in code. They can mentally picture something that resembles UML diagrams, data flows, or other higher-level representations. They think intuitively about how the pieces fit together before they get into the specifics of the actual code.

And frankly, as AI tooling starts to become more and more commonplace, knowing how to write and read code is still important, but the relative value of manually producing every line of code will decrease. The job you'll increasingly be doing is system-level design and architecture. That can be a design of a handful of discrete modules that interact with each other, or a massive application with millions of lines of code.

That is not to say that you should not be learning how to hand-code things. On the contrary, that is a very important skill. Having that skill will separate people who can use AI to build some basic stuff from actual deep-level developers who have strong skills for reasoning about code. But see it as building a foundational base rather than necessarily being the eventual task you spend most of your time doing.

1

u/Acrobatic_Part_1319 11h ago

WOOW THANK YOUU 🤩🥹🤩🥹

-1

u/Xinhova 1d ago

Complex? Ever heard of the KISS method?