[#] В разрезе: новостной агрегатор на Android с бэкендом. Разработка под Android: выработка архитектуры
habrabot(difrex,1) — All
2017-11-29 18:00:09


[Вводная часть (со ссылками на все статьи)][1]

В водной статье я уже писал о том, что планируемым клиентом для проекта должен стать клиент Android: доступный большой аудитории, лёгкий, функциональный, красивый, быстрый (не приложение, а мечта!). Если с основаниями выбора платформы всё понятно, то с тем как реализовывать на базе неё все перечисленные требования – ясно было далеко не всё.

Ранее разработкой под Android не занимался поэтому достаточно ценными источниками информации для меня являлись:

* [Книга «Android Programming: The Big Nerd Ranch Guide»][2] (ознакомление с [переводом от издательства «Питер»][3] подтвердило ранее имевшийся принцип: «можешь читать оригинал – читай оригинал»);
* [Сайт Google по разработке для Android;][4]
* [Книга «Efficient Android Threading» от издательства O’Reilly;][5]
* [Видео с проекта Яндекса «Мобилизация».][6]
После изучения указанных источников вопросов с архитектурой Android и взаимодействия их компонентов не осталось. Однако остался один наиважнейший вопрос: какова будет структура самого приложения? Пара примеров и прототипов показала, при росте функционала всё быстро начинало превращаться в «лапшу»:

* Логика работы с объектами Android (Activity, Preferences, TextView ….) перемешивалась с бизнес-логикой;
* Объекты хранения фигурировали в коде построения интерфейса;
* Модульное тестирование превращалось в ад из-за необходимости работы с родными объектами Android и их подмены экземплярами [Robolectric][7];
* Проверка асинхронного кода была возможна только на устройстве или эмуляторе (по принципу: «запустил-проверил-повторил»).[Читать дальше →][8]

[1]: https://habrahabr.ru/post/334510/
[2]: https://www.bignerdranch.com/books/android-programming/
[3]: https://habrahabr.ru/company/piter/blog/335146
[4]: https://developer.android.com/
[5]: http://shop.oreilly.com/product/0636920029397.do
[6]: https://www.youtube.com/watch?v=5EvxWifIgro&list=PLQC2_0cDcSKBNCR8UWeElzCUuFkXASduz
[7]: http://robolectric.org/
[8]: https://habrahabr.ru/post/343446/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut