Architecture: Organizing modules - MAD Skills

  Рет қаралды 18,163

Android Developers

Android Developers

Күн бұрын

In this episode of Architecture for Modern Android Development Skills, Emily Kager shares a tip around organizing modules in Android apps.
Guide to App Architecture → goo.gle/mad-architecture-guide
Catch more videos on Architecture → goo.gle/Architecture
Watch more MAD Skills episodes → goo.gle/madskills
Subscribe to Android Developers → goo.gle/AndroidDevs
#Featured #Latest #MADSkills
product: Android - General; speaker: Florina Muntenescu, _Not Applicable;

Пікірлер: 30
@AndroidDevelopers
@AndroidDevelopers 2 жыл бұрын
Catch more videos on Architecture → goo.gle/Architecture
@star-warsien
@star-warsien 2 жыл бұрын
I dig the video but this was super high level. I'd love to see examples WITH dependency injection and product flavor support.
@jatinvashisht4293
@jatinvashisht4293 2 жыл бұрын
Actually there is a video of Android heroes regarding di in multi module app
@star-warsien
@star-warsien 2 жыл бұрын
@@jatinvashisht4293 cool, do you have a link?
@jatinvashisht4293
@jatinvashisht4293 2 жыл бұрын
@@star-warsien yeah sure here you go kzbin.info/www/bejne/inq1g6Kef72Mnrs
@gondaimgano
@gondaimgano 2 жыл бұрын
would be interesting to see a implementation of it.
@Alex-ss3fs
@Alex-ss3fs 2 жыл бұрын
I can draw ideal rocket on paper and it reaches Mars. All is good in theory, but big part faces reality and stops work.
@saramohmad4014
@saramohmad4014 Жыл бұрын
keep learning until you make it 😅
@GakisStylianos
@GakisStylianos 2 жыл бұрын
Is this topic something covered in the documentation as well? I haven't managed to find it myself.
@AlejandraStamato
@AlejandraStamato 2 жыл бұрын
Awesome to see Emily here :) and great video on modularisation!!
@asih1588
@asih1588 2 жыл бұрын
didnt expect to see emily kager here! so used to seeing her being popular on twitter timeline in developer circle, it's like seeing a celebrity
@Ceisluck
@Ceisluck 2 жыл бұрын
OMG nearly 2 min in such an important task,......
@Red_Hac
@Red_Hac 2 жыл бұрын
Ok for library modules and simple feature modules, but if you use Dynamic features (Play Feature delivery), the dependency is inverted, your dynamic feature module depend on the app module.
@jeasonwong6115
@jeasonwong6115 2 жыл бұрын
How communicate between feature's module?
@dleonardo3238
@dleonardo3238 3 ай бұрын
Have you found something that explains this? 😅
@asoks.9134
@asoks.9134 Жыл бұрын
Shouldn't arrows be pointed in other directions for dependency?
@cyriltheandroid
@cyriltheandroid 2 жыл бұрын
Thanks for the vidéo 🙏🤖
@emmanuelmtali1594
@emmanuelmtali1594 Жыл бұрын
What is I don't know anything about modules, Where do i start?
@AndroidDevelopers
@AndroidDevelopers Жыл бұрын
Hi Emmanuel! Be sure to check out the following resources to learn more about modules: goo.gle/3QexNn6 and goo.gle/3bOByk1 😀
@paveldavydzenka9679
@paveldavydzenka9679 2 жыл бұрын
I feel a little bit confused... Let's say we have database module with app database and a lot of other feature modules that uses this database. How can I not depend on db module in this case?
@RackaApps
@RackaApps 2 жыл бұрын
Your database module would be a library module. It should only have DAOs for different things you need. Then different feature modules would now depend on this single database library module. I have something similar to this on a Kotlin Multiplatform project here: github.com/Thinkrchive/Thinkrchive-Multiplatform Inside common I have billing, model, integration, network and persistence (database and settings) which are library modules. These are used by feature modules inside the features folder. Then these feature modules are used in the androidApp and desktopApp which also use library modules like model, integration and settings. None of the feature modules and library modules depend on other feature modules. They only depend on library modules. The linked project's clean build time is about 4 min or slightly less on my 8GB i5 8265u Dell XPS. Changing something on feature or library modules would only take less than 1 minute to build a new debug apk or desktop app. These tests are all done on the laptop mentioned above. If I change something on the settings library module it would need to build settings library module, settings feature module and androidApp module and nothing else. If I change something on the database library module, it would need to only build the database library module, list and details feature modules and androidApp module. But if I change something on the list feature module I only expect the list feature module and app module to be built and not the database library or any other library module used by this list feature module. This is what it means to flatten the dependency graph. Feature modules should only depend on library modules, library modules should only depend on other library modules if needed and app modules can depend on both feature modules and library modules.
@kolenyov
@kolenyov 2 жыл бұрын
Ideally, your features modules have to depend on kind of mid-layer modules such as Repositories/Sources which depend on db module.
@rasenshuriken6333
@rasenshuriken6333 2 жыл бұрын
If you are working in a big team then every feature could have their own databases that they can manage. For common data you could create a library like login/auth which other features can use. This is called feature wise modularization. There is another approach called layer wise modularization where you modularize based on presentation layer, domain layer and data layer. In this domain layer can be used by any presentation module like login screen, song list screen etc
@paveldavydzenka9679
@paveldavydzenka9679 2 жыл бұрын
​@@RackaApps I think that database module looks more loke feature module than library module.
@paveldavydzenka9679
@paveldavydzenka9679 2 жыл бұрын
​@@kolenyov My db module comes together with repository and ViewModel, so the only one think you have to do in another module - it's just provide a vm and fetch the data.
@fabiodelgado5457
@fabiodelgado5457 2 жыл бұрын
How can I get started with Android development?
@n.unuchek
@n.unuchek Жыл бұрын
Where is domain/data/database modules?
@freedomchuks
@freedomchuks 2 жыл бұрын
✨✨✨✨
@WhaiNooa
@WhaiNooa 2 жыл бұрын
this is so basic...
Architecture: Entities - MAD Skills
7:55
Android Developers
Рет қаралды 21 М.
Architecture: The Domain Layer - MAD Skills
8:48
Android Developers
Рет қаралды 56 М.
The day of the sea 🌊 🤣❤️ #demariki
00:22
Demariki
Рет қаралды 100 МЛН
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 170 #shorts
00:27
WHO DO I LOVE MOST?
00:22
dednahype
Рет қаралды 80 МЛН
Dagger 2 в многомодульном Android проекте
16:37
Android Broadcast. Все об Андроид разработке
Рет қаралды 16 М.
Improving Performance with Baseline Profiles - MAD Skills
13:52
Android Developers
Рет қаралды 23 М.
Hilt and dependency injection - MAD Skills
13:06
Android Developers
Рет қаралды 46 М.
Why is Clean Architecture so Popular?
11:52
CodeOpinion
Рет қаралды 48 М.
Inspecting Performance - MAD Skills
16:01
Android Developers
Рет қаралды 20 М.
How I Organize My Life - The "LAZI" Productivity System
9:56
Ali Abdaal
Рет қаралды 870 М.
Generative AI in a Nutshell - how to survive and thrive in the age of AI
17:57
Architecture: The data layer - MAD Skills
7:30
Android Developers
Рет қаралды 74 М.
I rejected a $360k Google job offer | Software Engineer
6:07
PIRATE KING
Рет қаралды 524 М.
Собери ПК и Получи 10,000₽
1:00
build monsters
Рет қаралды 2,1 МЛН
Мой инст: denkiselef. Как забрать телефон через экран.
0:54