Приложение для программирования на ipad. Нарисовать идею с помощью ментальных карт

Программирование - процесс творческий и часто желание написать кусок кода или сиюминутно исправить ошибку становится просто невыносимым. Иногда написания кода требуют внешние обстоятельства, как то критичная ошибка в коде, которая валит проект. Для сотрудников, занимающих руководящие позиции в команде, нужна возможность провести 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 и показывать курсор на экране, чтобы не приходилось постоянно «тыкать» в экран.

Как известно, Apple всячески препятствует появлению возможности запускать на своих мобильных устройствах сторонние приложения. Программы для невзломанных iPhone, iPod touch и iPad можно покупать лишь через магазин Apple App Store, а за право тестировать приложения на своих устройствах разработчикам приходится платить 99 долларов в год. К сожалению, такая политика препятствует появлению средств разработки приложений на самих устройствах. Однако создателю программы Codify , дающей возможность использовать iPad для написания программ (в первую очередь – игр) на языке Lua, удалось добиться одобрения в App Store.

В июне 2011 года в Apple несколько пересмотрели правила публикации приложений в App Store и теперь разрешают включать в программы средства интерпретации различных скриптовых языков. В первую очередь это необходимо разработчикам игр, так как зачастую для реализации игровой логики они используют высокоуровневые языки. Чего в Apple делать не разрешают, так это скачивать произвольный код из внешних источников. Появись где-нибудь такая возможность, это бы грозило зарождением альтернативного App Store, чего в Apple очень не хотят.

Автору Codify пришлось пойти на серьёзные ограничения, чтобы средство программирования таки одобрили в App Store. На данный момент есть лишь один способ добавить код в редактор Codify – написать всё вручную. С экспортом те же проблемы. Чтобы выдрать написанное в Codify, придётся выделять весь код, копировать и отправлять себе по почте. Впрочем, такой способ подойдёт разве что для создания резервной копии или же отправки исходников кому-нибудь из друзей. Перенести приложение на настольный компьютер всё равно без лишнего труда не получится – окружения Codify, вроде прилагаемых к среде разработки графических библиотек, автор скачать не предлагает. А жаль. Если бы он опубликовал шаблонный проект Xcode со всеми библиотеками, то вытянутые из Codify исходники можно было бы сразу превратить в самостоятельное приложение.

У Codify есть и другие ограничения. В создаваемых там играх пока что можно использовать лишь спрайты из стандартного набора; выбрать собственную картинку не получится. Однако у приложения есть и плюсы – например, добавленные к экранной клавиатуре кнопки, позволяющие быстро перемещаться по тексту программы, или диалоги выбора цвета или спрайта, подставляющие значения прямо в список параметров соответствующих функций. Также к Codify прилагается хорошая справка по всем доступным функциям (графика, звук, математические функции, внешние параметры, работа с тачскрином и акселерометром).

Codify стоит восемь долларов США и доступен в российском App Store. Будем надеяться, что эта инициатива не заглохнет и не станет очередной жертвой переменчивого настроения модераторов App Store. Хотелось бы видеть такие же среды разработки для других языков и с другими библиотеками, к примеру Python или Processing. Если же допуск Codify до пользовательских айпадов не случайность, а начало плавной смены стратегии, то не исключено, что в Apple и сами думают над тем, как сделать iPad пригодным для программирования. А это было бы просто великолепной новостью.

Вероятно, еще после покупки своего первого мобильного гаджета от Apple ты задавался вопросом, как выжать из него нечто большее, чем прослушивание музыки и чтение книг. Да, здесь тонны софта на все случаи жизни, но как насчет того, чтобы сделать чекаут своего приложения из GitHub, внести в него правки и затем залить на сервер по SSH? А ведь это вполне возможно сделать, если знать как.

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

Редакторы кода

Самый простой инструмент программиста - редактор кода. Таких программ десятки для очень многих платформ, не является исключением и iOS. Общие требования к подобной утилите - лаконичность, поддержка большого количества языков, интеграция с облачными сервисами. В iOS важным становится еще один параметр - поскольку клавиатура не приспособлена для набора кода, необходима либо другая клавиатура, либо возможность интегрировать в существующую дополнительные кнопки с наиболее часто употребляемыми спецсимволами. Рассмотрим самые популярные редакторы кода, которые удовлетворяют этим требованиям, а также обладают своими уникальными возможностями.

Российский разработчик Дмитрий Ковба выпустил серию приложений, которую могут оценить не только начинающие девелоперы, осваивающие новые для себя языки программирования, но и гики, желающие осуществлять сложные математические вычисления на своем 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. Благодарим за участие!

Эта статья открывает цикл, предназначенный для новичков. Смею надеяться, что уровень подачи материала позволит разобраться в нем даже людям не знакомым с программированием. Начнем наше повествование с небольшого лирического отступления. Приложения для 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" на панели сверху. Если Вы Все сделали правильно, то должен запуститься эмулятор с Вашей программой. Щелкните по кнопке. Текст в строке должен измениться. Вот и все. С первым уроком покончено



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: