Native Android App Development learning path
In this article, I’ll give you a learning path about an android development.
Before starting this, I have to introduce myself, I have more than 2 years of experience in Native Android Development, I have worked on a product-based start-up, published a few apps on the Play Store and currently working as a freelancer. So, this article is based on my knowledge and experience.
Table Content:
- Overview of folder/project structure in Android App Development
- Information about files, folders and build system.
- Basic Android Components with example projects and documents
- Learn Java and Kotlin Languages
- UI Development
- App Architecture
- SOLID Principle
- Advanced topics in Android App Development
- Useful Tools for Android development
- More resources to learn Android and Kotlin
Overview
Folder/Project structure
Android Manifest
App manifest overview | Android Developers
Kotlin + Java folder
There are three folders inside it.
- It is the folder where you write your code.
android Test
folder, where you write your android Test that includes UI tests.- test folder, where you write your Tests that include Unit tests.
Res folder
anim: It contains Animation files
drawable: It contains images, SVG images.
menu: It contains menus
mipmap: It contains the app icon.
navigation: It contains a navigation graph.
values: It contains strings.xml, colors.xml, dimen.xml, themes.xml etc.
xml: It contains some configuration files like network, short-cut, languages-config etc.
font: It contains custom fonts.
Gradle Build System
Configure your build | Android Studio | Android Developers
Basic Components:
Intent, Bundle, Activity, Fragment, Content Provider, Service, and Broadcast Receiver are basic components in Android App Development.
Components:
There are important components in Android development.
Intent: What is Intent in Android? — GeeksforGeeks
Bundle: Bundle in Android with Example — GeeksforGeeks
Activity: Introduction to activities | Android Developers
Fragment: Fragments | Android Developers
Content Provider: Content providers | Android Developers
Service: Services overview | Background work | Android Developers
Broadcast receiver: Broadcast Receiver in Android With Example — GeeksforGeeks
Permission: Permissions on Android | Android Developers
Notification: Notifications overview | Android Developers
Activity and Fragment Lifecycle methods: Learn about activity and fragment lifecycle methods. It is very important topics in Android App Development.
Docs:
The activity lifecycle | Android Developers
Fragment lifecycle | Android Developers
Threading: Learn about how to thread in Android development. There are two types of threads for android. One for UI work and another one for background tasks.
Docs:
Processes and threads overview | App quality | Android Developers
Threading in Android: Understanding the Basics | by Lincoln munene | Medium
Understanding and Utilizing Threads in Android — SitePoint
What are Threads in Android with Example? — GeeksforGeeks
Mastering Kotlin Coroutines (amitshekhar.me)
Shared Preference
Shared Preferences is how one can store and retrieve small amounts of primitive data as key/value pairs to a file on the device storage such as String, int, float, Boolean that make up your preferences in an XML file inside the app on the device storage.
Doc: Shared Preferences in Android with Example — GeeksforGeeks
Navigation
Navigation is a basic concept in App development. In simple terms navigate from One Screen (A) to Another Screen (B). (A -> B)
Docs:
Navigation | Android Developers
Jetpack Navigation Component in Android — GeeksforGeeks
Navigation in Jetpack compose. Full guide Beginner to Advanced. | by Kaushal Vasava | Medium
In-App Database
SQLite is the default in-app database. Room is the library abstract version of the SQLite database. There are also other databases like SqlDelight, and Real by MongoDB.
First start with SQLite to understand its usage and problems this database has. Then start with Room. It’s an easy-to-use library for app database CRUD operations.
Doc: Save data in a local database using Room | Android Developers
For example, Google Tasks, Todo app, etc.
Projects: Note-taking app, to-do list app.
Network API Calling
Network calls are very important things to learn in App development because almost all apps use the internet to fetch data or upload some data to the server.
So, Retrofit, OkHttp, Ktor, and Volley are libraries used for network calling in Android App Development.
Doc: Retrofit in Android. In the world of Android app… | by Kaushal Vasava | Nov, 2023 | Medium
For example, YouTube, Gmail, etc.
Projects: News app, Meme's app, Weather app, etc.
Device Storage Access:
Device storage access means how can you get data from the user device, and how to save data into device storage. It includes Preference, Database, and Device storage.
Docs:
Data and file storage overview | Android Developers
How to Access Data or Data Folders in an Android Device? — GeeksforGeeks
For example, Store images, videos inside from camera app.
Projects: Music app, Video App, Gallery app, Recorder app.
Firebase
Firebase is used for remote database, app login/signup (authentication) functionality, etc.
Doc: Add Firebase to your Android project | Firebase for Android (google.com)
For example, E-commerce apps, Food delivery apps, Instagram, Twitter, etc.
Projects: E-commerce app, Social Media app, Dating app, etc.
Learn Java and Kotlin Languages for Android App Development
First, if you know Java then start learning Kotlin. and if you are a newcomers who don’t know Java or Kotlin then you can first start learning OOPS concepts and then learn Kotlin.
UI Development
XML Views system:
It is an old way to design UI. XML views are used for designing app screens, dialogue, and other UI elements.
Many companies have a codebase with an XML view system. So don’t forget to learn these concepts.
Doc: Layouts in Views | Android Developers
Jetpack Compose:
It is a modern declarative way of using Kotlin Language to design your UI elements and screens.
New codes are developed using this and also migrating to old view system to jetpack compose.
Doc: Compose layout basics | Jetpack Compose | Android Developers
Learn About App Architecture
What is Architecture?
An application architecture is a structural map of how an organization’s software applications are assembled and how those applications interact with each other to meet business or user requirements. An application architecture helps ensure that applications are scalable and reliable, and assists enterprises identify gaps in functionality.
In general, application architecture defines how applications interact with entities such as middleware, databases and other applications. Application architectures usually follow software design principles that are generally accepted among its adherents but may lack formal industry standards.
Docs:
Android Architecture — GeeksforGeeks
Modern Android App Architecture | Android Developers
Guide to app architecture | Android Developers
Followings are well-known architecture:
MVC:
It is a basic architecture for android app development.
MVC (Model View Controller) Architecture Pattern in Android with Example — GeeksforGeeks
MVP:
It is an advanced architecture for code management and code readability.
MVP (Model View Presenter) Architecture Pattern in Android with Example — GeeksforGeeks
MVVM:
It is latest and more advanced architecture for code management and code readability.
MVVM (Model View ViewModel) Architecture Pattern in Android — GeeksforGeeks
SOLID Principle for code design
SOLID Principles with Kotlin | Baeldung on Kotlin
ADVANCE TOPICS
- Testing
- Dependency Injection
- Work manager
- Paging
- Ads Integration
- Payment Integration
TOOLS for Android development
- Android Studio
- IntelliJ IDE
- Postman for API call
- Leak Canary
- Google Developer Play Console
- Google Cloud Console
- Firebase Console
- AdMob, Facebook Ads consoles
- GitHub, Git, and GitLab for CI/CD and code versioning.
More Resources to learn Android and Kotlin
- Google Codelabs for Android
- Medium blogs
- YouTube
- GitHub Open-source projects
- Chat GPT
Docs:
Kotlin and Jetpack Compose Learning Resources. | by Kaushal Vasava | Medium
My GitHub repositories
Thank you for reading. Hope it helpful to you. 🙌🙏✌.
Don’t forget to clap 👏 and follow me for more such useful articles about Android Development, Kotlin & KMP.
If you need any help related to Android, Kotlin and KMP. I’m always happy to help you.
Visit my Profile: https://zaap.bio/KaushalVasava
Follow me on:
Thanks for Reading!
Follow on Medium, Please Follow and subscribe to Make Android for prompt updates on Android platform-related blogs.
Thank you!