Site icon AppTractor

Руководство по модуляризации Android-приложений

Проект с несколькими модулями Gradle известен как многомодульный проект (multi-module project). В этом официальном руководстве Google представлены передовые методы и рекомендуемые шаблоны для разработки многомодульных приложений для Android.

Проблема растущей кодовой базы

В постоянно растущей кодовой базе масштабируемость, удобочитаемость и общее качество кода часто со временем ухудшаются. Это происходит из-за того, что кодовая база увеличивается в размере, а ее сопровождающие не предпринимают активных действий для обеспечения структуры, которую легко поддерживать. Модульность — это средство структурирования вашей кодовой базы таким образом, чтобы улучшить удобство сопровождения и помочь избежать этих проблем.

Что такое модуляризация?

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

Рисунок 1: График зависимостей многомодульной кодовой базы

Преимущества модульности

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

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

Распространенные ошибки

Степень детализации — это степень, в которой кодовая база состоит из модулей. Более гранулированная кодовая база имеет больше модулей меньшего размера. При разработке модульной кодовой базы следует определиться с уровнем детализации. Для этого примите во внимание размер вашей кодовой базы и ее относительную сложность. Излишняя детализация сделает накладные расходы тяжелым бременем, а слишком крупная уменьшит преимущества модульности.

Некоторые распространенные ловушки заключаются в следующем:

Подходит ли мне модульность?

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

Пример

Now in Android — полнофункциональное Android-приложение с модульностью.

Что еще

Exit mobile version