- Основы разработки приложений под ios
- 5 конструкторов для быстрой разработки приложений для ios
- Hello world
- Phonegap / cordova
- Pythonista 3
- Working copy
- Xamarin
- Xcode
- Апгрейд клавиатуры
- Как зарегистрироваться в ios developer program
- Нативные средства разработки
- Необходимые знания и навыки для разработки ios-приложений
- Обязательно ли нужен mac?
- Пошаговая инструкция по разработке приложения для ios-приложения
- Программируем на c , basic и pascal на iphone и ipad [ 15 промо]
- Создаем связь между графическими элементами и кодом
- Создание первого проекта
- Типы приложений
- Цена разработки приложений для ios
Основы разработки приложений под ios
Приложения, разработанные для iOS, обладают множеством особенностей, которые в процессе разработки нужно учитывать.
- Создание iOS-приложений требует предварительного тщательного анализа отзывов и пожеланий целевой аудитории.
- Программирование для устройств Apple выполняется в среде Xcode IDE, которая работает только в OS X.
- Для размещения готового приложения в AppStore необходимо строго соблюдать требования этого магазина.
- Выбор языка для начала. Начинать разрабатывать можно как простые, так и кросс-платформенные приложения. В первом случае используется один из двух основных языков для разработки под iOS — Objective-C и Swift. Во втором случае может быть использован код на Java, C , Python и т. п.
- Выбор типа программирования (нативное, гибридное, «чистый web»). Выбор здесь определяется самой концепцией приложения. Если от будущей программы не требуются постоянная доступность, автономность работы в условиях отсутствия интернета и наличие уведомлений для пользователя, лучшим вариантом будет веб-приложение. Благодаря запуску прямо из браузера такую программу можно использовать на любой платформе. Среди других преимуществ отметим универсальность, автоматические обновления, дешевизну разработки.Гибридную или нативную разработку стоит выбрать при создании полноценного мобильного приложения. В первом случае создаются сразу несколько версий программы соответственно для нескольких операционных систем. Это дешевле программирования исключительно под iOS, но и дает в итоге меньшую производительность и безопасность приложения.Выбор гибридного типа разработки обоснован, если:
- необходимо создать простое приложение;
- предполагается недорогое использование на двух платформах;
При этом, как указывалось ранее, нужно быть готовым к плохой производительности и к постоянной зависимости от интернета, поскольку гибридные программы работают на связке HTML5 JS.
Нативный подход позволяет обойтись без «костылей». Приложение разрабатывается только на стандартном для iOS языке.
Когда стоит выбрать последний вариант?
- Приложение создается для работы на одной платформе.
- Предполагается использование функций, специфичных для данной платформы.
- Требуется постоянное обновление программы, скоординированное с выходом обновлений ОС или выпуском новых версий устройств Apple.
- Стоимость размещения приложения в AppStore. На проверку магазином заявки на публикацию уходят обычно сутки. Далее после одобрения создатель программы должен подписать соглашение и заплатить 99 долларов в качестве взноса за iOS Developer Program. Причем, платеж не единоразовый — его необходимо проводить ежегодно.
5 конструкторов для быстрой разработки приложений для ios
- Appy Pie. Эта платформа сегодня развивается наиболее стремительно и уже успела оставить отчетливый след в сфере разработки iOS-приложений. Для начинающих Appy Pie подойдет в том числе. Благодаря своей гибкости в оплате тарифов данная среда разработки будет полезна также представителям малого и среднего бизнеса. В частности, здесь можно начать разрабатывать приложения на бесплатной основе, а уже в процессе выбрать подписку, наиболее удовлетворяющую бюджету.
- Shoutem. Продукт был выпущен на рынок в 2021 году и с тех пор непрерывно развивается, став одним из лучших на рынке. Платформа предлагает на выбор множество гибко настраиваемых шаблонов, в результате использования которых можно добиться уникальности во внешнем виде и дизайне приложения и высокой функциональности.Shoutem идеально подходит для разработки приложений по управлению мероприятиями. Также здесь имеется функция Social Wall («социальная стена»), благодаря которой можно эффективно взаимодействовать с другими пользователями.
- Swiftic. Продукт появился на свет в 2021 году, поначалу являясь израильским аналогом Como. На сегодняшний день платформа выросла до очень больших масштабов — на ее базе создано более миллиона мобильных приложений. В среде Swiftic имеется большое разнообразие блоков и компонентов, с помощью которых можно создавать планировщики, формировать карты лояльности, собирать целые интернет-магазины.
Платформа отлично подходит также для создания приложений по организации мероприятий и встреч. Здесь же реализована возможность сбора оценок и комментариев от пользователей. Основными владельцами приложений, созданных на Swiftic, являются рестораны, музыкальные группы и организаторы мероприятий.
- GoodBarber. Данная платформа способна приятно удивить практически всем. Продукт, созданный на острове Корсика, включает в себя очень качественные шаблоны и имеет привлекательный внешний вид. Помимо этого, в GoodBarber реализованы соцсети, чаты, iBeacons, геофенсинг и множество других новейших функций.
- BuildFire. Высочайшая надежность этой платформы подтверждена уже более чем 30 тысячами клиентов, реализовавших в BuildFire свои приложения. В основном это предприятия, бренды и инфлюенсеры. Данная среда разработки считается одним из лидеров в области ускоренной разработки мобильных приложений.
Hello world
Итак, после моего довольно долгого вступления, перейдем к делу. Я попробую показать насколько просто сделать маленький Hello World прямо на вашем iPad.
Задача: сделать отображение разноцветных кругов под пальцами пользователя (своеобразный мультитач тест)
Пожалуй, начнем. Первым делом направляемся в функцию, которая вызывается при запуске приложения и добавляем туда создание массива touches.
function setup() touches = {}
endДалее перемещаемся в функцию, которая отвечает за касания экрана (вызывается при появлении нового касания, который в Codea именуется просто touch). Во время прикосновения к экрану мы добавляем касание в массив, а во время его прекращения — убираем. Все крайне просто.
function touched(touch) if touch.state == ENDED then touches[touch.id] = nil else touches[touch.id] = touch end
endИтак, мы имеем массив активных касаний. Что нужно сделать следующим этапом? Правильно, изобразить круги с центром в точке касания.
Для этого нам нужно перейти в функцию draw, которая вызывается во время отрисовки фрейма.
function draw() -- цвет фона background(0, 0, 0, 255) -- изображаем для каждого касания из массива for k,touch in pairs(touches) do -- Указываем id касания (число) для инициализации генератора случайных чисел math.randomseed(touch.id) -- Это позволит нам иметь разный цвет для каждого касания fill(math.random(255),math.random(255),math.random(255)) -- Изображаем элипс (в нашем случае круг) в с центром в точке касания ellipse(touch.x, touch.y, 100, 100) end
endВсе, дело сделано.
Результат:
Phonegap / cordova

PhoneGap исходно был создан компанией Nitobi. В 2021 году, Adobe приобретает Nitobi и бренд PhoneGap. Adobe затем передает одну из версий PhoneGap (назвав её Cordova), в Apache Foundation, оставив себе бренд PhoneGap и его как продукт. В результате Cordova можно рассматривать как движок, стоящий под капотом PhoneGap (а также некоторе другие гибридные фреймворки). PhoneGap, в свою очередь, добавляет к возможностям Cordova свои, дополнительные, функции.
PhoneGap во многих отношениях очень похож на Ionic. Он так же дает разработчикам возможность создавать кросс-платформенные приложения при помощи веб-технологий, и так же построен на базе Apache Codova. Однако PhoneGap не привязан к какому-то определенному Javascript-фреймворку, поэтому разработчики имеют бОльший выбор, на чем и как они будут создавать свои приложения.
Увы, подобно Ionic, PhoneGap использует WebView (который в iOS работает довольно медленно), так что со скоростью у приложений, созданных на базе этого фреймворка, дела не всегда обстоят блестяще.
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. Пару раз мне это пригодилось — написал консольную утилиту, которая считает цены покупки и продажи криптовалюты.
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). Премиум-версию приложения можно протестировать на протяжении десятидневного пробного периода.
Xamarin

Основанная в 2021 году компания Xamarin, выпускающая семейство продуктов Xamarin через пять лет своего существования была купена компанией Microsoft. Сегодня продукты Xamarin представляют на рынке очень интересный подход к разработке кросс-платформенных мобильных приложений: приложения пишутся на C#, затем Xamarin компилирует его в нативное приложение для iOS, либо для Android, при этом в качестве базовой технологии Xamarin использует Mono, чем кросс-платформенность и обеспечивается.
Разработчики Xamarin говорят, что полученные на выходе приложения используют нативное API платформы, для которой приложение компилируется, так что поведение полученного приложения никак не отличается от поведения любого другого приложения на этой же платформе. Разработку, кстати, можно вести при помощи Visual Studio (что совсем неудивительно).
Несмотря на то, что большая часть кода проекта может быть без изменений использована на каждой из поддерживаемых мобильных платформ, тем не менее, некоторые фрагменты потребуется писать специально для версии приложения под iOS и под Android.
Xcode
Текстовый редактор в Xcode переписали на Swift, сделав его надёжнее и быстрее. Можно ли это почувствовать? Да! Подсветка синтаксиса работает (почти) моментально, открытие и навигация по файлу теперь без заметных задержек, а сообщения об ошибках больше не перекрывают исходный код. В beta все выглядит очень приятно, посмотрим, что нас ждет в релизе!
В Xcode появилась поддержка Markdown. Разметку можно использовать при документировании кода, и функциональность эта, на первый взгляд, косметическая, довольно заметно облегчает чтение кода, особенно чужого:

(Источник)
Редактор, кстати, научился подсвечивать блоки кода, удобно при изучении большого объёма кода.

(Источник)
Ещё одной важной фичей Xcode 9 стал рефакторинг кода на Swift, Objective-C, Objective-C , C. Рефакторинг позволяет переименовывать классы, переменные, а также дробить методы на менее крупные.

(Источник)
Из менее выделяющихся, но тем не менее полезных фич, можно назвать:
Апгрейд клавиатуры
Скажи приятель, а ты знаешь какой самый главный инструмент программиста? Конечно же, клавиатура. Один из самых главных минусов iPad’а (применительно к нашему ремеслу) – отсутствие отдельной клавиатуры. Экранная вполне пригодна для написания относительно небольших текстов (хотя, ваш покорный слуга умудрялся набивать на ней статьи по 18К знаков), но совершенно не годится для набивания кода.
«А чем же код от обычного текста?» – справедливо заметишь ты. В первую очередь тем, что когда мы пишем код, нам хочется видеть как можно больше строк. Согласись, лицезрение лишь последних 5-7 строк кода очередной хитрой функции удовольствие весьма сомнительное.
Экран iPad’а и так не сильно большой, а тут еще экранная клавиатура отъедает драгоценное пространство. При написании заметок в блог это еще не сильно ощущается, а вот при описании алгоритмов начинаешь чувствовать тотальную нехватку места.
Кроме этого у экранной клавиатуры есть ряд ограничений (которые успешно исправляют продвинутые редакторы): отсутствуют клавиши для быстрого перемещения в тексте (стрелочки, табуляция); отсутствие быстрого доступа к специальным символам/знакам, которые широко распространены в синтаксических конструкциях языков программирования.
Именно поэтому без нормальной внешней клавиатуры использовать iPad в качестве рабочей машинки будет крайне проблематично. Думаю, ты уже понял, что сейчас я нагло начну склонять тебя к покупке дополнительного гаджета. Сегодня внешние клавиатуры доступны в самых разных вариантах (встроенные в чехлы, stand-alone решения), выбор действительно шикарный.
Не хочу рекламировать какие-то бренды, но по своему опыту скажу, что наиболее интересные решения (на мой взгляд) сегодня предлагает один из лидеров в области разработки устройств ввода — компания logitech.
Для себя я выбрал Logitech Ultrathin Keyboard Cover — средняя по цене клавиатура и помимо своей основной функции, исполняет роль защитного чехла. Не могу сказать, что это идеальный вариант, но набирать с ее помощью килобайты текста гораздо удобнее и быстрей.
Как зарегистрироваться в ios developer program
У вас есть два пути:
Разница между ними в следующем: при участии в Enterprise программе вы не можете, в отличие от обычной программы, выкладывать свои приложения в AppStore, зато можете разрабатывать in-house приложения — приложения, для внутреннего использования в своей компании, без открытого доступа.
(последний вопрос в списке)
В остальном, программы дают одинаковые возможности:
Небольшое замечание по Ad Hoc — это способ распространения приложений без AppStore, прямой установкой файла-сборки приложения через iTunes. И тут возникает вопрос: чем это отличается от тех in-house приложений, которыми манит нас Enterprise программа?
Тем, что в стандартной программе вы можете зарегистрировать в год не более 100 устройств для установки на них своих приложений, то есть ни о каком коммерческом распространении тут речь идти не может. Более того, Ad Hoc распространение ориентированно в первую очередь на тестирование продуктов — программы, установленные таким образом, могут работать на устройствах только в течение 6 месяцев.
Нативные средства разработки
Это прежде всего язык Objective-C и среда разработки Xcode (за компанию с Interface Builder, iPhone симулятором и другими приложениями из пакета разработчика). Еще можно писать на C и C , но без Objective-C вам в некоторых моментах будет все-таки не обойтись.
На хабре довольно много статей об этом языке — стоит только пролистать блог
. У Objective-C есть определенный шарм (хотя на этот счет высказываются
), он немного сложен в начале освоения, -парадигма, унаследованная от Smalltalk дает о себе знать — но потом затягивает.
Основной аргумент в пользу использования инструментов от Apple — нативные средства разработки при прочих равных в любом случае дадут на выходе код быстрее и качественнее, чем любые другие инструменты.
Недавно JetBrains анонсировали свою среду разработки для Objective-C —
(жаль, что они оказались от супер-названия CIDR — одна компания, имеющая продукт с названием Cider, попросила их не использовать похожую аббревиатуру), так что даже тут появится выбор. Конкуренция, надеюсь, приведет к повышению качества.
Необходимые знания и навыки для разработки ios-приложений
Создание любых приложений, в том числе для устройств на iOS, требует достаточно обширных знаний. Математику и логику программисту также нужно знать, даже если на начальном этапе это не понадобится. Развитие современных технологий дало разработчикам возможность не изучать досконально архитектуры ПК, тем не менее понимание основ (системы счисления и способы их преобразования, скорость работы подпрограмм, эффективность различных алгоритмов) в этой области необходимо.
Программисту, специализирующемуся на iOS-приложениях, нужно на профессиональном уровне разбираться в самих операционных системах от Apple (как macOS, так и iOS). Добавим обязательное требование к iOS-разработчику, заключающееся в знании языков программирования, созданных для этой архитектуры (Objective-C, Swift). Навыки владения Delphi, C , C# или VB.NET здесь особо не нужны.
Безусловно, знать хотя бы основы того же C не помешает, тем более что его элементы встречаются и в «яблочных» языках. И все же наибольшей популярностью в разработке для Apple-устройств пользуется Objective-C. Этот язык появился еще в начале 1980-х годов (то есть гораздо раньше C ).

Опытным разработчикам будет гораздо легче осваивать программирование iOS-приложений. Но начать развитие в этом направлении можно, даже не имея никаких навыков в разработке компьютерных программ. Для создания приложений под iOS существует среда PaintCode, появившаяся благодаря активному развитию технологий NoCode.
А вот английский язык необходимо знать, так как вся актуальная документация по разработке на сайте Apple написана именно на нем. Да и в целом в программировании английский играет ключевую роль.
Обязательно ли нужен mac?
Вам обязательно понадобится Mac OS X, так как ни на какой другой платформе вы не сможете работать с iOS SDK. Есть много различных вариантов разработки iOS приложений, но минимум для сборки и загрузки приложения в AppStore вам будет необходима Mac OS X. Да, последнее время появляются различные сервисы, которые
и пирожки за вас есть будут
предлагают постить приложения за вас и различные другие услуги, и о них на хабре тоже
. Но, на мой взгляд, все это пока несерьезно и пользоваться услугами подобных контор, при разработке сколько-нибудь значимого приложения не стоит. Хотя, конечно, все зависит от задачи, если вы сможете зарабатывать, используя подобные сервисы, то почему бы и нет:)
Способы заполучить Mac OS X:
Mac mini сейчас вполне доступная вещь, хотя, конечно, всегда хочется большего, а там цены у Apple уже начинают кусаться.
Относительно двух других вариантов: я слышал отзывы людей, которые вполне счастливы с хакинтошем или с Mac OS X на VMWare, но и отрицательного опыта тоже накоплено достаточно. Тут все зависит от железа, прямоты рук и вашего желания.
В целом, если вы хотите разрабатывать под iPhone, операционная система препятствием стать не должна.
Пошаговая инструкция по разработке приложения для ios-приложения
- Выбор идеи. Первый этап является ключевым и одновременно самым интересным. Он определит популярность приложения среди аудитории AppStore. Здесь самое сложное для разработчика — определиться, что будет представлять собой программа: логическую игру, агрегатор онлайн-магазинов и т. д. Необходимо решить, какую именно задачу должно решать приложение. Быстрый ответ на этот вопрос будет означать, что разработчик выбрал правильное направление.
- Выбор инструментария. Сформулировав идею, не стоит сразу писать для нее код. В разработке мобильных приложений iOS важное значение имеет дизайн (внешний вид). И для этих целей отлично подойдет векторный редактор Sketch. Причем оценивать варианты наработок можно сразу же на устройстве благодаря плагину Sketch Preview и бесплатному просмотрщику Skala Preview. После создания дизайна и назначения функций кнопкам программист может приступать непосредственно к коду.
- Этап разработки. Приложение для iOS разрабатывается, как правило, на Objective-C, хотя все более популярным среди разработчиков становится Swift. Этот язык примечателен более простым синтаксисом и, как следствие, он проще в освоении. Тем не менее, для самостоятельной разработки приложений под iOS Swift требуется тщательное штудирование специализированных учебников и справочников. За время такого обучения другой разработчик может уже реализовать намеченную идею, создав аналогичное приложение.
Поэтому желательно не обучаться самостоятельно по книжкам, а пройти соответствующий курс, в процессе прохождения которого есть возможность уже создать первое приложение.
- Выбор названия. Любопытный факт: имя определяет большую часть успеха приложения. Именно с названием (не считая иконки) впервые сталкивается пользователь, когда находит приложение, например, через поиск. Поэтому к неймингу нужно отнестись серьезно:
- для игры подойдет огромное множество вариантов, пришедших в голову создателю;
- узкоспециализированное приложение желательно назвать в соответствии с функцией (например, вариант для заметок — «Notes»);
- лучше подбирать англоязычное название, понятное иностранным пользователям (например, приложение из категории «музыка» логично назвать «Music»).
На основе выбранного имени разработчику не составит труда создать пиктограмму приложения. Ничего страшного, если иконка окажется похожей на другой продукт, хотя стремиться к этому точно не стоит.
- Размещение в магазине. Готовое к загрузке и тщательно протестированное приложение можно публиковать в AppStore. Но перед этим необходимо купить подписку разработчика за 99 долларов в год, о чем мы уже упоминали ранее. Далее рекомендуется внимательно изучить гайдлайны магазина.
На изучение всех пунктов и подпунктов уйдет достаточно много времени. Удостоверившись в удовлетворении всех требований Apple, программист может приступать к загрузке своего приложения в AppStore, а после этого ожидать одобрения модераторов и при необходимости исправлять найденные замечания.
Программируем на c , basic и pascal на iphone и ipad [ 15 промо]
Российский разработчик Дмитрий Ковба выпустил серию приложений, которую могут оценить не только начинающие девелоперы, осваивающие новые для себя языки программирования, но и гики, желающие осуществлять сложные математические вычисления на своем 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 по ссылкам далее.
Скачать C для iPhone и iPad [iTunes]
Скачать Basic для iPhone и iPad [iTunes]
Скачать Pascal для iPhone и iPad [iTunes]
Разработчик предоставил нам 15 промокодов – по 5 к каждому из приложений. Коды будут разыграны среди посетителей, оставивших комментарий к статье. Не забудьте заполнить форму E-mail и укажите желаемую программу. Удачи!
Конкурс проведен, победителями стали следующие пользователи: Max, Vladimir, Born2kill, Shoker, apels1nko72p, RioDezz, znm, Sxebang, AntonBordov, AlexForwarder, Greenbint, Itoxa17, Ильюшка, Alexey и mixail. Благодарим за участие!
Создаем связь между графическими элементами и кодом
В Visual Studio (или Delphi) объект в коде создается автоматически в тот момент, когда кладешь визуальный компонент на форму. В Xcode этого не происходит, но это не создает проблем.
Открой содержимое заголовочного файла ViewController.h в отдельном окне, дважды щелкнув на нем. В этом файле находится объявление расширения класса UIViewController, помечается ключевым словом @interface. Такая возможность была добавлена во вторую версию Objective-C.
Теперь выполни такой трюк: перемести курсор мыши на компонент — текстовую метку, зажми клавишу Ctrl и левую кнопку мыши. Перемести курсор в окно с кодом (файл ViewController.h), за курсором потянется синяя линия. Отпусти мышь и клавишу внутри описания интерфейса ViewController.
Появится окно создания Outlet’а.

Это свойство объекта, которое ссылается на другой объект (в данном случае визуальный компонент). Тебе надо ввести имя объекта Outlet, по нему ты будешь обращаться к визуальному компоненту, пускай будет lab. Далее выбирается тип объекта, он выбран правильно: UILabel.
Еще ниже в списке Storage выбирается тип ссылки на объект: weak или strong. Если выбрать strong, то объект, на который указывает свойство, будет существовать до тех пор, пока свойство указывает на него, в таком случае он не сможет автоматически удалиться, когда перестанет использоваться.
@property (weak, nonatomic) IBOutlet UILabel *lab;Убеждаемся, что Outlet — это свойство.
Теперь создадим Outlet для кнопки. Алгоритм остался прежним. Только для свойства Name надо ввести другое имя, например but. В код будет добавлена строка:
@property (weak, nonatomic) IBOutlet UIButton *but;В результате имеем два указателя на визуальные компоненты: lab и but — соответственно, надпись и кнопку. Теперь, используя указатели, мы можем манипулировать компонентами в коде.
Затем надо создать обработчик события нажатия кнопки. Для этого в отдельном окне открой файл реализации ViewController.m. Точно таким же образом, как ты перетаскивал линию в заголовочный файл для создания аутлета, от кнопки перетащи линию в файл реализации и отпусти до закрывающей командной скобки — @end.

Заполни поле Name, его значение представляет имя свойства — метода. Пусть будет onClick. Значение поля Type оставь по умолчанию — id. В языке Objective-C данный тип является предком для всех остальных. В ниспадающем списке Event выбрано по умолчанию событие Touch Up Inside, которое происходит в момент отпускания указателя (мыши, пальца…) над кнопкой, то есть заключительная стадия нажатия кнопки.
- (IBAction)onClick:(id)sender {
}Минус в начале означает закрытый метод (private). Ключевым словом IBAction помечаются события (методы) визуальных компонентов из Interface Builder.
Между командными скобками напишем выполняемый при нажатии кнопки код:
_lab.hidden = !_lab.hidden;В этой строчке кода мы инвертируем значение свойства hidden. Оно имеет тип BOOL, который располагает двумя значениями: YES — истина и NO — ложь (несколько непривычно Windows-программерам, где true и false).
Обрати внимание на символ подчеркивания, стоящий перед именем объекта — надписи (_lab). Без него компиляция завершится с ошибкой. Символ подчеркивания добавляется автоматически для объектов, содержащихся в других объектах; то есть в данном случае объект lab содержится в объекте ViewController.
Сейчас можно скомпилировать приложение и запустить его на симуляторе. Мы выбрали симулятор для iPhone 7, входящий в Xcode 8. Кнопка компиляции и запуска представляет собой черный прямоугольник и находится на панели вверху интерфейса.
После компиляции приложения, запуска симулятора и загрузки нашего приложения на экране симулятора отобразится его интерфейс: надпись «Hello, World» и кнопка Switch. Если нажать последнюю, надпись исчезнет, при повторном нажатии она появится вновь.
Мы сделали очень простое приложение для понимания сути разработки под iOS. Более подробные сведения о создании приложений для iOS на языке Objective-C ты можешь узнать из курса наших друзей из GeekBrains «Мобильный разработчик». В курсе два месяца отдается на изучение этого языка. Во время первого месяца — вводные темы, а на втором — реальный кодинг профессиональных приложений.
Создание первого проекта
В качестве заготовки для нашего приложения выберем Single View Application. Поскольку мы не будем разрабатывать большую программу, нам хватит предоставляемой этой заготовкой средств. Нажимаем Next. На следующей странице мастера надо ввести имя проекта, к примеру ShowLab.
В ниспадающем списке Language оставим выбранный по умолчанию язык — Objective-C. Далее в ниспадающем списке Devices оставим выбор Universal. Здесь определяется, для какого устройства (iPhone или iPad) создается приложение. Пункт Universal означает для обоих.
В результате откроется окно со списком всех примененных к проекту параметров. В этом окне можно изменить установленные ранее в мастере параметры: ориентацию, целевой девайс и прочее.

Сначала нам надо создать интерфейс приложения. Для этого одним кликом выбери файл Main.storyboard в списке слева (если этот файл не видно, разверни содержимое папки ShowLab). Правее списка все окно займет Interface Builder. В центре отобразится макет устройства.
В правом нижнем углу окна находится панель компонентов. Перетащи оттуда на макет компоненты Label и Button. Выше панели компонентов находится список свойств. Если у тебя он отсутствует, нажми кнопку Show the Attributes Inspector, находящуюся под заголовком окна в правой части интерфейса.
Выдели в макете компонент Label и настрой его свойство Text: в ниспадающем списке оставь выбор Plain, в строку ниже введи нужную надпись, в нашем случае «Hello, World». Если текст не помещается в границы надписи, измени их, перетаскивая маркеры на краях компонента.
Чтобы централизовать его по горизонтали, перейди на страницу Size Inspector, нажав на кнопку Show the Size Inspector (справа от Show the Attributes Inspector). На этой странице из ниспадающего списка Arrange выбери пункт Center Horizontally in Container.
Теперь выбери компонент Button, измени его свойство Text на желаемую метку — Switch. Отцентрировать можешь так же, как описано выше.
Типы приложений
- Заготовка Single View Application предназначена для простого приложения с одним экраном. Заготовка включает компонент View Controller, который позволяет настроить вид приложения с помощью конструктора форм Interface Builder.
- Master Detail Application создает приложение, где в табличном представлении отображается коллекция объектов. После выбора одного из них показываются подробные сведения об этом объекте. Первый вид — мастер, второй — детализация.
- С помощью Page-Based Application создаются приложения, имеющие несколько экранов, как страницы в книге. Следовательно, из этой заготовки создаются, например, читалки.
- Tabbed application позволяет создавать приложения, где на каждый экран можно переключиться в любой момент, то есть у каждого экрана есть своя кнопка для его активации, на которой отображается заголовок. В качестве примера можно привести iTunes.
- Game служит для создания заготовки игры. На выбор предлагаются четыре фреймворка для создания игры: SpriteKit, SceneKit, OpenGL ES, Metal. Вкратце рассмотрим их.
SpriteKit представляет собой систему для двумерной визуализации и анимации текстурированных прямоугольников — спрайтов. При отображении кадров используется стандартный цикл, кадр выводится после того, как обработку пройдет все содержимое сцены.
SceneKit — высокоуровневый фреймворк для визуализации трехмерной графики без помощи OpenGL. Он поддерживает загрузку, манипуляцию трехмерными объектами. В него включены: физический движок, генератор частиц и легкий способ скриптования.
OpenGL ES — стандарт в области компьютерной графики. Позволяет визуализировать 2D- и 3D-сцены. Позволяет описать пайплайн для видеокарты: вершины проходят преобразование, собираются в примитивы, которые растеризуются в двумерное изображение и выводятся на экран. В пайплайн можно включить программируемые шейдеры.
Metal — представляет собой низкоуровневый API, который позволит тебе выжать все мощности из твоего видеоадаптера. Отлаженные API вместе с предкомпилированными шейдерами и многопоточностью позволяют твоей игре подняться на новый уровень производительности и качества. - Sticker Pack Application — новый вид приложений, появившийся в iOS 10 и Xcode 8. Представляет собой набор простых или анимированных изображений, используемых в новом iMessage. Для своего создания не требует кодирования.
- iMessage Application — новый вид приложений, появившийся в iOS 10 и Xcode 8. Позволяет создавать дополнения для iMessage, например для покупки и загрузки твоего пакета стикеров. Также можно, воспользовавшись API iMessage, создать свой аналог данного приложения, включая проигрывание аудио, видео, использование стикеров и другое.
Цена разработки приложений для ios
На конечную стоимость разработки приложения для iOS влияет не только набор функций, но и множество других факторов. Сумма будет зависеть в том числе от оказания помощи при оформлении документации, от сложности дизайна, от необходимости в разработке серверной части и от наличия техподдержки.

И все же попытаемся определить, сколько стоит разработка приложения для iOS хотя бы примерно в зависимости от требуемых характеристик.
- Стандартное оффлайн-приложение с простейшим функционалом (например, визитная карточка): ценовой диапазон — 150-450 тысяч рублей, средний срок выполнения — 1 неделя.
- Приложение, подразумевающее взаимодействие через интернет с серверной частью (модерация сообщений, наполнение сайта контентом и т. п.): ценовой диапазон — 450-950 тысяч рублей, средний срок выполнения — 2-3 недели.
- Чат-бот или интерактивный помощник: ориентировочная стоимость — 1 млн рублей, средний срок выполнения — 1 месяц.
- Приложение, реализующее принцип IoT (например, для связи с другими устройствами посредством Bluetooth или Wi-Fi): ценовой диапазон — 1-1,5 млн рублей, средний срок выполнения — 1,5 месяца.
- Мессенджер: ценовой диапазон — 1,5-2,5 млн рублей, средний срок выполнения — 2 месяца.
- Приложение, реализующее технологии дополненной и виртуальной реальности: ценовой диапазон — 1,8-2,5 млн рублей, средний срок выполнения — 2 месяца.
- Приложения для оказания услуг (доставка продуктов, заказ такси, взаимодействие с курьерами и т. д.): ценовой диапазон — 2-3 млн рублей, средний срок выполнения — 2 месяца.
- Интернет-магазины и каталоги продукции с поиском, скидочной механикой, эквайрингом и личным кабинетом клиента: ориентировочная стоимость — 2 млн рублей, средний срок выполнения — 2 месяца.
- Приложения для соцсетей, различные по функционалу: ценовой диапазон — 2-4 млн рублей, средний срок выполнения — 3 месяца.
- Корпоративные приложения, интегрированные с множеством других сервисов, обладающие высокими требованиями к защите информации и безопасности данных: наиболее дорогой в разработке сегмент мобильного ПО.
В заключение предупредим будущих разработчиков, что создание приложения для мобильных платформ — задача не столь тривиальная, как может показаться. Многие важные детали выявляются уже в процессе активного использования продукта. И работа над приложением будет продолжаться и дальше. К этому нужно быть готовым.


