Как сделать приложение для iPhone. Делаем приложение для iOS самостоятельно

14.10.2019 Приложения

В 2008 году открылся магазин приложений (App Store) в магазине Apple iTunes. С того времени более 500,000 приложений были одобрены Apple. Кроме этого, каждый день по всему миру тысячи приложений появляются в качестве идей и эскизов. Возникает вопрос, как люди с ограниченными техническими ресурсами и навыками создают приложения для iPhone?

Хорошие новости - любой может сделать приложение для iPhone, это просто вопрос знания ряда действий, которые вы должны совершить. Эта статья будет служить гидом для того, чтобы шаг за шагом, от идеи, до публикации на App Store изучить процесс создания вашего первого приложения для iPhone.

Какая у вас цель?

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


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

Не наняли бы людей для поддержки;
- были бы недовольны, что поддержка приложения требует вашего личного времени.

И кем бы вы ни были, индивидуальным предпринимателем, директором по маркетингу или IT-специалистом, создающим приложения для использования внутри компании, определение цели проекта, поможет сделать процесс разработки успешным.

Вот некоторые примеры целей проекта:

Создать приложение, которое не требует ежедневного управления;
- создать приложение, которое станет основной ежедневной работой для вас и вашей команды;
- создать приложение для продвижения ваших продуктов или услуг;
- создать некоммерческое развлекательное приложение.

Задание: Сформулируйте цели которых вы хотите достигнуть создавая свое приложение.

Каковы ваши ожидания?

Наиболее частый вопрос людей, у которых есть идея приложения для iPhone или iPad, звучит так: "Как много я смогу заработать?" К сожалению, на этот вопрос сложно дать однозначный ответ. Для каждого приложения уникальны следующие параметры:

Стоимость создания;
- популярность;
- люди ответственные за управление его успехом.

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

Реальные примеры доходов будут отличаться для каждого приложения, но существует важный пример:

Приложение "A", функциональность которого базируется на коммерчески успешном приложении "B", покажет намного меньшую прибыль чем у приложения "B".

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

С чего начать?

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

Оценить то, в чем вы не эксперт, непросто. Например, если бы у какого-нибудь дизайнера появилась идея инновационного дизайна детского автомобильного сидения, то был бы тот человек квалифицирован, чтобы оценить свою собственную идею? Вероятно, нет. Он должен был бы искать совета кого-то, кто профессионально занимается детскими автомобильными сидениями. И только эксперт в своем деле может помочь сделать идею ещё лучше, благодаря своим специализированным знаниям.

С мобильными приложениями также, чтобы оценить ваши идеи лучше обратиться к людям которые в этом хорошо квалифицированы:

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

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

- Личные связи
Вы знаете кого-нибудь лично, кто придумал и создал приложение? Обсудите вашу идею с ними.

Что дает вам чужая оценка?

Когда вы получаете мнение эксперта о своей идее, вы узнаете следующее:

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

Этот набор информации необходимо получить от опытного рецензента. И только после того как вы получили эту информацию, вы можете с уверенностью переходить к следующим шагам проекта, получив объективную уверенность и в жизнеспособности вашей идеи, и возможности достичь ваших целей.

Что делать, если вы не можете найти человека который оценит вашу идею?

Спросите себя, относятся ли эти факторы успеха к вашему приложению:

- Решает ли ваше приложение какую либо уникальную задачу?
Люди хотят иметь возможность решать множество задач находясь в движении. Успешные приложения часто решают проблему, которая уникальна в мобильном контексте.

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

- Это заставляет людей смеяться?
Что происходит с забавными приложениями? Они становятся популярны.

- Делаете ли вы что-то лучше?
Есть ли существующие успешные приложения, в которых не хватает важных функций или хорошего дизайна? Но это риск, так как возможно эти функции или изменения скоро появятся. Но если вы успеете первым, удача за вами.

- Насколько интерактивным будет ваше приложение?
Большинство людей быстро теряют интерес. Успешные игры или программы требуют от пользователя постоянного активного взаимодействия.

Задание: Проанализируйте вашу идею.

Шаг 1: Разработайте план монетизации и маркетинговый план

"Постойте, готовы ли мы рисовать прототипы и все остальное?" Фактически, еще нет. Следующий шаг, перед тем как перейти к дизайну или разработке, это выяснить, как ваша идея будет приносить прибыль!

"Почему это так важно? Разве я не могу это сделать позже?" Можете, но мы опросили более 100 разработчиков и на основании этого говорим что: 80% приложений не приносят достаточного дохода, чтобы поддерживать в одиночку бизнес.

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


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

"У меня появилась прекрасная идея!"
Эскиз.
Дизайн.
Разработка.
"Я думаю, что буду взимать 99 центов. Посмотрим как это будет работать."
Запуск. "Ура!"
"Странно. Почему люди не платят 99 центов?!"
Приложение резко падает в черную дыру App Store.
"Может мне сделать его бесплатным?!"
"Где мой разработчик? Мне надо исправить приложение, изменить способ его монетизации, потому что 99 центов не работают!"
"Хорошо, приложение исправлено, выбран другой способ монетизации. Но как теперь мне вернуть утерянные позиции?"


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

Задание: Разработайте план монетизации.

Шаг 2: Зарегистрируйте аккаунт разработчика

Даже если вы закажете разработку приложения кому либо, внутри App Store вы будете вести бизнес самостоятельно. Зарегистрировать аккаунт можно в iOS Development Center. Это будет стоить 99$ в год. Кроме этого вы должны предоставить данные о вашем банковском счете. Подготовьте эту информацию перед регистрацией.


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

Задание: Зарегистрируйте аккаунт разработчика iOS.

Шаг 3: Нарисуйте эскиз вашего приложения

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

Какие основные действия пользователи будут предпринимать внутри приложения?
- Какая информация должна быть представлена на каждом экране?
- Какая последовательность действий? Как пользователи доберутся от начала до конца?
- Насколько большими будут элементы на экране, какие у них будут относительные размеры?


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

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

Задание: Нарисуйте эскизы всех экранов вашего приложения.

Шаг 4: Определите работу, которая будет заказана на стороне

Какими навыками вы обладаете? Вы дизайнер, разработчик или же просто человек с идеей которую хотите воплотить в жизнь?

Когда вы создаете приложение iPhone, вы начинаете небольшой бизнес. И одному человеку сложно взять на себя обязанности исследователя, менеджера проекта, бухгалтера, контент менеджера, дизайнера, разработчика, маркетолога, рекламщика. Сможете ли вы взять все эти обязанности на себя? Вы можете попробовать, но скорее всего в процессе потеряете много времени, энергии и здравомыслия. Определите области, где вам удобно взять инициативу на себя, а где удобно нанять сотрудников:

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

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

Задание: Определите какую работу вы готовы взять на себя, а на какую необходимо нанять сотрудников.

Шаг 5: Нанимаем команду

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

Дизайн

Если вы дизайнер, то можете воспользоваться , в котором содержится большая коллекция элементов пользовательского интерфейса iPhone. Этот шаблон сэкономит вам время когда вы приступите к работе. Для того чтобы узнать больше о мобильном дизайне в целом, почитайте эти ресурсы:

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

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

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

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

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

Вот несколько сайтов, где можно найти дизайнера:

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

Разработка

Если вы разработчик Objective C или Cocoa, то открывайте Xcode и начинайте! Рекомендую зарегистрироваться на этих форумах:

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

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

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

Вот несколько сайтов, где можно найти разработчика:

Если в лесу упадет дерево, но вокруг не будет никого кто бы это услышал, то узнает ли кто-нибудь о падении этого дерева? Приложения с легкостью могут находиться в App Store, оставаясь при этом совершенно незамеченными. Не дайте этому произойти с вашим приложением. У вас должна быть стратегия по продвижению вашего приложения, а лучше если таких стратегий будет несколько. Будьте готовы к экспериментам, одни идеи будут работать, а другие нет.

Стратегии маркетинга и продвижения:

Используйте социальные сети.
Подумайте о том, как ваше приложение может быть интегрировано с социальными сетями, и реализуйте эту функциональность в нем. Как минимум создайте аккаунты для своего приложения в Facebook и Twitter, и используйте их чтобы общаться с пользователями и получать отзывы. Разработчики Angry Birds и Instagram проделали хорошую работу по привлечению пользователей на Facebook.

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

Используйте для продвижения эти сайты:

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

Ресурсы по маркетингу приложений.



Задание: Найдите фрилансеров или студию, которые займутся дизайном, разработкой и маркетингом.

Заключение

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

Без финансовых вложений и специальных знаний.

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

Примечание для пользователей Windows: чтобы создавать приложения для iOS вам необходимо установить OS X на виртуальной машине (VirtualBox, VMware). Это процесс отнюдь не прост и для его осуществления требуется отдельная инструкция.

1. Идем в App Store и устанавливаем среду разработки XCode :

Если у вас уже стоит XCode, то необходимо обновить его.

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

3. Выбираем платформу и тип приложения:

4. Указываем информацию о проекте. Обратите внимание, что мы выбрали тип приложения «Universal»:

5. Нажимаем на кнопку New Folder и указываем имя папки, в которой будем хранить файлы приложения:

6. Снимаем галочку с чекбокса Create Git Repository и нажимаем кнопку Create . В результате вы должны попасть на стартовый экран работы над приложением:

7. Нажимаем на пункт Main.storyboard в правом меню, перетаскиваем на основное поле элемент Label и добавляем в него текст Hello_world :

8. Теперь надо сделать иконку для приложения. Подбираем картинку и загружаем ее на mapappicon.com :

9. Ждем когда веб-приложение закончит работу и указываем свой адрес электронной почты для получения архива с иконками:

10. Возвращаемся в XCode и в левом меню выбираем раздел Assets.xassets :

11. Открываем архив из почты и перетаскиваем иконки оттуда на рабочее пространство XCode:

12. Выбираем один из симуляторов устройств, нажимаем на кнопку запуска приложения (черный треугольник) и включаем на своем Mac Developer Mode :

13. Повторяем попытку запуска. Ждем, когда на симуляторе загрузится iOS:

14. Убеждаемся, что приложение работает:

Смотрим готовое приложение на устройстве

Теперь можно посмотреть, как работает приложение на устройстве. Перед выполнением инструкции убедитесь, что у вас свежие версии XCode и iOS.

1. Идем в xCode -> Preferencies -> Accounts и добавляем свой Apple ID:

2. Подсоединяем iOS-устройство к компьютеру:

3. Выбираем нужное устройство в списке и нажимаем на кнопку запуска. Ждем некоторое время.

4. Если вылезло сообщение о проблемах с безопасностью, то на iOS-устройстве идем в Настройки -> Основные -> Управление устройством и разрешаем запуск приложений от разработчика с вашим Apple ID:

5. Идем на рабочий стол и находим иконку нового приложения:

6. Запускаем:

7. Отсоединяем устройство от компа. Теперь приложением можно пользоваться.

Что делать, если хочешь больше?

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

Ведь Apple предъявляет очень высокие требования к приложениям. App Store Review Guidelines включает в себя 29 пунктов и более сотни подпунктов. Для того, чтобы приложение им соответствовало и было принято для публикации в магазине, разработчику требуется большой объем технических знаний.

Если хотите создавать качественные приложения для iOS предназначенные для массового использования,

  1. Язык программирования. Какой нужно знать, чтобы писать приложения под iOS.
  2. Нужен ли дизайнер, разработчик интерфейсов или кто-то еще?
  3. Официальная часть: сертификат разработчика.
  4. Необходимое оборудование для комфортной разработки.
  5. Вечный вопрос: AndroidOS или iOS?
  6. Что нужно сделать сегодня?
  7. Создание нового проекта.
  8. Компиляция. Что это такое и зачем это нужно?
  9. Запуск на симуляторе.
  10. Выводим “Hello, world!”.
  11. Какие стандартные view есть в iOS.

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

Язык программирования (wikipedia.org) - формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением.

Пожалуй, вопрос, который я задал в названии этой части, довольно сложный. Я могу ответить на него просто – Objective-C. Если бы я на этом остановился, то я бы оказался неправ. Я бы сказал, что Objective-C – это необходимый минимум. Недавно проходила конференция от Яндекса – YET, на ней один из докладов был посвящен как раз тому, какие языки программирования должен знать разработчик. Ответ был вроде следующего: “Он должен изучать новые и новые языки программирования постоянно, не останавливаясь на каком-то конкретно” . Я с этим полностью согласен. Изучая новые языки программирования, вы изучаете новые подходы, методы программирования. Поэтому, чтобы писать приложения под iOS, нужно знать Objective-C, но также желательно знать и другие языки программирования, чтобы ваш код был хорошим, эффективным, гибким.

Если вы еще не программист, то я вам советую начать с языка Си. Скачайте книгу Кернигана и Ритчи (а лучше купите ) о языке Си, прочтите ее, проделайте все, что там вам предлагается, и уже после этого я посоветовал бы вам переходить к Objective-C. Если же вы уже представляете себе, как писать программы, готовы с легкостью ответить на вопросы – “Что такое типы данных? Что такое переменная? Что такое функция или метод? Что такое ссылка и указатель? Что такое “ include ”?” , вы знаете Си или C++ или же Java или C#, то вы готовы к написанию своего первого приложения под iOS.

Также вам необходимо знать основы ООП и шаблоны проектирования. Наверное, список можно и дальше продолжать, но вряд ли я готов претендовать на качественное объяснение данных понятий. Да, к сожалению, Objective-C не тот язык, с которого можно начать свой путь программиста. Но если вам нравится и хочется творить, то вам пора бежать в магазин, закупаться книгами и начинать свой путь разработчика.

Нужен ли дизайнер, разработчик интерфейсов или кто-то еще?

Очередной, не менее простой вопрос. Если вы программист и умеете писать консольные программы и хотите начать писать приложения под iOS, то на начальном этапе вам такой человек не нужен. Если у вас есть iPhone || iPad || iPod Touch, вы знакомы с iOS, то вам не нужен разработчик интерфейсов. Вообще, у Apple есть такой документ – Human Interface Guidelines . В данном документе описано, где и какой элемент интерфейса надо использовать. Поэтому на начальном этапе можно обойтись и без третьих лиц. Вообще iOS SDK предоставляет достаточно возможностей для разрисовки интерфейса приложения, так что рисовать в PS какие-то там кнопочки или разноцветные тексты, градиентные заливки и прочее вам не придется. Позже мы с вами создадим первый проект, в котором мы познакомимся со всеми этапами создания приложения “Hello, World!”.

Однако, нужно понимать, что когда пойдут серьезные проекты, приложения, которые вы захотите опубликовать в AppStore, то вам уже будет сложнее без дизайнера и разработчика. Сложность может проявиться на разных этапах – либо при разработке приложений, когда вы будете тратить часы в поисках необходимой картинки или сидеть и творить в PS, либо же после того, как опубликуете приложение и начнете получать комментарии от наших любимых юзеров, которые будут жаловаться на ваш убогий дизайн бесплатного приложения. Я столкнулся на обоих этапах с такими проблемами. После получения отстойных комментариев в AppStore я хотел забросить свое приложение, которое между прочим бесплатное, и забыть о неблагодарных пользователях. Однако, полезность самого приложения для меня, а также для многих других пользователей, заставила меня проглотить те гневные комментарии и продолжить разработку приложения. Месяца три назад я начал разрабатывать приложение вместе с дизайнером, который говорит что и куда вставлять, какой цвет выбирать, где и какую картинку рисовать, и это, я хочу сказать, довольно-таки удобно. Поэтому я все же советую в какой-то момент начать использовать услуги дизайнеров, чтобы получать хороший фидбэк от пользователей. И помните – пользователи iOS-устройств хотят видеть хороший дизайн приложения, даже если и его функциональность страдает.

Официальная часть: сертификат разработчика

Наверное, вы уже много слышали о каком-то там сертификате разработчика. Сейчас я постараюсь вас ввести в курс дела – зачем он и нужен ли он вам прямо сейчас. Сертификат разработчика представляет собой некий файл, как и любой другой сертификат. Этот файл выдает вам компания Apple после того, как вы пройдете все этапы регистрации в системе iOS (MacOS ) Developer (Enterprise ) Program .

Что же вам даст наличие данного файла и регистрация в одной из вышеуказанных программ? Ответов на этот вопрос – тьма тьмущая. Поэтому скажу только о самом важном (все нижеописанное дается вам ровно на один год):

  • тестирование ваших приложений на своих девайсах (хотя вроде это хакается и можно и без сертификата)
  • доступ к форуму разработчиков на портале Apple (хотя есть сообщество StackOverflow.com, где гораздо оперативнее можно найти ответ на ваш вопрос)
  • возможность скачать бета-версии (ну и конечно же текущие) iOS и Xcode
  • возможность установить бета-версии iOS на свой девайс
  • возможность опубликовать приложение в AppStore
  • возможность привязать до 100 устройств к своему аккаунту, тем самым разрешив данным девайсам устанавливать бета-версии iOS, тестировать ваши приложения (еще не опубликованные в AppStore) и еще много чего нелегального
  • возможность попонтоваться перед друзьями, что вы официальный разработчик iOS-приложений

Если вы решили, что вам нужен такой сертификат, то будьте готовы расстаться с 100$ (300$ для Enterprise), отправить факс в США, ввести данные вашей банковской карты (внимание! Вашей, именно вашей), ну и дочитать эту главу.

Итак, поехали.

  1. Идем по этой ссылке http://developer.apple.com/programs/ios/
  2. Кликаем на Enroll Now
  3. Читаем внимательно флуд и идем дальше – Continue
  4. Тут у нас 4 пункта:?a. Вы хотите создать новый Apple ID для Apple Developer Program?b. Вы хотите использовать существующий Apple ID?c. Вы уже зарегистрированы, как простой разработчик, а теперь хотите стать официальным разработчиком со всеми вышеописанными плюшками?d. Вы уже являетесь участником iOS или Mac Developer Program и хотите привязать к вашему аккаунту еще одну программу
  5. Друзья, дальше вам самим надо пройти пару шагов по заполнению личных данных. Я уже точно не помню, что там. Возникнут вопросы – задавайте в этом топике, я отвечу по-возможности на всё.
  6. Вам дали ссылку на.pdf файл, который надо заполнить и отправить по факсу в Apple.
  7. Печатаем его, заполняем (очень внимательно и аккуратно).
  8. Отправляем факс в офис Apple в США. (Будьте бдительны, чтобы ваш факс не попал в чужие руки, потому что там вы указываете номер банковской карты и CVV).
  9. Ждем N-ое количество дней (недель), пока Apple обработает ваш запрос.
  10. Получаем письмо, в котором вас поздравляют с тем, что вы зарегистрировались в программе и лишились ста баксов. Ура!

После удачного прохождения квеста у вас будет доступ к http://developer.apple.com/membercenter/ . Пожалуй, обзор той страницы либо требует отдельной статьи, либо требует поиска в гугл/яндекс.

Ну вот, друзья, перейдем к оставшимся на повестке дня вопросам.

Необходимое оборудование для комфортной разработки

Если вы серьезно решили начать разрабатывать приложения под iOS, то крайне рекомендую сразу приобрести компьютер/laptop с MacOs. Наиболее дешевый вариант – Mac Mini, или что-нибудь б/у. Если вы студент и собираетесь таксать оборудование с собой – Macbook Air. Если у вас много денег и вы хотите мощный универсальный ноутбук – для игр, сложных вычислительных задач и программирования – Macbook Pro. Если вы хотите взять настольный компьютер – iMac или Mac Mini. Для разработки – вам подойдет любой компьютер в любой существующей конфигурации. Размер экрана – на ваше усмотрение. Я вот лично сейчас сижу за Macbook 13” и Mac Mini 17”. Меня устраивают оба дисплея. Если что, то можно всегда подключить внешний монитор к ноутбуку.

Не забываем о том, вам рано или поздно понадобится iPhone, iPod или iPad. Не надо доверяться только iOS-симулятору, который распространяется в одном пакете с Xcode. Всегда тестируйте релизные версии на девайсах. Или же – ищите тестеров (ответственных и добросовестных).

Если вы не готовы потратить столько денег на новое оборудование, то можно попробовать поставить хакинтош на ваш компьютер.

Вечный вопрос: Android или iOS?

Возможно, что данный вопрос надо было задать в самом начале, однако он все же расположился в конце данной статьи. Вы уверены, что хотите попробовать себя в область мобильной разработки, но не знаете какую мобильную платформу выбрать? Я не смогу ответить на этот вопрос за вас. Но я знаю одно – если вы хотите разрабатывать приложения под iOS, то вы должны любить продукцию Apple и операционную систему iOS и MacOs. Вы спросите – почему это? Ответ прост – вы должны любить свое дело, вы должны творить. Только тогда вы сможете разработать поистинне классный и полезный продукт. Только в этом случае вы будете изучать с наслаждением Objective-C и iOS. Я считаю, что это очень важно. Если вы обладаете схожими чувствами к продукции Apple, то смело идите в область iOS-разработок. Если вы думаете – я вот знаю Java, но не знаю Objective-C, однако мне больше нравится iOS, чем AndroidOs – то выбирайте iOS. Нет, ну а что вы ожидали, что я начну хвалить Android OS?

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

Что нужно сделать сегодня?

Сегодня вы должны решить: когда вы начнете разрабатывать приложения, хватит ли вам текущего опыта для изучения Objective - C , есть ли у вас необходимое оборудование, а самое главное желание?

Hello, world.

Проверка готовности

Перейдем от теории к практике. Для практического занятия вам понадобится Xcode 4.2 с iOS SDK, желательно сертификат разработчика, знание С, С++, Java или Objective-C (ну может знания и в других языках подойдут) и, наконец, желание начать писать приложения под iOS. Если вам чего-то не хватает, например, сертификата разработчика, то статья будет актуальна для вас все равно. В любом случае, мне кажется, каждому пользователю iOS-девайса должно быть интересно взглянуть на внутреннюю кухню разработки приложений.

Создание нового проекта

Поехали. Нажимаем на иконку Xcode. Откроется окошко подобного содержания:

Выбираем пункт “Create a new Xcode project”. В следующем окне выбираем тип проекта. Нам нужен: “iOS – Application – Single View Application”.

Нажимаем Next. Увидим окно следующего содержания:

Разъясню поля ввода:

  1. Product Name – Название нового проекта – можете ввести любое, но я советую использовать названия, идентичные моим, потому что я периодически буду на них ссылаться.
  2. Company Identifier – Идентификатор вашей компании – можете заполнить его как угодно.
  3. Bundle Identifier – уникальный идентификатор вашего приложения. Это поле можно будет отредактировать позднее.
  4. Class Prefix – префикс, который будет приписываться к названиям всех классов, которые вы создадите в проекте. Я оставил поле пустым (“XYZ” – это просто подсказка).
  5. Device Family – на какие типы устройств можно будет устанавливать проект. Можно выбрать один из трех вариантов: iPad / iPhone / Universal . Их назначение очевидно. Если вы сейчас не можете решить, нужно ли вам создавать универсальное приложение, то можете выбрать любой из других вариантов. Это можно будет исправить на любом этапе жизненного цикла ПО.
  6. Use Storyboard – это связано с созданием модели пользовательского интерфейса. Добавилось вместе с iOS5, так что при использовании этого ужаса ваше приложение можно будет установить только на устройства с осью iOS5 или выше.
  7. Use Automatic Reference Counting – это новая фишка компилятора Apple LLVM 3.0 – автоматически (почти) управляет памятью (следит за утечками, зомби и прочими ужасами). Я бы сказал, что для новичка – идеальный вариант. НО – 1) не все там уж такое автоматическое, 2) доверяете ли вы компилятору больше, чем себе?, 3) Рекомендую управлять памятью вручную.
  8. Include Unit Tests – подключить к проекту юнит-тестирование.

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

Галочку “Create local git repository for this project” не ставим. Лучше потом при необходимости подключим наш проект к репозиторию кода, если вдруг понадобится.

Нажимаем “Create” и видим новое окно, окно нашего рабочего пространства:

И так, у нас создан проект, сгенерировались какие-то файлы, какие-то окошки открыты.

Ознакомимся с файлами в навигационном меню:

  • файлы с суффиксом “.h” – это хэдеры, там, где мы будем давать описание классов
  • файлы с суффиксом “.m” – это implementation файлы, там, где мы будем реализовывать ранее описанные классы
  • файлы с суффиксом “.xib” – это файлы, в которых описывается интерфейс одного окна приложения

Компляция проекта

Компиляция -

  1. трансляция программы на язык, близкий к машинному, и последующая её компоновка.
  2. трансляция программы, составленной на исходном языке, в объектный модуль (осуществляется компилятором) и последующая её компоновка в готовый к использованию программный модуль.
  3. трансляция программы, составленной на исходном языке, и последующая её компоновка в программу на некоем машинонезависимом низкоуровневом интерпретируемом коде (как например в случае языка Java).

Процесс компиляции состоит из следующих фаз:

  1. Лексический анализ. На этой фазе последовательность символов исходного файла преобразуется в последовательность лексем.
  2. Синтаксический (грамматический) анализ. Последовательность лексем преобразуется в древо разбора.
  3. Семантический анализ. Древо разбора обрабатывается с целью установления его семантики (смысла) - например, привязка идентификаторов к их определениям, типам данных, проверка совместимости типов данных, определение результирующих типов данных выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным древом разбора, новым древом, абстрактным набором команд или чем-то ещё, удобным для дальнейшей обработки.
  4. Оптимизация. Удаляются избыточные команды и упрощается (где это возможно) код с сохранением его смысла, то есть реализуемого им алгоритма (в том числе предвычисляются (то есть вычисляются на фазе трансляции) выражения, результаты которых практически являются константами). Оптимизация может быть на разных уровнях и этапах - например, над промежуточным кодом или над конечным машинным кодом.
  5. Генерация кода. Из промежуточного представления порождается код на целевом языке (в том числе выполняется компоновка программы).

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

И так, когда вы нажимаете “Build project”, то сначала выполняется лексический анализ вашего кода, если он успешен, то синтаксический анализ, и затем семантический анализ. В Xcode все время работает некий легковесный процесс, который выполняет эту функцию, тем самым подсказывая разработчику “на лету” . Например, если вы не поставили “;” или вдруг приравняли int некую строчку символов, то Xcode подчеркнет строку красной волнистой линией.

Запуск на симуляторе

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

Для этого обратимся к меню: Схема компиляции (ей присвоен зеленый цвет на моем скриншоте). Схема – это некая конфигурация проекта. Xcode генерирует ее автоматически. Нажимаем на строку, которая стоит справа от названия проекта (имя девайса), если девайс не подключен, то будет написано “iOS Device”. У вас появится выпадающий список следующего содержания:

В этом списке мы выбираем то, куда будет установлен наш проект: это может быть либо ваш девайс, либо симулятор. Если вы выбрали тип приложения универсальный, то можно будет выбрать тип симулятора: iPhone или iPad. Также можно для симуляторов выбрать версию операционной системы (важно протестировать проект на всех версиях iOS, на которые приложение можно установить). Раз заговорили о минимальной версии iOS, то надо и упомянуть, как определить ее минимальную версию? Все просто – если вы используете методы (фичи), которые были добавлены в версии iOS, например, 4.0 , то планка минимальной требуемой операционной системы поднимается до 4.0 . Давайте опустим планку до 4.0 с 5.0 . Для этого обратимся к меню: “Deployment target” (выделено синим цветом на моем рисунке). Из выпадающего списка выбираем 4.0 . Теперь опять вернемся к меню: Схема компиляции . Наш список теперь выглядит следующим образом:

Выберем “iPhone 4.0 Simulator”. И, наконец, нажимаем на стрелочку, под которой написано “Run”. В “Информационном табло” мы увидим процесс компиляции. После того, как все удачно соберется, у нас откроется окно симулятора iPhone:

Теперь быстро пробежимся по возможностям симулятора.

  • Можно симулировать iPhone, iPhone Retina, iPad.
  • Симулировать различные версии iOS.
  • Снимать скриншоты.
  • Крутить экраны (портретный и ландшафтный режимы)
  • Трясануть
  • Симулировать нехватку памяти.
  • Симулировать сервер печати
  • Геолокационное положение
  • Мультитач жесты(максимум 2 пальца)
  • Прочее

Ко всем этому можно получить доступ из меню программы симулятора:

Пару слов о симуляторе. На симулятор можно устанавливать приложения только через Xcode, их можно удалять прямо из симулятора (как и на реальном устройстве), он поддерживает многозадачность. Но и обладает многими ограничениями, например, нельзя устанавливать сертификат в локальное хранилище сертификатов приложения. Но самый главный недостаток то, что это СИМУЛЯТОР , а не ЭМУЛЯТОР . То есть он всего лишь делает вид, что является iOS-девайсом, просто отрисовывая похожий интерфейс (программный уровень). А вот эмулятор как раз выполняет в точности то, что будет выполнять девайс (на физическом уровне). Какой надо сделать вывод? Обязательно тестируйте на реальном девайсе. У меня бывали случаи, когда на девайсе работает, а на симуляторе нет, и наоборот.

Выводим “Hello, world!”.

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

Данная глава написана в память о Деннисе Ритчи, создателе языка программирования C и ключевой разработчик операционной системы UNIX , а также как соавтор книги «Язык программирования C » .

