Welcome to Android Architecture Roadmap, the main objective of this repository is to help you strengthen your skills in Android architecture and provide you with a solid foundation for your projects. Enjoy exploring and developing your abilities in this exciting field of software development!
Here is a guide that will help you answer the following questions: What is this repository?, Who is this repository written for?, and How to use this repository?
This contains all topics to help you find what you are looking for quickly. I hope I can help you.
- 👍 Good and bad practices
- 🏛️ Architecture pattern (presentation pattern or UI pattern)
- 🧱 Architecture components
- Android jetpack
- External libraries
- 🧩 Design patterns
- 🏢 Architecture Style
- ✅ Quality Assurance
- 🚀 Multi-Module Apps
- ️Modularization
- Package structure
- Package by type
- Package by feature
- Package by layer
- Package by module
- Hybrid Package: Package by feature on the exterior, and package by layer on the interior.
There are many ways to design the architecture for your application, depending on the problem you are solving. A recommended example of the book Real-World Android for medium or big apps that you could follow is the following:
- 🤖 Modularization + Package Structure
- App Module
- Features Modules
- Package by feature on the exterior, and package layer on the interior
- Commons Modules
You can also review the following presentation, which provides more specific details about this example architecture.
The talk "Android Architecture in the real world" is based on the following resources:
- Book: Real-World Android by Tutorials
- Book: Android Test-Driven Development by Tutorials
- Book: Advanced Android App Architecture
Some books and post recommended:
- Book: Clean Code
- Book: Clean Architecture
- Book: Design Patterns by Refactoring Guru
- Post: The Software Architecture Chronicles
This project is inspired by Mobile Developer Security Roadmap and Android Developer Roadmap 2022. So thank you for the authors providing the roadmap ideas. Also, you can learn a lot of knowledge from the repositories.
If you have an idea to improve the map, feel free to discuss it in the issues.
Use the content of this repository at your discretion and with caution.
Support it by joining stargazers for this repository. ⭐
And follow me for my next creations! 🤩
Copyright 2023 Fahed Hermoza
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.