Можно ли заниматься разработкой на iPad? Textastic — можно ли на iPad программировать

Эта статья открывает цикл, предназначенный для новичков. Смею надеяться, что уровень подачи материала позволит разобраться в нем даже людям не знакомым с программированием. Начнем наше повествование с небольшого лирического отступления. Приложения для iPhone и iPad пишутся на языке Objective-C. Этот язык широко использовался в компании NeXT и пришел в Apple после возвращения Стива Джобса. В настоящее время Objective-C является основным языком разработки OS X и iOS приложений.

Для того, чтобы начать программировать под iOS, Вам понадобится компьютер Mac на базе процессора Intel и среда разработки XCode. Если у Вас нет Mac-а - не беда. Возможно Вам подойдет один из описанных методов решения этой проблемы. Мы будем ориентироваться на XCode 4 и iOS5.

Установка XCode

Для начала нам придется зарегистрироваться наApple-овском dev сайте. Перейдите по ссылке и нажмите на register. Щелкните кнопку Get Started и пройдите процесс регистрации. Там все довольно просто, поэтому я не буду останавливаться на этом моменте. После регистрации Вам пришлют письмо с вашим Apple ID. Вернитесь на страницу Apple Developers и используйте его для входа в защищенную зону. В разделе DevCenters щелкните по ссылке iOS. Как видите, Apple предлагает вам кучу документации, исходников и уроков. На этой странице есть все, что нужно для начала разработки под iOS. В самом низу есть кнопка Download Xcode, которую нужно нажать. После загрузки установите Xcode на свой Mac.

Знакомство с интерфейсом XCode 4

Для запуска Xcode перейдите на свой главный диск и щелкнете по developer>Applications.

После того, как Xcode запустится, выберите пункт меню File>New Project, затем "Single View Application" и введите в качестве имени проекта (Product Name) HelloWorld. В результате у вас должно отображаться что-то вроде этого

Весь Ваш код и ресурсы разложены по специальным папкам, которые располагаются в левой части окна Xcode. Панель называется "Project Navigator" и содержит все элементы Вашей программы. Файлы с исходным кодом имеют расширение ".h" и ".m". Если вы щелкните по такому файлу, то в правой части Xcode откроется редактор с кодом.

Не будем пока останавливаться на коде. Мы вернемся к этому вопросу чуть позже. Если Вы посмотрите на верхнюю часть экрана, то увидите несколько кнопок, связанных с Вашим проектом. Изучим эту панель подробнее.

Кнопка "Run" запускает ваш проект. Вы можете протестировать свое приложение и убедиться, что оно ведет себя действительно так, как вы того ожидаете. Кнопка "Tasks" останавливает запущенное приложение.

С помощью кнопки Schemr можно выбрать целевую платформу, где будет запускаться ваше приложение. Здесь вы можете выбрать какой-нибудь simulator, и отлаживать программу на компьютере, или запустить ее на своем iPhone (iOS Device), если Вы заплатили сбор в $99. Единственное преимущество, которое дает этот платеж - возможность запускать программу на реальном устройстве и размещать ее в App Store. Я бы не рекомендовал Вам тратиться до того момента, пока у Вас не будет готова нормальная программа.

Breakpoints (точки остановки) - очень полезная штука. С помощью этой кнопки вы можете отметить в исходном коде строки, и когда в ходе выполнения программы дело дойдет до помеченной строки, программа приостановится, и вы сможете посмотреть состояние переменных. Это очень мощный и повсеместно используемый инструмент.

Нажмите кнопку "Run". Вы увидите окно эмулятора со своим проектом. Как видите, пока он не блещет функциональностью - это просто заготовка.

Программирование для iPhone -Первый шаг

Довольно ходить вокруг да около, давайте что-нибудь закодим. В окне Project Navigator содержатся файлы с исходным кодом. Щелкните по какому-нибудь.m файлу. Обратите внимание, некоторые строки окрашены в зеленый цвет - это комментарии, которые выполняют роль шпаргалок. Чтобы не запутаться в коде, программист может оставлять себе подсказки и пояснения. Для обозначения комментариев в языке C используется сочетание слешей //. Все, что находится в строке правее этих знаков, считается комментарием. Если Вы хотите написать многострочный комментарий, то можете использовать сочетания /* и */ для обозначения начала и конца многострочного комментария.

Прежде чем приступить к написанию кода приложения, я должен а пальцах объяснить вам несколько концепций: ООП (объектно-ориентированное программирование), MVC (Modal View Controller), ".h" и ".m" файлы. Итак... объектно-ориентированное программирование предполагает разделение всего кода на так называемые объекты, внутри которых хранятся данные и обрабатывающие их команды. Объект в Objective-C состоит из двух файлов.h и.m. Файл.h называется заголовком (header) в нем содержится "набросок" объекта - перечисляются все данные и названия блоков команд (методов), содержащихся в объекте. Файл.m называется файлом реализации (implementation) и в нем подробно расписывается все то, что указано в заголовке именно здесь программируется вся логика программы.

MVC (Model View Controller) - это нечто, разделяющее код и интерфейс, который видит пользователь. Model - это данные пользователя и данные, которые вы показываете пользователю. View - это пользовательский интерфейс и код, который обеспечивает связь между View и Model. Концепция MVC может сейчас показаться Вам слишком заумной, однако со временем Вы увидите, что этот подход действительно упрощает жизнь программиста. Эта концепция подразумевает следующий порядок работы: программист отдельно создает шаблон дизайна приложения, где размещает все кнопки, текстовые поля и прочую важную ерунду, и отдельно пишет программ. Потом он показывает XCode какой метод(блок кода) должен вызываться в ответ на то или иное действие пользователя и какое название имеет тот или иной элемент управления в тексте программе.

Разрабатываем дизайн программы для iPhone

Давайте начнем создание нашего приложения с разработки дизайна. Щелкните в окне Project Navigator по строке MainStoryboard_iPhone.storyboard. В результате XCode запустит редактор интерфейса.

В правом нижнем углу Вы видите список объектов (Library), которые можно использовать в своем интерфейсе, в центральной части отображается окно View, которое и представляет макет интерфейса вашей программы. Правое верхнее окно имеет несколько режимов, которые переключаются с помощью расположенных над окном иконок. На рисунке показан режим Atribute Inspector. Здесь можно изменять различные атрибуты объектов, составляющих ваш интерфейс.

Перетащим из окна Library объект Label на наш макет окна. С помощью мышки изменим размер объекта, как показано на экране ниже. В инспекторе отображаются свойства объекта Label. Давайте отцентрируем текст, щелкнув по соответствующей иконке в строке Layout.

Удалим текст в поле Text (там было написано слово Label) и введем там “Some String”.

Аналогичным образом добавьте на макет кнопку (объект Button)

Итак, мы разработали дизайн нашего приложения. Ничего сложного можете щелкнуть кнопку Run и посмотреть на работу своей программы в окне эмулятора.

Начинаем кодить

Итак, у нас есть два визуальных компонента размещенных на макете. Мы хотим чтобы при нажатии на кнопку менялся текст в строке. Чтобы реализовать эту задумку нам понадобится из кода программы обращаться к стороке (объект Label) и вызывать метод(блок кода) при нажатии на кнопку.

Щелкните по файлу "ViewController.h" в панели слева. Мы собираемся описать IBOutlet. IBOutlet соединяет наш код с визуальным объектом, например с надписью (label) или кнопкой (button). Приведите код в файле ViewController.h к виду

#import @ interface ViewController: UIViewController{ IBOutlet UILabel* label; //присвоим нашей строке имя Label } //это заголовок метода, который будет //вызываться в ответ на нажатие кнопки - (IBAction) buttonClick: (id) sender; @ end

Это все, что нам требуется прописать в заголовочном файле. IBAction позволяет соединить какой-нибудь метод с элементом пользовательского интерфейса, например, в ответ на нажатие кнопки будет вызван написанный нами программный код.

Итак, мы сказали, что будем называть строку с текстом label и что в ответ на действие пользователя будет вызываться метод buttonClick. Давайте напишем код этого метода. Переключимся на файл ViewController.m в дереве проектов. После строки@implementation... добавим код

- (IBAction) buttonClick: (id) sender{ label. text= @ ”Hello from Mobilab. ru”; }

Примечание, если Вы скопировали этот код, то вероятно при запуске программы у Вас возникнет ошибка, скорее всего проблема в ковычках. Удалите их и введите с клавиатуры.

Давайте разберемся, что мы тут видим. Мы обращаемся к объекту label - строке текста на экране. Поскольку это объект, у него внутри есть разные данные (которые в ООП также называют свойствами объекта) и методы к которым можно обратиться, поставив точку после имени объекта. Свойство text отвечает за содержащийся внутри строки текст..

Мы завершили кодирование, осталось связать label и buttonClick с элементами внутри макета дизайна. Щелкните в окне Project Navigator по строке MainStoryboard_iPhone.storyboard, чтобы переключиться в конструктор интерфейса. Зетем щелкните по иконке “View controller”. Переключитесь на режим connections в инспекторе (последняя иконка). Посмотрите, в инспекторе в области Outlets появилась строка label. Это то название, которое мы указали в файле ViewController.h. Щелкните по кружочку в правой части строки label и перетащите его на строку с текстом Some Text в макете дизайна.

Аналогичную операцию проделайте с кнопкой. Щелкните по кнопке с кружочком в группе “Received Actions”, потом по buttonClick и перетащите ее на кнопку в макете. В результате раскроется контекстное меню, с помощью которого можно выбрать момент вызова метода. Можно, например, вызывать код, когда пользователь нажмет кнопку, можно когда отпустит. Там много вариантов. Выберите "Touch up Inside".

Вот и все! Сохраняйте проект и щелкайте по кнопке "Run" на панели сверху. Если Вы Все сделали правильно, то должен запуститься эмулятор с Вашей программой. Щелкните по кнопке. Текст в строке должен измениться. Вот и все. С первым уроком покончено

Программирование - процесс творческий и часто желание написать кусок кода или сиюминутно исправить ошибку становится просто невыносимым. Иногда написания кода требуют внешние обстоятельства, как то критичная ошибка в коде, которая валит проект. Для сотрудников, занимающих руководящие позиции в команде, нужна возможность провести code review и поправить проблемные участки кода.

Хорошо когда в пределах досягаемости есть стационарный компьютер или ноутбук на котором развернута привычная среда разработки. Но что делать если вы находитесь за пределами рабочего места? Таскать с собой постоянно ноутбук? Но во первых большой 13-15 дюймовый ноутбук не везде развернешь (например общественный транспорт), а во вторых таскать его постоянно с собой - еще то занятие. Можно конечно купить 11 дюймовый MacBook Air (или его аналог), но все равно он будет не настолько компактен и не так часто используем, чтобы оправдать покупку.

Чтож, обратим свой взор на устройства, которые сейчас практически всегда с нами - это телефон и планшет. Телефон - это конечно вариант экстремальный, хотя сейчас, с появлением 6 - 6,5 дюймовых моделей, грань между телефоном и планшетом стирается. У меня есть опыт успешного восстановления удаленного сервера по ssh с телефона iPhone 4s с 3.5 дюймовым экраном. Но мы все таки говорим о процессе полноценной работы с кодом, поэтому, на мой взгляд, минимальным является планшет с диагональю от 7 дюймов, экран которого вмещает сопоставимое с экраном большого компьютера, информации. Я покажу на примере iPad Mini возможные варианты его использования для решения повседневных задач разработчика.

Использование текстового терминала, удаленного SSH-соединения и консольного редактора типа Vim, настроенного на сервере. Яркие представители - это Prompt (от известной компании Panic) и vSSH
- использование нативных iOS приложений-текстовых редакторов: Textastic, Coda, GoCoEdit
- использование средств удаленного доступа на основную машину: RDP, VNC, TeamViewer, Parallels Access

Каждый из этих способов имеет свои достоинства и недостатки, которые мы рассмотрим ниже.

Использование текстового терминала

Предположим, у вас есть удаленный сервер и на нем настроен Vim. Vim по своей природе предполагает работу только с клавиатурой, поэтому идеально ложится на паттерн использования внешней клавиатуры. Про гибкость настройки Vim можно найти тысячи статей в интернете - скажу лишь, что немного допиленный Vim по удобству не уступает редакторам от JetBrains, продуктами которой я так же активно пользуюсь. Если Вы разрабатываете только backend приложения и тестирование результатов можете проводить из консоли - я советую остановиться на этом варианте (еще желательно настроить Tmux).

В качестве терминала можно либо использовать навороченный vSSH , в котором можно настроить вообще все, либо более хипстерский Prompt . У Prompt плохо то, что у него часть экрана отдана под разные вспомогательные элементы, что уменьшает рабочую область, зато более приятная цветовая гамма и разные «фишечки».

Prompt:

Настройки vSSH

У настроенного VIM есть автокомплит как по ключевым словам

Так и по проекту в целом (названия функций в классах)

А также навигация по проекту

Prompt - 7.99$
vSSH - 279 руб.

Нативные iOS приложения

Если суммировать способы работы с файлами (зависит от редактора):

SFTP
- WebDAV
- iCloud
- Dropbox
- встроенный web-сервер
- синхронизация через iTunes
- интеграция через GitHub / Bitbucket
- интеграция с Amazon S3, DreamObjects

Все редакторы позволяют работать с несколькими одновременно открытыми файлами.

У всех редакторов очень ограничена поддержка горячих клавиш при работе с клавиатурой. В интервью создатель GoCoEdit говорил что сама Apple сильно ограничивает разработчиков в этих вопросах. Т.е. забудьте о биндингах на каждое действие - в лучшем случае это Cmd-C / Cmd-V

Ни у одного редактора нет встроенной поддержки git, но есть возможность интеграции со сторонними приложениями, реализующими эту функциональность.

Все эти приложения позволяют подключать как самостоятельные git-репозитории, так и интегрироваться с GitHub и BitBucket. Поддерживают ветки, просмотр коммитов, diff-ов и т.д. Как правило все эти программы имеют бесплатную функциональность на работу с репозиториями в режиме просмотра. Если вы хотите комитить свои изменения - придется выложить от 7 до 10 долларов.

Добавляем репозиторий

Окно работы с репозиторием

Просмотр файла

Как я писал выше - есть полноценная интеграция с редактором Textastic.

Стоимость - бесплатно, но для полноценной работы необходимо разблокировать функции.

GoCoEdit

Видно, что редактор GoCoEdit писал программист для программистов. Дизайн приложения довольно своеобразный, зато есть ряд фич, отсутствующих в других редакторах.

Общий вид редактора. Обратите внимание на дополнительную строку с символами в верхней части клавиатуры. Принцип работы как у Textastic, описанного выше. Отличие в том, что если у Textastic кнопка пятипозиционная, то здесь только трех: центр, право, лево.

Окно работы с файлами

Есть поиск как по словарю

Так и по функциям в классе. Подчеркну, что поиск идет только по текущему файлу, а не по всему проекту, что сильно сужает области применения и полезность.

Поиск

Есть специальный командный режим. Поскольку, как я говорил выше, нормальные горячие клавиши в iOS не реализуемы (или плохо реализуемы) - здесь используется следующий хак: при нажатии на кнопку CMD появляется окно ввода, куда можно ввести сочетания клавиш, реализующих то или иное действие. Сами сочетания очень напоминают сочетания клавиш из VIM.

Во встроенном броузере есть возможность подключить FireBug Lite.

Стоит 349 рублей в российском AppStore.

Использование удаленного доступа к стационарному компьютеру / ноутбуку.

Я пробовал TeamViewer и какой-то из VNC клиентов с пробросом VPN в домашнюю сеть. В целом мне показалось, что они не особо учитывают реали того, что работа идет под iPad и, как следствие, удобство работы оставляет желать лучшего.

Когда несколько лет назад вышел Parallels Access - у меня оказалась в руках бесплатная годовая лицензия, которая шла в комплекте с Parallels Desktop. Из того что я пробовал - это наиболее вменяемый продукт, но который тоже не лишен недостатков. Самый большой недостаток - это переодические сообщения «Slow internet connection» и «залипания» интерфейса, хотя и iPad и ноутбук находятся в сети 70 Мбит/с. К счастью происходит это не так часто и с этим можно жить. Сейчас годовая подписка стоит 649 руб / год.

PHPStorm, запущенный на ноутбуке

Лаунчер приложений

Google Chrome с открытой консолью

В целом, можно сказать что это рабочий вариант, при условии что вы сидите на быстром интернет-канале. Из плюсов - полное рабочее окружение на iPad.

Заключение

IPad можно использовать для полноценной разработки. Я использую внешнюю клавиатуру, если есть возможность ее куда-то поставить и экранную клавиатуру если надо сделать что-то на бегу. Экранная клавиатура не увеличивает габариты устройства и позволяет использовать его на ходу, но закрывает половину и так маленького экрана. Кроме того - набор текста с большим количества спецсимволов, расположенных на разных «экранах» клавиатуры, делает ввод текста медленным. Внешняя клавиатура требует размещения, зато оставляет свободным экран и позволяет набирать со скоростью настольного компьютера.



Если вы разрабатываете только backend-приложение, не требующее тестирования в броузере - я бы рекомендовал связку SSH-клиент + VIM + tmux на сервере.

Если вы разрабатываете что-то на frontend и у вас достаточный интернет-канал - рекомендую связку Parallels Access + редактор + полноценный Google Chrome с консолью.

Нативные редакторы находятся в довольно зачаточном состоянии. До прихода серьезных игроков на этот рынок и шагов со стороны Apple по более продвинутому использованию внешней клавиатуры - это не более чем резервный вариант на случай если у вас нет интернета. Все редакторы заточены на работу с одним файлов, а не проектом целиком. Надеюсь, что с появлением iPad Pro ситуация улучшится и мы получим полноценные редакторы. Если совсем фантазировать - хотелось чтобы Apple разрешила подключать MagicPad и показывать курсор на экране, чтобы не приходилось постоянно «тыкать» в экран.

Приложение Swift Playgrounds научит легко и увлекательно программировать

Новое приложение для iPad обучает программированию и вдохновляет на творческие эксперименты

САН-ФРАНЦИСКО - 13 июня 2016 г. - Сегодня компания Apple представила Swift Playgrounds, инновационное приложение для iPad, c которым все желающие смогут легко научиться программировать. Интерактивный интерфейс Swift Playgrounds помогает начинающим изучить Swift - простой в освоении язык программирования Apple, на котором профессиональные разработчики создают приложения мирового уровня. Swift Playgrounds включает в себя созданные Apple уроки программирования, где учащиеся пишут код, чтобы проводить экранных героев по увлекательному графическому миру, решая загадки, выполняя задания и осваивая важнейшие навыки программирования. Встроенные в приложение шаблоны помогают учащимся воплощать свои творческие замыслы и создавать реальные программы, которые можно отправлять друзьям через Почту и Сообщения или даже публиковать в интернете.

«Я жалею, что у меня не было Swift Playgrounds, когда я впервые учился программировать, - сказал Крейг Федериги, старший вице-президент Apple по программному обеспечению. - Приложение Swift Playgrounds уникально в своём роде: оно очень лёгкое для освоения, но достаточно мощное для написания настоящего кода. Оно объединяет программирование с реальной жизнью и помогает новому поколению освоить навыки, необходимые для самовыражения».

«Новое приложение Apple Swift Playgrounds - одно из самых мощных и доступных образовательных приложений, которое я когда-либо видела. Нам не терпится включить его в новую учебную программу, - говорит Джин МакДоналд, основатель учебного лагеря для девочек App Camp. - Оно даёт нашим учащимся лёгкий и увлекательный способ изучить основные принципы программирования на iPad, а также освоить язык Swift. Эти знания пригодятся им независимо от выбранной специальности».

Благодаря урокам программирования, созданным Apple, учащиеся смогут изучить такие основные понятия, как запуск команд, создание функций, выполнение циклов, применение условных выражений и переменных. Это поможет им постепенно развить свои навыки и обрести уверенность. Apple будет регулярно выпускать новые задания, чтобы учащиеся могли оттачивать свои умения по мере роста навыков и расширения интересов. Преподаватели и разработчики могут также создавать собственные задания, используя Xcode.

В дополнение к урокам, Swift Playgrounds включает ряд встроенных шаблонов, которые помогут амбициозным разработчикам выразить себя. На основе этих шаблонов учащиеся и разработчики могут создавать собственный код, добавляя графику и элементы управления. Swift Playgrounds даёт практически безграничные возможности для создания интерактивных программ на основе Swift и платформ iOS. Вы можете начать с пустого документа Playground или с одного из встроенных шаблонов. Постепенно осваивая графику и интерфейс, учащиеся придут к созданию мощных приложений, реагирующих на касания, задействующих акселерометр и устройства Bluetooth. А поскольку в Swift Playgrounds используется реальный код Swift, проекты можно экспортировать напрямую в Xcode, чтобы создавать программы для iOS и macOS, а затем превращать их в полноценные приложения.

Приложение Swift Playgrounds с самого начала создавалось для интерфейса Multi-Touch на iPad, поэтому вы можете составлять программы всего несколькими касаниями. На новой клавиатуре для программирования можно легко вводить символы, часто применяемые в Swift, используя жесты смахивания по клавишам. Панель вкладок показывает наиболее вероятные дальнейшие команды в зависимости от контекста. На всплывающей клавиатуре можно просто коснуться цифры, чтобы её отредактировать, коснуться цвета, чтобы показать панель выбора цветов, и даже перетащить границы цикла или функции, чтобы встроить их в существующий код. Можно также перетаскивать фрагменты кода из библиотеки, чтобы создавать новый мощный код почти без ввода команд. Ваши программы великолепно выглядят при запуске на большом дисплее Retina на iPad, а жесты Multi-Touch и датчик ускорения делают управление ещё более увлекательным.

Доступность
Предварительная версия Swift Playgrounds уже сегодня доступна участникам программы Apple Developer Program в составе предварительной версии iOS 10 для разработчиков, а в июле станет доступна в составе общедоступной бета-версии iOS 10. Окончательная версия Swift Playgrounds станет бесплатно доступна в App Store этой осенью. Swift Playgrounds работает на iPad Air и iPad Pro, а также iPad mini 2 и новее под управлением iOS 10. Подробная информация, видеоролики, изображения и демонстрации доступны на сайте .

Компания Apple произвела революцию в мире персональных устройств, представив в 1984 году Macintosh. Сегодня Apple является мировым лидером в области инноваций, выпуская iPhone, iPad, Mac, Apple Watch и Apple TV. Четыре программных платформы Apple - iOS, macOS, watchOS и tvOS - обеспечивают идеально слаженную работу всех устройств Apple и предоставляют пользователям уникальные сервисы, включая App Store, Apple Music, Apple Pay и iCloud. 100 000 сотрудников Apple полностью посвящают себя созданию лучших продуктов на Земле и помогают сделать мир лучше, чем он был до нас.

Контакты для прессы:
Сергей Исаков
Apple

+7 495 961 24 54

    © Apple Inc., 2016 г. Все права защищены. Apple, логотип Apple, Swift Playgrounds, iPad, Swift, Xcode, macOS, Multi-Touch, Retina, App Store, iPad Air, iPad Pro и iPad mini являются товарными знаками Apple. Другие названия компаний и продуктов могут являться товарными знаками соответствующих владельцев.

Программирование - процесс творческий и часто желание написать кусок кода или сиюминутно исправить ошибку становится просто невыносимым. Иногда написания кода требуют внешние обстоятельства, как то критичная ошибка в коде, которая валит проект. Для сотрудников, занимающих руководящие позиции в команде, нужна возможность провести code review и поправить проблемные участки кода.

Хорошо когда в пределах досягаемости есть стационарный компьютер или ноутбук на котором развернута привычная среда разработки. Но что делать если вы находитесь за пределами рабочего места? Таскать с собой постоянно ноутбук? Но во первых большой 13-15 дюймовый ноутбук не везде развернешь (например общественный транспорт), а во вторых таскать его постоянно с собой - еще то занятие. Можно конечно купить 11 дюймовый MacBook Air (или его аналог), но все равно он будет не настолько компактен и не так часто используем, чтобы оправдать покупку.

Чтож, обратим свой взор на устройства, которые сейчас практически всегда с нами - это телефон и планшет. Телефон - это конечно вариант экстремальный, хотя сейчас, с появлением 6 - 6,5 дюймовых моделей, грань между телефоном и планшетом стирается. У меня есть опыт успешного восстановления удаленного сервера по ssh с телефона iPhone 4s с 3.5 дюймовым экраном. Но мы все таки говорим о процессе полноценной работы с кодом, поэтому, на мой взгляд, минимальным является планшет с диагональю от 7 дюймов, экран которого вмещает сопоставимое с экраном большого компьютера, информации. Я покажу на примере iPad Mini возможные варианты его использования для решения повседневных задач разработчика.

Если вас заинтересовала тема - читаем дальше (осторожно, большое количество картинок).

Условно, есть три направления, по способу взаимодействия с кодом:

Использование текстового терминала, удаленного SSH-соединения и консольного редактора типа Vim, настроенного на сервере. Яркие представители - это Prompt (от известной компании Panic) и vSSH
- использование нативных iOS приложений-текстовых редакторов: Textastic, Coda, GoCoEdit
- использование средств удаленного доступа на основную машину: RDP, VNC, TeamViewer, Parallels Access

