Mobile app development is, quite simply, the process of developing apps that can be installed and used on compatible mobile devices. As Android and iOS dominate over 99% of the mobile industry, the app development field solely focuses on developing apps for these two operating systems.
There are two main approaches to app development: going native or going hybrid.
Native mobile app development involves building apps for one dedicated operating system by using the tools and technologies provided by the OS's developers themselves. Developing apps this way requires using highly specialized IDEs like Android Studio (for Android) and Xcode (for iOS).
Android development utilizes the programming languages Java and/or Kotlin for building the backend logic of the applications and uses XML, an HTML alternative, to design the frontend components and screen layouts. One can also expand their app's functionalities by using third-party libraries and dependencies, TensorFlow for example.
You need to have a fair idea about object-oriented programming (OOP) and a handful of other small concepts to work comfortably. The best place to get started is the official tutorial itself. You can also check out this Udacity course which covers the core concepts of Android dev. Additionally, the official website contains a lot of tutorials and guides to help you learn better.
Xcode is the official IDE provided by Apple for developing iOS apps. It utilizes the Swift/Objective-C programming languages for building layouts and writing backend logic.
Xcode, however, is only available on macOS X devices. If you're lucky enough to have one, you can follow some tutorials to get started and work your way through native iOS. The Swift Guy and CodeWithChris are some famous ones.
Hybrid app development is the creation of a single app that can run on multiple operating systems including Windows, Android, and iOS. When developers create hybrid software, they create a single codebase for all platforms that can be compiled and transformed into native apps.
Flutter is Google's latest framework for developing mobile interfaces for both Android and iOS from a single codebase. It utilizes the Dart programming language, which is also developed by Google. Dart is very similar to JavaScript + Java in one language, so try getting acquainted with it before getting started with Flutter.
The official write your first app guide is a good place to get started. You can also refer to Flutter cookbooks and other official tutorials to work out your way through Flutter. If you prefer a YouTube tutorial, you can refer to this.
React Native is Facebook's open-source framework for developing cross-platform apps. It is based on the React.js web framework and is thus very intuitive for someone who is familiar with React.js and JavaScript. Additionally, React Native enables you to use NPM packages, making it very easy for you to extend your app's functionalities.
The official docs are a good place to get started with React Native. React Native Express is also an all-in-one guide to React Native.
The two frameworks listed above, Flutter and React Native, are the most popular ones in the hybrid mobile dev category. However, numerous other frameworks made by different companies and individuals also exist. The Ionic framework, NativeScript, and Xamarin by Microsoft are such examples. Though not much of a benefit in learning, you can still check out their official docs if you're curious.