Skip to main content

Command Palette

Search for a command to run...

How to Organize Android Package / Folder Structure?

Of course, this is very personal. There is no right or wrong how you would like to organize your Android source code.

Updated
2 min read
How to Organize Android Package / Folder Structure?
V

I'm a self-taught hobbyist Android developer who loves to build projects and share valuable tips for new Android developers.

Feel free to comment, share or connect with me!

I prefer to organize my source code based on recommended Android app architecture, which is also known as MVVM architecture.

recommended_folder_structure_01.PNG

Image source: MindOrks

This is what my package/folder structure looks like in Java root folder.

Package / Folder NameDescription
uiUI controller such as activity and fragment
viewmodelData for the UI
repositoryModules that handle data operation
localRoom database - SQlite
remoteRemote data source - Retrofit

This works for a small app, which is exactly what I’m doing now. However, I imagine if your app is huge and contributed by many developers, you may want to break it down into different modules/features instead.

Module1
└─── ui
└─── viewmodel
└─── repository
└─── local
└─── remote
    ...
Module2
└─── ui
└─── viewmodel
└─── repository
└─── local
└─── remote
    ...
...

This allows your modules to be exported or shared as generic libraries easily in the future. Since my app is small, I'm good with what I'm doing now.

[Updated - July 02, 2022]: Given that I now have a bit of experience. This is my current package naming convention based on the latest app architecture guide.

root package
└─── data
     └─── local
     └─── mapper
     └─── remote
     └─── repository
└─── domain
     └─── model
     └─── repository
└─── ui
     └─── screens
     └─── theme
     └─── viewmodel
└─── utils
  • mapper contains extension functions to convert data to and from different layers.

For app reference, you can refer here.

Android Studio

Part 16 of 17

From setup to advanced features, discover everything you need to know to take your skills to the next level with Android Studio.

Up next

How to Upload Android Studio Project to GitHub?

Simple and beginner-friendly step-by-step guides to share your Android project in GitHub repository