Каждый из этих способов имеет свои достоинства и недостатки, которые мы рассмотрим ниже.

Использование текстового терминала

Предположим, у вас есть удаленный сервер и на нем настроен Vim. Vim по своей природе предполагает работу только с клавиатурой, поэтому идеально ложится на паттерн использования внешней клавиатуры. Про гибкость настройки Vim можно найти тысячи статей в интернете - скажу лишь, что немного допиленный Vim по удобству не уступает редакторам от JetBrains, продуктами которой я так же активно пользуюсь. Если Вы разрабатываете только backend приложения и тестирование результатов можете проводить из консоли - я советую остановиться на этом варианте (еще желательно настроить Tmux).

В качестве терминала можно либо использовать навороченный vSSH , в котором можно настроить вообще все, либо более хипстерский Prompt . У Prompt плохо то, что у него часть экрана отдана под разные вспомогательные элементы, что уменьшает рабочую область, зато более приятная цветовая гамма и разные «фишечки».

Prompt:

Настройки vSSH

У настроенного VIM есть автокомплит как по ключевым словам

так и по проекту в целом (названия функций в классах)

а также навигация по проекту

Prompt - 7.99$
vSSH - 279 руб.

Нативные iOS приложения

Если суммировать способы работы с файлами (зависит от редактора):

SFTP
- WebDAV
- iCloud
- Dropbox
- встроенный web-сервер
- синхронизация через iTunes
- интеграция через GitHub / Bitbucket
- интеграция с Amazon S3, DreamObjects

Все редакторы позволяют работать с несколькими одновременно открытыми файлами.

У всех редакторов очень ограничена поддержка горячих клавиш при работе с клавиатурой. В интервью создатель GoCoEdit говорил что сама Apple сильно ограничивает разработчиков в этих вопросах. Т.е. забудьте о биндингах на каждое действие - в лучшем случае это Cmd-C / Cmd-V

Ни у одного редактора нет встроенной поддержки git, но есть возможность интеграции со сторонними приложениями, реализующими эту функциональность.

Coda

Все эти приложения позволяют подключать как самостоятельные git-репозитории, так и интегрироваться с GitHub и BitBucket. Поддерживают ветки, просмотр коммитов, diff-ов и т.д. Как правило все эти программы имеют бесплатную функциональность на работу с репозиториями в режиме просмотра. Если вы хотите комитить свои изменения - придется выложить от 7 до 10 долларов.

Добавляем репозиторий

Окно работы с репозиторием

Просмотр файла

Как я писал выше - есть полноценная интеграция с редактором Textastic.

Стоимость - бесплатно, но для полноценной работы необходимо разблокировать функции.

GoCoEdit

Видно, что редактор GoCoEdit писал программист для программистов. Дизайн приложения довольно своеобразный, зато есть ряд фич, отсутствующих в других редакторах.

Общий вид редактора. Обратите внимание на дополнительную строку с символами в верхней части клавиатуры. Принцип работы как у Textastic, описанного выше. Отличие в том, что если у Textastic кнопка пятипозиционная, то здесь только трех: центр, право, лево.

Окно работы с файлами

Есть поиск как по словарю

так и по функциям в классе. Подчеркну, что поиск идет только по текущему файлу, а не по всему проекту, что сильно сужает области применения и полезность.

Поиск

Есть специальный командный режим. Поскольку, как я говорил выше, нормальные горячие клавиши в iOS не реализуемы (или плохо реализуемы) - здесь используется следующий хак: при нажатии на кнопку CMD появляется окно ввода, куда можно ввести сочетания клавиш, реализующих то или иное действие. Сами сочетания очень напоминают сочетания клавиш из VIM.

Во встроенном броузере есть возможность подключить FireBug Lite.

Стоит 349 рублей в российском AppStore.

Использование удаленного доступа к стационарному компьютеру / ноутбуку.

Я пробовал TeamViewer и какой-то из VNC клиентов с пробросом VPN в домашнюю сеть. В целом мне показалось, что они не особо учитывают реали того, что работа идет под iPad и, как следствие, удобство работы оставляет желать лучшего.

Когда несколько лет назад вышел Parallels Access - у меня оказалась в руках бесплатная годовая лицензия, которая шла в комплекте с Parallels Desktop. Из того что я пробовал - это наиболее вменяемый продукт, но который тоже не лишен недостатков. Самый большой недостаток - это переодические сообщения «Slow internet connection» и «залипания» интерфейса, хотя и iPad и ноутбук находятся в сети 70 Мбит/с. К счастью происходит это не так часто и с этим можно жить. Сейчас годовая подписка стоит 649 руб / год.

PHPStorm, запущенный на ноутбуке

Лаунчер приложений

Google Chrome с открытой консолью

В целом, можно сказать что это рабочий вариант, при условии что вы сидите на быстром интернет-канале. Из плюсов - полное рабочее окружение на iPad.

Заключение

iPad можно использовать для полноценной разработки. Я использую внешнюю клавиатуру, если есть возможность ее куда-то поставить и экранную клавиатуру если надо сделать что-то на бегу. Экранная клавиатура не увеличивает габариты устройства и позволяет использовать его на ходу, но закрывает половину и так маленького экрана. Кроме того - набор текста с большим количества спецсимволов, расположенных на разных «экранах» клавиатуры, делает ввод текста медленным. Внешняя клавиатура требует размещения, зато оставляет свободным экран и позволяет набирать со скоростью настольного компьютера.



Если вы разрабатываете только backend-приложение, не требующее тестирования в броузере - я бы рекомендовал связку SSH-клиент + VIM + tmux на сервере.

Если вы разрабатываете что-то на frontend и у вас достаточный интернет-канал - рекомендую связку Parallels Access + редактор + полноценный Google Chrome с консолью.

Нативные редакторы находятся в довольно зачаточном состоянии. До прихода серьезных игроков на этот рынок и шагов со стороны Apple по более продвинутому использованию внешней клавиатуры - это не более чем резервный вариант на случай если у вас нет интернета. Все редакторы заточены на работу с одним файлов, а не проектом целиком. Надеюсь, что с появлением iPad Pro ситуация улучшится и мы получим полноценные редакторы. Если совсем фантазировать - хотелось чтобы Apple разрешила подключать MagicPad и показывать курсор на экране, чтобы не приходилось постоянно «тыкать» в экран.

habrahabr.ru

Российский разработчик Дмитрий Ковба выпустил серию приложений, которую могут оценить не только начинающие девелоперы, осваивающие новые для себя языки программирования, но и гики, желающие осуществлять сложные математические вычисления на своем iOS-устройстве.

Дмитрий представил три универсальных приложения для iPhone и iPad, каждое из которых предназначено для одного из языков программирования, использующихся для разработки ПО: C++, Basic и Pascal.

C++ - компилируемый статически типизированный язык программирования общего назначения, который поддерживает разные парадигмы написания кода. Он сочетает свойства как высокоуровневых, так инизкоуровневых языков. Область применения C++ включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений.

Basic был разработан в 1963 году профессорами Дартмутского колледжа Томасом Курцем и Джоном Кемени. Язык предназначался для обучения программированию и получил широкое распространение в виде различных диалектов, прежде всего как язык для домашних компьютеров. Интересно, что бейсик подвергается жесткой критике за то, что его простота и бесструктурность поощряют порочные методики и привычки программирования, которые могут быть уместны при создании малых программ, но способны привести к краху крупных проектов.

Pascal – один из наиболее известных языков программирования общего назначения, который, широко применялся в промышленном программировании, обучении программированию в высшей школе. Язык назван в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа.

С помощью C++, Basic и Pascal для iOS-устройств вы можете искать численные решения интегралов и уравнений, решать специализированные учебные и научные задачи или просто писать код для развлечения.

В настоящее время разработчики работают над улучшением процесса компиляции. В будущих версиях C++, Basic и Pascal будет добавлен файловый менеджер, а также шаблоны и примеры различных программ. Скачать C++, Basic и Pascal стоимостью $2.99 вы можете из App Store по ссылкам далее.

Разработчик предоставил нам 15 промокодов – по 5 к каждому из приложений. Коды будут разыграны среди посетителей, оставивших комментарий к статье. Не забудьте заполнить форму E-mail и укажите желаемую программу. Удачи!

Конкурс проведен , победителями стали следующие пользователи: Max, Vladimir, Born2kill, Shoker, apels1nko72p, RioDezz, znm, Sxebang, AntonBordov, AlexForwarder, Greenbint, Itoxa17, Ильюшка, Alexey и mixail. Благодарим за участие!