Итак, вам тоже пришла мысль: «А как мне научиться писать программы для 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, но на русском. Здесь пока сложно находить ответы, так как база вопросов еще не очень большая. Зато можно спросить — на ресурсе достаточно профессионалов, которые вам ответят.
Ну или можете спросить меня. Пока бесплатно 🙂
Разработка приложений для мобильных устройств приносит неплохой доход. Программисты получают за это солидную зарплату, а компании-разработчики активно реализуют софт через магазин приложений AppStore, получая прибыль с каждой продажи. Написать свою программу легко и сложно одновременно. В некоторых случаях для этого нужно быть программистом, а в некоторых – обычным пользователем.
Создать мобильное приложение под iOS с нуля можно двумя способами:
Последний вариант разработки создан для профи, которым тесно в рамках традиционной экосистемы.
Что касается языков Objective-C и Swift: в разработке приложения задействованы оба. Только Objective-C устарел, ведь он появился почти три десятка лет тому назад. На смену ему пришёл Swift, на котором создаётся современный софт, как платный, так и бесплатный. Также профессионалы используют в своих программах кодинг на C++, но это уже выходит за рамки статьи.
Независимо от того, под какое устройство создаётся приложение, программисту потребуется среда разработки Xcode. Эта среда является универсальной – в ней делаются приложения для смартфонов, планшетов, компьютеров и прочих устройств от Apple. Скачивается она через магазин приложений Mac App Store, версии для Windows нет. Распространяется программа бесплатно, в ней уже присутствует эмулятор для тестирования софта.
Последняя версия среды была выпущена 27 марта 2017 года – номер версии 8.3. Также для обновлённого софта характерна поддержка новых функций и более быстрая работа.
Каждая новая версия предоставляет всё новые возможности.
Данный пример показывает основы разработки программы «Hello World» - процесс создания прописан пошагово, что позволяет повторить его самостоятельно. Инструкция предусматривает использование объектно-ориентированного языка программирования Objective-C. Многие свои возможности он унаследовал от языка С, но в нём используется динамическая система типов данных, а не строго типизированная. Для более детального ознакомления рекомендуется поработать с книгой «Сила Objective-C 2.0. Эффективное программирование для iOS и OS X». Автор издания – Мэтт Гэлловей.
В мире программирования принято начинать изучение новых языков с программы «Hello, World». Она выведет на экран кнопку, при нажатии на которую на нём будет появляться и исчезать данная надпись. Для начала необходимо выбрать тип приложения:
Предусмотрены и ещё два типа – это Sticker Pack Application с изображениями для iMessage, а также iMessage Application для создания дополнений для iMessage или разработки приложений-аналогов.
Для «Hello, World» выбирается первый тип – это Single View Application. Выбираем его и задаём имя проекта, указываем язык Objective-C, в списке Devices выбираем пункт «Universal» (софт будет работать на iPad и iPhone), снимаем флажки Include Unit Tests и Include UI Tests и сохраняем проект.
На следующем этапе делаем интерфейс программы – разворачиваем меню ShowLab и выбираем пункт Main.storyboard, после чего откроется окно с макетом устройства (Interface Builder). В панели компонентов выбираем два компонента – это Button (кнопка) и Label (надпись). Разворачиваем список свойств, нажав на Show the Attributes Inspector, и настраиваем компонент Label – выбираем свойство Text, в выпадающем списке выбираем пункт Plain и вводим будущую надпись «Hello World». При необходимости меняем границы надписи и центруем её по горизонтали через Size Inspector – открываем панель и выбираем в выпадающем списке Arrange пункт «Center Horizontally in Container». Здесь необходимо поменять его свойство с Text на Switch.
Следующий пункт – необходимо создать связь между кодом и используемыми в приложении элементами. Последовательность действий:
В окне с кодом появится строка с фигурными скобками, между которыми необходимо вписать код «_lab.hidden = !_lab.hidden;». В итоге у нас должно получиться – «(IBAction)onClick:(id)sender { «_lab.hidden = !_lab.hidden;}» (без кавычек). Теперь остаётся лишь запустить наше первое приложение в эмуляторе.
Приложение обладает простым интерфейсом, в нём всего два элемента – кнопка и текстовое поле. При нажатии на кнопку в текстовом поле появляется надпись «Hello, World». Нажимаем ещё раз – и она исчезает.
Может показаться, что мы создавали приложение слишком долго. Если удастся сделать хотя бы простейший софт, это станет стимулом к дальнейшему изучению программирования под iOS.
Написанное приложение можно продавать через App Store. Также возможно бесплатное распространение. Независимо от способа распространения своих приложений, вы должны приобрести специальную лицензию.
Человеку, малознакомому с программированием, будет сложно сделать собственную программу. На изучение языков программирования уйдёт уйма времени. Чтобы создать приложение под iOS максимально быстро, можно воспользоваться специальными конструкторами. Рассмотрим их более подробно.
Здесь разрабатываются интернет-магазины, каталоги товаров, онлайн-журналы и многое другое. Пользователей ждёт множество готовых шаблонов, настраиваемых под свой вкус. Ваш софт сможет работать с графикой, мультимедийными файлами, push-уведомлениями, навигацией, социальными сетями и многим другим. Запускайте фотогаллереи, онлайн-витрины, каталоги музыки и прочий софт буквально в несколько нажатий мышью.
Основная ориентация сервиса – на бизнес-софт. Разработка здесь бесплатная, но нужно оплатить доступ к конструктору, техподдержку, доступ к статистике и размещение программ в App Store. Стоимость одного приложения – 9990 рублей.
Если нужен реально красивый и функциональный софт, обратите своё внимание на конструктор AppsMakerStore. Это мощный бизнес-инструмент, позволяющий создавать приложения для бизнеса, причём своими руками – без помощи третьих лиц. На выбор пользователей представлено множество шаблонов:
Таким образом, здесь разработчиков ждёт внушительный функционал по разработке программ различного назначения.
Команда сервиса поможет опубликовать ваше приложение в App Store без сложных действий с вашей стороны – вам остаётся только создать софт.
Ответить на этот вопрос довольно сложно. Поэтому мы составили сравнительную таблицу:
Сервис | Плюсы | Минусы |
iBuildApp | Много шаблонов для приложений, русскоязычный интерфейс, круглосуточная поддержка | Нужно платить деньги за разработку, причём немаленькие |
Apps Globus | Поддержка русского языка, доступные цены на публикацию и поддержку программ, множество инструментов для разработки софта, гибкость конструктора, доступ к аналитике, предоставление исходных кодов | Мало доступных шаблонов |
App2b | Множество инструментов для разработки – от простых страниц до интернет магазинов, собственный хостинг, инструменты для продвижения приложений | Не самый информативный сайт, для получения подробной информации по разработке необходимо позвонить по контактному телефону |
New Digital Times | Не нужно платить деньги, возможность разработки приложения через веб-интерфейс или приложение для компьютера. Можно создать магазин, журнал, есть хостинг для данных | Мало модулей, многие из них придётся заказывать у программистов сервиса |
AppsMakerStore | Гигантское количество профессиональных отточенных шаблонов позволит создать продукт любого уровня сложности. Множество дополнительных модулей. Поддержка множества платформ. | Трудно понять ценовую политику |
Создать приложение с помощью сервисов очень просто – разработка не займёт у вас много времени. Все действия здесь производятся в визуальных редакторах, результаты можно посмотреть без публикации в App Store. Также почти все сервисы поддерживают софт под Android – вы сможете охватить сразу две мобильные платформы. Такая возможность актуальна для тех, кто занимается бизнесом и продвигает его в интернет-среде.
Но в конструкторах возможно создание далеко не любых программ. Кстати, мобильные игры создать с помощью конструкторов не удастся. Поэтому изучение языков программирования откроет перед вами широчайшие возможности по работе с софтом для продукции Apple.
Все началось с того, что я огляделся по сторонам и, не увидев автомобиля своей мечты, решил сконструировать его сам
Фердинанд Порше
Поэтому, поставив все ставки на простоту и удобство, я приступил к созданию концепции. Модель приложения с единым списком заметок. Все в одном месте, что может быть проще? Если что–то имеет большую ценность или актуальность, совсем не обязательно вешать на него ярлык, ведь достаточно просто переместить более важную заметку в топ списка. Старые и ненужные записи постепенно будут опускаться вниз и в последствии будут удалены пользователем.
Довольно стандартный функционал для подобного рода приложений, согласитесь. Но это только верхушка айсберга, дьявол кроется в деталях.
Кроме того, в приложении очень удобно создавать скриншоты для публикации в AppStore. Для каждого размера экрана создавался свой набор артбордов, вместе с использованием стилей, время потраченное на форматирование минимально. Но про публикацию чуть позже.
После создания базового функционала (создание, удаление, редактирование заметок) я решил улучшить каждую из этих функций.
Согласитесь, редактирование текста в iOS реализовано достаточно неудобно. При допущении ошибки в слове для перемещения курсора на нужную позицию необходимо сделать касание и не убирая пальца от экрана, попытаться попасть в выбранную область. К тому же после исправления ошибки нужно вернуть курсор назад в конец строки. В своем приложении я решил переработать механизм перемещения курсора: для того чтобы внести изменение в слово, нужно лишь сделать свайп в зоне между клавиатурой и набираемой фразой не загораживая при этом обзор текста.
Анимации удаление и перемещения в топ я решил реализовать самостоятельно, а визуальное сопровождение максимально приблизить к реальной жизни. Что-то приобрело более высокий приоритет - свайп вправо и заметка перемещается в топ списка. Чтобы удалить - свайп влево и анимация зачеркивания покажет на сколько еще нужно продлить свайп чтоб завершить удаление. При случайном удалении - нужно просто потрясти устройство («Shake»), и заметка вернется на свое прежнее место.
Для того, чтобы выделить заметку, я использовал LongTapGesture и три основных цвета приложения - белый, синий и красный, которые и сформировали главную палитру цветов.
Переход между дневной и ночной темами я решил сделать автоматическим - почему никто еще не додумался менять внешний вид в зависимости от положения солнца на небе? Все очень просто - после наступления темноты и после восхода солнца тема меняется, при этом пользователю не нужно отвлекаться от создания заметок, ведь приложение всегда будет автоматически подстраиваться под окружающие условия.
mad note - excellent, entertaining, surprising, unexpected or awe-inspiring
Поскольку заметки на бумаге пишут карандашом или ручкой, я решил отобразить это на иконке - карандаш повернутый под углом 45 градусов. Получилось вот так:
Спасибо внимание.
Note your passion
Люди приходят к нам в компанию, чтобы воплотить в жизнь свою идею и автоматизировать бизнес-процессы. Мы предоставляем бесплатную консультацию у аналитика InfoShell и доработку идейной составляющей проекта.
Идея и консультация
Почти всегда идея, с которой клиенты приходят к нам, требует аналитики и доработки. Эта работа необходима, чтобы на старте четко понимать, что мы имеем и в каком направлении двигаться, а также, чтобы продумать стратегию создания лучшего продукта.
На этом этапе мы проводим аналитику рынка приложений/веб-сервисов по выбранной тематике, выявляем лидеров и находим примеры плохой реализации, определяем критерии их успеха или провала. Мы изучаем продукты конкурентов с точки зрения интерфейсных решений, ориентирования на конечного пользователя, выполнения сервисом своих целей и задач и выявляем их преимущества и недостатки.
Полученные знания проецируем на будущее приложение, формируем представление о конечном продукте, о пользователях и их целях, и в результате получаем видение будущего проекта, зафиксированное в документе - project vision.
После консультации с нашим специалистом у Вас появится точное понимание, как сделать так чтобы проект выстрелил.
Приступаем к работе!
Оценку проекта производит команда разработчиков. После чего клиент получает предварительное коммерческое предложение.
После составления project vision проекта наша команда разработчиков оценивает примерные трудозатраты на реализацию продукта. Исходя из поставленных задач и технологических ограничений, составляется оценка количества часов, необходимых на создание вашего продукта.
На основе полученной оценки формируется предварительное коммерческое предложение, в которое входит описание похожих проектов, реализованных нашей компанией, состав команды разработчиков и профессиональный уровень каждого участника, стоимость всего проекта с разбиением на этапы.
На коммерческом предложении в дальнейшем будет основан договор.
Встреча с продукт-оунером, обсуждение деталей проекта. Команда разрабатывает бэклог на весь проект совместно с заказчиком. После утверждения бэклога, с заказчиком подписывается договор.
* продукт оунер – руководитель проекта
Ответственность за содержимое бэклога, его упорядочение и доступность всем членам проекта несет Product Owner. Он также ответственен за достижение максимальной ценности продукта и работы, выполняемой командой, поэтому непрерывно анализирует текущий ход работ над продуктом и ищет способы по улучшения его. Эту роль может исполнять как человек со стороны заказчика, так и сотрудник нашей компании.
**бэклог – список задач для команды разработчиков, которые полностью описывают проект
Документ представляет собой иерархическую структуру из пользовательских возможностей и технических требований, упорядоченных по очередности реализации, более важный функционал будет реализован раньше остальных. Каждому элементу Бэклога присваиваться описание, порядковый номер, оценка объема работы и ценность. Это позволяет просчитать окончательную стоимость продукта.
Договор в первую очередь обеспечивает полную прозрачность проводимых работ для заказчика и позволяет ему контролировать процесс от А до Я на каждом этапе. Все этапы прописываются отдельно, что позволяет производить оплату выполненной работы по факту сдачи.
Бэклог – гибкий документ, который позволяет Заказчику вносить даже серьезные изменения в продукт по ходу разработки, ведь большинство новаторских идей придумываются уже в ходе выполнения проекта. Дополнительный функционал оформляется в виде доп. соглашений к договору, в которых отмечается, сдвинет ли реализация вносимых изменений сроки завершения этапов проекта.
Договоренность с заказчиком о том, какие задачи будут выполнены на ближайшем спринте.
Сердцем Scrum* является Спринт** длительностью в одну или две недели, в течение которых создается потенциально готовая к выпуску и использованию часть продукта.
*Scrum – гибкая методология создания, по который мы ведем проекты
** Спринт-этап в рамках которого реализуется определенная часть проекта
Обычно длительность Спринта является постоянной на протяжении всего периода разработки. Следующий Спринт начинается сразу же по окончании предыдущего.
Спринт состоит из списка того, какие функции нужно разработать и гибкого плана, служащего ориентиром в работе по проекту. Ресурсом для планирования спринта является Бэклог Продукта.
Объем работ на предстоящий Спринт определяется во время планирования Спринта в ходе совместной работы всей команды.
При планировании Спринта команда отвечает на следующие вопросы.
В наше время мира технологий огромное количество людей просто фанатеют интернетом и конечно стремятся все больше узнать о программировании. А работа в этой области считается достаточно престижной. Конечно имея знания, опыт по созданию программ для телефонов можно заработать не плохие деньги, а работа связанная с программированием выгодно выделяется из большинства профессий.
Компания Apple на сегодняшний день считается одной из самых успешных среди производителей электронных устройств. Конструкторы iPhone приучили пользователей к ежегодным обновлениям яблочных девайсов. Каждый раз перед появлением очередного «умного яблочного творения» обыватели гадают, чем на этот раз удивит, порадует новинка.
Операционная система iOS 10, последней модели iPhone считается самой лучшей в мире. Соответственно создание программ для лучшего девайса, в тренде у молодёжи.
Для того чтобы сделать приложение подойдет Windows. Но если по каким то причинам или по привычке к другой, Windows отсутствует рекомендуем установить macOS (Хакинтош). Вы можете установить ее на VMware или VirtualBox. Клавиатура у них различна, некоторые значения отсутствуют на Хакинтоше, но в целом все не так уж сложно.
Конечно чтобы обучиться программированию к этому вопросу надо подойти серьёзно, в первую очередь из-за необходимых познаний в области математики и логики. Сегодня совсем не обязательно знать строение электронного устройства, но с основами механизма нужно быть знакомым. Программист iOS обязан знать преобразование систем счисления, продуктивность и функциональность приложений, чтобы уметь создавать пользующиеся спросом приложения. Необходимыми будут знания языка i-программирования. Если ранее вы уже занимались этим с другими системами, то данный опыт мало чем поможет. Apple имеют собственную экосистему. Понадобятся знания в Objective-C и Swift. Последний стал использоваться позднее, поэтому язык Objective применяется чаще. Но Swift усиленно внедряется производителями компании Apple. Старый софт пишется на старом языке, а соответственно новый на новом. Поэтому желательно знать и тот, и другой. Изучить их можно на некоторых сайтах, достаточно быстро.
Основание программирования это Xcode. На данной среде есть необходимые инструменты для разработки приложений. Они предназначены для создания программ для Mac, iPhone, Apple Watch и др. Xcode вмещает в себя инструменты для создания интерфейса и редактора кода вмещающего новейшие средства для работы с ним. Там же возможна диагностика приложений. Система поддерживает эмуляторы всех устройств, а последние версии можно дозагрузить. Не давно появилась обновленная версия для разработки — 8.0. Простые версии можно найти установить через App Store. Последняя версия позволяет просматривать «сырое» приложение на платформах гораздо быстрее и не открывая его. Для удобства, доступности наших описаний лучше обновить Xcode.
iOS разработка возможна с помощью Xcode. Для этого платформу нужно скачать. Произвести установку можно через сервис best-soft.org
С помощью данной платформы возможна разработка под iOS, не только приложений, но и игр, программ навигации, дневников и т.д. Удобством здесь являются шаблонные файлы с готовым интерфейсом. Вам нужно только дополнить их и внести индивидуальный авторский замысел.
Платформа Xcode проста и понятна для не опытных программистов. Следуя интуитивным подсказкам, появляющейся информации на платформе можно создать не простую игру или программу. Для этого не обязательно быть знатоком кодов.
Рассмотрим на примере одного из конструкторов с сайта apparchitect.com. В данном случае игру создать не возможно, но простое приложение легко. Сделать это с помощью сервиса apparchitect.com достаточно просто. Следуя подсказкам сайта и с помощью инструментов нужно сконструировать приложение.
Помните, программирование для iOS требует серьезного отношения и для создания многофункционального не простого приложения необходимы емкие знания. Поэтому, если хотите освоить принцип работы удобных программ на iOS, понять как сделать действительно интересное приложение, нужно учиться.