5 грубых ошибок новичков при создании Android-приложений — не повторяйте их!

A man working on a laptop with the Android logo behind him, surrounded by Kotlin code snippets and large angle bracket symbols on a blue background.

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

Родная разработка для Android: в разы мощнее и надежнее кроссплатформы

Когда я только начинал работать с Android, думал: «Кроссплатформа — это же удобно! Написал один раз, запускай где хочешь». Это отчасти правда: инструменты действительно ушли далеко за последние десять лет. Но если хочется настоящей глубокой интеграции с системой, по-настоящему “родное” приложение даст только нативная разработка.

Я сперва выбрал React Native — довольно близкий к нативному, по меркам кроссплатформы, инструмент. Первую версию приложения получилось собрать очень быстро: буквально за пару часов проект уже запускался на Android.

Android Jetpack Compose graphic with the Android bugdroid and other elements.

Однако, в итоге качество приложения всё равно не дотягивало до того уровня, которого я хотел добиться. Тогда я полностью переключился на Jetpack Compose (Kotlin) — официальный инструмент разработки для Android. Здесь всё работало именно так, как ожидаешь от настоящего Android-приложения.

Минус есть: если потом захочется сделать версию для iOS, Windows, macOS или веба, скорее всего, придётся писать каждую с нуля и поддерживать несколько разных кодовых баз. Уйдёт больше времени и сил, зато приложение на каждой платформе будет “чувствовать себя своим”.

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

Запускай приложение на реальном устройстве — сэкономишь и время, и нервы

Android studio virtual device running.

Эмуляторы, конечно, выручают: удобно проверить что-то “на лету”, не подсоединяя телефон через провод и не доставая гаджет из кармана. Но идеального комфорта они всё равно не дают.

Например, я делал приложение с авторизацией через Google и Apple (SSO). Теоретически, в эмуляторе тоже можно зайти в Google-аккаунт, но на практике намного проще сразу запускать всё на реальном телефоне — там уже есть нужные учетные записи и всё работает “из коробки”.

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

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

Не спеши с выбором базы данных — переделывать потом очень мучительно

A laptop with some code on the screen and a mouse cursor.

В начале работы я выбрал для хранения данных Google Firebase: удобно, быстро запускается, всё просто. Но довольно скоро понял — у Firebase структура NoSQL, а не привычные таблицы, как в SQL. Всё хранится в отдельных коллекциях, и для моих задач — генерации счетов, учёта клиентов и смет — этого было мало.

К счастью, я быстро это осознал, и был только на этапе тестовых данных — никаких потерь, кроме времени, не случилось.

Дальше я перешёл на Supabase: здесь всё устроено привычно, как в классических реляционных базах, плюс есть возможности хранения файлов, работы с аккаунтами и так далее. Но вот тут начались настоящие сложности: только успел разобраться с Firebase, как пришлось всё перекраивать, переучиваться и тратить время на миграцию. Работы стало в три раза больше!

Ситуацию усложняло ещё и то, что изначально я сочетал React Native с Firebase, потом пробовал Jetpack Compose с Firebase, а потом — снова переходил на Supabase. Гораздо проще (и нервнее спокойнее) было бы сразу выбрать подходящую связку Supabase и Compose.

AI помогает “кодить на вдохновении”, но иногда сильно тормозит

The ChatGPT logo on a gray embossed background.

Когда-то давно я мог кодить часами напролёт: писал прошивки для Android, делал свои приложения под Windows Phone и webOS. Сидел днями напролёт с консолью и редактором. Но с тех пор прошло уже больше десяти лет.

Чтобы быстрее войти в ритм, я решил идти “на интуиции”: быстро собирать куски, брать подсказки у ChatGPT или Claude, а остальное доделывать руками.

За пару часов получился вполне рабочий прототип: авторизация, облако, создание профиля. Сам удивился, как легко всё пришло.

Позже, уже после первых экранов, стал чаще писать код сам, хотя автодополнение в Visual Studio Code и Android Studio здорово ускоряют работу. Главное — финальное решение всё равно за мной.

Для креативного поиска и прототипирования такой подход идеален. Но иногда можно застрять на какой-то ерунде, и вместо обычных 10 минут поисков в Google провести полдня с ChatGPT, перетасовывая варианты подсказок. Тут главное — научиться вовремя останавливаться и учиться не только у ИИ, но и самому.

Создавать Android-приложения проще, чем кажется!

Concept of computer programming or developing software. Laptop computer with code on screen. Heart, message, cog, home, user, cloud, and lock icons.

Честно, долго не решался вновь заняться созданием мобильных приложений — думал, не хватит знаний или времени, да и стартовать будет слишком тяжело. Оказалось, зря! Уже за несколько часов у меня был первый рабочий прототип: вход по аккаунту, облако, профиль.

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

Да, свободного времени на хобби не так много. Но ощущение радости и азарта от результата того стоит! Сейчас думаю только одно: почему не начал раньше?

На самом деле создавать приложения под Android — проще, чем когда-либо. Горы документации, сотни видеоуроков, сильное комьюнити, ИИ-ассистенты вроде ChatGPT Code или Claude Code — начать можно даже без большого опыта в программировании. Главное — не бояться!

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!

Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в:

Алекс Бежбакин
Оцените автора
Добавить комментарий