В общем, хочется улучшить архитектуру своих приложений, нигде нету нормальной инфы по этому. Интересуют не паттерны, а именно как сделать логическую структуру проекта, куда и как выносить модули для работы, допустим, с сетью, с Bluetooth и т. д. То есть, как должны выглядеть адекватные проекты. Пробовал читать код, например, Google I/O, но по чужому коду без опыта сложно понять, что где происходит. Больше всего изучил build.gradle конфиг )
Очень не плохо! Но в теории, увидеть бы реальные приложения с больше чем 3 экрана и 2 запросами..особенно сомнительна та часть касающаяся копий моделей на каждый уровень..
Все оправдано. Свои модели на каждый модуль делают эти модули более независимыми. Представьте, что есть класс User. В модуле, который будет тянтуь этого юзера из сети, класс User будет парситься из json(т.е поля класса будут помечены всякими аннотациями и будут иметь static методы парсинга). Далее этот юзер сохраняется в базу(скажем, мы используем ORM и класс User будет наследовать базовый класс ORM). И в заключении этот юзер будет показываются в UI. В итоге у нас 3 разных модели одной сущности, которые нихера не знают друг об друге. Вдруг поменялся формат ответа сервера с json на xml - вы меняете только одну модель, остальные 2 остаются нетронутыми. Вдруг захотели поменять ORM либу- меняете ORM модель и остальные 2 остаются нетронутыми.
Copperfield: ну это как раз из примера, а если у нас 30 сущностей? 90 классов?) если надо что поменять в сущности, опять в трех разных местах. Без реальных примеров - архитектура ради архитектуры. Но надо будет попробовать на досуге)
Конкретного ничего не подскажу. Только напутствие.
Во-первых, могу сказать из опыта - что нет никакой "архитектуры Android приложений". Принципы построения архитектуры ПО вообще одинаковы для многих программных систем. Да, везде есть нюансы и особенности, но это уже мелочи. Это также как с паттернами, практически все они подходят под любые языки и системы. Т.е. можно брать любые книги по архитектуре ПО и проецировать это на Андроид.
Во-вторых, ничего лучше чем исходников больших хороших проектов вы не найдёте. Если найдёте буду только рад. Я в своё время ничего не находил такого.
В-третьих, главное опыт. Даже если вы прочтёте 10 книг не факт, что вы станете создавать грамотную архитектуру в своих проектах. А вот создав и набив шишек на 10 собственных вы начнёте гораздо яснее понимать как надо делать.
Удачи.
Спасибо за напутствие)
>>Во-вторых, ничего лучше чем исходников больших хороших проектов вы не найдёте. Если найдёте буду только рад. Я в своё время ничего не находил такого.
Да я тоже не нашел особо. Максимум, тот же https://github.com/google/iosched, который последний год как-то опустил планку, судя по посту на хабре, и https://github.com/chrisbanes/philm, который довольно специфичный, так как использует Dagger.