Почему кодить на iPad через браузер — мучение, и как разработчик решил это нативным приложением
Разработчик Пьер Перрен устал от того, что Safari на iPad ломает горячие клавиши, убивает WebSocket-соединения и съедает рабочее пространство. Он создал нативный клиент Vysio, который решает эти проблемы — и делает iPad Pro пригодным для серьёзной удалённой разработки.
iPad на чипе M-серии теоретически способен заменить ноутбук разработчика. На практике мобильный Safari превращает этот потенциал в головную боль — и одно небольшое приложение пытается это исправить.
Мечта vs. реальность
iPad Pro с Magic Keyboard — мечта мобильного разработчика. Лёгкий, мощный, с отличным экраном и батареей на весь день. Облако давно позволяет запускать полноценные среды разработки вроде GitHub Codespaces или self-hosted code-server. Казалось бы, бери iPad и коди где угодно.
Но, как это часто бывает с Apple, между обещаниями и реальностью — пропасть. Разработчик Пьер Перрен детально разобрал, почему попытки работать с cloud IDE через Safari на iPad превращаются в борьбу с операционной системой, а не с кодом. И предложил своё решение — нативное приложение Vysio.
Три больших проблемы Safari для разработчиков
1. Горячие клавиши перехватываются системой
Это, пожалуй, самая раздражающая проблема. Физическая клавиатура Magic Keyboard отправляет команды, которые iOS перехватывает раньше, чем они доберутся до веб-приложения:
- Cmd + W — вместо закрытия вкладки редактора закрывает вкладку браузера.
- Cmd + P — вместо быстрого открытия файла в VS Code вызывает диалог печати iOS.
- Cmd + T — открывает новую вкладку Safari вместо триггера команд редактора.
- Esc — непредсказуемо сбрасывает фокус из меню автодополнения.
Для любого, кто привык к стандартным сочетаниям клавиш VS Code, это настоящая пытка. Мышь или тачпад частично спасают ситуацию, но теряется весь смысл физической клавиатуры.
2. Браузерное UI съедает экран
На 11- или 13-дюймовом iPad адресная строка, полоса вкладок и навигационные элементы iOS отъедают 15–20% вертикального пространства. Для работы с кодом, где каждый сантиметр на счету (терминал внизу, дерево файлов слева, сам код в центре), это ощутимая потеря.
3. WebSocket засыпают при переключении приложений
iPadOS агрессивно усыпляет фоновые вкладки браузера и неактивные WebSocket-соединения. Переключились в Slack проверить сообщение — вернулись, а ваше SSH-подключение или контейнер отвалилось и reconnect занимает время. При долгих сборках или тестах это критично: процесс прерывается, а вы даже не знали.
Vysio: нативный обход ограничений
Перрен решил не бороться с Safari, а обойти его, создав нативное iPadOS-приложение на SwiftUI с использованием UIScene. Вот что Vysio делает иначе:
Полная передача горячих клавиш. Через UIKeyCommand приложение перехватывает нажатия физической клавиатуры раньше, чем iOS успевает их обработать. Cmd+W, Cmd+P, Cmd+Shift+P, Esc — всё летит напрямую в удалённый редактор.
Мультиоконность через UIScene. Вместо одного веб-окна в браузере — полноценная поддержка Stage Manager с несколькими окнами:
- Окно 1: полноэкранный VS Code / Codespaces без мусора интерфейса Safari.
- Окно 2: превью приложения или терминал.
- Окно 3: документация или Figma.
Безопасное хранение токенов. GitHub OAuth-токены шифруются в Apple Keychain и защищены Face ID / Touch ID. В Safari они хранятся в cookies или localStorage, которые iOS периодически чистит после неактивности — надёжность сомнительная.
Keep-alive для сессий. Приложение использует системный wake-lock контроллер, чтобы WebSocket и контейнеры не засыпали во время переключений между приложениями.
Что мы думаем об этом
Идея здравая, но стоит добавить несколько оговорок.
Во-первых, проблемы, которые описывает Перрен, реальны и хорошо знакомы каждому, кто пытался кодить на iPad. Safari действительно не заточен под тяжёлые веб-приложения с физической клавиатурой — это браузер для потребления контента, а не для IDE.
Во-вторых, нативное приложение как обёртка над cloud IDE — это проверенный паттерн. Аналогично работают приложения вроде Blink Shell (для SSH) или a]Shell. Vysio, по сути, делает то же самое, но специализировано под конкретный сценарий — VS Code / Codespaces.
В-третьих, приложение находится на ранней стадии бета-тестирования. Говорить о стабильности и полноте функций пока рано. Стоит подождать реальных отзывов от разработчиков, прежде чем делать выводы.
И главное: Apple могла бы решить большую часть этих проблем на уровне системы. Появление Stage Manager, поддержка внешних дисплеев, M-чипы — всё это указывает на то, что iPadOS эволюционирует в сторону рабочей станции. Но ограничения Safari и агрессивное управление энергосбережением пока остаются камнем преткновения. Пока Apple не исправит это сама, сторонние разработчики будут строить костыли — пусть и весьма изящные.
Резюме
iPad Pro — это уже не игрушка. Железо способно на серьёзную работу, и cloud IDE делают возможной разработку на лёгком устройстве без локального компилятора. Но Safari пока что является узким местом, и проекты вроде Vysio это наглядно демонстрируют.
Если вы разработчик, который хочет работать на iPad, — Vysio стоит попробовать в бете. Если вы Apple — может быть, пора наконец дать Safari нормальную поддержку физической клавиатуры для веб-приложений?