Архитектура приложений с фрагментами
При разработке приложений с фрагментами очень важно
правильно подойти к проектированию. Многие разработчики
после первого знакомства с фрагментами пытаются применять
их ко всем компонентам приложения, подходящим для
повторного использования. Такой способ использования
фрагментов ошибочен.
Фрагменты предназначены для инкапсуляции основных
компонентов для повторного использования. В данном случае
основные компоненты находятся на уровне всего экрана
приложения. Если на экран одновременно выводится большое
количество фрагментов, ваш код замусоривается транзакциями
фрагментов и неочевидными обязанностями. С точки зрения
архитектуры существует другой, более правильный способ
организации
повторного
использования
вторичных
компонентов — выделение их в специализированное
представление (класс, являющийся подклассом
View
или один
из его подклассов).
Пользуйтесь фрагментами осмотрительно. На практике не
рекомендуется отображать более двух или трех фрагментов
одновременно (рис. 8.16).
Рис. 8.16. Не гонитесь за количеством
Нужно ли использовать фрагменты
Фрагменты являются предметом множества дискуссий в
сообществе Android. Некоторые люди считают, что
использование фрагментов и их жизненный цикл создают
лишние сложности, и поэтому не используют их в своих
проектах. Проблема тут в том, что в Android есть несколько API,
использующих фрагменты, например
ViewPager
и Jetpack-
библиотека Navigation. Если вам нужно использовать эти
опции в вашем приложении, то используйте фрагменты, чтобы
извлечь максимум выгоды.
Если вам не нужны фрагментозависимые API, то фрагменты
будут полезны в больших приложениях с большими
требованиями. Для простых одноэкранных приложений это
будет излишняя сложность.
При запуске нового приложения необходимо учитывать, что
добавление фрагментов сейчас может создать проблемы в
будущем. Заменить activity на activity с фрагментом несложно,
но возникает куча проблем. Если одни интерфейсы
управляются activity, а другие — фрагментами, это только
усугубляет ситуацию, так как приходится держать это в уме.
Гораздо проще писать код, сразу используя фрагменты, и не
думать о сложностях будущих переделок, не вспоминать, какой
стиль контроллера вы используете в каждой части вашего
приложения.
Поэтому когда речь идет о фрагментах, мы придерживаемся
другого принципа: почти всегда используем фрагменты. Если
вы знаете, что ваше будущее приложение будет небольшим, то
сложности от использования фрагментов могут оказаться
нецелесообразными, поэтому их можно избежать. В более
крупных приложениях сложность внедрения компенсируется
гибкостью, которую позволяют получить фрагменты, и их
использование обоснованно.
Поэтому в некоторых приложениях в этой книге мы будем
использовать фрагменты, а в некоторых — нет. В одной главе
мы сделаем несколько небольших приложений, и без
фрагментов они реализуются проще. Однако большие
приложения в этой книге лучше работают с фрагментами, и мы
покажем их механизм, чтобы вы умели работать с ними в
будущем.
Do'stlaringiz bilan baham: |