Native Android App Development learning path

Kaushal Vasava
Make Android
Published in
6 min readJan 23, 2024

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.

  1. It is the folder where you write your code.
  2. android Test folder, where you write your android Test that includes UI tests.
  3. test folder, where you write your Tests that include Unit tests.

Res folder

Res folder for UI resources

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

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:

Medium, LinkedIn, Twitter, GitHub, and Instagram.

Thanks for Reading!

Follow on Medium, Please Follow and subscribe to Make Android for prompt updates on Android platform-related blogs.

Thank you!

--

--

Kaushal Vasava
Make Android

Android Developer | Kotlin | Jetpack Compose | Kotlin MultiPlatform | LinkedIn's Top Voice (3K+ Followers) | Apps with 100K+ Downloads on the Playstore