• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

proper architecture of Android App, best practices, estabilished solutions ?

Lucas12

Lurker
Aug 3, 2017
2
0
Hi

I've started learning Android about 5-6 years ago (And 2.x), i had a long break, now i want to learn more...but...

I'm searching for online courses, looking at developer . android. com ,but still i can see only 'simple description' of every component (like Intent, Activity, Fragment, Views etc.)
without information how to create proper app (with proper layout/architecture etc.) - so i don't have to reinvent the wheel !

I'm able to create Android App with few activites, database, few screens, fragments etc.
but i feel that if i add a little more it'll be a mess. That's why i'm looking for 'best practices' about 'laying out' android apps.

For example, if i want to create standalone pc app (service or desktop app), instead of creating everything from scratch, i would use Spring Boot, or Tomcat with Spring MVC/Core and Dependency Injection etc.
I would layer my app - controllers, services, repositories, model
- estabilished way / best practices.

But i can't find anything like that for Android App. Do you know anything about such tutorials/examples/materials ?

Regards,
lukasz
 
Last edited:
There are plenty of resources regarding getting started with Android development. Depends how you like to study really. Lots of online tutorials. Personally I like to read a good technical book. Here's the one I read to get me started

https://www.amazon.co.uk/Hello-Android-Introducing-Development-Programmers/dp/1934356565

In terms of development tools, you need to install Android Studio. This does a very good job of creating skeleton projects, and basic code required to start your app. You simply use the new project wizard, and select the appropriate app type. This gives you a great starting point. It also has many example projects, which you can study and/or modify, to help you learn.

But there are many online resources, just Google for 'Android tutorial'.
 
Upvote 0
There are plenty of resources regarding getting started with Android development. Depends how you like to study really. Lots of online tutorials. Personally I like to read a good technical book. Here's the one I read to get me started
https://www.amazon.co.uk/Hello-Android-Introducing-Development-Programmers/dp/1934356565
In terms of development tools, you need to install Android Studio. This does a very good job of creating skeleton projects, and basic code required to start your app. You simply use the new project wizard, and select the appropriate app type. This gives you a great starting point. It also has many example projects, which you can study and/or modify, to help you learn.
But there are many online resources, just Google for 'Android tutorial'.
maybe i didn't mentioned that, i'm experienced java developer, i know how to use IDE, Java, Spring, Dependency Injection, SQL, XML, JSON, REST, WebServices, SSL etc.. I'm looking for advanced tutorials about android app architectures.
I'm able to create Android App with few Activites, database, few screens, fragments etc.
but i feel that if i add a little more it'll be a mess. That's why i'm looking for 'best practices' about 'laying out' android apps
 
Last edited:
Upvote 0
Just to add to this, if you're familiar with Spring MVC, the framework gives you a beautiful MVC architecture, with clear separation of concerns. You can't really fail to follow a clean software architecture right from the start.
Android, doesn't quite give you as much help. Yes there is the project structure, which tries to separate out UI components from other things, but it's largely down to you as a developer to establish a good architecture, and follow good design principles. You can follow industry standard design principles - for example code to interfaces, delegation etc. But you're right in thinking that it's easy to get into a huge mess, unless you think about the architecture. Particularly for large complex applications.
One of the things which drives my action, is testability. I try to write classes which can be tested in isolation. So for example, you might write a service class which contains some database functionality. This can be tested with dummy data, or the service itself mocked out for testing with calling components.
But really you should use your experience in writing Java software to guide you.
I am very happy to get into a discussion about good architectures. As with most software problems, there is generally more than one way of going about things.
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones