Flet Python: собираем приложение без JavaScript
Flet 1.0 позволяет собрать мобильное приложение на Python с Claude Code без строчки JavaScript. Разбираем архитектуру, установку и подводные камни.

В этой статье
- Что такое Flet 1.0 и почему это не очередной «ещё один фреймворк»
- Как поставить задачу Claude Code, чтобы он не развалил структуру проекта
- Backend отдельно: почему логику лучше не держать внутри UI-слоя
- Где Flet реально ломается — и когда лучше не соваться
- Как собрать и проверить приложение перед публикацией
- Читайте также
Я, Арина Михална, убедилась, что собрать мобильное приложение на Python без единой строчки JavaScript теперь можно с Flet 1.0 — фреймворк вышел в статусе production-ready и берёт на себе веб, десктоп и мобильную сборку из одной кодовой базы. С Claude Code эта связка работает так: ты описываешь экраны и логику на Python, агент сам разбирается с синтаксисом Flet и структурой проекта, а тебе остаётся проверять, что получилось, и поправлять по ходу.

Что такое Flet 1.0 и почему это не очередной «ещё один фреймворк»
Flet берёт Flutter — тот же движок, на котором собраны тысячи мобильных приложений, — и прячет его за Python API. Ты пишешь класс, описываешь кнопки и текстовые поля обычным Python-кодом, а Flet превращает это в реальный интерфейс на iOS, Android, в браузере и на десктопе. Версия 1.0 — первый релиз, который авторы фреймворка называют готовым к продакшену: раньше это был скорее инструмент для прототипов и внутренних утилит.
Разница с типичным «Python для фронтенда» (вроде Streamlit) в том, что Flet не ограничивается дашбордами — это полноценный UI-тулкит с навигацией, состоянием, роутингом между экранами. Ближе по духу к тому, что раньше делали на React Native, только без единой строчки JS.
| Что нужно знать | Streamlit | Flet 1.0 |
|---|---|---|
| Целевая платформа | веб-дашборды | веб + десктоп + мобиль |
| Язык | Python | Python |
| Мобильная сборка | нет | да, из коробки |
| Управление состоянием экрана | ограниченное | полноценное, как в SPA |
| Подходит для | отчётов, аналитики | реальных приложений с несколькими экранами |
Как поставить задачу Claude Code, чтобы он не развалил структуру проекта
Здесь та же логика, что и с любым другим фреймворком: чем чётче ты задаёшь архитектуру заранее, тем меньше Claude Code потом свалит всё в один файл main.py на 800 строк. С Flet это особенно важно, потому что фреймворк новый и агент может тянуть паттерны из старых версий API или путать их с Flutter-подходом напрямую.
Рабочая структура, которую стоит зафиксировать в CLAUDE.md перед стартом:
Собери проект на Flet 1.0 со следующей структурой:
- /app/screens/ — по одному файлу на экран, каждый экран —
отдельный класс
- /app/components/ — переиспользуемые UI-элементы (кнопки,
карточки, формы)
- /app/services/ — вся работа с данными: запросы к API,
работа с локальным хранилищем
- /app/state.py — общее состояние приложения (текущий
пользователь, настройки)
- main.py — только точка входа и роутинг между экранами
Правило: экраны в /screens не делают запросы к API напрямую
— только через
/services. Бизнес-логика не живёт внутри UI-компонентов.
Первая задача: собери экран {{список экранов}} с навигацией
между ними.
CLAUDE.md с такими правилами Claude Code читает автоматически при каждом запуске новой сессии — это снимает половину проблемы «агент забыл, как я хотел структуру», потому что напоминать не нужно, файл читается сам.
Раз научился разделять UI и логику в одном приложении — дальше вопрос, как делать это системно в каждом проекте, а не по вдохновению.
В канале разбираю рабочие связки на живых примерах
читаю канал «А.М. решает вопросы»
Backend отдельно: почему логику лучше не держать внутри UI-слоя
Слабое место большинства гайдов по Flet — они показывают «hello world» и не говорят, что делать, когда приложению нужны реальные данные, авторизация и хранение. На практике для чего-то серьёзнее записной книжки логику стоит выносить в отдельный Python-backend, а Flet оставлять тонким слоем интерфейса, который просто отображает то, что backend прислал.
Связка, которая работает без сюрпризов:
- FastAPI — как backend, отдаёт JSON, Flet его просто читает через
httpxилиrequests. - Flet-приложение — только экраны и состояние, никакой бизнес-логики внутри
screens/. - Общий Python — backend и фронтенд на одном языке, значит Claude Code одинаково хорошо работает с обеими частями и не путает контекст.
Такое разделение спасает, когда приложение нужно менять: правишь бизнес-логику в backend, экраны не трогаешь. Без него любое изменение в данных тянет за собой переписывание половины экранов — классическая боль вайбкодинга, когда агент правит один файл и рвёт три других.
Где Flet реально ломается — и когда лучше не соваться
Честно: Flet — не замена нативной разработке во всех случаях. Три места, где он сдаёт:
- Сложная кастомная анимация. Простые переходы и стандартные эффекты — легко, но если нужна кастомная физика анимации уровня хорошего игрового UI — тут чистый Flutter или нативный код точнее.
- Глубокая интеграция с нативным SDK платформы. Если приложению нужен доступ к специфичным датчикам или API, доступным только через нативный Swift/Kotlin, придётся либо искать обходной пакет, либо писать нативный модуль отдельно.
- Очень нагруженный UI с частой перерисовкой. Списки на тысячи элементов с постоянными изменениями Flet тянет хуже специализированных мобильных фреймворков.
Для типового сценария — приложение с несколькими экранами, формами, списком, авторизацией и подключением к API — Flet справляется полностью, и именно туда его стоит брать. Не для игр и не для приложений с уникальным нативным функционалом.
Как собрать и проверить приложение перед публикацией
Минимальный порядок действий, чтобы не публиковать сырое:
- Собери приложение локально командой сборки Flet под нужную платформу (веб, desktop, mobile).
- Прогони вручную все экраны — переходы, формы, обработку ошибок (что происходит, если backend не ответил).
- Попроси Claude Code написать несколько unit-тестов на бизнес-логику в
/services— эту часть тестировать проще, чем UI. - Проверь, что приложение не падает при отсутствии интернета — частая дыра в вайбкодинге, когда все тесты писались с работающим backend под рукой.
- Только после этого — сборка под целевую платформу и публикация.
Чек-лист перед деплоем закрывает ровно те дыры, которые обычно всплывают уже у пользователей, а не у тебя на машине.

По материалам: анонс Flet 1.0 на MarkTechPost от 20 сентября 2026, документация Claude Code.
Читайте также
- Приложение на Claude Code за вечер
- Спецификация для Claude Code: почему провалы
- Claude Code: единый дизайн приложения без правок
- Slack Code и вайбкодинг: совместная разработка
Я, Арина Михална, думаю, что разбираться с Claude Code и вайбкодингом дальше — не обязательно тащить всё в одну статью. У меня в боте лежит гайд по установке Claude из России, а в канале «А.М. решает вопросы» я регулярно показываю на живых примерах, как собираю такие штуки и куда потом с ними идти. Забирай — подписывайся на канал
Чек-лист: что у тебя теперь есть
- Понимаешь, что такое Flet 1.0 и почему для него не нужен JavaScript
- Знаешь, как структурировать проект на Flet, чтобы код не превратился в кашу при росте
- Умеешь поставить задачу Claude Code на сборку экрана и бизнес-логики отдельно
- Видишь на конкретном примере разделение UI и backend-логики в приложении
- Знаешь, где Flet ломается и когда лучше выбрать нативную разработку
- Понимаешь, как собрать и протестировать приложение перед публикацией
Частые вопросы
Можно ли собрать мобильное приложение на Flet без знания JavaScript?
Да, это и есть смысл Flet: интерфейс, логика и сборка под iOS/Android описываются на Python, JS-код не пишется вообще. Frontend-стек (React, Flutter-виджеты вручную) не нужен.
Чем Flet 1.0 отличается от предыдущих версий?
Flet 1.0 — первый релиз, заявленный как готовый для продакшена: веб, десктоп и мобильные приложения из одной кодовой базы на Python, без отдельной прослойки на JS или Dart.
Подходит ли связка Flet и Claude Code новичку без опыта в мобильной разработке?
Да, если новичок понимает базовый Python. Claude Code берёт на себя структуру проекта и синтаксис Flet, а тебе остаётся описывать, что должно происходить в приложении, и проверять результат.
Что Flet не умеет — где вайбкодинг на нём ломается?
Сложную нативную анимацию, глубокую интеграцию с нативными SDK платформы и очень нагруженные UI с кастомной графикой Flet тянет хуже, чем чистый Flutter или Swift/Kotlin. Для простого и среднего приложения хватает с запасом.
Нужен ли отдельный backend для приложения на Flet?
Не обязательно для простых сценариев — Flet может держать логику прямо в приложении. Но для реальной продукции лучше выносить данные и бизнес-логику в отдельный Python-backend (например, FastAPI), а Flet оставить чистым слоем интерфейса.
Следующий шаг
Собери свой сайт за вечер
Свой сайт на Claude за один вечер — и продавай такие же от 30 000 ₽. 8 уроков в записи, без кода и без дизайнера.
Хочу сайт за вечерИли просто следи
А.М. решает вопросы — 5 000+ подписчиков, разборы Claude каждый день.
Подписаться в Telegram

