5 ошибок Android разработчика

5 ошибок Android разработчика

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

1. Не все строки помещены в strings.xml

Эта ошибка приводит к сложностям локализации. Если Вы решите перевести интерфеBRj rйс своего приложения на другой язык, то столкнетесь с серьезными трудностями, поскольку Вам придется разрабатывать собственный велосипед, который будет отображать правильные сообщения в зависимости от языка пользователя. Если все текстовые сообщения и подписи помещены в файл strings.xml, то стандартные средства позволят вам легко локализовать приложение. Android OS просто выберет нужный файл со строками в зависимости от выбранного в системе языка.

Вот несколько популярных отговорок, которые используют разработчики:

  • Для доступа нужен context. Если Вы хотите отобразить строку в вашем интерфейсе, Вам потребуется какой-нибудь context для доступа к строке, однако Вы всегда можете использовать текущий контекст для извлечения строки.
  • Мне нужна строковая константа только в одном месте. Возможно уже завтра Вы захотите использовать эту же строку в другом файле. Лучше потратить немного времени, чтобы избежать проблем в будущем.
  • Значения строки зависит от текущего состояния приложения. В Android эта проблема уже решена. Android поддерживает параметризированные строки. Их синтаксис очень похож на String.format() в Java. Более того, Android поддерживает множественные строки (plural-strings), которые могут изменять свои значения в зависимости от значения некоторой переменной.

2. Не использование привязки данных (data-binding)

Вы пишите громоздкие вызовы findViewById, а затем вынуждены поддерживать ссылку на эти представления в их текущем пространстве имен? Ведь в этом случае нужно сохранять id текущего view, чтобы быть уверенным, что используется правильный view id при вызове findViewById. Android Studio в автоподстановке предлагает все id из всех layout, а метод findViewById может достать только объекты из текущего layout. Для всех других он возвращает null. В результате, возможно возникновение NullPointerException.

Google значительно упростил интеграцию data-binding в новые и существующие приложения, что позволяет отказаться от использования этих громоздких определений ссылок на view.

Вот несколько преимуществ использования DataBinding

  • Ссылки делаются только на доступные представления. При попытке получить доступ к отсутствующему компоненту возникает ошибка на этапе компиляции (а не на этапе выполнения, как происходит в описанном выше случае).
  • Немного увеличивается скорость, поскольку дерево layout-ов просматривается только один раз, а не при каждом вызове findViewById.
  • Пространство имен остается не замусоренным, поскольку Вам не нужно хранить ссылки на все используемые view.
  • Вы можете просто отказаться от findViewById, либо использовать более продвинутые возможности DataBinding.

3. Не скрываются ключи API

Эта проблема является характерной чертой всех junior разработчиков. Единожды закомиченный кусок кода для контроля версии остается там навечно. Код обычно космитится не задумываясь вместе с ключами. Даже если Вы удалите этот ключ API в будующих комитах, любой имеющий доступ к репозиторию может увидеть ключ в истории, что потенциально может привести к ряду проблем.

4. Жизненный цикл Activity не принимается во внимание

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

5. Игнорирование горячих клавиш Android Studio

Это замечание не касается напрямую кода, который Вы пишете, но сильно сказывается на Вашей производительности. Android Studio основана на IntelliJ Idea (компании Jetbrains), которая неплохо заточена на работу с горячими клавишами. Вы можете значительно упростить себе жизнь, потратив немного времени на изучение этого вопроса. Ниже приведены мои любимые ресурсы, которые могут Вам в этом помочь:

  • KeyPromoter - это IntelliJ plugin, который показывает громадный диалог с горячими клавишами для действия которое Вы только что выполнили. Поверьте мне, этот плагин очень помогает в изучении.
  • Jetbrains выпускает официальную шпаргалку с горячими клавишами. Ее можно легко найти в Google или Yandex по запросу IntelliJIDEA_ReferenceCard.pdf.

Заключение

Это пять вещей, на которые обязательно должен обратить внимание любой Android разработчик. Кстати, на сайте https://sim-trade.ru/numbers/mts/ можно подобрать и купить красивые номера телефонов МТС по адекватным ценам.

Оригинальную статью на английском языке можно прочитать здесь.


Наши соцсети

Подписаться Facebook Подписаться Вконтакте Подписаться Twitter Подписаться Google Подписаться Telegram

Популярное

Ссылки

Новости [1] [2] [3]... Android/ iOS/ J2ME[1] [2] [3]) Android / Архив

Рейтинг@Mail.ru Яндекс.Метрика
MobiLab.ru © 2005-2018
При использовании материалов сайта ссылка на www.mobilab.ru обязательна