Инструкция · обновлено 21 августа 2026

Как создать мобильное приложение: 7 шагов до магазина

Документация Expo, глава Create your first app: слева туториал из девяти шагов, справа шаг Initialize a new Expo app

Запрос «как создать мобильное приложение» упирается в один и тот же страх: сейчас окажется, что нужны Mac, Xcode, два языка и полгода. Ничего этого ниже нет: семь шагов от пустой папки до файла на телефоне, причём код я не набирал буквами - правку экрана продиктовал фразой на русском, а внёс её ИИ-агент за 22.392 секунды. Прогоны мои, от 18.08.2026

Xcode и Android Studio для этого не нужны: проект заводится одной командой npx create-expo-app, открывается на телефоне по QR-коду через приложение Expo Go, правку экрана вносит ИИ по фразе на русском, а установочный файл собирается в облаке. Ниже 7 шагов с моими прогонами и честная граница денег: 25 долларов у Google и 99 в год у Apple

Из моего вечера 18 августа

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

Проект создался одной командой, недостающие детали доехали за 36 секунд, а заголовок первого экрана поменял не я: задачу я написал словами, ИИ-агент открыл нужный файл и переписал одну строку за 22.392 секунды. Смотреть на это было приятно недолго, а дальше встал вопрос, которого в этой статье нет: кому это приложение нужно и на чём тут зарабатывают. Про вторую половину пути я пишу в канале ИИ-Лагерь

Посмотреть мои сборки

Что нужно, чтобы собрать мобильное приложение самому

Нужен один язык, одна папка на компьютере и телефон в руке: всё остальное - выбор пути, и путей ровно три. Конструктор без кода, нативная разработка под каждую систему отдельно и React Native с Expo, где один код превращается сразу в приложение для iPhone и для Android

Разница между ними не в сложности, а в том, чем ты платишь. Конструктор берёт деньгами каждый месяц и упирается в потолок: чего в нём не предусмотрено, того не будет. Нативная разработка требует Xcode на Mac и Android Studio, двух языков и двух отдельных проектов. Третий путь платит временем один раз: настраиваешь компьютер один вечер и дальше пишешь один раз для двух систем

ПутьЧем платишьЧто нужно поставитьКогда выбирать
Конструктор без кодаподпиской каждый месяцничего, всё в браузеренужен прототип на один показ, дальше приложение не живёт
Нативная разработкадвумя языками и двумя средамиXcode на Mac, Android Studioпишешь работу с NFC, SMS или низкоуровневым Bluetooth
React Native и Expoодним вечером на настройкукомпьютер и телефон, ничего большенужно своё приложение на двух системах и контроль над кодом

Таблица прокручивается вбок →

Третий путь и разбираем дальше: он единственный снимает главный барьер новичка. Xcode и Android Studio ставить не нужно ни на одном из семи шагов, сборку финального файла делает облако, а первый запуск идёт на твоём телефоне через бесплатное приложение из магазина

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

Шаг 0. Что поставить на компьютер и на телефон

До первой команды нужны три вещи: программа для JavaScript на компьютер, бесплатное приложение Expo Go на телефон и Claude Code, если правки экрана собираешься диктовать словами. Все три ставятся один раз, и дальше к этому шагу не возвращаешься

Команды из этой статьи впечатываются в одно и то же окно на компьютере: на Mac оно лежит в «Программы → Утилиты → Терминал», на Windows открывается через «Пуск → Терминал» (в старых сборках - PowerShell). Устроено оно просто, как переписка с компьютером текстом вместо картинок и кнопок: печатаешь одну строку, жмёшь Enter, и в ответ появляется следующая строка

Три вещи до старта

  1. Скачай Node.js - это программа, которая умеет запускать код на JavaScript вне браузера с официального сайта nodejs.org берёшь версию LTS (на сайте так и подписано - «долгосрочная поддержка»), дальше обычные кнопки «Далее»
  2. Поставь Expo Go на телефон ищешь по названию в магазине приложений своего телефона, нажимаешь кнопку установки - ни аккаунта разработчика, ни оплаты для этого шага не нужно
  3. Если правки экрана будешь диктовать словами - поставь Claude Code вход, оплату и первый запуск я разобрал по шагам в отдельной инструкции по установке - без него команду из третьего шага будет некуда вставлять

Проверил доступность утром 18.08.2026 из Москвы, семь адресов подряд: сайт expo.dev, страница документации docs.expo.dev, сайт reactnative.dev, сайт разработчика Apple developer.apple.com и адрес registry.npmjs.org ответили одним и тем же кодом - в интернете его подписывают числом 200, это значит «страница открылась с первого раза». Вход в Google Play Console перебросил на другой адрес (301), а nodejs.org тоже перебросил (307). Ни один из семи адресов не ответил так, будто путь заблокирован

Отдельно честно: пройдёт ли оплата 25 и 99 долларов российской картой и проверка личности в кабинетах магазинов - этого я не проверял, открытая страница и прошедший платёж разные вещи

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

Шаг 1. Создать заготовку приложения одной командой

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

Три строки до готовой заготовки

  1. Впечатай npx create-expo-app@latest moe-prilozhenie --template default@sdk-57 и нажми Enter появится строка «Your project is ready!» - рядом на диске возникла новая папка moe-prilozhenie с готовым каркасом приложения (имя папки можешь поменять на своё)
  2. Впечатай cd moe-prilozhenie и нажми Enter адрес перед курсором сменится на имя этой папки - теперь все следующие команды выполняются внутри неё, а не где попало
  3. Впечатай npm install и нажми Enter появится строка вида «added N packages» - на компьютер докачались все недостающие куски кода, без которых заготовка не запустится

У меня на прогоне 18.08.2026: программа для JavaScript версии v25.9.0, её менеджер версии 11.12.1, а третья команда добавила 590 недостающих кусков кода за 36 секунд - это и есть весь объём подготовки. Ни Xcode, ни Android Studio на этом шаге не открывались вовсе

Слово SDK в первой команде значит «готовый набор частей приложения»: 57 - номер линии, а номер говорит, что все части этой заготовки подобраны друг под друга и не спорят версиями между собой

Что лежит в папке после этих трёх строк: каркас с двумя экранами и нижним меню, файл настроек с именем и иконкой приложения, папка с самими экранами - каждый файл экрана обычный текстовый файл, который можно открыть и прочитать

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

Шаг 2. Открыть приложение на своём телефоне

Одна команда запускает программу-наблюдателя: она остаётся работать в фоне, как приёмник, который не выключаешь, пока слушаешь, и постоянно следит за файлами проекта. Заодно она рисует QR-код прямо на экране

QR-код и первый запуск

  1. Впечатай npx expo start и нажми Enter на экране нарисуется QR-код блоками и строка «Scan the QR code above to open in Expo Go»
  2. Наведи камеру телефона на этот QR-код телефон сам предложит открыть ссылку в приложении Expo Go - через несколько секунд приложение откроется на экране телефона
  3. Сохрани файл экрана в любом текстовом редакторе, ничего не меняя приложение на телефоне перезагрузится само, без единой команды - именно это умение и понадобится в следующем шаге

Телефон и компьютер должны быть в одной сети Wi-Fi - это единственное условие. Если сеть не даёт им увидеть друг друга (частая история в кафе и в офисах с гостевым Wi-Fi), документация Expo предлагает обходной путь - команду npx expo start --tunnel: она пускает соединение в обход, через инфраструктуру самой Expo, и работает даже с мобильного интернета. Плата за это названа в документации прямо:

«Using the Tunnel connection type will make the app reloads considerably slower than on LAN or Local»

Expo, документация, начало разработки

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

Значит вопрос сместился. Не «как увидеть правку», а «кто её напишет»

Шаг 3. Поручить правку экрана ИИ

Правка формулируется обычной фразой на русском, а в файл её вносит Claude Code: ты называешь файл и то, что нужно изменить, он открывает файл и меняет ровно эту строку. Я прогнал такую правку 18.08.2026 и засёк время

Одна фраза - одна правка

  1. Сохрани задачу в переменную: PROMPT='Открой файл src/app/index.tsx и поменяй заголовок первого экрана: вместо "Welcome to Expo" сделай "Мой список дел". Больше ничего не меняй.' и нажми Enter экран ничего не покажет - строка просто сохранится, и фраза дальше не столкнётся кавычками со второй командой
  2. Впечатай claude -p "$PROMPT" --allowedTools "Read,Edit,Write,Glob,Grep" --permission-mode acceptEdits и нажми Enter через несколько секунд появится короткий ответ о том, что именно поменяно - без вопросов и без запроса подтверждения на каждый файл
  3. Сверь правку командой git diff --stat если она покажет несколько файлов вместо одного, модель ушла не туда - правку стоит откатить и переформулировать фразу точнее

