10 главных ошибок начинающего Android-разработчика

Проблемы возникают не только у осваивающих разработку приложений для Android с нуля новичков, но и у опытных профессионалов. Сайт proglib.io рассмотрел 10 наиболее распространенных ошибок.

Photo by cottonbro from Pexels

Самая популярная мобильная платформа «повзрослела» с момента первого выпуска – планка ожиданий пользователей сейчас довольно высока. Им доступно множество различных устройств с разными размерами экрана, архитектурой микросхем, конфигурациями оборудования и версиями программного обеспечения. Есть тысячи вариантов, когда приложение может выйти из строя, даже если вы являетесь продвинутым программистом Android.

Большинство проблем возникает из-за отсутствия элементарных навыков – их легко предотвратить, если мы правильно понимаем основы. Рассмотрим 10 наиболее распространенных ошибок разработчиков Android.

1. Начинать работу не разобравшись с Android Studio

Android Studio – официальная среда разработки для Android от Google. Эта IDE создает комфортные условия программисту, однако новичку предстоит пройти нелегкий путь, прежде чем она станет ему интуитивно понятной. Настройка предельно проста: почти все объединено в один установщик. Загрузив его, вы получите не только Android Studio, но также Android SDK (software development kit), диспетчер SDK и многое другое.

Установите цветовое оформление и используйте split screen для разделения экрана – это повысит вашу эффективность. Изучите горячие клавиши и полезные команды. Вот несколько из них:

  1. Поиск нужной команды: ctrl + shift + a или cmd + shift + a – для IOS.
  2. Открыть класс: ctrl + n или cmd + o
  3. Открыть файл: ctrl + shift + n или cmd + shift + о
  4. Закрыть текущую вкладку: ctrl + F4 или cmd + w

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

2. Не учитывать адаптивность при разработке

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

  1. Соблюдайте относительность единиц измерения. Учитывайте, что не зависящие от плотности (dp) пиксели отличаются от обычных (px).
  2. Указывайте минимальные и максимальные значения размеров контента.
  3. Используйте грамотную вложенность объектов.
  4. Правильные шрифты. Не забывайте, что некоторые из них долго подгружаются, что может сказаться на скорости загрузки приложения.
  5. Правильно используйте растровую и векторную графику. Если на изображении много мелких деталей, используйте растровый формат, а иначе – векторный.
  6. Соблюдайте размеры макета

Вы можете протестировать продукт на подключенном через USB к компьютеру мобильном телефоне или воспользоваться эмулятором Android.

3. Не использовать Android Intents

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

Используя Android Intents можно быстрее и проще осуществить следующие операции:

  1. Звонок по любому номеру телефона.
  2. Отправку SMS.
  3. Получение контакта из телефонной книги.
  4. Открытие ссылки в браузере.
  5. Открытие карты по заданным координатам.
  6. Снимок с камеры.
  7. Звонок по Skype.
  8. Использование Speech to Text, функции распознавания голоса.

4. Не использовать фрагменты при разработке приложения

Традиционно каждый экран в приложении для Android реализовывался как отдельное действие. Это создавало проблему при передаче информации между экранами, поскольку механизм Android Intent не позволял передавать ссылочный тип (то есть объект) непосредственно между активностями (Activity).

Сделав каждый экран отдельным фрагментом, можно полностью устранить эту головную боль. Фрагменты всегда существуют в контексте активности и всегда могут получить доступ к ней.

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

Статические размещаются в макете действия и никогда не меняются.

Динамические – это своего рода реконфигурируемые кусочки головоломки, имеющие жизненный цикл, анатомию и классы.

Фрагменты – преимущество пользовательского интерфейса. Иногда пользователю удобно видеть на одном экране два разных представления двух разных классов.

Photo by Andrea Piacquadio from Pexels

5. Не использовать Main Thread

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

Зачастую приложению приходится использовать вызываемые во второстепенном потоке события. Класс MainThread позволяет выполнять код в основном потоке приложения с последующей проверкой его выполнения. Тем самым поддерживается отзывчивость пользовательского интерфейса. 

Этот метод предотвращает отложенный отклик действий пользователя, при котором приложение перестает отвечать. Лишение пользователя контроля над приложением сильно разочаровывает его, а разочарованные пользователи обычно оставляют негативные отзывы.

6. Игнорирование чужих наработок

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

  • Awesome Android UI – подборка UI/UX библиотек.
  • Android tips and tricks – советы и тонкости разработки.
  • Android best practices – несколько неплохих практик Android-разработки.
  • MPAndroidChart – удобная библиотека для визуализации данных.
  • Android-CleanArchitecture – образец приложения с грамотно выстроенной архитектурой.
  • MaterialDrawer – простая библиотека в стиле Material Design.
  • Android Guides – полезный обучающий контент.

7. Игнорирование интересов пользователя

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

Вот несколько советов по улучшению взаимодействия пользователя с продуктом:

  1. Навигация должна быть интуитивно-понятной (сделайте так, чтобы элементы интерфейса не требовали дополнительных пояснений).
  2. Не допускайте перегруженности (используйте принципы минимализма).
  3. Не заставляйте пользователя много работать с клавиатурой.
  4. Сенсорные элементы должны быть удобными для пальцев.
  5. Тексты должны быть читаемыми.
  6. Цветовая схема должна быть приятной для глаза и хорошо прорисовываться.
  7. Учитывайте положения большого пальца, потому что 50% юзеров пользуются только этим пальцем.

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

8. Не использовать растровые изображения

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

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

В такой ситуации грамотным решением являются растровые картинки формата nine-patch – специальные файлы PNG с информацией о том, какие области можно растягивать, а какие — нет. Для изображений масштабируемых компонентов обязательно используйте этот формат.

9. Использование Deep View Hierarchy (иерархии глубокого просмотра)

Глубокая вложенность

Чтобы изобразить контент в учетной записи разработчика Android, вам необходимо отпарсить XML, измерить экраны и разместить все элементы в правильном порядке.

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

Это особенно важно, когда макет раздувается, например, при использовании ListView или GridView. Максимально упрощайте себе работу и не усердствуйте со вложенностью.

10. Игнорирование новых тенденций и обновлений SDK

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

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх