Страницы

Поиск по вопросам

суббота, 13 октября 2018 г.

Glide для загрузки картинок и Clean архитектура - как быть?

Я хочу сделать проект придерживаясь принципа Clean. Но не хочу писать свои велосипеды, например для загрузки картинок.
Могу ли я использовать Glide в Clean архитектуре?


Ответ

Да, Glide (Picasso, Fresco, UIL и т.д.) можно использовать сразу во View слое.
Для их работы необходим Context, поэтому вы не можете добавить непосредственную работу с этими библиотеками в вашу бизнес логику.
К тому же, эти библиотеки объединяют в себе как работу слоя данных (получение изображения из сети, его кеширование), так и работу по отображению изображений, что является ответственностью слоя презентации. Если рассматривать библиотеки с этого ракурса, то все выглядит не так радужно.
Однако, не стоит забывать, что "архитектура ради архитектуры" - не то, к чему мы стремимся, поэтому нужно находить компромиссы между следованием определённым правилам, появившимся из опыта многих разработчиков, и нашей реализацией, решающей конкретные проблемы.
В данном случае, мы можем считать, что вью каким-то образом умеет отображать url картинки как саму картинку. Таким образом, презентер просто будет говорить "отобрази картинку, вот url", и уже во вью вы используете нужную библиотеку. Можно провести аналогию с тем, что при необходимости открытия WebView, мы так же просто передаём ссылку, а отображение страницы - это уже детали реализации.

Комментариев нет:

Отправить комментарий