Clean Architecture in Android
Submitted by Prashant Gupta (@prashantgupta17) on Monday, 19 September 2016
Section: Crisp talk sponsored (15 minutes) Technical level: Intermediate
It is extremely important for a code base to have strong architecture that enables reusability, layer independence, modularity, ease of testing and use and much more, which in turn, makes the code more undestandable, extensible and maintainable with a lot less fuss.
Clean Architecture, an architecture of systems that divides application in layers for responsibility separation, comes in handy for this purpose.
I would be talking about what Clean Architecture is an how it can be implemented using MVP pattern in Android and how its benefits come into picture.
Clean Architechture using MVP pattern(Clean MVP) lets you create a powerful Android Application that is intrinsically testable and makes replacement of obsolete elements real easy. Conforming to the rules of this architecture is much better than the traditional Model-View architecture used in Android Applications, which does not provide separation of concerns and puts all the load on activities and fragments. A clean android app will be layered with separation of business logic layer, presentation layer, Interface layer and data layer.
In this talk, I will talk mainly about the following:
Overview of Clean Architecture and its implementation in Android.
Benefits of using this architecture in a complex code base.
A simple example in Android, to help understand, why you should adopt Clean Architecture?
After this session, you will be able to incorporate Clean Architecture in your application and understand how it is making your code better.
I am a tech enthusiast and developer, graduated from DCE and currently working as an Android Developer in BobbleApp, having 3 years of experience in this domain. We are working on a creative chat platform that helps you express yourself in form of personalized stickers, emojis, stories, video and audio, rather than plain old simple and boring text. Always keen on learning new technologies in different fields and polishing my skillset, I have tried my hands on variety of areas in Android, from UI/UX and business logic implementation to creating SDK’s and libraries. And believe me, having a strong architecture is vital to a good product/application/code.