Фрагменты или отдельные активити

Рейтинг: 8Ответов: 2Опубликовано: 24.04.2015

Только начинаю работать с Android, возник вопрос по поводу оптимизации работы приложения. При возможности реализовать приложение обеими путями, чему стоит отдавать предпочтение: разным активити или построению основной части приложения с использованием фрагментов? К примеру, имеется простенькое приложение-игра, пусть она будет заключаться в сложении чисел. Приложение состоит из главного экрана, основного экрана игры и страницы с рекордами. Стоит ли это все засунуть с помощью фрагментов в одно активити или лучше разграничить по разным?

Ответы

▲ 7

Вопрос того, когда использовать фрагменты, разработчик принимает сам, из соображений необходимости, а не так, чтобы раз есть - значит надо использовать. Бездумное использование фрагментов только расходует ресурсы устройства в пустую.

Идея фрагментов основана на том, что потребовалась возможность часть кода активити выделить в отдельный самостоятельный блок. Что позволяет, с одной стороны, иметь несколько обособленных блоков в одной активити, с другой - в нескольких активити, один и тот же блок.

Отсюда типичные применения фрагментов:

  1. Однопанельный интерфейс на телефоне - двухпанельный (многопанельный) на планшете - то, ради чего все и затевалось в основном.
  2. Использование одного отображения, требующего какой то логики в разных активити (исключение дублирования кода).

Есть еще некоторые решения, где фрагменты оправданы и используются, например, вывод диалоговых окон через фрагмент позволяет удобнее контролировать изменения состояния в процессе работы, такие как поворот устройства.

Общий принцип такой, что если проще не использовать фрагменты - их не надо использовать.

Что касается конкретно вашего случая, то использование фрагментов в такой задаче только запутает и усложнит структуру приложения, ничего, кроме дополнительного геморроя на пустом месте вы тут не выгадаете.

▲ 4

Если вы задаетесь этим вопросом из соображений производительности, то запихивание всего и вся в одну активити вам вряд ли чем-то поможет. Подобный подход скорее поможет вам получить корявую структуру интерфейса, нежели извлечь какую-то пользу.

Кроме того, как говорил один умный человек, преждевременна оптимизация лишь немногим лучше, чем убийство маленьких котят. Ну, на самом деле он говорил не так, но это неважно