{"id":9688,"date":"2019-03-06T13:55:45","date_gmt":"2019-03-06T11:55:45","guid":{"rendered":"https:\/\/www.fandroid.info\/?page_id=9688"},"modified":"2019-03-06T14:37:32","modified_gmt":"2019-03-06T12:37:32","slug":"lecture-1-introduction-to-the-architecture-of-client-server-android-applications-part-1","status":"publish","type":"page","link":"https:\/\/www.fandroid.info\/lecture-1-introduction-to-the-architecture-of-client-server-android-applications-part-1\/","title":{"rendered":"Lecture 1. Introduction to the architecture of client-server android applications. Part 1"},"content":{"rendered":"\n

We present the tutorial on the architecture<\/a> of client-server android applications based on the materials of the course of Arthur Vasilov, which was held at Google Developers Group 2016 in Kazan.<\/p>\n\n\n\n

Introduction to the architecture of android applications<\/h2>\n\n\n\n

Before proceeding directly to the study of how to build the architecture of client-server Android-applications, it would be good to know why this topic is important at all.<\/p>\n\n\n\n

And this question is logical. First, the user is completely indifferent to the architecture of your application. Seriously, how many of you, when using programs and applications, often think about whether they did MVP or MVC? The answer is no one. Secondly, working with architecture requires additional efforts: it needs to be created, it needs to delve into and teach people how to work on it. But in order to create a clearer picture for answering this question, we need to return to the relatively recent past, namely in 2007 and 2008, when the first versions of iOS and Android devices were released, respectively.<\/p>\n\n\n\n

We must admit that Google managed to lag behind Apple in terms of entering the mobile market and this led to some consequences, namely to the rush when the first version of Android was released. There is nothing surprising in that Google aspired first of all to finish the basic user functions, and care of convenience of developers was the second priority. Therefore, along with the first version of Android, Google did not provide developers with any standard recommendations for either development, or design and UX. That led to the fact that every developer or every company was forced to write as they wanted and as they could.<\/p>\n\n\n\n

Of course, we must admit that in the future Google did a great job of popularizing the Android system among developers. But at the same time the original problems were not completely solved.<\/p>\n\n\n\n

What are these problems? In terms of design, it is clear that completely different styles of applications confuse the user of the Android system, and it can be difficult to navigate. But what’s wrong with the lack of standards in the code itself? After all, as it was said just above, the user can not know in any way how good the code of your application is, and this does not affect its use. The problem is that not all developers have a good knowledge of design patterns and are able to develop a good application architecture. If you do not follow clear principles in architecture, you will very soon receive a code that:<\/p>\n\n\n\n