Apiumtech Apiumtech Apiumtech Apiumtech
  • ABOUT US
    • CAREERS TEAM
    • PARTNERS
  • SERVICES
    • WEB & MOBILE APP DEVELOPMENT
    • IT TRAINING & CONSULTANCY
    • SOFTWARE ARCHITECTURE
    • UX DESIGN
    • SPRINT ZERO
  • PROJECTS
  • BLOG
  • CONTACT US
Apiumtech Apiumtech
  • ABOUT US
    • CAREERS TEAM
    • PARTNERS
  • SERVICES
    • WEB & MOBILE APP DEVELOPMENT
    • IT TRAINING & CONSULTANCY
    • SOFTWARE ARCHITECTURE
    • UX DESIGN
    • SPRINT ZERO
  • PROJECTS
  • BLOG
  • CONTACT US
Jan 03

Front-End architecture sample for Android

  • 01/03/2015
  • Xavi Hidalgo apiumteches
  • No Comments
  • Agile web and app development
  • Agile development, Android, Frontend, MVP, Software Architecture

These days we are doing an audit on a project where several technologies converge front-end. The truth is that it is a very interesting project because beyond the standard binomial apps (Android / iOS), also live in this ecosystem, an app in Windows 8, a web application and a desktop. As I said, it’s a very interesting challenge.

[Infobox bgcolor = “# eeeee5″ textcolor = “# 807f7a”] In summary, our proposal will be to harmonize the architectural vision of the front-end, that is, to agree to all the teams to align the logical architecture. [/ Infobox]

[One_half] At this point, the question is “what logical architecture using”. After solving this problem, we will solve other implementation, but would talk overcoat issues “technology mapping”. [/ One_half]

Some basic concepts of terminology frontend you should review

[/ One_half]

Before remember that our chances today in front-end architecture, or at least which have seemed more convenient priori. We evaluated the following:

[Tabs tabs = “MVC (Model-View-Controller), MVP (Model-View-Presenter)”] [tab title = “MVC (Model-View-Controller)”]Model-View-Controller[/ Tab] [tab title = “MVP (Model-View-Presenter)”]Model-View-Presenter[/ Tab] [/ tabs]

img_2 img_3

In the case of Android, which is where we will begin implementation, we have decided for Model-View-Presenter and we made a small architectural spike, which have risen to github .

Apart from some peculiarities as the fact of using maven to build android, which lays the foundation for self-construction in the continuous integration server and use a project instrumentation and test integration android, the highlight is separating the presenter in another module.

I see only advantages:

[List style = “list-img4″] By separating the android project module, forcing me to encapsulation and guidance to domain contracts (interfaces) well defined. [/ List] [list style = “list-img4″ ] Separating compile not only get faster feedback to improve not link me to the android virtual machine but can also more easily reuse the module, not only in android. [/ list] [list style = “list-img4″] If I have a presenter where domain logic is, this logic can re-use any technology. It is true that it will not be easy (use of wrappers, adapters, exports, etc …) but I will save much time. [/ List] [list style = “list-img4″] This avoids duplication maximum plus frees the (native in all cases) view of the coupled code is not required. [/ list] [list style = “list-img4″] When defining a contract know if anything responsibilities and lays the basis for implementing “interface segregation”. [/ list] [list style = “list-img4″] As delegate the responsibility to build an actor (maven) … own construction repetitive tasks (signature, alignment, ran obfuscation, packaging, publishing, etc ..). Needless to say that human error is minimized to the maximum. [/ List] [list style = “list-img4″] I open the door to use more advanced ways to approach components, for example, building as “apklib” and sharing the library, this is a more advanced expression of the concept DRY (Do not Repeat Yourself), one of the mantras of Agile . [/ list] [list style = “list-img4″] The best for last … this is highly testable, which will reduce bugs, learn to second if I break something and I’ll increase functional scalability, ie the TimeToMarket since receiving the instruction to create a new feature until this functionality is actually usable by user (and gives value). [/ list]

  • Facebook
  • Twitter
  • Reddit
  • Pinterest
  • Google+
  • LinkedIn
  • E-Mail

About The Author

Related Posts

  • Simulate server responses with NodeJS12/21/2015
  • Why microservices are a good idea12/18/2015
  • Agile project management benefits12/07/2015
  • Junior software developer12/05/2015

Leave a reply

You must be logged in to post a comment.

JOIN OUR NEWSLETTER

Receive our publication right in your email.





Sending ...

Categories

  • Agile web and app development
  • Apiumtech
  • Events
  • Jobs
  • Offshoring and outsourcing
  • Software architecture
  • Technology industry trends
  • Uncategorized
  • User Experience Design
apiumtech.com Apiumtech is an agile software development company offering services of software architecture, web development, mobile app development, IT consulting, user experience design, bigdata and blockchain

LATEST NEWS

  • Hello world!
  • User experience design infographic
  • Apiumtech’s monthly Newsletter
  • 8 Digital marketing trends in 2016

JOIN OUR NEWSLETTER

    CONTACT INFO

    Av. Doctor Mitjavila 5
    AD500 Andorra la Vella
    Principat d’Andorra
    (+376) 692 2881
    info@apiumtech.com
    © 2022 APIUMTECH SLU. ALL RIGHTS RESERVED.