ч# PyLab: как я делаю Python-IDE и курсы для смартфона
Python часто советуют как первый язык, и я с этим согласен: код на нём читается почти как текст, а применять его можно где угодно, от школьных задачек до анализа данных. Но есть проблема, с которой я сам когда-то столкнулся: чтобы практиковаться, нужен компьютер. А он есть под рукой далеко не всегда, особенно у школьников.
Так появился PyLab. Это моё приложение, в котором можно и учить Python с нуля, и просто писать код прямо на телефоне. Внутри уже встроен интерпретатор: на Android это Python 3.10.13, на iOS 3.11.3. В этой статье расскажу, что в нём есть, как устроены уроки и редактор, и немного о том, как проект дошёл до текущего состояния.
Что это вообще такое
PyLab есть в RuStore и в App Store, лежит в категориях «Полезные инструменты» и «Образование».

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

Урок выглядит так: короткий кусок теории, потом сразу задание. Код пишешь прямо в уроке и тут же видишь, прошёл он проверку или нет. Объясняют всё персонажи приложения, они же подсказывают, если застрял. Школьникам такой формат заходит заметно лучше, чем просто текст.
Задания бывают разные. Где-то надо написать код, где-то соединить пары. Например, есть задание, где нужно сопоставить кривые имена переменных вроде 2fast или my-name с причиной, почему Python их не примет. Сверху видно, сколько заданий осталось до конца урока, а теорию можно в любой момент открыть кнопкой с книжкой.
Чтобы люди возвращались, я добавил несколько игровых штук. За задания дают XP, есть счётчик дней подряд, а в каждом уроке три сердца. Ошибся три раза, урок придётся начинать заново, так что тыкать наугад невыгодно.
Новые курсы я добавлять буду, но пока больше занимаюсь тем, чтобы нормально работало то, что уже есть.
Про ошибки
Ошибаться в программировании нормально, гораздо важнее понять, почему ошибся. Поэтому к заданиям я писал пояснения. Если решение не прошло, приложение объясняет, в чём дело. Например, в задании, где нужно вывести две строки, многие добавляли \n вручную, и PyLab подсказывает, что два вызова print() и так дают две строки. Если ответ верный, тоже показывается небольшой комментарий, чтобы тема закрепилась.
Отдельно скажу про мои собственные ошибки. Честно, поначалу некоторые задания пройти было вообще невозможно :) Спасибо всем, кто писал мне на почту. Благодаря этим письмам я выловил кучу багов, от мелочей до функций, которые просто не работали.

Сейчас таких писем стало примерно в 10 раз меньше, и это очень приятно. Но я понимаю, что что-нибудь обязательно ещё всплывёт, так что пишите, если найдёте баг или есть идея.
Редактор, с которого всё началось
Изначально никаких курсов не планировалось. Я просто хотел нормальный редактор Python на телефоне, в котором можно писать и проверять свой код, а не только запускать готовые скрипты. Курсы и всё остальное появились позже, но редактор так и остался главной частью приложения.

Что в нём сейчас есть:
подсветка синтаксиса;
автодополнение, без него на сенсорной клавиатуре писать совсем грустно;
консоль, куда выводится результат и ошибки;
matplotlib с выводом графиков прямо в консоль, включая анимацию (появилось в версии 4.3.3);
управление курсором кнопками громкости. Мелочь, но попасть пальцем между двумя символами на телефоне то ещё удовольствие, а так курсор двигается ровно на один символ.
Мне хотелось, чтобы в редакторе можно было делать что-то кроме print("Hello, World!"), поэтому я встроил библиотеки: requests и aiohttp для сети, numpy и pandas для данных, beautifulsoup4 для парсинга, pillow для картинок, opencv-python, cryptography, PyYAML, python-dateutil и ещё несколько. С ними уже можно писать небольшие утилиты, дёргать API, ковырять данные или обрабатывать картинки.
Понятно, что много кода с экранной клавиатуры не напишешь. Поэтому PyLab работает и с внешней клавиатурой через USB-переходник. Я знаю пару пользователей, которые так и сидят: телефон или планшет плюс клавиатура, и получается вполне рабочее место.
Дальше по редактору планы простые: удобство на маленьком экране, стабильность запуска кода и доводка того, что уже есть. Хочу, чтобы им было несложно пользоваться новичку, но и человеку, который уже знает Python, было что с ним делать.
Что дальше
PyLab начинался как маленький пет-проект с одной идеей: запускать Python на телефоне. Сейчас это редактор плюс курсы, и я до сих пор этим проектом занимаюсь.

За это время накопилось много всего, о чём можно рассказать. Как вообще заставить всё это работать на мобилке и на какие компромиссы пришлось пойти. Как продвигать проект почти без бюджета, вести соцсети, делать мультики и короткие ролики с персонажами приложения, искать аудиторию и не расстраиваться из-за негатива в комментах.
Если вам такое интересно, напишите в комментариях, о чём рассказать подробнее, и я сделаю отдельную статью про внутреннюю кухню.
Ну и буду рад, если попробуете PyLab и напишете, что понравилось, а что нет.
Ссылки:
PyLab в RuStore (Android)
PyLab в App Store (iOS)
Спасибо, что дочитали!
Комментарии (5)

softi
20.10.2026 17:39Я вас очень прошу: не надо программировать на смартфоне! У меня ребенок так программировал в консоли на питоне как раз. Это боль для глаз. Я запрещал. Есть компьютер, есть ноут в доме - нет, он делал это на телефоне, портя глаза. Еле-еле мы эту эпопею закончили.

c3n9 Автор
20.10.2026 17:39Согласен, часами сидеть за кодом с телефона точно не стоит, и компьютер я заменять не предлагаю. PyLab скорее для того, чтобы пройти урок или что-то проверить, когда ноутбука нет под рукой. А для долгой работы лучше планшет с клавиатурой или всё-таки компьютер. Но то, что ребёнку настолько интересно программирование, по-моему, здорово. Пусть растёт большим гением!

Octagon77
20.10.2026 17:39У Вас вышло занятное приложение, какое-то истинно мобильное, милое и без лишних амбиций. Казалось бы, если Python, то должна быть минимум как консоль и в ней, собственно, Python. А на приложение глянул - вовсе нет, можно иначе, не требуя от мобилы слишком многого, не повторять же Termux в самом деле. Сама по себе нетривиальная идея, мне в голову не приходила. Пока, если правильно понял, предполагается переписка с программой как в чате - и это для мобилы уже хорошо.
Довольно давно установил на Андроид 10. Самое на данный момент слабое, как по мне - файлы. Приложение просто обязано появляться в списке по share и позволять нескольким проектам использовать общие файлы, иначе - недоигрушка. Простого способа выгрузить файл я тоже не вижу. Следующее за этим - версия Python, как раз если учить, а не использовать иногда, то с архаикой просто неприятно соприкасаться. А дальше - будем посмотреть.
Почему работает раз в 15 медленнее чем Termux - просто любопытно.
kameee
Интересно будет попробовать!
c3n9 Автор
Спасибо!