Цель главы – украсить наш пустой серый экран. Отлично, поехали. Возвращаемся в Xcode, выбираем в навигационном меню “ViewController_iPhone.xib”. Далее выбираем “View” в появившемся списке. Справа выбираем “Attributes Inspector”. Вот как окно выглядит у меня плюс дополнительные комментарии:

Теперь добавим метку UILabel. UILabel – это название класса в iOS SDK, который позволяет отобразить нередактируемый текст на экране. Вообще, все классы, позволяющие что-то отобразить, имеют префикс UI : UIView, UITableView, UITextView, UIButton,…. В окне “Доступные объекты для отображения” ищем строку с именем Label. Как-то только нашли, то нажимаем на нее и перетаскиваем на наш текущий вид экрана.

Синие пунктирные линии помогут вам отцентрировать/откалибровать относительное положение метки. И так, выбираем Label в списке отображаемых объектов, если еще не выбрано, и видим в свойствах пункт: Text. Давайте впишем туда “Hello, World!” и нажмем Enter . Вот у нас изменился текст метки и сжался. Давайте это исправим. В категории свойств выберем “линейку” “Size Inspector”. Там есть поля:

  • x и y – координаты верхнего левого угла метки относительно родительского вида, то есть того вида, куда мы поместили метку – это вид View в нашем случае.
  • width и height – соответственно ширина и высота редактируемого объекта.

Вы можете попробовать редактировать эти значения и проследить изменения. Также редактировать положение и размер можно непосредственное двигая метку (текст) и дергая ее каркас за различные “точки” .

Потратьте еще минут 15-25 и поиграйтесь с различными свойствами в различных категориях:

  1. Выравнивание текста
  2. Размер шрифта
  3. Цвет, тень текста
  4. и др.

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

Какие стандартные view есть в iOS.

В предыдущем пункте я затронул названия некоторых классов, отвечающих за интерфейс. Собственно приставка UI и означает User Interface. Тут я приведу, возможно не полный, список доступных типов view. Во-первых, все описанные ниже классы наследуются от UIView, т.е. обладают теми же свойствами и методами. Во-вторых, вы всегда можете создать собственный кастомный view. Список ниже:

1) UILabel – метка – основное назначение: отображение одной или нескольких нередактируемых строк текста.

2) UIButton – кнопка – основное назначение: обычная кнопка, посылает сигналы объектам, уведомляя о том, что на нее нажали

3) UISegmentedControl – кнопка с сегментами – основное назначение: кнопка с несколькими активными частями, можно определить, на какую нажали

4) UITextField – текстовое поле ввода – основное назначение: поле для ввода текста пользователем

5) UISlider – слайдер – основное назначение: обычный слайдер, помогает более интуитивно изменять какие-либо настройки

6) UISwitch – On/Off переключатель – основное назначение: имеет два состояни – включен или выключен, назначение очевидно

7) UIActivityIndicatorView – индикатор активности – основное назначение: обычно используется, чтобы сообщить пользователю о том, что приложение либо скачивает данные, либо просто выполняет какие-то вычисления

8) UIProgressView – индикатор состояния (прогресса) – основное назначение: отображать состояние завершенности чего-либо

9) UIPageControl – переключение между страницами – основное назначение: отображение количества страниц, отображение текущей страницы

10) UIStepper (>= iOS 5)- +/- пошаговый контроллер – основное назначение: тоже очевидно

11) UITableView – таблица – основное назначение: отображение таблицы, пожалуй, самый популярный элемент

12) UITableViewCell – ячейка таблицы – основное назначение: отображение строки в таблице, обычно кастомизируется

13) UIImageView – изображение – основное назначение: отображение картинки или изображения

14) UITextView – текстовое поле (скроллируемое) – основное назначение: отображение большого объема текста, который можно прокрутить.

15) UIWebView – web – основное назначение: отображение web-страницы

16) UIMapView – карты – основное назначение: отображение карты

17) UIScrollView – скроллируемый вид – основное назначение: отображение нескольких view, которые не помещаются на одном экране

18) UIDatePicker – вид выбора даты – основное назначение: идеальный вариант для ввода даты

19) UIPickerView – вид выбора барабанный – основное назначение: альтернатива таблице при выборе какой-либо опции

20) UIView – просто вид – основное назначение: очевидно

21) UINavigationBar – навигационная панель – основное назначение: панель, в которую выводится заголовок экрана и дополнительные кнопки управления

22) UINavigationItem – элементы UINavigationBar – основное назначение: очевидно

23) UIToolbar – тулбар – основное назначение: отображение панели, на которую помещаются кнопки для управления приложением

24) UIBarButtonItem – элементы тулбара – основное назначение: очевидно

25) UIBarButtonItem (fixed and flexible space) – элементы тулбара особенные – основное назначение: изменяем расстояние между кнопками на тулбаре

26) UITabBar – таббар – основное назначение: помогает переключаться между различными несвязанными с друг другом экранами

27) UITabBarItem – элемент таббара – основное назначение: очевидно

Скачайте и установите Xcode. Xcode - это среда разработки, в которой создаются все приложения для iPhone. Xcode можно бесплатно получить от Apple, но данная программа требует установленной OS X версии 10.8 или более поздней. Не существует официального способа запустить Xcode на Windows или Linux. Это означает, что если вы хотите разрабатывать приложение на iPhone, но у вас нет Мака, то сначала вам придется купить его.

  • Чтобы разрабатывать приложения под iOS 8, вам понадобится Xcode 6.0.1 и iOS 8 SDK. И то, и другое можно получить от Apple. iOS 8 SDK содержит достаточно большое число новых API, которые позволят вам создавать все виды новых приложений, включая интеграцию с iCloud и Touch ID.
  • Чтобы разрабатывать приложения под iOS 10, вам понадобится iOS 10 SDK, доступный на сайте Apple. В языке программирования Swift и в SDK в этой версии Xcode произошли значительные изменения. Хорошая новость заключается в том, что после этой версии в Swift будет еще больше кодовых изменений.

Установите хороший текстовый редактор. Хотя вы можете все делать в Xcode, вы скоро поймете, что работать с кодом больших размеров гораздо проще, если у вас есть отдельный текстовый редактор, специализирующийся на программировании. Два самых популярных варианта - это TextMate и JEdit.

Установите векторную графическую программу. Если вы планируете создавать изображения и дизайны для своего приложения, вам понадобится программа создания векторной графики. Векторная графика может масштабироваться без потери качества, что важно для любого хорошо выглядящего приложения. Популярные векторные программы это CorelDraw, Adobe Illustrator, Xara Designer и Inkscape. Хорошая свободная программа редактирования графики это DrawBerry. Она не так мощна, как профессиональные программы, но хороша для начинающих, либо для тех, кто не хочет платить за что-то, что он будет использовать всего один раз.

