Разработка программ для iphone. IOS-разработка для начинающих: учимся создавать приложения для iOS с нуля

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

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

Операционная система iOS 10, последней модели iPhone считается самой лучшей в мире. Соответственно создание программ для лучшего девайса, в тренде у молодёжи.

Для того чтобы сделать приложение подойдет Windows. Но если по каким то причинам или по привычке к другой, Windows отсутствует рекомендуем установить macOS (Хакинтош). Вы можете установить ее на VMware или VirtualBox. Клавиатура у них различна, некоторые значения отсутствуют на Хакинтоше, но в целом все не так уж сложно.

Конечно чтобы обучиться программированию к этому вопросу надо подойти серьёзно, в первую очередь из-за необходимых познаний в области математики и логики. Сегодня совсем не обязательно знать строение электронного устройства, но с основами механизма нужно быть знакомым. Программист iOS обязан знать преобразование систем счисления, продуктивность и функциональность приложений, чтобы уметь создавать пользующиеся спросом приложения. Необходимыми будут знания языка i-программирования. Если ранее вы уже занимались этим с другими системами, то данный опыт мало чем поможет. Apple имеют собственную экосистему. Понадобятся знания в Objective-C и Swift. Последний стал использоваться позднее, поэтому язык Objective применяется чаще. Но Swift усиленно внедряется производителями компании Apple. Старый софт пишется на старом языке, а соответственно новый на новом. Поэтому желательно знать и тот, и другой. Изучить их можно на некоторых сайтах, достаточно быстро.

Основание программирования это Xcode. На данной среде есть необходимые инструменты для разработки приложений. Они предназначены для создания программ для Mac, iPhone, Apple Watch и др. Xcode вмещает в себя инструменты для создания интерфейса и редактора кода вмещающего новейшие средства для работы с ним. Там же возможна диагностика приложений. Система поддерживает эмуляторы всех устройств, а последние версии можно дозагрузить. Не давно появилась обновленная версия для разработки — 8.0. Простые версии можно найти установить через App Store. Последняя версия позволяет просматривать «сырое» приложение на платформах гораздо быстрее и не открывая его. Для удобства, доступности наших описаний лучше обновить Xcode.

Разработка мобильных приложений iOS

iOS разработка возможна с помощью Xcode. Для этого платформу нужно скачать. Произвести установку можно через сервис best-soft.org

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

  • Итак, открываем приложение Xcode.
  • Появившееся приветствие игнорируете, заходите в пункт создания файла.
  • Формируете стиль.
  • Далее выбираем вкладку приложения.
  • В поле названия прописываем нужное.

Платформа Xcode проста и понятна для не опытных программистов. Следуя интуитивным подсказкам, появляющейся информации на платформе можно создать не простую игру или программу. Для этого не обязательно быть знатоком кодов.

Разработка под iOS, её особенности

  1. Разработка под iOS прежде всего требует четкого понимания того, что мы хотим создать, какой должна быть программа. Перед началом программирования визуализируйте будущую игру, программу, дневник в уме, «разложите по полочкам». Нарисуйте в голове принципы будущего приложения, их задачи. Для этого определитесь с некоторыми пунктами:
  2. Возрастные ограничения, то есть к категории какого возраста пользователей будущего «создания», вы его отнесете. Определите, будет это женским приложением, либо мужским, а может и универсальным.
  3. Нужно понять для чего вы задумали эту разработку. Ответьте на вопрос, это скорее повышение опыта, тренировка практических навыков в области программирования или имеется финансовый аспект данной работы?
  4. Важно чувство меры в наполнении страничек, пустые и переполненные приложения вряд ли кому будут интересны.
  5. Не допускайте опечаток и неточностей в кодах.
  6. Следите за уникальностью создаваемых приложений.
  7. Расширьте возможности использования создаваемой программы для разных операционных систем.


Создание приложения на конструкторе

Рассмотрим на примере одного из конструкторов с сайта apparchitect.com. В данном случае игру создать не возможно, но простое приложение легко. Сделать это с помощью сервиса apparchitect.com достаточно просто. Следуя подсказкам сайта и с помощью инструментов нужно сконструировать приложение.

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

Это мой второй опыт создания приложения. О первом я подробно рассказывал в – там речь шла о привлечении инвестиций, подбора разработчиков и пр. К сожалению первый блин вышел комом.

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

Обучение

В общем решение было принято и в январе 2016 года я начал работу. По специальности я прикладной информатик, но по факту кроме самых базовых навыков работы с Pascal, из университета я ничего так и не вынес, а дело было лет пять-шесть назад. У меня, так же был небольшой опыт работы с HTML и CSS, при создании простеньких сайтов который впрочем не сильно помогал в деле создания приложений. Поэтому я начал с самых азов. С древнего и почти начисто забытого Pascal. Скачал редактор «Free Pascal» http://freepascal.ru/ нашел учебник, начал с простеньких программок по сложению и вычитанию. В общей сложности ушло порядка двух недель занятий, по два – три часа в день, чтобы освежить память.

Углубленное изучение Pascal предполагало больше практики, для чего я нашел задачник Абрамяна по Pascal с 1000 задач (PDF).

Так как начать писать приложения хотелось, как можно скорей, я не дожидаясь окончания первого этапа обучения, параллельно с решением задач на Pascal, начал изучать Cи, по книги «Язык программирования Си» - Брайана Кернигана и Денниса Ритчи (PDF). Здесь отдельно скажу, что несмотря на то, что эта книга есть и на Русском языке, я изучал его на языке оригинала, так как в целом не плохо знаю английский, и это на мой взгляд достаточно важно для любого человека занимающегося программированием. Обучающих материалов и просто материалов по тому или иному языку программирования на английском, как правило, значительно больше чем на Русском. Работа с AppStore, загрузка приложения, условия использования и прочее, все это тоже в основном на английском. Так что можно сказать что английский на уровне чтения технической литературы это обязательный навык для программиста.

Для программирования на Cи у меня был Mac еще с первого проекта. Задачки для Cи я решал в Xcode. Для того чтобы лучше усвоить разницу в синтаксисе Pascal и Cи я начал решать задачки из того же задачника Абрамяна, но уже на Cи. После двух недель ежедневных 4-5 часовых занятий я смог решить порядка 300 задач на Pascal и вдвое меньше на Cи а так же пройти порядка 100 страниц книги по Си. В это же время решил подключить к процессу обучения англоязычный сервис – Tree House .

Это обучающий сервис который сильно помог мне в освоении HTML и CSS. Подписка стоит от 25 $ в месяц. Но как по мне, это оправдано. На сервисе представлены обучающие материалы по самым разным языкам программирования включая Java, C#, Python, Swift и многие другие. Обучение происходит поэтапно, от видео к видео, с различными вставками практических заданий.

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

Таким образом мое обучение напоминало попытку продвигаться сразу по все фронтам одновременно. Я практиковался в решении задач на Pascal, чтобы как можно прочнее, как мне казалось, заложить основы программирования, изучал Cи, для того чтобы лучше понимать Objective-C и наконец изучал Objective-C, чтобы как можно скорей начать писать под IOS.

Так прошел еще один месяц каждодневных занятий в среднем по 4-5 часов в день. С одной стороны возможно логичней было бы двигаться поэтапно, скажем, вначале разобраться с Pascal, затем с Cи и далее приступить к Objective-C, но по факту, именно попытка охватить все, позволила в конечном итоге сэкономить кучу времени, так как я все больше стал уделять внимание не решению задач на Pascal и Cи а непосредственно созданию приложений из программы обучения Tree House. Это было куда интересней и по сути показывало, что задачи из задачника Абрамяна а так же материалы из Книги Кернигана и Ритчи по Си – хороши для понимания основ, но в целом довольно далеки от реального процесса создания приложений. В итоге к концу третьего месяца моего обучения я совсем перестал практиковать Pascal и Cи. Вместо этого я сосредоточился на практических материалах Tree House по Objeсtive-C и созданию приложений в Xcode.

Создание игры. Идея

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

Несмотря на то, что я по прежнему понятия не имел о том как создавать игры, я решил, что несколько обучающих видео решат этот вопрос. Сперва надо было определиться как вообще будет выглядеть игра. После небольшого мозгового штурма было решено, что самым оптимальным будет вариант 2d игры, где герой на каждом уровне бежит слева направо и ему навстречу выбегают разные противники и препятствия. Этот вариант показался мне приемлемым для идеи игры и не слишком сложным в исполнении.

После того как концепция была утверждена и бегло описана, надо было понять, как создаются игры. Погуглив видео я сразу наткнулся на то, в котором рассказывали, как создать игру на подобие Flappy Bird (Youtube).Тут возник важный вопрос. Не секрет что Apple в 2014 году выпустил новый язык программирования – Swift, который впитал в себя много хорошего от Objective-C и стал его логическим продолжением.

Видео на которое я наткнулся рассказывало о создании Flappy Bird именно на Swift, а найти такое же простое и понятное для Objective-C я не смог. Не долго думая я решил, что все равно будущее за Swift и лучше я не буду отставать, тем более что на том же Tree House были отличные материалы по его изучению. В итоге я взял паузу чтобы изучить Swift, понять синтаксис и основные отличия от Objective-C. Прошла еще неделя занятий в среднем по 8 часов в день. Я бегло прошелся по основным обучающим материалам для Swift, и решил, что наконец готов осилить видео по созданию Flappy Bird. За пару дней я смог создать вот это:

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

Концепция

Вначале я запланировал сделать лишь самое простое – 3-х уровневый прокручивающийся фон, анимированного героя, оружие, возможность прыжков и возможность стрельбы. Это было необходимо так как кроме самых общих представлений о работе со Sprite Kit у меня не было никакого опыта, надо было начинать с чего-то совсем простого. Как фиксировать нажатия и осуществлять прыжки героя, как прокручивать фон, как создавать пули в момент выстрела и тд. Этих вопросов было десятки а то и сотни. И способ решения для каждого, всегда был один и тот же – Google. Благо в интернете есть большое количество различных материалов (к сожалению в основном на английском языке) по созданию игр на Swift, где приводятся примеры решения тех или иных возникавших у меня вопросов. Так же огромную и неоценимую помощь оказывает сервис вопросов/ответов Stack Overflow.

Я думаю, что процентов 70% всех возникших у меня вопросов я смог разрешить с его помощью. К документации Apple я так же обращался но довольно редко. Может быть в 10% случаев максимум, и то когда других вариантов не было.

После очередной напряженной недели, во время которой я отдавал программированию почти все свое время – по 8-10 часов в день я смог сотворить вот это:

Оно могло дергать ногами (анимацию рисовал сам в фотошоп), прыгать и стрелять из дробовика с характерным звуком, в это же время на заднем плане прокручивался фон. Это было начало)

Прототип

Этот набросок позволил мне многое понять в механики моей будущей игры и убедившись в верности концепции, я решил следующим этапом добавить врагов умеющих стрелять а так же нормальный дизайн. Изначально я планировал заказать весь дизайн (фон, анимации героя и врагов, предметы и тд.) у фрилансера, так как это единственное, что я не мог сделать сам. Но потом я вспомнил про сайт Envato Market: http://market.envato.com/, на котором ранее приобретал музыку, шаблоны для сайтов, презентации и пр.

Помимо перечисленного на сайте существует большой выбор всевозможных анимаций, текстур, звуков и прочих вещей чрезвычайно необходимых при создании приложений. Цены, на мой взгляд, так же весьма приемлемы. Например подобранный мной набор анимаций главного героя, помимо бонусов в виде различных объектов (монетки, алмазы и прочее), включает в себя 8 анимаций таких как – стреляет, бежит, прыгает, умирает и прочее.

Такой набор я приобрел за 7$. Единственный момент заключается в том, что на приобретенные у них товары действуют разные лицензии. Одни например, разрешают использовать продукт только в одном изделие для неограниченного бесплатного распространения, другие разрешают его перепродажу третьим лицам у которых цель – такое же неограниченное бесплатное распространение, третьи, как для музыки например, разрешают распространение только ограниченному количеству слушателей и тд. Стоимость этих лицензий разная и зачастую может отличаться в 4-5 раз.

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

В общем я приобрел героя, оружие, врагов и все что необходимо для фона. Сам фон в таком виде как он есть не продавался.

Это результат моей работы в фотошоп созданный из пары десятков различных объектов – забор, асфальт, ямы, кучи мусора и тд. В целом на его создание ушло несколько дней. В дальнейшем я заглядывал на Envato раз 10, каждый раз докупая что-то необходимое.

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

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

Доработка игры

Далее встал вопрос с дизайном врагов. Всего их у меня 6 видов – 5 простых врагов и босс + честный гражданин. Все эти спрайты я планировал заказать чтоб их отрисовали, так как хотелось, чтоб персонажи были более жизненными. Я пошел на Freelance.Ru и разместил объявление на создание 5 персонажей, с 18-ю анимаций (по 8- 25 кадров) для каждого. Анимаций было много, потому что кроме стандартных бежит, стреляет, арестован, стоит и тд, были еще анимации смерти от каждого вида оружия, в замедленном или не замедленном режиме. Самая дешевая стоимость, от внушающего доверие фрилансера, которую мне назвали была в районе 40 тысяч рублей и 1 месяца работы. Мне это показалось дороговатым и я опять таки обратился к Envato. К счастью на сайт как раз загрузили коллекцию различных спрайтов от одного и того же дизайнера.

Спрайты из его коллекции вместе с набором анимаций стоят в среднем 15$. Самое главное, что в архиве со спрайтом идут файлы для программы Spriter.

Открыв Спрайт в этой программе и немного в ней разобравшись (очень проста в освоении), можно самому делать абсолютно любые анимации для своих персонажей с разной раскадровкой. В общем я подумал и купил всех персонажей на Envato, после чего своими силами обработал, добавил необходимые анимации и загрузил в приложение. Работа с текстурами надо сказать чрезвычайно утомительна и монотонна. Мне было необходимо выгрузить созданную анимацию из программы Spriter, затем обработать в фотошоп (развернуть, выставить размеры), далее сжать, переименовать, сделать картинки 1x, 2х, 3х. На обработку всех анимаций у меня ушло наверное с месяц, не меньше. Целый месяц монотонной и однообразной работы, благо я смог подключить к этой работе помощника. Но зато я разобрался во всем процессе, сделал себе такие анимации которые хотел переделывая их столько раз, сколько было нужно.

Параллельно с работой над текстурами я продолжал поэтапную разработку игры. Спустя два месяца продолжающейся работы я наконец видел свет в конце тоннеля. Но к сожалению сложилось так что почти на два месяца я был вынужден работу прекратить, так как навалились другие дела, плюс лето и в общем проект был поставлен на паузу. Позже в начале октября я вернулся к работе. Хотя я надеялся, что осталось совсем немного, по факту, передо мной стали появляться проблемы о которых до этого, по неопытности, я даже не подозревал.

Во первых несмотря на то, что я сжал свои png текстуры с помощь этого онлайн сервиса: http://compresspng.com/ru/, это не привело к тому, что во время работы приложения они стали занимать меньше оперативки. Самое время для меня было узнать, что размер картинки не равен размеру требующейся для нее оперативной памяти.

Во вторых я открыл чудесный мир утечек памяти, инструментов Xcode для их отслеживания и все «прелести» «strong reference cycle». После того как я прогнал свою игру через инструменты то обнаружил порядка 3-х с половиной тысяч утечек.

В третьих я понял, что стандартное, для моей игры, разрешение текстуры для персонажа в 180×180 по сути дела избыточно велико и я вполне могу переделать все анимации на разрешение 117×117 без какого-либо ухудшения качества. Интересно что на момент создания анимаций я переживал, что не оставил исходников в разрешении 360×360. Так как размер картинки 2х у меня был 180х180 соответственно картинка 3х в моем понимании должна была быть 360х360, но по незнанию я их не сделал, и как оказалось слава Богу, так как в конечном итоге они не понадобились.

В четвертых моя игра, когда были добавлены все анимации и объекты, стала ощутимо притормаживать. Тут требовалась большая работа по оптимизации и предзагрузки анимаций, звуков и прочего.

В итоге я был вынужден полностью переделать созданные мной атласы анимаций (как оказалось не в последний раз), для того чтобы снизить потребление оперативной памяти. Сжать и обрезать все картинки уменьшив их в среднем на 30%. Отказаться за ненадобностью от картинок 3х ограничившись лишь 1х и 2х. Провести большую работу по оптимизации и устранению утечек памяти и пр. Плюсом ко всему требовалась большая работа по завершению самого игрового процесса, так как сначала все кажется готовым и нужно только последние штрихи добавить, но на добавление этих штрихов уходит масса времени. В общем и целом это потребовало еще более месяца, правда уже не очень плотной работы в среднем по 4-5 часов в день, так как возможности всецело заниматься проектом не было. И к началу ноября все было более-менее готово.

Далее загрузка на App Store. Здесь, благодаря предыдущем опыту, никаких вопросов не было. За день я сделал скриншоты, простенькое описание, первую пришедшею в голову иконку (кстати как только у вас будет готовая иконка, ее лучше прогнать через этот сервис: https://makeappicon.com/, вы загружаете туда вашу иконку и он выдает вам ее обратно во всех необходимых размерах и разрешениях), и ключевые слова (их я подбирал с помощью сервиса https://sensortower.com/, сайт способен выдать вам тонны полезной информации о вашем либо о любом другом приложении, правда подписка стоит не дешево).

И вот приложение доступно в AppStore. Ура, Ура, но не совсем.

Ошибки, жуткие тормоза, пропавшие картинки, вылеты и пр. Вот что ждало меня при тестировании на разных Iphone-ах с разными версиями IOS. Тут же выяснилось, что несмотря на то что игра нормально работает на IOS 9, на 10-ки она работает с жуткими тормозами, и то и дело все время пропадает звук. Я был в «восторге» от такого подарка который несла в себе 10-ка, но деваться было некуда и я продолжил поиск и устранение ошибок. Мне в очередной раз пришлось полностью переделать систему размещения всех текстур в приложении, полностью переделать систему воспроизведения всех звуков и исправить немало дополнительных косяков. Особо теплые впечатления оставило необходимое, при работе с обновленным XCode, конвертирование кода со Swift 2.0 на Swift 2.3. Короче говоря я в очередной раз потратил больше месяца на доработку всего и только 13-го декабря, я смог загрузить более-менее рабочую версию. Хотя понятно, что это не последнее обновление.

Разработка приложений для мобильных устройств приносит неплохой доход. Программисты получают за это солидную зарплату, а компании-разработчики активно реализуют софт через магазин приложений AppStore, получая прибыль с каждой продажи. Написать свою программу легко и сложно одновременно. В некоторых случаях для этого нужно быть программистом, а в некоторых – обычным пользователем.

Создать мобильное приложение под iOS с нуля можно двумя способами:

  1. Написанием на языках Objective-C и Swift;
  2. Написанием с помощью визуальных редакторов и сервисов;
  3. С помощью дополнительных языков – это C++ и некоторые другие.

Последний вариант разработки создан для профи, которым тесно в рамках традиционной экосистемы.
Что касается языков Objective-C и Swift: в разработке приложения задействованы оба. Только Objective-C устарел, ведь он появился почти три десятка лет тому назад. На смену ему пришёл Swift, на котором создаётся современный софт, как платный, так и бесплатный. Также профессионалы используют в своих программах кодинг на C++, но это уже выходит за рамки статьи.

Основная среда для разработки приложений

Независимо от того, под какое устройство создаётся приложение, программисту потребуется среда разработки Xcode. Эта среда является универсальной – в ней делаются приложения для смартфонов, планшетов, компьютеров и прочих устройств от Apple. Скачивается она через магазин приложений Mac App Store, версии для Windows нет. Распространяется программа бесплатно, в ней уже присутствует эмулятор для тестирования софта.
Последняя версия среды была выпущена 27 марта 2017 года – номер версии 8.3. Также для обновлённого софта характерна поддержка новых функций и более быстрая работа.

  • Поддержка языка Swift 3;
  • Просмотр приложения на разных платформах;
  • Анализ производительности создаваемых программ;
  • Анализ использования системных ресурсов при выполнении программ;
  • Эмуляция различных устройств от Apple;
  • Встроенный редактор кода.

Каждая новая версия предоставляет всё новые возможности.

Пример разработки приложения

Данный пример показывает основы разработки программы «Hello World» - процесс создания прописан пошагово, что позволяет повторить его самостоятельно. Инструкция предусматривает использование объектно-ориентированного языка программирования Objective-C. Многие свои возможности он унаследовал от языка С, но в нём используется динамическая система типов данных, а не строго типизированная. Для более детального ознакомления рекомендуется поработать с книгой «Сила Objective-C 2.0. Эффективное программирование для iOS и OS X». Автор издания – Мэтт Гэлловей.
В мире программирования принято начинать изучение новых языков с программы «Hello, World». Она выведет на экран кнопку, при нажатии на которую на нём будет появляться и исчезать данная надпись. Для начала необходимо выбрать тип приложения:

  • Single View Application – заготовка для создания простейшего софта. Содержит компонент View Controller с конструктором форм Interface Builder;
  • Page-Based Application – основа для написания журналов и программ для чтения с поддержкой множества экранов;
  • Tabbed Application – основа для софта с несколькими переключаемыми экранами;
  • Master Detail Application – основа для софта с табличным отображением данных;
  • Game – основа для создания игровых приложений на основе фреймворков Metal, OpenGL ES, SceneKit и SpriteKit. Первый фреймворк применяется в требовательных играх, вторые два работают с трёхмерной графикой, а последний – с двухмерной.

Предусмотрены и ещё два типа – это Sticker Pack Application с изображениями для iMessage, а также iMessage Application для создания дополнений для iMessage или разработки приложений-аналогов.
Для «Hello, World» выбирается первый тип – это Single View Application. Выбираем его и задаём имя проекта, указываем язык Objective-C, в списке Devices выбираем пункт «Universal» (софт будет работать на iPad и iPhone), снимаем флажки Include Unit Tests и Include UI Tests и сохраняем проект.

Работа с текстом и кнопкой

На следующем этапе делаем интерфейс программы – разворачиваем меню ShowLab и выбираем пункт Main.storyboard, после чего откроется окно с макетом устройства (Interface Builder). В панели компонентов выбираем два компонента – это Button (кнопка) и Label (надпись). Разворачиваем список свойств, нажав на Show the Attributes Inspector, и настраиваем компонент Label – выбираем свойство Text, в выпадающем списке выбираем пункт Plain и вводим будущую надпись «Hello World». При необходимости меняем границы надписи и центруем её по горизонтали через Size Inspector – открываем панель и выбираем в выпадающем списке Arrange пункт «Center Horizontally in Container». Здесь необходимо поменять его свойство с Text на Switch.

Работа с кодом

Следующий пункт – необходимо создать связь между кодом и используемыми в приложении элементами. Последовательность действий:

  • Открываем содержимое файла ViewController.h двойным щелчком в отдельном окне;
  • Берём компонент с нашим текстом мышью, с зажатой клавишей Ctrl, и отпускаем внутри вышеуказанного окна;
  • В открывшемся окне Outlet’а необходимо ввести имя объекта (например, lab) и указать тип UILabel;
  • В списке Storage выбираем тип ссылки на объект weal и нажимаем Connect – в код ставится строка «@property (weak, nonatomic) IBOutlet UILabel *lab;» (без кавычек);
  • Проделываем аналогичные действия для компонента с кнопкой, но даём Outlet’у имя but;
  • Открываем файл реализации ViewController.m, берём компонент с кнопкой мышью, с зажатой клавишей Ctrl, отпускаем в окно с файлом до закрывающей скобки @end;
  • В открывшемся окошке указываем имя обработчика события (например, Click), в поле Type ставим значение id;
  • Открываем в этом же окне выпадающий список Event, выбираем пункт Touch Up Inside – это действие при отпускании пальца;
  • В списке Arguments выставляем значение Sender;
  • Нажимаем кнопку Connect.

В окне с кодом появится строка с фигурными скобками, между которыми необходимо вписать код «_lab.hidden = !_lab.hidden;». В итоге у нас должно получиться – «(IBAction)onClick:(id)sender { «_lab.hidden = !_lab.hidden;}» (без кавычек). Теперь остаётся лишь запустить наше первое приложение в эмуляторе.
Приложение обладает простым интерфейсом, в нём всего два элемента – кнопка и текстовое поле. При нажатии на кнопку в текстовом поле появляется надпись «Hello, World». Нажимаем ещё раз – и она исчезает.
Может показаться, что мы создавали приложение слишком долго. Если удастся сделать хотя бы простейший софт, это станет стимулом к дальнейшему изучению программирования под iOS.

Язык Swift


Если вам кажется, что процесс создания программ под iOS слишком сложный, попробуйте познакомиться с языком Swift. Его основные преимущества:
  1. Swift более лёгкий, чем Objective-C;
  2. Swift почти в три раза более быстрый;
  3. Swift более удобный в разработке программ.

Написанное приложение можно продавать через App Store. Также возможно бесплатное распространение. Независимо от способа распространения своих приложений, вы должны приобрести специальную лицензию.

Сервисы для создания приложений под iOS

Человеку, малознакомому с программированием, будет сложно сделать собственную программу. На изучение языков программирования уйдёт уйма времени. Чтобы создать приложение под iOS максимально быстро, можно воспользоваться специальными конструкторами. Рассмотрим их более подробно.


Это мощный инструмент, не требующий знания основ программирования. Вместо полной разработки здесь применяются шаблоны программ – это магазины, каталоги товаров, мультимедийный софт, медицинский софт, шаблоны для ресторанов, фитнесс-клубов и даже церквей. Итого более 1000 шаблонов, чтобы облегчить процесс разработки. И многие из них предоставляются абсолютно бесплатно.
Неоспоримым плюсом сервиса является то, что он позволяет компоновать программы не только по iOS, но и под Android. Минусом является необходимость платить деньги за размещение. Минимальный тарифный план – 2400 руб./мес. Тариф включает в себя 500 установок. Для корпоративных клиентов предусмотрен тариф на 10 приложений и безлимитное количество установок.
На сервисе работает понятный русскоязычный интерфейс, поэтому сложностей с ним не возникнет.

Сервис Apps Globus


Перед нами ещё один конструктор, позволяющий создать приложение под iOS без знаний в области программирования. Здесь работает мощный фреймворк с приличным функционалом, позволяющий создавать программы высокого уровня сложности. На выбор пользователей представлено множество шаблонов – можно работать с графикой, публиковать купоны с QR-кодами, создавать бизнес-софт для такси, разрабатывать софт для гостиниц и ресторанов.
Минимальный тариф под iOS – 6000 в год. Администрация конструктора самостоятельно публикует созданные приложения в App Store. Также здесь возможно конструирование софта под Android.
Интересная возможность – аккаунт реселлера для разработчиков, позволяющий запустить собственный бизнес по разработке софта для собственных клиентов.

Конструктор App2b

Здесь разрабатываются интернет-магазины, каталоги товаров, онлайн-журналы и многое другое. Пользователей ждёт множество готовых шаблонов, настраиваемых под свой вкус. Ваш софт сможет работать с графикой, мультимедийными файлами, push-уведомлениями, навигацией, социальными сетями и многим другим. Запускайте фотогаллереи, онлайн-витрины, каталоги музыки и прочий софт буквально в несколько нажатий мышью.
Основная ориентация сервиса – на бизнес-софт. Разработка здесь бесплатная, но нужно оплатить доступ к конструктору, техподдержку, доступ к статистике и размещение программ в App Store. Стоимость одного приложения – 9990 рублей.


Довольно простой конструктор, на их разработку уйдёт минимум времени – больше займёт подготовка контента. Сервис работает бесплатно, деньги за него платить не нужно. Для того чтобы приступить к разработке, необходимо скачать десктопную утилиту на компьютер (под Windows). Устанавливаем софт, открываем его и приступаем к работе – используя готовые модули и бесплатные шаблоны вы сможете быстро соорудить нужную вам программку.

AppsMakerStore

Если нужен реально красивый и функциональный софт, обратите своё внимание на конструктор AppsMakerStore. Это мощный бизнес-инструмент, позволяющий создавать приложения для бизнеса, причём своими руками – без помощи третьих лиц. На выбор пользователей представлено множество шаблонов:

  • Для ресторанов и кафе – с возможностью оформления заказов, бронирования столов или организации программ лояльности;
  • Для торговли – поддерживаются push-уведомления, присутствует каталог товаров с возможностью покупки в режиме онлайн, есть функции организация мероприятий;
  • Для косметических салонов – организация бронирования и записи, галерея работ, отзывы клиентов, подарочные сертификаты;
  • Для радио – организация трансляций на весь мир, публикация полезной информации и новостей;
  • Для событий и мероприятий – шаблон для ивент-агентств и организаторов. Мощный функционал с геолокацией и уведомлениями;
  • Для госслужб – запускайте календари событий, публикуйте защищённую информацию;
  • Для отелей, пансионатов, гостевых домов – функции бронирования, заказ дополнительных услуг и многое другое, что необходимо в гостиничном бизнесе.

Таким образом, здесь разработчиков ждёт внушительный функционал по разработке программ различного назначения.
Команда сервиса поможет опубликовать ваше приложение в App Store без сложных действий с вашей стороны – вам остаётся только создать софт.

В чём лучше разрабатывать приложения

Ответить на этот вопрос довольно сложно. Поэтому мы составили сравнительную таблицу:

Сервис Плюсы Минусы
iBuildApp Много шаблонов для приложений, русскоязычный интерфейс, круглосуточная поддержка Нужно платить деньги за разработку, причём немаленькие
Apps Globus Поддержка русского языка, доступные цены на публикацию и поддержку программ, множество инструментов для разработки софта, гибкость конструктора, доступ к аналитике, предоставление исходных кодов Мало доступных шаблонов
App2b Множество инструментов для разработки – от простых страниц до интернет магазинов, собственный хостинг, инструменты для продвижения приложений Не самый информативный сайт, для получения подробной информации по разработке необходимо позвонить по контактному телефону
New Digital Times Не нужно платить деньги, возможность разработки приложения через веб-интерфейс или приложение для компьютера. Можно создать магазин, журнал, есть хостинг для данных Мало модулей, многие из них придётся заказывать у программистов сервиса
AppsMakerStore Гигантское количество профессиональных отточенных шаблонов позволит создать продукт любого уровня сложности. Множество дополнительных модулей. Поддержка множества платформ. Трудно понять ценовую политику

Создать приложение с помощью сервисов очень просто – разработка не займёт у вас много времени. Все действия здесь производятся в визуальных редакторах, результаты можно посмотреть без публикации в App Store. Также почти все сервисы поддерживают софт под Android – вы сможете охватить сразу две мобильные платформы. Такая возможность актуальна для тех, кто занимается бизнесом и продвигает его в интернет-среде.
Но в конструкторах возможно создание далеко не любых программ. Кстати, мобильные игры создать с помощью конструкторов не удастся. Поэтому изучение языков программирования откроет перед вами широчайшие возможности по работе с софтом для продукции Apple.

В этой статье мы пошагово разберем, как сделать элементарную игру для iOS, ничего об этом не зная!

Вы пройдете путь от создания проекта до просмотра готовой игры на устройстве за 12 шагов и освоите основные принципы создания игр в xCode. Ну а потом решите, продолжать ли учиться разработке под iOS .

На все действия уйдет 10-15 минут.

Нам понадобятся:

  • Mac с установленным Xcode;
  • Устройство с iOS;
  • Изображение цветка;
  • Изображение травы.

Шаг 1. Создаем новый проект в Xcode

Запускаем xCode, выбираем пункт меню File -> New -> Project .

Шаг 2. Выбираем тип проекта

На следующем экране выбираем тип проекта – Game.

Шаг 3. Указываем основную информацию о проекте

Указываем название проекта и сверяем остальные настройки с картинкой.

Шаг 4. Выбираем место для папки с проектом

В открывшемся окне Finder указываем папку, в которой будем хранить проект. При необходимости можно воспользоваться кнопкой Create Folder в левом нижнем углу окна.

Шаг 5. Настраиваем игру

Теперь перед нами окно детальных настроек приложения. Снимаем галочку с Portrait в разделе Deployment Info , чтобы игра работала только в горизонтальном режиме.

Шаг 6. Смотрим на стандартный пример игры

Нажимаем на кнопку запуска симулятора в левом верхнем углу. Ждем некоторое время, пока симулятор загрузится. Кликаем на серое поле, чтобы появлялись космические корабли.

Шаг 7. Меняем космические корабли на цветы

В правом меню выбираем пункт assets.wcassets , потом делаем активным объект Spaceship и на место картинки с космическими кораблем перетаскиваем картинку с цветком.

Шаг 8. Смотрим, что изменилось

Снова запускаем эмулятор. Теперь вместо космических кораблей появляются цветы.

Шаг 9. Уменьшаем размер цветка

Уменьшим цветы в пять раз. В правом меню выбираем файл GameScene.swift и находим в нем строчки кода:

Sprite.xScale = 0.5 sprite.yScale = 0.5

Заменяем их на:

Sprite.xScale = 0.1 sprite.yScale = 0.1

Шаг 10. Добавляем траву в коллекцию картинок

Идем в assets.wcassets , находим плюсик (см. картинку), нажимаем на него и выбираем пункт меню New Image Set . Называем новый набор картинок Background (название должно быть точным) и перетаскиваем в него картинку с травой из Finder.

Шаг 11. Добавляем траву в код

Удаляем код, который делает фоновую надпись HelloWorld:

Class GameScene: SKScene { override func didMoveToView(view: SKView) { /* Setup your scene here */ let myLabel = SKLabelNode(fontNamed:"Chalkduster") myLabel.text = "Hello, World!" myLabel.fontSize = 45 myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) self.addChild(myLabel) }

На его место вставляем:

Class GameScene: SKScene { var background = SKSpriteNode(imageNamed: "Background") override func didMoveToView(view: SKView) { /* Setup your scene here */ background.position = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2) addChild(background) }

Шаг 12. Тестируем игру на устройстве

Идем в Xcode -> Preferencies -> Accounts и добавляем свой Apple ID:
1. Подключаем iOS-устройство к компьютеру.
2. Выбираем устройство и жмем на кнопку запуска.
3. Если появляется сообщение о проблемах с безопасностью, идем на iOS-устройстве в Настройки -> Основные -> Управление устройством и разрешаем запуск приложений от нужного разработчика.
4. Находим на Spring Board иконку приложения и запускаем его.Теперь устройство можно отсоединить от компьютера и продолжать пользоваться приложением.

Если возникли какие-то проблемы, то обновите iOS и xCode.

В App Store такую игру не примут, но можно развлекаться на своих устройствах. Если проявить немного усердия, из этой основы можно сделать что-то действительно интересное с помощью Google и StackOverflow.

Не разбираясь в программировании, мы создали простую игру и потратили всего 10 минут . Чему же можно научиться за год интенсивного обучения под руководством опытных преподавателей?

Где учиться разработке под iOS?


Лучший вариант - поcтупить на факультет iOS-разработки в онлайн-университет GeekUniversity , созданный GeekBrains и Mail.ru. Целый год несколько вечеров в неделю вы будете изучать программирование под iOS. Занятия проходят в формате вебинаров и учиться можно в любой стране мира.

В GeekUniversity практикуют проектно-ориентированное обучение . За год вы создадите 4 собственных приложения для iOS:

  • Погодное приложение;
  • Мобильную игру;
  • Приложение для интернет-магазина;
  • Командный проект.

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

Какие знания вы получите на факультете iOS-разработки?

За год супер-интенсивного обучения ученики усваивают огромный объем знаний:

  • Навыки программирования на Swift
  • Навыки программирования на Objective C
  • Навыки разработки мобильных игр
  • Знание алгоритмов и структур данных
  • Понимание компьютерных сетей и операционных систем
  • Работа в команде
  • Методологии разработки: Agile, Scrum
  • Умение работать с GIT
  • Знание принципов ООП
  • Навыки успешного прохождения собеседований и общения с заказчиками
  • Навыки проектирования архитектуры, использования шаблонов проектирования singletone, adapter, factory, dependency injection
  • Навыки использования IOS SDK, карт, геолокации, push-уведомлений, анимаций и 3d-touch
  • Навыки разработки мобильных приложений под iOS
  • Навыки написания чистого кода

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

Как создать приложение для Android или iPhone? — таким вопросам все чаще задаются не только веб-разработчики, но и обычные владельцы небольших бизнес-сайтов, блоггеры.

В данном обзоре предлагает рассмотреть , которые представляют собой конструкторы для быстрого и удобного создания Android и iPhone приложений . При этом не требуя от пользователя навыков программирования или других специальных ИТ-знаний. Такие приложения незаменимы для разного вида бизнеса — ведь это отличный способ расширить целевую аудиторию и привлечь клиентов.

Таким образом, все рассмотренные в обзоре для разработки приложений можно объединить под лозунгом: просто, быстро и без программирования!

бесплатный веб-сервис, который позволяет сконвертировать контент вашего сайта в Android приложение и распространить его через Google Play. Кроме того, созданные приложения можно как продавать, так и размещать в них рекламу.
Можно создать неограниченное количество Android приложений из трех типов контента: сайта, просто html-страницы и YouTube видео. Для создания Android приложения AppsGeyser использует простой и наглядный мастер шаблонов.

Сайты AppsGeyser: http://www.appsgeyser.com, http://www.appsgeyser.ru

бесплатный онлайн-сервис для быстрого создания мобильных приложений. TheAppBuilder создает приложения с помощью конструктора и типовых шаблонов — для бизнеса, событий, образования, музыки, спорта и др. Созадние приложения бесплатно, а за 5 у.е. в мес. можно отключить показ посторонней рекламы в созданном приложении. TheAppBuilder позволяет создавать Android приложение, и Windows Mobile.

Сайт TheAppBuilder: http://www.theappbuilder.com

— это онлайн-сервис, который позволяет пользователям создавать и публиковать свои собственные мобильные приложения в несколько кликов в интернете. Платформа Appsmakerstore создает мобильные приложения, поддерживаемые HTML5, iTunes, Android Market, Blackberry Marketplace, Windows Marketplace и Facebook без каких-либо глубоких технологических навыков. Это всего 1 приложение для 6 разных платформ . Appsmakerstore предлагается в 23 языках, в том числе на русском и украинском.

Особенность Appsmakerstore в том, что он предлагает на выбор уже готовые шаблоны для определенных индустрий (например, юридические услуги, ночные клубы, рестораны и кафе, торговля, салоны красоты и пр.)

  • «Сделай сам» — $9.78 в месяц.
  • «Мы делаем приложение для Вас» — $249
  • «Reseller»- специальная цена, которую нужно узнавать на сайте отдельно.

Всегда включено во все планы:

  • Неограниченное количество изменений контента и обновлений приложения.
  • Обновление контента приложения на iTunes и Google Play без необходимости повторной публикации.
  • Отправлять неограниченное количество push уведомлений пользователям.
  • Автоматически получать и пользоваться всеми обновлениями системы.
  • Безопасный хостинг на наших серверах.
Сайт Appsmakerstore: http://appsmakerstore.com

— платный онлайн-конструктор мобильных приложений (iPad, Android , HTML5) для небольшого бизнеса. Среди возможностей - геолокация, получение и отправка сообщений, корзина для товаров, уведомления, интеграция с соцсетями, размещение информации о меню, наборе услуг, предстоящих событиях и др. Есть шаблоны для ресторанов, риелторов, гимнастических залов и др.

Данный сервис представлен такими планами:

  • «Мобильный сайт» — $29 в месяц.
  • «Мобильное приложение» — $59 в месяц
  • « White Label Partner» создание приложений для Ваших клиентов — специальная цена, которую нужно узнавать на сайте отдельно.
Сайт Biznessapps: http://www.biznessapps.com

5. AppGlobus

AppGlobus — платный, один из российских онлайн конструкторов мобильных приложений, позволяющий пользователям самостоятельно создать и опубликовать своё приложение в App Store и Google Play.

Использует новый дизайн и возможности Ionic Framework, что значительно улучшает качество разработки, и даёт возможность создавать мобильные приложения на HTML5, iOS, Android даже без навыков программирования.

На данный момент AppGlobus предлагается на 8 языках, в том числе на русском.

AppGlobus.com предлагает следующие пакеты:

  • STARTAP - 900 руб./мес.
    • Приложения: HTML5/Android, админ панель, магазин, нет ограничений на Push, нет ограничений на установки, нет рекламы.
  • BASIC - 1500 руб./мес
    • Приложения и для Android и для iOS, админ панель, магазин, нет ограничений на Push, нет ограничений на установки, нет рекламы.
  • STUDIO - 2000 руб./мес
    • Приложения: Windows/Android/ iOS, админ панель, магазин, нет ограничений на Push, нет ограничений на установки, нет рекламы.
  • PRO - 45000 руб./единоразово
    • Приложения: Windows/Android/ iOS, разработка на заказ, сами разместим в App Store и Google Play, отдадим исходный код
Сайт AppGlobus: http://appglobus.com/

— платный онлайн-сервис для создания своего мобильного приложение для бизнеса или личного пользования. Никаких специальных умений не требуется. Хорошо подходит для небольшого бизнеса, например, интернет-магазинов. Чтобы создать свое приложение, понадобится всего 5 минут – нужно всего лишь выбрать необходимые модули и дизайн. Есть английская и русская версии.

My-apps.com предлагает такие пакеты:

  • Старт — 599 руб. /мес.
    • приложения только для Android, доступ к конструктору, бесплатные шаблоны и иконки приложений, обновления контента каждые 48 часов, обновления исходника приложения в сторах самостоятельно не чаще 1 раза в 2 месяца.
  • Лайт — 990 руб. /мес
    • приложения и для и для iOS, доступ к конструктору, бесплатные шаблоны и иконки приложений, базовые скриншоты приложения, Push уведомления — 1 в месяц, обновления контента каждые 24 часа, обновления исходника приложения в сторах 1 раза в 2 месяца.
  • Стандарт — 2490 руб. /мес
    • приложения и для Android и для iOS, доступ к конструктору, бесплатные шаблоны и иконки приложений, базовые скриншоты приложения, поддержка по Skype, Push уведомления — 10 в месяц, обновления контента каждые 12 часов, обновления исходника приложения в сторах 1 раза в месяц.
  • Бизнес — 9890 руб. /мес
    • приложения и для Android и для iOS, доступ к конструктору, бесплатные шаблоны и иконки приложений, базовые скриншоты приложения, поддержка по Skype и е-мейл, персональный менеджер, Push уведомления — 50 в месяц, обновления контента -мгновенно, обновления исходника приложения в сторах — без ограничений.
  • VIP — 3999 руб. /мес + 150 000 руб. инсталляционный платеж

    • приложения и для Android и для iOS, доступ к конструктору, бесплатные шаблоны и иконки приложений, базовые скриншоты приложения, поддержка по Skype и е-мейл, персональный менеджер, Push уведомления — неограничено, обновления контента -мгновенно, обновления исходника приложения в сторах — без ограничений.
Сайт My-apps.com: http://my-apps.com

предоставляет платформу “сделай сам ” для создания iPhone/ приложений , которая так же не требует навыков программирования. Данный сервис предоставляет для каждой организации простой способ создания мобильных (iPhone, iPad, Android) приложений и публикационных материалов. Клиенты могут создать собственные каталоги, флайеры, брошюры, отчеты, резюме и пр. и предоставлять их с помощью SaaS-решения. Есть английская и русская версии.

iBuildApp предоставляется в таких пакетах:

  • Бизнес (2400 рублей в месяц) — 3000 установок, неограниченное количество просмотров мобильного сайта, отсутствие встроенной рекламы, публикация приложения на iTunes и Google Play.
Сайт iBuildApp: http://ibuildapp.com

— онлайн-сервис для разработки приложений (iPhone , iPad, Android). Позволяет создавать приложение на основе одного из множества шаблонов приложений. Элементы создаваемого пользовательского интерфейса приложения могут быть связаны с такими функциями, как отправка электронной почты, SMS-сообщения, отправка на сервисы Facebook и Twitter.

  • Developer — $33 в месяц . (можно создать только 1 приложение)
  • Professional — $79 в месяц .
  • Premiun- $129 в месяц .
  • Enterprise — Цену нужно узнавать отдельно .

Все пакеты поддерживают такие платформы: IOS (iPhone/iPad) & Android (Phone/Tablet)

Сайт Viziapps: http://www.viziapps.com

- онлайн-редактор, позволяющий создавать приложения для iOS, Android и Windows Phone. Пользоваться ей очень просто: собственную программу можно собрать из уже готовый частей. Несмотря на то что AppsBuilder старается быть более простым и понятным для неопытных пользователей, в него добавлены и некоторые возможности для программистов: к примеру, можно дополнять созданные приложения собственными Java-скриптами.

Есть три платных пакета, в которых есть везде 30 дней — бесплатная пробная версия:

  • Starter (49 евро в мес.) -1 приложение.
  • Regular (199 евро в мес.) -до 5 приложений.
  • Scalable (от 249 евро в мес.) — более 5 приложений.
Сайт AppsBuilder: http://www.apps-builder.com

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

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

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