То, что я хотел бы знать, когда начинал разработку Android

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

1. Выберите правильную архитектуру и используйте ее с самого начала

Вы когда-нибудь слышали все эти аббревиатуры, такие как MVC, MVP, MVVM и т. Д.? Это разные программные архитектуры, и вы должны их знать.

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

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

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

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

Такой дизайн создает согласованный UX, учитывает разделение задач и оптимизирован для тестирования и масштабируемости. Очевидно, что не существует единой идеальной структуры для любой ситуации, как утверждает Google:

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

Ресурсы

Поскольку это не является целью данной статьи, я не буду объяснять детали этой архитектуры, но перечислю все полезные ресурсы:

2. Сторонние библиотеки: найдите правильный баланс

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

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

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

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

Итак, мой совет - найти правильный баланс. Если у вас возникла проблема во время разработки, и кто-то уже решил ее с помощью отличной библиотеки, используйте ее. Если вам нужен HTTP-клиент, вы можете использовать Retrofit.

Если вам нужно скачать и управлять большим количеством изображений, вы можете использовать Glide. Это отличные библиотеки, очень известные и стабильные.

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

Ресурсы

Андроид Арсенал поддерживает огромную базу данных практически со всеми доступными библиотеками Android.

3. Начните с простого и понятного интерфейса.

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

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

«Пользовательский интерфейс похож на шутку, если вам нужно его объяснять, это не так уж и хорошо». - Мартин Леблан

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

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

Не забудьте протестировать свой пользовательский интерфейс на дисплеях разного размера и разрешения. Никогда не используйте фиксированные единицы измерения, такие как пиксели, всегда используйте динамические единицы измерения, такие как dp ( или sp для текста).

Ресурсы

  • Dribbble: когда вы не знаете, с чего начать, вы можете поискать вдохновение в этом фантастическом сообществе дизайнеров.
  • Google Material Design: адаптируемая система руководств, компонентов и инструментов, поддерживающая лучшие практики дизайна пользовательского интерфейса.
  • Психология повседневных вещей: хорошая книга Дона Нормана о юзабилити в повседневной жизни.

4. Тест, тест, тест

Сколько раз вы думали: «Я протестировал приложение на своем смартфоне, и оно работает!»

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

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

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

Как видно из иллюстрации, мы можем выделить три уровня тестирования:

  • Модульные тесты: для проверки поведения вашего приложения по одному классу за раз.
  • Интеграционные тесты: для проверки взаимодействия между уровнями стека внутри модуля или взаимодействия между связанными модулями.
  • Тесты пользовательского интерфейса: для проверки поведения пользовательского интерфейса и пользовательского потока.

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

Эмпирическое правило, предложенное Google, состоит в том, чтобы разделить ваши тесты на 70% небольших тестов (модульные тесты), 20% средних тестов (интеграционные тесты), 10% больших тестов (тесты пользовательского интерфейса и сквозные тесты).

Ресурсы

5. Android Studio - ваш друг

Конечно, вы уже используете эту IDE, но используете ли вы весь ее потенциал?

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

  • Эмулятор устройства для проверки поведения вашего приложения на разных устройствах с разными версиями Android.
  • APK Analyzer для анализа размера приложения путем проверки содержимого APK.
  • Профилировщики в реальном времени для анализа статистики использования ЦП, памяти и сети в реальном времени.
  • Firebase Assistant для подключения приложения к Firebase и добавления всех необходимых служб Firebase всего за несколько кликов.
  • Vector Asset Studio позволяет легко создать новый ресурс изображения для любого размера плотности.

А знаете ли вы, что в Android Studio также есть функция, которая превращает ваш компьютер в печь?

Ресурсы

Для получения дополнительной информации и возможностей см. Руководство пользователя Android Studio.

6. Всегда используйте Git

Git - это система контроля версий (VCS), и на самом базовом уровне VCS позволяет делать две замечательные вещи: отслеживать изменения в ваших файлах, и это упрощает работу над большими проектами с несколькими разработчиками.

Я не понимаю, зачем мне использовать Git, я могу просто сделать резервную копию своего проекта. - Я, 3 года назад

Я знаю я знаю.

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

  • Ваш исходный код надежно хранится в облаке и доступен где угодно.
  • Доступны все предыдущие версии вашего кода. Вы можете проверить старые версии и даже вернуться, если что-то пошло не так.
  • Командная работа упрощена. Каждый разработчик может работать над параллельной ветвью и при необходимости объединять изменения.
  • Вы можете внести свой вклад в тысячи проектов с открытым исходным кодом.
  • С такими платформами, как GitHub и BitBucket, у вас есть возможность создавать и показывать свое портфолио проектов.

Есть много других причин, но я надеюсь, что этих причин достаточно, чтобы донести мысль: если вы думаете, что Git вам не нужен, вы ошибаетесь.

Ресурсы

Руководства GitHub и BitBucket для начала работы с Git.

7. Используйте контрольный список выпуска.

Бывает время, когда вы думаете, что ваше приложение готово к публикации. Но так ли это на самом деле? Как ты можешь быть уверен? На этом этапе никогда не следует торопиться и лучше задать себе несколько вопросов:

  • Я удалил какой-либо код отладки?
  • Достаточно ли я провел тестов?
  • Обновил ли я название и код версии в Gradle сборки?
  • Я включил Proguard, чтобы скрыть код APK?
  • Я локализовал свое приложение?
  • Подготовил ли я свою учетную запись разработчика в Google Play?

Если вы можете ответить «да» на все эти вопросы, вы можете продолжать. Я предлагаю вам создать пакет Android App Bundle (aab) вместо APK, чтобы оптимизировать размер и ресурсы вашего приложения.

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

Ресурсы

Вот отличный контрольный список для запуска от разработчиков Android.

Заключительные слова

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

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