1. Are you ready for the Galaxy S20? Here is everything we know so far!

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

Discussion in 'Android Development' started by Lucas12, Aug 3, 2017.

  1. Lucas12

    Lucas12 Lurker
    Thread Starter


    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 ?


    #1 Lucas12, Aug 3, 2017
    Last edited: Aug 3, 2017

    1. Download the Forums for Android™ app!


  2. Deleted User

    Deleted User Guest

    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


    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'.
  3. Lucas12

    Lucas12 Lurker
    Thread Starter

    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
    #4 Lucas12, Aug 3, 2017
    Last edited: Aug 3, 2017
  4. Deleted User

    Deleted User Guest

    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.

Share This Page