8 распространенных ошибок при разработке под Android

1769
8 распространенных ошибок при разработке Android
8 распространенных ошибок при разработке Android

1. Вещи должны быть там, где им положено быть (Strings, Colors)

Во всем мире наблюдается огромный рост экосистемы Android с ее разнообразием сообществ. Люди из разных слоев общества, люди с ограниченными возможностями, люди, которые хотят иметь такие причудливые функции, как ночной режим, и многие другие используют приложения для Android в своей повседневной жизни.
Разработка приложений для такого разнообразного сообщества — задача не из легких. Я не говорю здесь о высокоуровневых архитектурах. Напротив, речь идет о таких простых вещах, как строки, цвета, димены и т.д., которые существенно повлияют на современную разработку Android.
Люди обычно чувствуют себя комфортно, используя приложение на своем родном языке. Жизненно важным шагом является сохранение всех строк в одном файле (обычно strings.xml), чтобы быстро добавлять файлы строк, специфичные для разных языков.
Это также касается цветов, размеров и стилей, поэтому, когда вы решите сделать что-то вроде поддержки темного режима или адаптации макетов для планшетного просмотра, с этим будет легко справиться. Итог таков: Храните код в одном месте для повторного использования.

2. Не использовать фрагменты

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

Если вы уже давно работаете в Android, то вы знаете, что использование активностей имело смысл пару лет назад, когда API Fragments еще не был настолько развит.
Сейчас, в 2021 году, команда Android рекомендует использовать фрагменты для проектирования каждого экрана и поддерживать одну или несколько активностей во всем приложении для размещения фрагментов. Это хорошо известно как Single Activity Architecture.

Следование этой архитектуре позволит сократить значительное количество взаимодействий извне приложения. Новый компонент навигации Jetpack в основном основан на архитектуре Single Activity Architecture. Fragments API сделает вашу жизнь намного проще. Возможно, через пару лет разработка Android перейдет от активностей к фрагментам.

3. Не используйте привязки данных или связки представлений

Среда разработки Android с самого начала основывалась на трех типах файлов: XML, Kotlin и Java. Файлы XML содержат все, что связано с проектированием, а файлы Kotlin/Java включают все, что не относится к проектированию.

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

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

4. Не использовать Kotlin и корутины

Прошло несколько лет с тех пор, как Google объявил Kotlin рекомендуемым языком для разработки приложений для Android. Это было одно из тех преобразующих решений: Kotlin решил болевые точки Java и может уменьшить нагрузку на разработчиков.

Использование Kotlin для разработки Android открыло новые возможности, такие как расширения, скопированные функции, классы данных, ключевое слово объекта, безопасность нуля и т.д. Помимо разработки под Android, с помощью Kotlin можно также внедрять многоплатформенную разработку и разработку на стороне сервера.
Асинхронное программирование играет ключевую роль в мобильной разработке. На ранних этапах мы использовали AsyncTask. Со временем появился RxJava, и это трансформационное изменение. Но RxJava требует глубокого изучения и совершенно иного подхода к обратным вызовам.

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

5. Ошибки проектирования

Недооценка ConstraintLayout

ConstraintLayout поставляется с комбинацией многих удобных функций, таких как guidelines, Barriers, Group, aspect ratio, flow, Layer и многое другое. Благодаря всем этим функциям ConstraintLayout может нарисовать практически любой экран (от простых до сложных вариантов использования).

ConstraintLayout отличается от Relative и Linear раскладок. Перестаньте относиться к ним одинаково. Мы можем создавать плоские макеты без иерархии вложенности. Плоская компоновка приводит к меньшему количеству слоев для рисования на просмотре.

Чрезмерное использование ConstraintLayout

Мощные функции сопряжены с риском злоупотребления ими. Использование  ConstraintLayout в пользовательском интерфейсе, который можно спроектировать с помощью  FrameLayout или LinearLayout, является нелепым подходом.

Страх перед MotionLayout

MotionLayout— это подкласс ConstraintLayout, включающий все его выдающиеся возможности, и он полностью декларативен с возможностью реализации сложных переходов в XML. Он обратно совместим с API уровня 14, что означает, что он покрывает 99% случаев использования.

Новый редактор MotionLayout в Android Studio 4.0 упрощает работу с MotionLayout. Он предоставляет фантастическую среду для реализации переходов, MotionScenes и многого другого.

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

Это можно решить с помощью новой библиотеки datastore или библиотеки Encrypted preference или реализовав шифрование самостоятельно.

Безопасная связь

Многие разработчики Android думают, что использование HTTPS сделает их общение с серверами безопасным. Но это не так. Многие хакеры подключаются к коммуникациям, чтобы обмануть серверы и клиентов. Это называется атакой через посредника.
Чтобы установить безопасную связь с сервером, необходимо установить сертификат.

7. Незнание возможностей Android Studio

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

8. Не используйте библиотеки Jetpack

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

Библиотеки JetPack охватывают такие основные функции, как paging3 для постраничной пагинации, Room для локальной базы данных, WorkManager для длительных фоновых задач, DataStore для улучшения хранения данных, Hilt для DI, навигационный компонент для навигации в пользовательском интерфейсе приложения, App Startup для сокращения времени запуска приложения и другие.
Все эти библиотеки созданы с учетом производительности и простоты использования, чтобы реализовать сложные задачи с меньшим количеством кода.

На этом пока все. Надеюсь, вы узнали что-то полезное.

Спасибо за чтение!