If you're building for apple, yes you have to use xcode. You don't need to use swift but that's Apple's first class supported language, it'll probably be the easiest to get up and running. React Native or Dart also work. Regardless of language, you'll still need xcode to package the app. Android Studio is similar on the Google side, they use Kotlin as their primary language.
post
For iOS, you need to use the Xcode toolchain, which builds the app and cryptographically signs it to run on a device (Apple control provisioning for iPhones in general, but you can set up your own devices to run apps you’ve signed yourself). You can use Swift or Objective C, for which the APIs are available, though can also link in code in other languages (C/C++, Rust, Go, Kotlin and so on).
Google used to have a cross-platform system named Flutter, which let you write apps in a language named Dart and compile them for iOS or Android, though you still need to use the Xcode toolchain for iOS; not sure if that’s still maintained.
You can also use things like React Native (i.e. your logic is in JavaScript, but is deployed in an app that builds the UI from native components and connects it to your code), but the apps produced this way tend to feel a bit off (laggy/unresponsive, and sometimes with the UI behaving weirdly). Or you could make a PWA (Portable Web Application), which is essentially a web page with a file that tells mobile browsers that it can be saved as an app to the desktop, though those, naturally, feel like a web page rather than a native app and are more limited.
I’d like to highlight your comment at the end: if you make a Portable Web App (PWA), it’ll run on iOS and Android and doesn’t require a developer subscription, an App Store or anything else. Just knowledge of the APIs and an idea.
Once you’ve proven the concept as a PWA, you may want to convert it to an app to get access to more protected APIs and get it onto the official App Stores though.
But with WebASM as a target, anything that doesn’t require a specific OS API runs just as well through a PWA as using an official dev environment.
Don't PWAs only work on European iPhones?
I think having a PWA is going to be a harder task for the idea I have in mind.
This is also going to be baby's first real program, so following along with the 'native' language for the phone will hopefully make things easier on me.
Godot offers a cross platform environment for applications that is as beginner friendly as a professional solution can be. Probably not most people's first choice but a solid option, and your app will run in a browser or desktop as well.
For Apple platforms, you have to use XCode. Check out HackingWithSwiftUI's 100 Day program, its free and you can do it at your own pace. Its an excellent resource, especially just beginning
Thanks for that tip. This is going to be my first real program in... well, my last code anything with more than 50 lines could probably vote now.
Look up Web Progressive Apps. Basically websites that function like apps and have limited interactivity with phone hardware (more restricted on apple). Very very common these days.
all 13 comments