Инструкция · обновлено 21 августа 2026
Как создать мобильное приложение: 7 шагов до магазина
Запрос «как создать мобильное приложение» упирается в один и тот же страх: сейчас окажется, что нужны 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, и в ответ появляется следующая строка
Три вещи до старта
- Скачай Node.js - это программа, которая умеет запускать код на JavaScript вне браузера с официального сайта nodejs.org берёшь версию LTS (на сайте так и подписано - «долгосрочная поддержка»), дальше обычные кнопки «Далее»
- Поставь Expo Go на телефон ищешь по названию в магазине приложений своего телефона, нажимаешь кнопку установки - ни аккаунта разработчика, ни оплаты для этого шага не нужно
- Если правки экрана будешь диктовать словами - поставь 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
Три строки до готовой заготовки
- Впечатай
npx create-expo-app@latest moe-prilozhenie --template default@sdk-57и нажми Enter появится строка «Your project is ready!» - рядом на диске возникла новая папка moe-prilozhenie с готовым каркасом приложения (имя папки можешь поменять на своё) - Впечатай
cd moe-prilozhenieи нажми Enter адрес перед курсором сменится на имя этой папки - теперь все следующие команды выполняются внутри неё, а не где попало - Впечатай
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-код и первый запуск
- Впечатай
npx expo startи нажми Enter на экране нарисуется QR-код блоками и строка «Scan the QR code above to open in Expo Go» - Наведи камеру телефона на этот QR-код телефон сам предложит открыть ссылку в приложении Expo Go - через несколько секунд приложение откроется на экране телефона
- Сохрани файл экрана в любом текстовом редакторе, ничего не меняя приложение на телефоне перезагрузится само, без единой команды - именно это умение и понадобится в следующем шаге
Телефон и компьютер должны быть в одной сети 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 и засёк время
Одна фраза - одна правка
- Сохрани задачу в переменную:
PROMPT='Открой файл src/app/index.tsx и поменяй заголовок первого экрана: вместо "Welcome to Expo" сделай "Мой список дел". Больше ничего не меняй.'и нажми Enter экран ничего не покажет - строка просто сохранится, и фраза дальше не столкнётся кавычками со второй командой - Впечатай
claude -p "$PROMPT" --allowedTools "Read,Edit,Write,Glob,Grep" --permission-mode acceptEditsи нажми Enter через несколько секунд появится короткий ответ о том, что именно поменяно - без вопросов и без запроса подтверждения на каждый файл - Сверь правку командой
git diff --statесли она покажет несколько файлов вместо одного, модель ушла не туда - правку стоит откатить и переформулировать фразу точнее
Три части самой фразы делают её рабочей. Первая - точный адрес файла, чтобы модель не искала наугад. Вторая - что было и что должно стать, дословно. Третья - «больше ничего не меняй»: без неё ИИ охотно перекроит соседние строки заодно. А во второй строке важен каждый флаг: без них правки в файле не будет вовсе, и голая команда без флагов просто ответит текстом, ничего не тронув в файле
Мой прогон 18.08.2026: ответ пришёл через 22.392 секунды, модель сама назвала строку 38 в файле index.tsx и подтвердила, что больше ничего не тронула. Проверка git diff показала: один файл, одна строка добавлена и одна удалена
Результат я смотрел в том же окне предпросмотра, что и в шаге 2, - клавишей w. Заголовок «Мой список дел» встал на место, а строчкой ниже осталась подпись с именем файла, который правил ИИ - тем самым src/app/index.tsx
Так же формулируются и следующие правки: добавить поле ввода, добавить кнопку, сохранять список между запусками. Если хочется понять сам подход, а не только команды этой статьи, у меня он разобран отдельно - вайбкодинг с нуля. Здесь же дальше техника: приложение работает, значит пора готовить его к сборке
Шаг 4. Проверить проект перед сборкой
Одна команда прогоняет проект по списку проверок и говорит, готов ли он к сборке: несовпадение версий, забытый кусок кода, кривая настройка. Делать её нужно до сборки, а не после неудачной
Проверка перед сборкой
- Впечатай
npx expo-doctorи нажми Enter появится строка «Running N checks on your project...», а через несколько секунд - итог: сколько проверок пройдено - Прочитай итоговую строку «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, документация, сборка приложений
Четыре команды к готовому файлу
- Впечатай
npm install --global eas-cliи нажми Enter на компьютер встанет инструмент облачной сборки - без него дальше не пройти - Впечатай
eas loginи нажми Enter откроется вход в бесплатный аккаунт Expo - без него облако не поймёт, чей это проект - Впечатай
eas build:configureи нажми Enter рядом появится файл настроек сборки - в нём облако держит, как именно собирать твоё приложение - Впечатай
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, условия участия в программе разработчика
Отправка в оба магазина
- Впечатай
eas submit --platform android --path ./my-app.aabи нажми Enter файл AAB уходит в Google Play - именно им та же облачная сборка из шага 5 и заканчивалась - Впечатай
eas submit --platform ios --path ./my-app.ipaи нажми Enter файл IPA уходит в App Store: через 10-15 минут он появляется в TestFlight - способе показать приложение знакомым до публикации
| Google Play | App Store | |
|---|---|---|
| Плата за аккаунт | 25 долларов разово | 99 долларов в год |
| Что отправляем | файл AAB | файл IPA |
| Возраст владельца аккаунта | от 18 лет | совершеннолетие по законам своего региона |
| Тест до публикации | закрытый тест в Google Play Console | TestFlight |
| Отдельное условие для новичка | 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». То есть двенадцать живых людей должны две недели подряд числиться в твоём тесте, и только после этого можно проситься в открытую публикацию
Отсюда единственный рабочий порядок для новичка: сначала файл 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, Expo | 0 | да, без этого не начать |
| Expo Go на телефон | 0 | да, это способ увидеть приложение |
| Сборка в облаке EAS, тариф Free | $0 в месяц, 15 сборок Android и 15 iOS | да, если нужен файл для установки |
| Claude Code | подписка, цена и оплата - в моём гайде установки | нет, код можно писать руками |
| Аккаунт Google Play | 25 долларов разово | только для публикации в Google Play |
| Apple Developer Program | 99 долларов в год | только для публикации в App Store |
Таблица прокручивается вбок →
Из таблицы видно, где проходит граница. Дойти до работающего приложения на своём телефоне и показать его знакомым можно бесплатно: файл preview из шага 5 ставится напрямую, минуя магазин. Деньги начинаются там, где приложение должно стать доступно посторонним через поиск в магазине
Время расходуется несимметрично цене. Первые пять шагов у меня заняли меньше часа: проект создался, недостающие куски кода доехали за 36 секунд, правка от ИИ прошла за 22.392 секунды. А публикация в Google Play для нового личного аккаунта упирается в те самые 14 дней закрытого теста, и ускорить их нечем
Отсюда разумный порядок: сначала собрать приложение и убедиться, что им пользуются хотя бы знакомые, и только потом платить за аккаунты. Обратный порядок - заплатить 124 доллара и потом придумывать, что выкладывать
Источники
- Команда создания проекта - Expo, создание проекта
- QR-код, клавиши запуска, автоперезагрузка и режим туннеля - Expo, начало разработки
- Настройка окружения для разработки - Expo, настройка окружения
- Текущая линия SDK 57 и способы установки Expo Go - Expo Go
- Облачная сборка приложений - Expo, EAS Build
- Команды установки и запуска сборки - Expo, настройка EAS Build
- Команды отправки в магазины и сроки TestFlight - Expo, отправка в магазины приложений
- Тарифы облачной сборки и лимиты бесплатного плана - Expo, цены
- Разовая плата 25 долларов за аккаунт разработчика - Google Play, справка по созданию аккаунта
- Требование 12 тестировщиков и 14 дней для новых личных аккаунтов - Google Play, требования к тестированию
- Годовая плата 99 долларов за программу разработчика - Apple, условия участия
Памятка: путь до первого приложения
Семь строк, по одной на шаг, в этом же порядке
Сохрани себе
- Поставь программу для 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»