УДК 004.424

Проблемы при разработке мобильных приложений и пути их решения

Мазурова Варвара Дмитриевна – студент МИРЭА – Российского технологического университета.

Заботкина Екатерина Михайловна – ассистент кафедры Телекоммуникаций МИРЭА – Российского технологического университета.

Аннотация: Разработка мобильных приложений является ключевой отраслью современности, отраженной во множестве приложений, доступных в Google Play. Возрастающий интерес к этой сфере обусловлен повышенной активностью пользователей мобильных устройств. Однако, несмотря на перспективы, новички встречаются с рядом вызовов, включая непривычную среду разработки и ограничения аппаратных ресурсов. В данной статье рассматриваются актуальные проблемы разработки мобильных приложений для Android, выявленные на основе собственного опыта, а также предложены пути их решения.

Ключевые слова: мобильные приложения, разработка приложений, Android, проблемы разработки, опыт разработчика, трудности начинающих.

Совместная разработка

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

Существует несколько подходов к решению этой проблемы. Первый заключается в том, что участник загружает текущий проект на свой ноутбук, вносит изменения и выгружает обновленный проект на GitHub. Затем другой член команды загружает приложение коллеги, вносит свои изменения и так далее. Однако этот метод имеет ряд недостатков. Во-первых, он не позволяет разрабатывать приложение параллельно, так как необходимо постоянно ждать свежую версию проекта. Во-вторых, отсутствует четкое понимание внесенных предыдущим разработчиком изменений, что требует ручного сравнения версий проекта. Кроме того, невозможно отследить динамику работы над проектом без ведения отчетности о ходе разработки. Такой подход утратил свою актуальность с появлением систем управления версиями.

Система контроля версий – это программное обеспечение, позволяющее хранить все изменения, которые когда-либо вносили в проект. Далее речь пойдет о распределенных, поскольку они являются более надежными и популярными, а конкретнее про Git. Git работает в паре с GitHub, где существуют репозитории отдельных разработчиков. Например, за 2021 год было создано 61 млн новых репозиториев (за 2020 год – 60 млн, за 2019 – 44 млн) и отправлено более 170 млн pull-запросов. Общее число репозиториев достигло отметки в 254 млн [1]. Статистика языкам программирования за 2022 год отражена на рисунке (рисунок 1).

1

Рисунок 1. Статистика GitHub.

Git – распределённая система управления версиями. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года [2]. В Git каждая рабочая копия кода сама по себе является репозиторием. Также в этой системе управления версиями существует операция слияния, которая позволяет избежать выгрузке проекта каждый раз у предыдущего разработчика. Также Git имеет возможность создавать ветки, что делает разработку еще более удобной. Каждый создает свою ветку и работает в ней, не трогая самую главную (main) [3]. На рисунке показано строение несложной архитектуры разработки приложения (рисунок 2).

2

Рисунок 2. Схема устройства проекта в git.

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

Долгая загрузка эмулятора

Для проверки функциональности и внешнего вида мобильных приложений на реальных устройствах необходимо использовать эмуляторы, доступные в Android Studio. Эмуляция – это запуск программ с одного устройства на другом. Для этого специальное приложение имитирует нужную систему [4]. Эмуляторы способны имитировать разные модели телефонов. Такой подход позволяет разработчикам оценить, как приложение будет отображаться на различных устройствах. Ниже представлен пример эмулятора (рисунок 3).

3

Рисунок 3. Пример эмулятора.

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

У этой проблемы есть два решения. Первый заключается в отладке своего приложения на собственном мобильном телефоне с операционной системой Android. Подключение идет через USB-порт и при выборе эмулятора в правом верхнем углу среды разработки выбирается свое устройство или же нажмите комбинацию клавиш Shift+F10 [5]. Приложение отобразится на рабочей области телефона, и будет сохраняться там до удаления. Этот способ позволяет быстрее пройти этап запуска приложения на этапе разработки. Существует и иной способ, который позволяет настроить эмулятор с минимальными настройками. Для базового функционала и низкой нагрузки эмулятора следует выбрать следующие параметры настройки. (рисунки 4–5).

4

Рисунок 4. Настройка эмулятора.

5

Рисунок 5. Настройка эмулятора.

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

Итак, проблему с долгой загрузкой можно избежать двумя способами: убрать лишний функционал у эмулятора или подключить свое устройство.

Долгая загрузка экранов приложения

Проблема долгой загрузки экранов приложения стала актуальной из-за увеличения потребления ресурсов телефона. Ранее проекты состояли из множества активностей, что считается неэффективным. В настоящее время активность представляет собой компонент пользовательского интерфейса, обычно используемый для одного экрана приложения. Разработка приложений для Android стало популярным использовать подход "Single Activity", который предполагает использование одной активности на всё приложение. Вместо множества активностей, хранящихся в стеке вызовов, разработчики стали предпочитать фрагменты. Фрагмент представляет собой часть визуального интерфейса, которую можно повторно использовать. Он основан на активности и не кладется в стек вызовов принудительно, что облегчает и ускоряет переключение между экранами и изменение контекста в приложении. Пример использования двух активностей и с многими фрагментами показан на рисунке (рисунок 6), где активности – первые два xml файла.

6

Рисунок 6. Пример правильной архитектуры приложения.

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

Безопасность данных

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

Согласно общепринятым архитектурным принципам, каждое приложение должно включать как минимум два основных слоя [6]:

  1. Слой пользовательского интерфейса (UI), который отвечает за отображение данных на экране приложения.
  2. Слой данных, который содержит бизнес-логику приложения и обеспечивает доступ к данным, необходимым для функционирования приложения.

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

Паттерн проектирования MVVM состоит из трех основных компонентов:

  1. Модель (Model) – представляет собой данные и бизнес-логику, отвечает за работу с данными.
  2. Представление (View) – отображает данные пользователю и обрабатывает взаимодействие с пользователем.
  3. Модель представления (ViewModel) – слой, который связывает Модель и Представление, отвечает за обработку бизнес-логики и предоставляет данные для отображения в Представлении.

7

Рисунок 7. Пример реализации паттерна MVVM.

Список литературы

  1. Статистика GitHub за 2022 год [Электронный ресурс] – URL: https://www.opennet.ru/ (дата обращения 28.02.2024).
  2. Материал из Википедии – свободной энциклопедии, Git [Электронный ресурс] – URL: https://ru.wikipedia.org/wiki/Git (дата обращения 28.02.2024).
  3. Официальная документация Git [Электронный ресурс] – URL: https://git–scm.com/ (дата обращения 28.02.2024).
  4. Тинькофф Журнал, 10 лучших эмуляторов Android на ПК [Электронный ресурс] – URL: https://journal.tinkoff.ru/list/best–android–emulators/ (дата обращения 28.02.2024).
  5. Официальная документация Android. [Электронный ресурс] – URL: https://developer.android.com/guide (дата обращения 28.02.2024).
  6. Гайд по архитектуре приложений для Android. Часть 1: обзор [Электронный ресурс] – URL: https://habr.com/ru/companies/surfstudio/articles/653655/ (дата обращения 28.02.2024).

Интересная статья? Поделись ей с другими: