Как написать программу на iphone. Приложения для разработки приложений: как сделать приложение для iOS и Android самостоятельно

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

Каждое приложение и его обновление должно проходить через строгую модерацию. Все приложения в магазине обновляются с периодичностью в 1 месяц.

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

Разработка приложений для iOS, либо как полюбить Apple еще сильнее

Заработная плата iOS разработчиков варьируется от 60 000 до 250 000 рублей. Актуальность разработки под iOS неоспорима.

В рамках этой статьи мы создадим приложение, где выведем сообщение “Hello World” на главном экране и не напишем ни строчки кода.

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

  1. Устройство с MacOS на борту
  2. Скачанный Xcode

Голова нам, как видите, не потребуется. Да, компания Apple приложила максимум усилий, чтобы как можно сильнее упростить процесс и сократить время разработки мобильных приложений под их платформы, такие как: iOS, tvOS, macOS, watchOS. Также Apple представила в 2014 году язык программирования Swift, который очень прост для начинающих разработчиков и очень функциональный для профессионалов. Если вы сможете создать приложение для одной платформы Apple, к примеру для iOS, то вам не составит труда создать приложение и под другие платформы. Все унифицировано до такой степени, что вы можете использовать чуть ли не один и тот же код, запуская его на разных типах устройств.

Поехали!

СОЗДАНИЕ ПРОЕКТА

И так, как говорилось ранее, нам потребуется компьютер Apple , и установленное приложение Xcode , которое находится в App Store в свободном доступе.

Давайте разберемся, что такое Xcode и зачем он нам нужен.
Xcode — это программная среда разработки, которая включает в себя: редактор кода, редактор графических интерфейсов, систему контроля версий и инструменты для отладки и выкладки, написанных нами приложений. Одним словом, это программа, в которой ведется 90% всех взаимодействий в разработке приложений под семейство операционных систем Apple .

И так, запустив программную среду разработки мы видим приветственное окно, где мы можем открыть, создать или клонировать проект. Нам нужно создать новый, нажав на “Create a new Xcode project” . Да, весь интерфейс Xcode на английском языке, поэтому советую запастись англо-русским словарем.


Следующим шагом мы видим данное окно:

где нам предлагают выбрать платформу и тип приложения. Нам нужно программное обеспечение iOS (в верхней части диалогового окна) и Single View App. Любые приложения начинаются с Single View, а потом разрастаются до 50 View App.

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


Давайте по-порядку:


Заполнив информацию, нажимаем Next , и выбираем местонахождение проекта на нашем компьютере и жмем Create

ОБЗОР СРЕДЫ РАЗРАБОТКИ

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



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

Также мы видим строку состояния, в которой можно наблюдать текущую задачу, которую выполняет среда разработки, правее мы можем увидеть настройки вида редактора: стандартный редактор , редактор с ассистентом и просмотр изменений в системе контроля версий, а также есть кнопки, чтобы показать/скрыть части среды, которые мы будем рассматривать далее: снизу (отладочная информация) , справа (навигация) и слева (утилиты)

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

  1. Навигация по файлам и папкам
  2. Система контроля версий
  3. Иерархия классов в проекте
  4. Поиск по проекту
  5. Уведомления о предупреждениях и ошибках при сборке
  6. Автоматизированные тесты
  7. Отладка
  8. Точки останова
  9. Логи сборок

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

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

И в основной (центральной) части среды мы можем наблюдать редактор, в котором пишется код и ведется работа над пользовательским интерфейсом приложения.

И в основной (центральной) части среды мы можем наблюдать редактор, в котором пишется код и ведется работа над пользовательским интерфейсом приложения.

  1. Identity
    1. Display Name — имя приложения, которое будет выводиться на домашнем экране устройства
    2. Bundle ID — Уникальный идентификатор, который будет использоваться в App Store
    3. Version -текущая версия проекта, которая ведется используя семантическое версионирование
    4. Build — Номер сборки, который стоит увеличивать на единицу с каждой установкой приложения на устройство
  2. Signing
    1. Automatically manage signing — автоматическое управление подписью приложения
    2. Team — наименование вашей команды
    3. Provisioning profile — профиль, для подписи приложения
    4. Signing Certificate — сертификат, который позволяет подписывать приложение в Apple
  3. Deployment Info
    1. Deployment Target — минимальная версия iOS, на которую может быть установлено приложение
    2. Devices — Типы устройств
      • iPhone
      • Универсальное
    3. Main Interface — Storyboard файл, с которого будет начинаться приложение после
    4. Device Orientation — Возможные ориентации устройства при работе с приложением
      • Портретное
      • Вверх ногами
      • Альбомный против часовой
      • Альбомный по часовой
    5. Status Bar Style — Цвет статус бара (верхняя панель информации со временем, оператором и батареей)
      • Светлый
      • Темный
      • Скрыть
  4. App Icons and Launch Images
    1. App Icons Source — иконка приложения
    2. Launch Screen File — экран, который показывается пока приложение запускается

Остальные пункты нам пока не потребуются.

Теперь, когда мы разобрались с тем, из чего состоит наша среда разработки, можно приступить к созданию нашего “Hello World” приложения.

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

СОЗДАНИЕ ПРИЛОЖЕНИЯ

Первым делом, нам нужно найти файл интерфейса, который называется Main.storyboard . Его можно найти слева в панели навигации.

Открыв файл, мы видим экран приложения. Теперь нам нужно перетащить элемент под названием Label на этот экран. Этот элемент находится слева внизу.
Перетаскиваем его на экран в любое место. Затем в панели утилит, ищем поле, в котором написано “Label” .
И изменяем Label на Hello World . После этого, мы увидим, что наш элемент на экране не показывает полностью нашего текста, который мы вписали, так как у него был текст изначально меньше, и он принял его размеры.

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


Здесь мы видим некоторые параметры расположения нашего элемента. Нам требуются два последних параметра. Активируем их и нажимаем “Add 2 Constraints”. После этого, мы можем наблюдать, как наш элемент зафиксировался посередине экрана и принял форму, в которой отображается наш текст полностью.

СБОРКА И ЗАПУСК

Теперь, нам нужно запустить наше приложение на устройстве, и посмотреть, все ли верно будет отображаться. Для этого, мы нажимаем вверху на выбор назначения запуска приложения и видим выпадающий список:
В этом списке мы видим устройства и симуляторы устройств, на которых мы можем запустить наше приложение. Выбираем любое и жмем Run . Начнется сборка приложения и Xcode покажет нам задачи, которые он выполняет в данный момент времени:
После успешной сборки проекта, мы увидим, что Xcode перейдет в режим ожидания запуска приложения и появится окно симулятора, которое будет загружаться. После того, как симулятор загрузится, мы сможем наблюдать наше приложение на устройстве

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

Свяжитесь с нами Обсудим?

Стоит ли делать свое мобильное приложение

Стоит. Если не верите на слово, вот несколько фактов:

  • По данным Flurry Analytics и comScore, владельцы смартфонов и планшетов пользуются браузером только 14 % от общего времени работы с девайсом. А 86 % времени они тратят на разные приложения.
  • Установленное приложение - ваш прямой канал связи с потребителем. Только подумайте: вам не нужно тратить деньги на рекламу или ждать, когда человек найдет вас с помощью «Яндекса». Остается поддерживать нужную пользователю функциональность и предоставлять ему релевантный контент.
  • Число покупок, сделанных с помощью планшетов и смартфонов, растет как в интернете в целом, так и в рунете. По информации маркетингового агентства Criteo , уже в 2016 году более половины онлайн-транзакций в рунете будут совершаться с помощью мобильных девайсов.

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

В таком случае, стоит ли рисковать и предлагать лояльным клиентам DIY-приложения, а не сделанные профессионалами штучные программы для Android и iOS? Давайте разбираться.

Когда можно создать приложение самостоятельно

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

Вы помните, когда бизнесу можно самостоятельно сделать сайт? Правильно, когда денег на сотрудничество с профессионалами еще нет, а время и желание разобраться с WordPress или «Джумлой» есть. Такая же ситуация с приложениями. Созданные самостоятельно программы для iOS и Android можно условно сравнить с сайтами на «движках» с открытым кодом.

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


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

  • Manual . Этот шаблон позволяет сделать программу-гайд.
  • Blog . Приложение поможет аудитории вашего блога читать новые заметки с экрана смартфона или планшета.
  • Website . Шаблон конвертирует в приложение сайт.
  • Pages . С помощью этого шаблона можно сконвертировать в приложение с простой функциональностью любой контент.
  • News . Шаблон позволяет создать приложение агрегатор отраслевых или региональных новостей.
  • Page . Шаблон конвертирует в приложение офлайн-контент, например, электронную книгу.
  • VK Page и Facebook Page . Создайте приложение, позволяющее следить за обновлениями открытых групп во «Вконтакте» и в Facebook.
  • YouTube . Используйте шаблон для продвижения своего канала на YouTube.

Как создать приложение для блога

Воспользуйтесь шаблоном Blog. В соответствующем поле укажите URL блога или RSS-канала. Выберите цвет заголовка заметок.


Укажите название приложения.


Добавьте описание.


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


Для создания загрузочного файла нажмите кнопку Create App. После этого необходимо зарегистрироваться в системе. Подтвердите регистрацию и перейдите в личный кабинет. Здесь вы можете установить приложение на свое мобильное устройство, опубликовать его в Google Play и Amazon App Store. Также система предлагает опцию монетизации. Если вы воспользуетесь этой функцией, в приложении будет отображаться реклама.


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

Откройте шаблон и настройте внешний вид приложения. Выберите способ отображения контента: по одному шагу на экране или список шагов.


С помощью редактора добавьте текст, изображения, видео или ссылки. Чтобы добавить в программу фото, загрузите его на хостинг Imgur и вставьте ссылку в соответствующее поле.


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

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


8 конструкторов аналогичных AppsGeyser

Если универсальный конструктор AppsGeyser вам не подошел, обратите внимание на аналогичные сервисы:

  • AppsMakerStore . С помощью сервиса можно создавать приложения разных типов: от программ для Ecommerce до решений для контент-проектов. Конструктор делает приложения для iOS и Android. Интерфейс сервиса русифицирован. Для новичков есть информативное руководство по использованию конструктора. Сервис платный.
  • Mobincube . Инструмент для создания и монетизации iOS и Android-приложений. Базовая функциональность сервиса доступна бесплатно. Конструктор позволяет сделать приложения разных типов.
  • Good Barber . С помощью этого сервиса можно разрабатывать Android- и iOS-приложения. Конструктор платный, стоимость использования составляет 16 USD в месяц.

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

Конструкторы приложений: каменный топор или тонкий современный инструмент?

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

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

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

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

Свяжитесь с нами Обсудим? Закажите бесплатную консультацию

Итак, вам тоже пришла мысль: «А как мне научиться писать программы для iPhone? «, «Как мне сделать свое мобильное приложение? «, «Как заработать миллионы ничего не делая? «. Постараюсь пошагово ответить на эти вопросы (кроме последнего).

Что нужно знать с самого начала

Чтобы создавать программы для iOS официально от вас требуется компьютер Apple (iMac или Macbook ). Но если говорить совсем честно, вам нужна операционная система OS X , поэтому многие по началу хитрят и умудряются использовать Хакинтош (Hackintosh ), то есть запускают OS X на обычных компьютерах — это экономный вариант, противозаконный и довольно хлопотный в плане настройки. Я вам рекомендую, раз уж вы твердо решили стать iOS-разработчиком, купить простенький Macbook или Mac Mini, можно даже б/у (любой, выпущенный с 2010 года).

Дальше — на чем писать. Приложения для iOS пишутся на языках программирования Swift или Objective-C , а все магическое действо происходит в программе Xcode (бесплатная). Swift — это очень новый язык, который Apple представила буквально недавно (середина 2014 года) и теперь активно доносит мысль, что программировать нужно только на нем, за ним будущее, он более современный и быстрый. И они правы, учите Swift . Objective-C напротив язык с давним прошлым, поэтому понять его значительно сложнее начинающим, что не отменяет его мощь и богатство существующих наработок и книг по нему (чего не скажешь в данный момент про Swift). И тем не менее, повторяю, учите Swift .

Если хотите делать кроссплатформенные приложения (одновременно под iOS и Android) — учите C# и используйте среду разработки Xamarin (платная). Хотите делать кроссплатформенные игры — качайте среду разработки Unity3D (условно-бесплатная), учите уже упоминавшийся выше C# .

А еще, чтобы запускать свои приложения на iPhone/iPad (даже на этапе разработки) и затем выкладывать их в AppStore, вам нужно купить статус Apple Developer за 100$ в год. После покупки это лишний раз мотивирует как минимум отбить эти деньги 🙂

Когда я задался этим вопросом, то подумал, что нужно просто взять хорошую толстую «библию» по Objective-C (напомню, Swift тогда еще не было) и постигать тайные знания языка программирования главу за главой. Все советовали книгу Стивена Кочана «Программирование на Objective-C «. Wrong! Не повторяйте мою ошибку. Да, азы языка были постигнуты, книга хорошая, но это справочник и он далек от реальной разработки приложений с нуля. Чтобы научиться программировать вам нужно «запачкать руки», пытаясь написать первые, пусть совсем простые, но работающие приложения. Вам нужны уроки с примерами. От простого к сложному. А еще важно поставить реальную цель, первое приложение, которые вы хотите написать и выпустить в AppStore. Каждый урок или книга должны давать вам знания, которые вы можете применить в своем проекте. Не совершайте ошибку «вечного студента», который только то и делает, что изучает-изучает-изучает, но откладывает момент начала настоящей работы. К примеру, я ставил себе цель сделать приложение-радио и выпустить его в AppStore за месяц — и у меня получилось.

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

The iOS Apprentice

Лучший англоязычный обучающий сайт — RayWenderlich.com . Он мега-крут по трем причинам: 1) можно бесплатно прочитать море уроков от азов до попытки повторить существующие успешные приложения (в том числе на Swift), при этом все написано душевно и с юмором; 2) там есть видео-уроки (правда, платные); 3) Важнейшая причина — у них есть книги для начинающих, которые обучат вас с нуля на примере создания приложений, очень доходчиво, с картинками (ну, как мы любим). Книги платные (дают бесплатно только первую часть), но они того стоят. Купил их все и они давно окупились, так как они строят хороший фундамент кирпичик за кирпичиком. Это не сравнить просто с чтением разных уроков вперемешку на этом же сайте. Начните с покупки книги The iOS-apprentice (первую часть которой можно скачать бесплатно). Она научит вас создавать первые приложения на Swift. Также у них есть книги по разработке игр на SpriteKit (фреймворк Apple для разработки игр).

Второй по-полезности ресурс — AppCoda . Он попроще RayWenderlich, но суть та же — читаем уроки по Swift, учимся на примерах. У них тоже есть собственные книги (платные), кроме бесплатных уроков.

А что, если не знаете английский — упс, подобных российский интернет-ресурсов просто нет. Книги на русском? Конечно, вы найдете какие-то книги на Ozon, но все они устаревшие и не научат вас языку Swift (на данный момент все только по Objective-C).

Лучшее, что я могу вам предложить, это хаб «iOS-разработка» на Хабре , там постоянно появляются новые статьи, но очень хаотично.

Где найти ответ, что-то не получается

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

StackOverflow — самый большой кладезь готовых ответов на английском. 80% ответов я нахожу там.

Google — банально, просто вбив в поиск вопрос, можно найти ответ. Если сразу не получается, поиграйтесь с формулировкой вопроса.

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

Ну или можете спросить меня. Пока бесплатно 🙂

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

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

Обучение

В общем решение было принято и в январе 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-го декабря, я смог загрузить более-менее рабочую версию. Хотя понятно, что это не последнее обновление.

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

Цифрой магазин App Store под завязку заполнен развлекательным контентом – и львиная доля доступного контента отведена под мобильные iOS приложения (следом – музыка, книги, и фильмы): через поиск легко найти игры, браузеры, клиенты социальных сетей, сервисы, представляющие возможность заказывать такси и еду, мессенджеры, анимированные обои и почтовые инструменты. За раз перечислить множество доступных мобильных приложений практически невозможно, и на то сразу несколько причин.

Во-первых, рынок мобильного iOS контента все время меняется – каждый раз находятся то новые разработчики, решившие создать еще невиданный миром продукт, то появляются «новички», пытающиеся переписать контент «профессионалов» новыми словами, под влиянием современных трендов. А во-вторых, библиотека одного App Store состоит из миллиона доступных предложений. И это далеко не предел, с учетом развития технологий и резко понизившемся уровне вхождения в мобильную разработку.

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

Зачем может понадобится свое приложение

Разработку приложения под современную мобильную операционную систему iOS стоит рассматривать с нескольких сторон:

  • Бизнес-инструмент. Сложно представить современную службу доставки, крупный ресторан или таксопарк, работающий исключительно через звонки по мобильному и домашнему телефону. Кто захочет часами висеть на линии, вместо виртуальной карты то и дело называть нужные адреса, путаясь, то в поездах, то в проездах, а еду выбирать, переспрашивая подходящие позиции у оператора call-центра. «Мобильность» приложения в таком случае решает все! Да, и вряд ли найдутся способы более эффективно взаимодействовать с толпой, привлекая аудиторию, то новыми скидками и предложениями.
    Впрочем, не всегда мобильное приложения стоит рассматривать исключительно, как инструмент продвижения – иногда загруженные через App Store помощники банально упрощают взаимодействие с некоторыми ресурсами. К примеру, не придется все время использовать браузер для прочтения недавно пришедшей почты. Зачем каждый раз проходить столь долгий путь, если можно загрузить мобильное приложение, авторизоваться в системе, а затем настроить систему уведомлений. Ничего лишнего уже не пропустить, а оставшегося времени после проверки почты хватит еще и на чашечку кофе;
  • Развлечения. Вторая сторона контента, из-за которой начинающие разработчики мечтают попасть в App Store – попытка сварганить развлекательный контент. И вариантов тут масса – игры, пародии на социальные сети, сервисы для виртуального общения, новинки, попавшие в «тренды». Контент из этого раздела собран исключительно ради увеселения, и ни коим образом не связан с уже работающим бизнесом.

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

Как поступить новичку если не хочется учить языки программирования?

Еще несколько лет назад путь от новичка до профессионального разработчика мобильных приложений пролегал через кучу всевозможных испытаний. Во-первых, чтобы что-то создать, приходилось изучать язык программирования (если нужна разработка под Android, то подойдет Java, если под iOS – Objective-C или ныне обросший популярностью конструктор Swift), причем начинать приходилось не с пустого места, а сразу после курса математики, логики и изучения разметки.

Во-вторых, каждый разработчик iOS приложений обязан владеть техникой Apple для полноценной работы с подходящими инструментами (вроде Xcode) и для непосредственного использования магазина App Store, как платформу для распространения разработанного контента.

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

Сильно на успех влияет невозможность загружать определенные версии iOS на ПК для тестирования версий и проверки совместимостей. А ведь каждый разработчик обязан проверить, насколько новинка справляется и с 11 iOS и с 5, если такая еще у кого-то осталась. Еще трудности встречаются и на этапе добавления контента в App Store, где модерация суровая – забраковать созданную новинку могут даже из-за неправильных скриншотов.

С недавних пор времена сильно изменились – для разработки мобильных приложений под продукцию Apple подойдет любой компьютер хоть с Windows, хоть с Linux. Изучать языки – тоже не придется, ведь в сети нашлось место специальным «конструкторам», которые предлагают за несколько шагов создать хоть магазин, где детализируется доступный на складе товар, хоть разработать платформу для вызова такси с виртуальной картой.

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

Что такое сервисы для создания приложений, в чем преимущества и возможности

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

В чем преимущества конструкторов?

  • Минимальные финансовые вложения. Никаких «платных» разработчиков, долгого планирования и расплывчатых сроков разработки. Можно всего за несколько дней разработать и привести идею к сути и провести релиз в подходящем цифровом магазине;
  • Быстрая проверка отклика. Если по каким-то причинам клиенты не обращают внимание на новинку в App Store даже при достаточном количестве рекламы и неохотно соглашаются на загрузку, то, скорее всего, еще рано переносить бизнес на мобильные платформы и стоит сосредоточиться на остальных идеях;
  • Низкий порог вхождения. Каждый доступный в сети конструктор продуман до мелочей – предлагает интуитивный интерфейс, специальную инструкцию для новичков и набор советов по предотвращению ошибок;
  • Легко подобрать шаблон. Если идея типична (разработка платформы для продажи товаров, доставки еды, поиска свободных автомобилей), то новичкам даже не придется ничего придумывать с технической точки зрения – все уже давно сделали профессионалы. Главное правильно заполнить сетку товаров в конструкторе, да переписать название доступных меню и раздело;
  • Можно не беспокоиться за результат. Если выбран подходящий шаблон, деньги практически не вложены, а потраченного времени едва ли наберется на несколько дней, то, о чем тут переживать? Полученный результат в следствии запуска приложения, можно рассматривать, как еще одну попытку оценить придуманную идею или устоявшийся, но требовавший перезапуска бизнес;
  • Тотальная поддержка. Ну, и куда без знающих людей, которые и в голосовом, и в текстовом чате подскажут, куда нажать и где посмотреть.

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

Лучшие сервисы конструкторы

Список подходящих для использования конструкторов расширяется с каждым годом – определить «лучших» в таком случае весьма проблематично, но выделить тройку конструкторов, на кого точно стоит посмотреть, все же можно:

GoodBarber

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

И еще – конструктор GoodBarber позволяет задействовать все аспекты смартфонов и планшетов – уведомления, интеграция в различные мобильные сервисы (от календарей до карт), быстрый доступ. Кстати, когда появиться желание выложить проект в App Store не придется заниматься такими делами собственноручно – главное обратиться в поддержку, заплатить указанную сумму (за возможность находится в магазине App Store нужно платить ежемесячно), а затем дождаться результата!

BuildFire

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

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

Appy Pie

Кроссплатформенный конструктор (можно вести разработку под любые мобильные операционные системы – хоть под iOS, хоть под Windows Phone), главная фишка которого – возможность создать мобильное приложение прямо в браузере! Нужно выбрать оформление и подходящие цвета, проставить ссылки, украсить свободное пространство картинками и ссылками и можно отправлять разработку в релиз. До публикации пройдет не больше 30 минут!

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

Что дальше делать со своим приложением?

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

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



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

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

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