Кнопки, которые ведут в магазин App Store, сопровождаются аффилированными ссылками.
Я программист, научился писать код сам. Начал с Python, затем изучил C, bash, работу с облачными сервисами и создание iOS-приложений. В течение последних двух лет верстал несколько сайтов, писал утилиты для автоматизации работы, серверный и мобильный софт.
Полгода назад я решил купить дополнительное устройство к 15-дюймовому MacBook Pro, чтобы программировать вне дома. Отказавшись от идеи второго компьютера с меньшей диагональю экрана, выбрал iPad Pro из-за сенсорного дисплея, цены и компактности.
Я часто бываю в гостях — в поездку проще взять iPad, чем MacBook. Планшет тоньше и легче; его можно зарядить везде, а с компьютером приходится брать блок питания и переходники.
Устройство
У меня iPad Pro 9.7″ с дополнительной клавиатурой и Apple Pencil. Планшет, аксессуары и приложения обошлись в 45 тысяч рублей.
Клавиши на оригинальной клавиатуре Smart Keyboard для iPad 9.7″ маленькие, но я к ним привык и печатаю быстро. Apple интегрировала большинство комбинаций «горячих» клавиш с macOS, а некоторые приложения добавляют еще и свои — например, Textastic.
Apple Pencil работает неделю и заряжается за 30 минут. Недостаток — карандаш сделан из дешевого глянцевого пластика, который быстро загрязняется, а колпачок треснул через месяц после покупки.
Мой сценарий использования — программирование и просмотр видео. Дисплей яркий и четкий, аккумулятор держит три-четыре дня. Тачскрин прижился в рабочем процессе — на нем удобнее перетаскивать блоки текста, переключаться между приложениями в режимах разделённого экрана Split View и Slide Over.
Программы
На iOS сильно ограничено взаимодействие с файловой системой и нет доступа к терминалу, поэтому программировать сложно. Но возможно.
Для своих задач я использую четыре приложения:
Иронично, что на iPad особенно неудобно программировать приложения для iOS. Здесь нет линтера, рефакторинга, Interface Builder и компилятора. По причине отсутствия среды разработки на планшете, мобильный софт я пишу только на ноутбуке.
Termius
Termius это приложение для доступа к удаленным серверам через SSH или Telnet. Через него я удаленно выполняю те действия, которые не может сделать iPad — например, исполняю shell-скрипты.
Чтобы не пришлось при каждом подключении вводить логин и ключ доступа, рекомендую создать пользователя и привязать к нему пароль или SSH-ключ1. Для добавления хоста, укажите IP-адрес и выберите пользователя, которого создали раннее. Откроется окно терминала.
Я считаю, что по умолчанию в приложении слишком мелкий шрифт и не подходящий для программирования белый фон, поэтому поменял их в настройках. Доступны такие же темы, как в терминале macOS.
Termius сложно использовать без физической клавиатуры. Разработчики включили панель с дополнительными клавишами, но быстро печатать с ее помощью у меня не получается.
В бесплатной версии приложение выключает соединение, если оно простаивает больше 10 минут — это жутко раздражает, если параллельно работать с несколькими хостами. Платная подписка же стоит 2050 рублей в год и предлагает вечные сессии, сохранение сниппетов для исполнения на серверах в один клик, синхронизацию данных между устройствами.
Working Copy
Working Copy — продвинутый Git-клиент для iOS. Мне он нравится понятным интерфейсом и обилием действий, для запуска которых не нужно обращаться к командной строке.
Для удобства работы добавьте в Working Copy учетные записи и хосты, на которых хранятся репозитории. Приложение поддерживает «из коробки» GitHub, GitLab, BitBucket и GitBook — а если у вас свой Git-сервер, то вы можете указать его в настройках.
Чтобы клонировать и обновлять репозитории, добавьте на хост SSH-ключ, который сгенерирует приложение. Так Working Copy получит список репозиториев, из которых вы сможете выбрать те, которые вам нужны на iPad — я сохраняю на устройстве все, с которыми активно работаю.
В Working Copy есть встроенный редактор кода и текста — в нем подтормаживает подсветка синтаксиса и русские/английские символы отображаются разным шрифтом. Тем не менее, он подходит для быстрого исправления ошибок или написания коротких программ. Для более серьезных задач я использую редактор Textastic.
Приложение показывает изменения, которые вы сделали с последнего коммита, и предлагает просмотреть их в совмещенном режиме или в раздельном (эквивалент git diff
). При коммите приложение откроет всплывающее окно и покажет поле для описания коммита вместе со списком измененных файлов. В нем есть счетчик символов — следую ему, чтобы сделать сообщения максимально информативными.
Working Copy умеет исполнять команды fetch
, fast-forward
, pull
и merge
с удаленного сервера. При совмещении (merge
) приложение покажет конфликты и предложит выбрать с помощью свайпов правильный вариант.
Для каждого репозитория программа строит графическое дерево коммитов. Тут же происходит работа с ветками (branch
). К сожалению, в приложении нельзя создать «осиротевшие» ветви (orphan branch
) — мне это нужно, когда начинаю работать над новыми версиями программ.
Working Copy доступна в App Store бесплатно. Однако за одноразовый платеж в 1150 рублей вы разблокируете темную тему и загрузку коммитов на удаленные серверы (git push
). Премиум-версию приложения можно протестировать на протяжении десятидневного пробного периода.
Textastic
В Textastic я пишу программы на Python и веб-сайты на HTML, CSS и JS. Редактор работает с проектами в памяти устройства и в приложении «Файлов». Это удобно, так как Working Copy интегрирован в «Файлы» — импортирую репозитории прямо из него. Все изменения появляются в Git-клиенте в реальном времени.
В первую очередь, Textastic адаптирован под веб-программирование. В редакторе есть автоподстройка и автодополнение HTML и CSS кода — Textastic создает файл с пустым шаблоном, подсказывает имена тегов и вставляет обязательные атрибуты. Также приложение поддерживает расширения Emmet для ускорения написания кода.
Для отладки тут есть встроенный браузер, возможности показа страницы в Safari и быстрой отправки результата в виде письма.
В редакторе есть перенос строк и замена табов пробелами. Его цветовая гамма и шрифты меняются в настройках. Код JS и других языков программирования подсвечивается, но линтера нет. «Кривая» подсветка показывает, когда в код закрадывается типографическая ошибка.
В Textastic встроен файловый менеджер, который распаковывает ZIP-архивы, поддерживает навигацию по директориям и импорт изображений с указанием имени конечного файла (эта функция бы пригодилась в Working Copy).
Pythonista 3
Pythonista это Python IDE на iOS. После покупки Pythonista (749 рублей) установите StaSh — скрипт, который создает настраиваемую виртуальную консоль. Она эмулирует некоторые классические команды терминала, вроде cat
, rm
, git
, ssh
, scp
. Расширение поддерживает исполнение скриптов в фоновом режиме до тех пор, пока приложение «висит» в оперативной памяти.
В Pythonista встроены популярные пакеты, как bs4
и requests
. Остальные можно установить через pip
в StaSh. Я однажды столкнулся с проблемой, что StaSh установил расширение для Python 2 или старую версию для Python 3, из-за чего у меня не получилось исполнить скрипт.
В интерактивной консоли работает визуализация графиков, созданных через matplotlib
. Редактор кода автоматически дополняет код на Питоне, переносит строки и заменяет табы пробелами. Линтера нет, все ошибки появляются при рантайме — текст некоторых из них не полностью помещается в окно, поэтому для отладки приходится запускать приложение через StaSh.
К сожалению, в Pythonista нет тесной синхронизации с Working Copy, как в Textastic. Однако, пользователи написали инструкцию, как переносить файлы из одного приложения в другое.
Разработчик Pythonista сделал большой акцент на UI-программирование. Приложение поддерживает файлы .pyui
и предоставляет библиотеки для программирования специфичной функциональности iOS. Я никогда не пользовался этими возможностями приложения.
Как бонус, Pythonista работает и на iPhone. Пару раз мне это пригодилось — написал консольную утилиту, которая считает цены покупки и продажи криптовалюты.
Итог
iPad Pro стал удачным дополнением к MacBook — он удобнее компьютера для программирования на протяжении нескольких часов в дороге или поездках. Приложения же предоставляют комфортный минимум необходимых функций для повседневных задач.
- Приложение умеет генерировать ключи, импортировать их через iTunes или из скопированного текста. ↩