First of all, there are 3 pathways to learn app development:
- Native Android App Development: used to create apps that can run only on Android devices, Requires knowledge of Kotlin and XML.
- Native iOS App Development: used to create apps that can run only on iOS devices. Requires knowledge of Swift.
- Cross-platform App Development: used to create apps that can run on various operating systems. Most popular frameworks for cross-platform development are Flutter(can be used to create Android, iOS, Windows, Mac, Linux and even Web app) and React Native(Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP). Requires knowledge of Dart and Javascript for Flutter and React Native respectively
Out of these 3, Flutter is widely used nowadays.
This action could be seen as a requirement. Before learning Android, become familiar with these programming languages.
- Java Programming Language
- Kotlin Programming Language
- Sound Knowledge of XML (Extensible Markup Language)
Knowing your tools before using them is preferable. The IntelliJ IDEA software from JetBrains was used to create Android Studio, which is the official Integrated Development Environment for Google's Android operating system.
- AndroidManifest.xml file
- Java file
- Drawable file
- Layout file
- Mipmap file
- Colors.xml file
- Strings.xml file
- Styles.xml file
- Build.gradle(Module: app) file
- Create a new project
- Reopen, close, save the project
- Create a new activity, classes, drawable resource files
- Run the app on AVD of Emulator or in a real device etc.
An Android application is made up of a few essential building pieces. The application manifest file, which includes a description of each component and how they work together, binds these loosely connected components together.
- Activity life cycle
- Handle Activity State Changes
- Understand Tasks and Back Stack
- Processes and Application Lifecycle
- Types of Android Services
- The Life Cycle of Android Services
- Content URI
- Operations in Content Provider
- Working of the Content Provider
- Creating a Content Provider
- Implicit Broadcast Exceptions
Once you have a general understanding of the various Android components, you can explore some of the straightforward UI designs that are provided below.
- Frame
- Linear
- Relative
- Constraint
- TextView
- EditText
- Buttons
- ImageView
- Implicit
- Explicit
- Intent Filter
When you are comfortable with simple UI design, you should only go on to sophisticated UI design tasks like:
- ListView
- RecycleVIew
- Fragments
- Dialogs
- Toast
- Bottom Sheets
- Navigation Drawer
- Tabs
- Material Design
- Some inserting Animations
In Android, there are three types of the storage system:
- Shared Preferences
- File System
- Database
- RoomDB
- Gradle
- Debug/ Release Configuration
- Threads
- Looper
Debugging abilities are among a developer's most crucial skills. In order to develop, the following must be learned:
- Exceptions
- Error Handling
- Logging
- Memory Profiling
- Cause of memory leaks
- Detecting and fixing memory leaks
- Context
- Glide
- Picasso
- Fresco
- COIL
- Dragger
- Retrofit
- Coroutines
- Rxjava
According to the company's website, Android Jetpack is a collection of architectural guidelines, tools, and libraries that make it quick and simple to create top-notch Android apps. So that you may concentrate on what makes your app distinctive, it provides common infrastructure code.
- AppCompat library
- Architecture components,
- Animation and transitions
- Android Ktx
- Navigation
- Paging
- Slices
- WorkManager
The three famous architecture in the Android world are:
- MVVM (Model–View–ViewModel)
- MVI (Model-View-Intent)
- MVP (Model View Presenter)
- FCM (Firebase Cloud Messaging)
- Analytics
- Remote Config
- App Indexing
- Local Unit Testing
- Instrumentation Testing
- Encrypt / Decrypt
- Proguard
- Signed APK
- Play Store
- Google Codelabs (Best material to study Anroid-native app development)
- How To Download Android Studio
- KOTLIN Basics
- KOTLIN Advanced
- OOPS
- Making Apps