Изучите Objective-C. Objective-C это язык программирования, который используется для создания функциональности в приложениях iPhone. Он обрабатывает данные и работает с объектами. Objective-C произошел из семейства языков C, и он является объектно-ориентированным языком. Если вы уже понимаете C или Java, вам будет достаточно просто изучить Objective-C.

  • Теперь можно использовать язык Swift, правопреемник Objective-C. У Swift более простой синтаксис и он более современен.
  • Хотя можно построить базовое приложение без знания Objective-C, но вы не сможете выполнить какие-нибудь расширенные функции без необходимости программирования. Без Objective-C все, что вы можете, - это двигаться взад и вперед по экранам.
  • В Интернете существует множество учебников, кроме того множество информации можно найти в различных книгах по Objective-C. Если вы хотите серьезно заняться разработкой приложений под iPhone, вам будут полезны некоторые из этих источников.
  • Некоторые из самых популярных онлайн-сообществ по Objective-C включают форумы разработчиков Apple, группа Google iPhoneSDK и StackOverflow.
  • Рассмотрите вариант аутсорсинговой разработки. Если у вас нет никакого желания изучать Objective-C, либо у вас нет художественной жилки, существует большое число фрилансеров и команд разработчиков, которые могут выполнить различные части проекта за вас. Аутсорсинг вашей разработки - сложный процесс, но он спасет вас от многих проблем, если вы не программист. Удостоверьтесь, что все, кто будет работать, заключат соглашение о неразглашении, и что вы договорились об оплате перед началом работы.

    • Upwork (объединение бывших oDesk и Elance) - самая популярная биржа фрилансеров в Интернете, где можно найти сотни разработчиков и художников любого уровня.
  • Создайте аккаунт разработчика. Чтобы распространять ваше приложение в App Store или дать его другим для тестирования, вам необходимо зарегистрироваться, чтобы получить аккаунт разработчика Apple. Аккаунт стоит $99 в год, и для его создания потребуется ввести информацию о налогах и банковскую информацию.

    • Вы можете создать ваш аккаунт на сайте iOS Dev Center.
  • Скачайте несколько тестовых приложений. Как только вы зарегистрировали аккаунт разработчика, у вас появляется доступ к ресурсам разработки Apple. Эти ресурсы включают множество проектов для примера, которые могут дать вам колоссальный объем информации о том, как разрабатываются приложения. Найдите пример, как-то связанный с тем типом приложения, который вы хотите создать, и попрактикуйтесь с ним в Xcode.

    Часть 2

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

      • Попробуйте при разработке приложения придерживаться документа по дизайну настолько, насколько это возможно. Это поможет сфокусироваться на необходимых вам возможностях.
      • Попробуйте нарисовать хотя бы один эскиз для каждого экрана в вашем приложении.
    2. Определите целевую аудиторию. Аудитория вашего приложения очень зависит от того, как выглядит приложение, и от его функциональности. Например, у приложения со списком дел будет совсем не такая целевая аудитория, чем у игры-стрелялки. Это вам поможет.

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

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

      Попрактикуйтесь в создании хорошего UI. Интерфейс пользователя никогда не должен мешать пользователю. Это означает, что опции должны быть ясно видны, а пользователь никогда не должен задаваться вопросом, что делает какая-либо кнопка. Если вы используете иконки, они должны четко отображать свою функцию. Навигация по приложению должна быть гибкой и естественной.

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

    Часть 3

    Создание приложения
    1. Создайте новый проект в Xcode. Откройте Xcode и начните новый проект из меню Файл. Выберите "Application" (приложение) под заголовком "iOS" в левой части окна. В разделе шаблонов выберите "Empty Application" (пустое приложение).

      • Существует множество готовых шаблонов, и все созданы для различных задач. Начните с пустого шаблона, пока вы не разберетесь в процессе разработки. Вы сможете попробовать один из более сложных шаблонов, как только вы разберетесь, как тут все работает.
      • Вам необходимо указать имя продукта, идентификатор вашей компании и префикс класса. Если у вас еще нет идентификатора компании от Apple, введите com.example . В качестве префикса класса введите XYZ .
      • Выберите "iPhone" из меню устройств.
    2. Создайте Storyboard. Storyboard это визуальное представление всех экранов в вашем приложении. Он отображает содержимое каждого экрана, а также переходы между ними. Инструмент Storyboard поможет вам в разработке вашего приложения.

      • Выберите File → New → File.
      • Под заголовком iOS выберите "User Interface" (интерфейс пользователя).
      • Выберите Storyboard и нажмите Далее.
      • Выберите iPhone из меню устройств, и затем назовите файл "Main". Удостоверьтесь, что вы сохранили его там же, где и ваш проект.
    3. Назначьте Storyboard вашему проекту. Как только вы создали Storyboard, вам нужно назначить его как основной интерфейс вашего приложения. Тогда данный Storyboard будет загружен при запуске приложения. Если вы не назначите storyboard, при старте приложения ничего не произойдет.

      • Нажмите на имя вашего проекта в дереве навигации слева.
      • Найдите заголовок Targets (цели) в основном окне. Выберите ваш проект из списка Targets.
      • Найдите раздел Deployment Info (информация о развертывании) во вкладке General (общее).
      • Введите Main.storyboard в текстовое поле "Main Interface" (основной интерфейс).
    4. Добавьте свой первый экран, используя контроллер вида. Контроллеры вида определяют, как содержимое будет просматриваться пользователем. Существует множество заранее созданных контроллеров вида, включая стандартные виды и таблицы. Вы будете добавлять контроллеры вида к вашей storyboard, что скажет вашему приложению, как нужно отображать содержимое пользователю.

      • Выберите ваш файл "Main.storyboard" в меню навигации по проекту. Вы увидите, что в окне Interface Builder (построитель интерфейса) появится пустой холст.
      • Найдите Object Library (библиотеку объектов). Она расположена внизу правой части, и ее можно выбрать, нажав на кнопку с маленьким кубом. При этом загрузится список объектов, которые можно добавить на ваш холст.
      • Нажмите и потяните объект "View Controller" (контроллер вида) на ваш холст. На вашем холсте появится первый экран.
      • Ваша первая "Сцена" закончена. При запуске приложения контроллер вида загрузит ваш первый экран.
    5. Добавьте объекты интерфейса на ваш первый экран. Как только вы определили контроллер вида, вы можете начать размещать на экране необходимые вам объекты интерфейса, такие как метки, текстовые поля ввода и кнопки. Все объекты интерфейса можно найти в списке Objects Library (библиотеки объектов), которую можно найти внутри объекта View Controller (контроллер вида).

      • Выбирайте и переносите объекты из списка, и добавляйте их к вашему экрану.
      • Большинство объектов допускают изменение размера путем нажатия на границе объекта, и ее перемещения. При изменении размера, на экране появятся направляющие, так что вы можете удостовериться, что все выглядит правильно.
    6. Измените добавленные вами объекты. Вы можете изменять свойства каждого объекта, что позволит вам создать индивидуальный и интуитивный интерфейс. Например, вы можете добавить замещающий текст к текстовому полю ввода, который подскажет пользователю, что ему следует ввести.

      • Выберите объект, который хотите изменить, и нажмите на кнопку "Attributes Inspector" (инспектор атрибутов) вверху правой части. Кнопка немного похожа на щит.
      • Измените объект так, как вам нравится. Вы можете изменить стиль шрифта, размер шрифта, цвет текста, выравнивание, фоновые изображения, замещающий текст, стиль границы, и многое другое.
      • Существующие опции будут изменяться, в зависимости от того, какой объект вы изменяете.
    7. Добавьте еще экранов. По мере того, как ваш проект разрастается, скорее всего вы захотите добавить еще экранов, чтобы отобразить все необходимое для приложения содержимое. Например, если вы делаете приложение со списком дел, вам понадобится по меньшей мере два экрана: один для ввода дела, а второй для просмотра списка.

      • Дополнительные экраны можно добавить, переместив и отпустив контроллер вида на пустую часть холста. Если вы не можете найти пустого участка, чтобы отпустить мышь, нажмите на кнопку "zoom out" (уменьшить масштаб), пока пустые области не появятся. Удостоверьтесь, что вы опустили контроллер вида на холст, а не на существующий экран.
      • Вы можете изменить начальный экран, выбрав контроллер вида, который необходимо сделать ведущим в окне проекта. Нажмите кнопку Attribute Inspector (инспектор атрибутов) и отметьте галочку "Is Initial View Controller" (ведущий контроллер вида). Например, если вы делаете список дел, вы захотите, чтобы сам список был первым, что увидит пользователь при запуске приложения.
    8. Добавьте панель навигации. Теперь у вас есть два экрана в приложении, и пришло время сделать так, чтобы пользователь мог перемещаться между ними взад и вперед. Вы можете этого достичь с использованием Navigation Controller (контроллер навигации), который является специализированной версией View Controller (контроллер вида). Данный контроллер добавляет панель навигации в верхнюю часть вашего приложения, и позволяет пользователю перемещаться взад и вперед между экранами.

      • Контроллер навигации должен быть добавлен к вашему начальному виду, чтобы он мог контролировать все последующие экраны.
      • Выберите начальный вид в окне проекта.
      • Выберите Editor → Embed In → Navigation Controller.
      • Вы должны увидеть, что вверху экрана, на который вы добавили контроллер, появилась серая панель навигации.
    9. Добавьте функциональности данной панели навигации. Теперь, когда вы вставили панель навигации, вы можете начать добавлять к ней инструменты навигации. Это позволит пользователю перемещаться между экранами взад и вперед.

      • Добавьте к панели навигации заголовок. Нажмите на Navigation Item под контроллером вида, к которому вы его назначили. Откройте Attribute Inspector (инспектор атрибутов) и введите заголовок текущего экрана в поле Title.
      • Добавьте кнопку навигации. Откройте Objects library (библиотеку объектов), если она еще не открыта, и найдите там Bar Button. Выберите ее, и перенесите на панель навигации. Обычно кнопки, которые передвигают вас "вперед" по приложению, размещаются справа, а кнопки, перемещающие вас "назад" - слева.
      • Дайте кнопкам свойства. Кнопки можно настроить с помощью специальных свойств, которые позволяют им легко адаптироваться к различным условиям. Например, если вы создаете список дел, вам может понадобиться кнопка "Добавить", чтобы создать новую запись. Выберите кнопку и откройте Attribute Inspector (инспектор атрибутов). Найдите меню Identifier (идентификатор) и выберите "Добавить". Кнопка изменится на логотип "+".
    10. Свяжите вашу новую кнопку с существующим экраном. Чтобы ваша кнопка функционировала, вам нужно соединить ее с другим экраном. В нашем примере со списком дел, кнопка будет располагаться в общем списке, и ее нужно связать с экраном ввода дела. Чтобы связать кнопку, зажмите кнопку Control , и перетащите кнопку на второй экран.

      • Когда вы отпускаете кнопку мыши, появится меню Action Segue со списком опций. Выберите "Push", чтобы использовать перемещение между экранами. Вы также можете выбрать "Modal", что откроет экран как полностью самостоятельный, без последовательности экранов.
      • Если вы используете Push, на ваш второй экран автоматически будет добавлена панель навигации, а также кнопка "назад". Если вы выберете modal, вам нужно будет вручную вставить вторую панель навигации, а также добавить кнопки "Отмена" и "Готово" (в приложении со списком дел; в вашем приложении будут другие кнопки, в зависимости от нужд вашего приложения).
      • Кнопки "Отмена" и "Готово" можно создать тем же способом, которым вы создали кнопку "Добавить". Просто выберите "Отмена" и "Готово" из меню Identifier в Attribute Inspector.
    11. Используйте возможности обработки данных. До этого момента можно было создать базовый интерфейс без необходимости писать код. Если вы хотите добавить более глубокую функциональность, такую как хранение данных, обработку ввода пользователя, вам нужно погрузиться в написание кода. Написание кода находится за рамками данной статьи, но в Интернете существует большое число учебников по Objective-C.

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

    Часть 4

    Тестирование приложения
    1. Запустите iOS Simulator. XCode поставляется со встроенным эмулятором iOS, который позволяет вам протестировать свое приложение на некотором наборе эмулируемых устройств с iOS. Чтобы запустить эмулятор, выберите из меню в верхней части окна XCode пункт "Simulator и Debug", а затем выберите устройство, на котором вы хотите протестировать.

      Соберите приложение. Нажмите на кнопку Build, которая выглядит как обычная кнопка Play, чтобы скомпилировать и запустить приложение. Сборка приложения может занять несколько минут. На панели вы можете наблюдать за прогрессом. Как только процесс сборки будет завершен, откроется iOS Simulator, и вы можете начинать тестировать свое приложение.

      Проверьте приложение на своем собственном iPhone. Перед распространением своего приложения для тестирования вы можете протестировать его на своем собственном устройстве (если у вас оно есть). Сначала подключите устройство к компьютеру по USB. Если откроется iTunes, закройте его. Выберите из выпадающего списка "Device and Debug", а затем нажмите на кнопку Build. После нескольких секунд приложение должно запуститься на iPhone. Проверьте всю функциональность, прежде чем закрыть приложение.

      Займитесь отладкой. Если приложение "упало", нужно определить, что случилось и почему. Причин может быть бесконечно много. Открывайте отладочную консоль и читайте сообщения об ошибках. Чаще всего они будут не особо понятными. Если вы не поняли ошибку, попытайтесь поискать сообщения об ошибках в Google. Существует вероятность, что вы сможете наткнуться на сообщение, оставленное на форуме разработчиков Apple, где какой-либо разработчик уже ответил на вопрос.

      • Отладка приложения - это долгий и нудный процесс. Если вы не сдадитесь и упорно будете продолжать, со временем у вас будет получаться все лучше. Вы начнете распознавать ошибки, быстро их находить и даже иногда их ожидать. Частая ошибка состоит в освобождении памяти объекта более одного раза. Другая частая ошибка - если вы забудете выделить память и инициализировать объект перед тем, как попытаетесь что-то к нему добавить или присвоить. С каждым приложением у вас будет становиться все меньше и меньше ошибок.
    2. Проверьте использование памяти. В iPhone памяти немного. Каждый раз, выделив память для объекта, ее нужно будет освобождать по завершению работы с ним. Существуют такие инструменты, как iPhone SDK, который среди прочего может применяться для просмотра и анализа использования памяти.

      • С выбранным Device and Debug, выберите Run → Run with Performance Tool → Leaks. Это запустит Инструменты и, вместе с этим, приложение на вашем устройстве. Теперь начните пользоваться приложением так, как пользуетесь обычно. Временами оно будет немного подтормаживать, так как программа записывает и анализирует использование памяти. Все источники утечек будут отображаться в нижней части экрана.
      • Двойное нажатие на каком-либо объекте откроет вам соответствующий код, а нажатие по маленькой стрелочке в столбце Адрес откроет историю проблемы с памятью. Иногда место, где обнаружена утечка, - это совсем не то место, откуда она пошла.
      • Если вы в тупике, попробуйте действовать методом исключения. Закомментируйте что-нибудь, осторожно пропустив некоторую область кода, а затем запустите его. Иногда вы сможете сузить область поиска, и затем, возможно, найти нужную строку. Когда вы знаете, где находится ошибка, вы можете ее исправить или переписать. Помните, использование Google может дать вам прямые ссылки на форумы Apple или на документацию, описывающую ваш случай.
    3. Заполните форму с описанием приложения, ключевыми словами, сайтом поддержки, категорией, адресом электронной почты для контактов, авторскими правами, и т.д.
    4. Заполните формы Права и Цены.
    5. Ваши картинки в iTunes должны быть готовы. Вам понадобится большая иконка 512х512, а также несколько скриншотов вашего приложения. Скриншоты можно получить из симулятора iPhone, используя ⌘ Command + ⇧ Shift + 4 , и перетаскиванием. Проверьте, что они размером 320х480 для iPhone. Скриншоты это очень важная часть маркетинга вашего приложения, так что удостоверьтесь, что они отображают самые важные части.
  • Загрузите свое приложение. Нажмите на "Ready to Upload Binary", и вы перейдете на экран, в котором вам предложат загрузить Application Uploader tool. Скачайте его и нажмите Готово.

    • Установите Application Uploader tool и запустите его. В первый раз он попросит вас ввести ваши авторизационные данные iTunes.
    • Application Uploader tool проверит ваш аккаунт iTunes Connect, и найдет все приложения, для которых можно загрузить бинарный файл. Выберите необходимое, выберите zip-файл, который вы создали ранее, и загрузите его. Загрузчик проверит некоторые свои вещи, и укажет на ошибки, если найдет что-то неверное. Это может быть номер версии, отсутствующие иконки, и т.д. Если все замечательно, загрузите zip и все будет окончено.
  • Ждите проверки. Вам нечего делать, кроме как ожидать окончания процесса проверки. Apple уведомит вас через несколько дней или недель по электронной почте, если состояние вашего приложения сменится на "In review" (проверяется). Когда приложение переходит в данную стадию, дальнейшее происходит очень быстро. Если приложение не пройдет через начальный набор тестов, вы в тот же день получите электронное письмо с отказом, рассказывающим, почему приложение отвергли. Также, в письме будут рекомендации Apple по его починке. Если ваше приложение прошло проверку, Apple пошлет вам электронное письмо, сообщающее о том, что ваше приложение готово к продаже. Теперь ваше приложение появится в магазине приложений iTunes.

    Попробуйте протестировать приложение на стольких i-девайсах, сколько сможете найти. Еще лучше, если на них установлены различные версии iOS.

  • Если вы любите бумажные книги, зайдите на Amazon.com, чтобы найти книги о разработке на iPhone.
  • Предупреждения

    • iPhone SDK постоянно меняется, и устройства тоже. Если произошло обновление SDK во время работы над проектом, прочитайте, что появилось нового перед тем, как использовать новый SDK. На данном этапе этого делать не обязательно, если только Apple не сказала, что все новые загрузки должны быть скомпилированы новой версией SDK. Если вы обновитесь, некоторые используемые вами методы могут стать устаревшими. Хотя, скорее всего, это приведет максимум к предупреждению во время компиляции, лучше перестраховаться.
    • Когда вы достигнете успеха и ваше приложение появится в App Store, не злитесь на тех, кто оставит вашему приложению плохой отзыв. Некоторые оставляют полезные отзывы, а некоторым просто нравится быть грубыми.
    • Никто не гарантирует вам большого количества загрузок или продаж, но не стоит расстраиваться.
    • Разработка приложений - штука увлекательная; вы не сможете остановиться.
    9 февраля 2015 в 17:54

    Создание iOS приложения. От идеи до результата

    • Разработка под iOS
    Все началось с того, что я огляделся по сторонам и, не увидев автомобиля своей мечты, решил сконструировать его сам
    Фердинанд Порше

    Привет, Хабр. Хочу рассказать, как создал свое первое iOS приложение и что из этого получилось.

    Идея

    Идея для приложения возникла сама собой: создай то, чем бы ты с удовольствием пользовался бы сам. Я постоянно пишу заметки. Ведь у каждого занятого человека существует определенный набор фактов, которые он получает в течение дня, и которые стоит запомнить. А так как все люди забывают (и это нормально!), то нет лучшего решения, чем просто записать. Я все время чувствовал какое-то неудобство при работе с представленными в AppStore приложениями-заметочниками. Излишняя сложность в управлении, наличие ненужных категорий, нагромождение дополнительной информации - все это мешает приложению выполнять его основную функцию. Плюс ко всему многие из этих вещей выглядят просто некрасиво.

    Поэтому, поставив все ставки на простоту и удобство, я приступил к созданию концепции. Модель приложения с единым списком заметок. Все в одном месте, что может быть проще? Если что–то имеет большую ценность или актуальность, совсем не обязательно вешать на него ярлык, ведь достаточно просто переместить более важную заметку в топ списка. Старые и ненужные записи постепенно будут опускаться вниз и в последствии будут удалены пользователем.

    Функционал

    После того, как концепция была придумана, я выписал основной функционал - те вещи, на которые я хотел бы сделать акцент в управлении:

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

    Инструментарий

    Перед тем, как писать код в Xcode, я полностью воссоздал внешний вид приложения в векторном редакторе Sketch. Эта программа отлично подходит для быстрого создания макетов. Для этого приложения доступна масса плагинов, среди них есть Sketch Preview - просмотр артборда сразу на устройстве через программу Skala Preview. Всего лишь нужно скачать бесплатные программы Skala Preview на компьютер и мобильное устройство и установить плагин. После этого выбрать нужный артборд, нажать комбинацию Command+P и уже через секунду внешний вид приложения транслируется на устройство.

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

    Разработка

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

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

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

    Анимации удаление и перемещения в топ я решил реализовать самостоятельно, а визуальное сопровождение максимально приблизить к реальной жизни. Что-то приобрело более высокий приоритет - свайп вправо и заметка перемещается в топ списка. Чтобы удалить - свайп влево и анимация зачеркивания покажет на сколько еще нужно продлить свайп чтоб завершить удаление. При случайном удалении - нужно просто потрясти устройство («Shake»), и заметка вернется на свое прежнее место.

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

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

    Нейминг

    Название приложения - самая важная часть при разработке, это первое что видит пользователь в магазине. На хабре есть по этому поводу. К подбору имени я решил подойти основательно: для начала я перебрал список 1000 самых популярных слов в английском языке и выписал всевозможные комбинации, которые подходили бы для названия мобильного приложения для заметок, к тому же хотелось уложиться в 8-10 символов. Но при этом не хотелось выбирать название SuperNotes или NotesPlus etc, хотелось чего-то нового. Мне понравилось сочетание mad note , на которое случайно наткнулся в Urban Dictionary:
    mad note - excellent, entertaining, surprising, unexpected or awe-inspiring

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

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

    Результат

    Поскольку изначально проект задумывался как дизайнерский, я решил поучаствовать с моим приложением в всеукраинском конкурсе Ukrainian Design Awards: The Very Best Of в категории Digital Design. До конкурса оставалось несколько недель, за это время я успел сделать публикацию на Behance, где визуально показал все основные функции приложения, а также записал видео-превью.
    Поскольку победителей конкурса не разглашают до самого последнего момента, было невероятно приятно увидеть свою работу на выставке работ победителей - жюри увидели и оценили главную концепцию - минималистичное и, вместе с тем, функциональное приложение для ведения заметок.


    Приложение находится в AppStore уже несколько месяцев, за это время я сделал шесть обновлений и переписал код на Swift. В последней версии (1.2) добавлена синхронизация с iCloud, так что заметки уже успели перебраться в облако.

    Спасибо внимание.
    Note your passion