Три части самой фразы делают её рабочей. Первая - точный адрес файла, чтобы модель не искала наугад. Вторая - что было и что должно стать, дословно. Третья - «больше ничего не меняй»: без неё ИИ охотно перекроит соседние строки заодно. А во второй строке важен каждый флаг: без них правки в файле не будет вовсе, и голая команда без флагов просто ответит текстом, ничего не тронув в файле

Мой прогон 18.08.2026: ответ пришёл через 22.392 секунды, модель сама назвала строку 38 в файле index.tsx и подтвердила, что больше ничего не тронула. Проверка git diff показала: один файл, одна строка добавлена и одна удалена

Результат я смотрел в том же окне предпросмотра, что и в шаге 2, - клавишей w. Заголовок «Мой список дел» встал на место, а строчкой ниже осталась подпись с именем файла, который правил ИИ - тем самым src/app/index.tsx

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

Шаг 4. Проверить проект перед сборкой

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

Проверка перед сборкой

  1. Впечатай npx expo-doctor и нажми Enter появится строка «Running N checks on your project...», а через несколько секунд - итог: сколько проверок пройдено
  2. Прочитай итоговую строку «N/N checks passed. No issues detected!» значит - можно собирать; если пройдено меньше, инструмент печатает каждое замечание отдельной строкой с тем, что чинить

Мой прогон 18.08.2026: инструмент Expo версии 57.0.16, в проекте react 19.2.3 и react-native 0.86.2, и все 21 проверка из 21 пройдены без единого замечания

Заодно видно, из чего собран проект. React Native превращает один код в два приложения, React - та же библиотека, что в вебе, Expo - надстройка, которая избавляет от Xcode и Android Studio

Отсюда и выгода этого набора для новичка: если ты уже собирал сайт, у тебя тот же React и тот же Claude Code, просто результат теперь не в браузере, а на телефоне. Если сайта ещё не было, начать проще с него - путь разобран в гайде ИИ создать сайт

Проект проверен, значит можно превращать его в файл, который ставится на телефон без всякого Expo Go

Шаг 5. Собрать установочный файл без Xcode

Сборку делает облако Expo, а не твой компьютер: ты отдаёшь проект командой, а обратно получаешь ссылку на готовый файл для установки. Именно поэтому на всём пути ни Xcode, ни Android Studio не понадобились. Документация Expo формулирует это прямо:

«EAS Build is a hosted Expo Application Services (EAS) service that builds app binaries for your Expo and React Native projects»

Expo, документация, сборка приложений

Четыре команды к готовому файлу

  1. Впечатай npm install --global eas-cli и нажми Enter на компьютер встанет инструмент облачной сборки - без него дальше не пройти
  2. Впечатай eas login и нажми Enter откроется вход в бесплатный аккаунт Expo - без него облако не поймёт, чей это проект
  3. Впечатай eas build:configure и нажми Enter рядом появится файл настроек сборки - в нём облако держит, как именно собирать твоё приложение
  4. Впечатай eas build --platform android и нажми Enter проект уйдёт в очередь на сборку в облаке - начинать стоит с Android, файл для него ставится на телефон напрямую

У меня установленный инструмент eas-cli версии 22.0.0 - эту команду проверки версии я прогнал 18.08.2026, а саму отправку в облако не гонял: она требует входа в личный аккаунт Expo, поэтому время сборки в статье не называю

Профиль preview в третьей команде даёт файл, который можно просто скинуть друзьям в мессенджер и поставить мимо магазина - с него и стоит начинать, чтобы увидеть своё приложение вне Expo Go. Профиль production собирает то, что уезжает в магазин

Сколько это стоит: на тарифе Free сборка бесплатна, и её хватает с запасом на первое приложение

Тариф EASЦенаЧто входит в месяцОчередь
Free$0 в месяц15 сборок для Android и 15 для iOSнизкоприоритетная
Starter$19 в месяцсборок на $45, сверх этого - отдельной строкойприоритетная
Production$199 в месяцсборок на $225, сверх этого - отдельной строкойприоритетная

Таблица прокручивается вбок →

Пятнадцать сборок в месяц - это пятнадцать попыток, а на первое приложение обычно уходит две-три

Файл собран, и остаётся последнее - то, что стоит денег

Шаг 6. Выложить приложение в магазин

Здесь заканчивается бесплатная часть: аккаунт в Google Play стоит 25 долларов один раз, участие в программе Apple - 99 долларов в год. Всё, что было до этого шага, не стоило ни рубля, и честно назвать границу важнее, чем красиво пообещать «бесплатно»

Формулировки взяты со страниц самих магазинов. Google Play, справка по созданию аккаунта разработчика: «There is a US$25 one-time registration fee». Apple, страница условий участия:

«The Apple Developer Program annual fee is 99 USD and the Apple Developer Enterprise Program annual fee is 299 USD, in local currency where available»

Apple, условия участия в программе разработчика

Отправка в оба магазина

  1. Впечатай eas submit --platform android --path ./my-app.aab и нажми Enter файл AAB уходит в Google Play - именно им та же облачная сборка из шага 5 и заканчивалась
  2. Впечатай eas submit --platform ios --path ./my-app.ipa и нажми Enter файл IPA уходит в App Store: через 10-15 минут он появляется в TestFlight - способе показать приложение знакомым до публикации
Google PlayApp Store
Плата за аккаунт25 долларов разово99 долларов в год
Что отправляемфайл AABфайл IPA
Возраст владельца аккаунтаот 18 летсовершеннолетие по законам своего региона
Тест до публикациизакрытый тест в Google Play ConsoleTestFlight
Отдельное условие для новичка12 тестировщиков непрерывно 14 днейнет такого требования

Таблица прокручивается вбок →

Две строки таблицы стоит расшифровать. AAB и IPA - расширения готовых файлов приложения: первый уезжает в Google Play, второй в App Store. А возраст магазины формулируют по-разному: Google Play называет число, «You must be at least 18 years of age to sign up for a Play Console account» (Google Play, справка по созданию аккаунта), Apple числа не пишет вовсе и требует «be the legal age of majority in your region», то есть совершеннолетие по законам своего региона (Apple, условия участия)

Последняя строка таблицы - главный сюрприз для тех, кто рассчитывал выложиться за вечер. С ноября 2023 года Google Play требует от новых личных аккаунтов сначала прогнать закрытый тест: «Developers with personal accounts created after November 13, 2023, must run a closed test for their app with a minimum of 12 testers who have been opted in continuously for at least 14 days». То есть двенадцать живых людей должны две недели подряд числиться в твоём тесте, и только после этого можно проситься в открытую публикацию

Абзац справки Google Play про закрытое тестирование: не менее 12 пользователей на протяжении хотя бы 14 дней подряд
Та самая строка из справки Google Play: заявку на публикацию рабочей версии принимают только после закрытого теста с 12 участниками, которые пробыли в нём 14 дней подряд

Отсюда единственный рабочий порядок для новичка: сначала файл preview друзьям в мессенджер, потом закрытый тест на 12 человек, и только потом магазин. Планировать «выложусь на выходных» бессмысленно - две недели теста никуда не денутся

Три места, где новичок застревает

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

Первое. Команда expo init больше не работает как раньше. Это команда старого поколения инструмента, и статьи с ней до сих пор лежат в поиске. Актуальный способ один - npx create-expo-app@latest, ровно он стоит в документации Expo на 18.08.2026. Если ИИ предложил expo init, скажи ему одну фразу: «эта команда устарела, используй create-expo-app» - и он перестроится

Второе. «Давай просто завернём твой сайт в приложение». Заманчиво: сайт уже есть, обёртка делается за час. Но получается не приложение, а браузер без адресной строки, и Apple такие вещи заворачивает на модерации без подробных объяснений. Отвечать нужно так же коротко: «нет, делаем настоящее приложение на React Native»

Третье. «У тебя же Mac, поставим Xcode». Xcode - среда разработки Apple весом в десятки гигабайт. На пути из этой статьи она не открывается ни разу: приложение проверяется через Expo Go, а финальный файл собирается в облаке. Ставить её ради первого приложения не нужно, и Android Studio тоже

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

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

Сколько стоит первое приложение в деньгах и днях

До магазина - ноль, в магазине - 25 долларов за Google Play разово и 99 долларов в год за Apple. Всё, что между: инструменты, сборка, тесты на своём телефоне, не стоит ничего

ЧтоСколькоОбязательно ли
Программа для JavaScript, React Native, Expo0да, без этого не начать
Expo Go на телефон0да, это способ увидеть приложение
Сборка в облаке EAS, тариф Free$0 в месяц, 15 сборок Android и 15 iOSда, если нужен файл для установки
Claude Codeподписка, цена и оплата - в моём гайде установкинет, код можно писать руками
Аккаунт Google Play25 долларов разовотолько для публикации в Google Play
Apple Developer Program99 долларов в годтолько для публикации в App Store

Таблица прокручивается вбок →

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

Время расходуется несимметрично цене. Первые пять шагов у меня заняли меньше часа: проект создался, недостающие куски кода доехали за 36 секунд, правка от ИИ прошла за 22.392 секунды. А публикация в Google Play для нового личного аккаунта упирается в те самые 14 дней закрытого теста, и ускорить их нечем

Отсюда разумный порядок: сначала собрать приложение и убедиться, что им пользуются хотя бы знакомые, и только потом платить за аккаунты. Обратный порядок - заплатить 124 доллара и потом придумывать, что выкладывать

Источники

Памятка: путь до первого приложения

Семь строк, по одной на шаг, в этом же порядке

Сохрани себе

  • Поставь программу для JavaScript версии LTS на компьютер и Expo Go на телефон
  • Создай проект командой npx create-expo-app@latest имя-проекта --template default@sdk-57
  • Запусти npx expo start и наведи камеру телефона на QR-код на экране
  • Сформулируй правку экрана словами в Claude Code и проверь её командой git diff
  • Прогони npx expo-doctor и почини всё, на что он пожалуется
  • Собери файл командой eas build с профилем preview и поставь его себе на телефон
  • Плати за аккаунты магазинов только после того, как приложением пользуются знакомые

Что было после этого экрана

После этой строки вопросы только начались

Когда заголовок в превью сменился на «Мой список дел», я ещё какое-то время смотрел на разницу в файле: одна строка, 22.392 секунды работы модели, и заготовка стала моим приложением. А потом открыл справку Google Play, прочитал про 12 тестировщиков и 14 дней подряд и понял, что собрать было самой лёгкой частью

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

Хочу собрать своё

Частые вопросы

Можно ли создать мобильное приложение без программирования?

Писать код руками не придётся: правки формулируются обычной фразой, а вносит их в файлы Claude Code. Проверять результат всё равно нужно самому - в моём прогоне 18.08.2026 команда git diff показала ровно одну изменённую строку, и это как раз то, что стоило проверить

Нужен ли Mac и Xcode, чтобы сделать приложение для iPhone?

Для разработки и проверки на своём телефоне - нет: код запускается через приложение Expo Go, а установочный файл собирается в облаке Expo. Mac и Xcode понадобятся, только если полезешь в код самой операционной системы, а на первом приложении такой задачи не возникает

Сколько стоит выложить приложение в магазин?

Аккаунт Google Play стоит 25 долларов один раз, участие в Apple Developer Program - 99 долларов в год. Всё до этого шага бесплатно: сам набор инструментов, приложение Expo Go и 15 сборок Android плюс 15 iOS в месяц на тарифе Free у EAS

Почему приложение не открывается на телефоне по QR-коду?

Чаще всего телефон и компьютер оказались в разных сетях Wi-Fi или сеть не даёт им увидеть друг друга. Решение из документации Expo - команда npx expo start --tunnel: она пускает соединение в обход, через инфраструктуру Expo, но перезагрузка приложения становится заметно медленнее

Сколько времени занимает публикация в Google Play для нового аккаунта?

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

Что выбрать новичку - React Native или Flutter?

React Native, если ты уже трогал сайты: это тот же язык и та же библиотека React, что в вебе, поэтому переучиваться почти не приходится. Flutter требует отдельного языка Dart, и на первом приложении эта разница ощущается сильнее любых сравнений производительности

Можно ли просто завернуть свой сайт в приложение?

Технически можно, но Apple такие обёртки заворачивает на модерации, и вместо приложения получается браузер без адресной строки. Если ИИ предлагает такой путь, его стоит остановить фразой «делаем настоящее приложение на React Native»

Иван Сергеев, автор гайда: практик вайбкодинга и вайбмаркетинга, портрет в квадратном кадре

Иван Сергеев

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