@Mifos Initiative Founder and Director @LNMHacks Coordinator @Cybros FOSS Guy About Me Twitter - @vishwajeets3 GitHub - @vjs3 Blog - vishwajeetsrivastava.com
to the fundamental structures of a software system, the discipline of creating such structures, and the documentation of these structures. • Each structure comprises software elements, relations among them, and properties of both elements and relations. • In general terms, the architecture of a system is its 'skeleton'. It's the highest level of abstraction of a system.
complex structure, software must be built on a solid foundation. • Tools help you to develop software easily but they doesn’t replace need of careful design of software. • Architecture ensures quality. • Keeps developer focussed on the business logic of the application. • Helps writing a clean code. • High code coverage.
present. • All the business logic is written in the View portion (i.e Activity, fragments etc). • Works fine with smaller apps with a small team or individual purpose. • Will have many problems if you want to have high code coverage for your source code. • What does it look like?
case. • Every Architecture has its own pros and cons • Many people uses more than one architecture at a time • How is that possible? Which one should I choose?
that displays data and reacts to user actions. On Android, this could be an Activity, a Fragment, an android.view.View or a Dialog. Model is a data access layer such as database API or remote server API. Presenter is a layer that provides View with data from Model. Presenter also handles background tasks.
P? • Presenter is the core of application • It contains our business logic • Should be written in a way that this logic can be used in another app • Presenter should do all the talking with Views as well as Model • View and Model Should only interact with each other via Presenter • Presenter should only send the data which is required by the View (nothing less or more).