Что нужно знать перед тем, как писать под iOS / Хабр

Что нужно знать перед тем, как писать под iOS / Хабр Без рубрики

Создайте пользовательский интерфейс

Разработчику iOS-приложений обязательно нужно уметь создавать пользовательские интерфейсы. Подвох в том, что это можно сделать несколькими способами. Например, используя Interface Builder и Storyboards из туториалов Apple. Или с помощью кода, для чего есть тоже множество разных решений.

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

Hello world

Итак, после моего довольно долгого вступления, перейдем к делу. Я попробую показать насколько просто сделать маленький Hello World прямо на вашем iPad.

Задача: сделать отображение разноцветных кругов под пальцами пользователя (своеобразный мультитач тест)

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

function setup()
    touches = {}
end

Далее перемещаемся в функцию, которая отвечает за касания экрана (вызывается при появлении нового касания, который в Codea именуется просто touch). Во время прикосновения к экрану мы добавляем касание в массив, а во время его прекращения — убираем. Все крайне просто.

function touched(touch)
    if touch.state == ENDED then
        touches[touch.id] = nil
    else
        touches[touch.id] = touch
    end
end

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

Для этого нам нужно перейти в функцию draw, которая вызывается во время отрисовки фрейма.

function draw()
    -- цвет фона
    background(0, 0, 0, 255)
    
   -- изображаем для каждого касания из массива
    for k,touch in pairs(touches) do
        -- Указываем id касания (число) для инициализации генератора случайных чисел
        math.randomseed(touch.id)
        -- Это позволит нам иметь разный цвет для каждого касания
        fill(math.random(255),math.random(255),math.random(255))
        -- Изображаем элипс (в нашем случае круг) в с центром в точке касания
        ellipse(touch.x, touch.y, 100, 100)
    end
end

Все, дело сделано.

Результат:
Что нужно знать перед тем, как писать под iOS / Хабр

Ionic

Что нужно знать перед тем, как писать под iOS / Хабр

Ionic – один из самых известных фреймворков для кросс-платформенной разработки. Он построен на базе Apache Cordova, что обеспечивает доступ к различным функциям устройства, таким как геолокация, push-уведомления, камера и прочим, и позволяет разработчикам создавать приложения для iOS и Android с веб-технологиями, такими как HTML, CSS и JavaScript.

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

Ionic Creator представляет собой визуальный редактор, который позволяет разработчикам быстро прототипировать и создавать мобильные приложения методом drag&drop. Наконец, существует Ionic View — бесплатное приложение для iOS и Android, которое позволяет разработчикам легко делиться своим Ionic-приложением с пользователями, тестерами и клиентами без необходимости развертывать приложение в магазине приложений конкретной мобильной платформы.

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

Увы, есть и «ложка дегтя». Приложения, написанные с использованием Ionic, используют WebView, в результате мы получаем самое натуральное веб-приложение, со своей обычной (обычно не самой впечатляющей) скоростью работы. За счет этого трудно считать его подходящим для создания тяжелых приложений, таких, как игры, либо программы с интенсивным использованием графики. Разработка с Ionic требует хороших знаний Angular, по крайней мере при желании «выжать» из фреймворка как можно больше.

Objective-c

Язык программирования для iOS приложений, созданный в начале 1980-х годов прошлого века путём скрещивания С (Си) с популярным в то время Smalltalk (связь с объектами через сообщения). Objective-C изначально воспринимался, как простая надстройка над языком C, модифицирующая его некоторые синтаксические конструкции, но после того, как за лицензирование взялась сначала компания Next Step, а потом на правах преемника и Apple, Objective-C стал одним из наиболее популярных языков для разработки приложений для iPhone и iPad.

Плюсы:

Минусы:

  • если ты никогда не сталкивался с программированием и решил сразу начать с Objective-C, то могут возникнуть сложности понимания принципов ООП и нагромождённого синтаксиса. Трудности исчезнут по ходу обучения;
  • низкая читаемость кода: в начале изучения синтаксис покажется сложным;
  • динамическая система типов данных, которая также является плюсом, предполагает возможность появления или пропуска ошибок даже во время компиляции. В частности, затянуть процесс могут опечатки;
  • низкая по сравнению с языком Swift производительность;
  • взаимодействие с файлами Swift происходит при помощи «моста» (условный адаптер, который переводит код на Swift в формат Objective-C), что сильно тормозит процесс сборки.

Примеры приложений, разработанных нашей командой на языке Objective-C:

Pythonista 3

Pythonista это Python IDE на iOS. После покупки Pythonista (749 рублей) установите StaSh — скрипт, который создает настраиваемую виртуальную консоль. Она эмулирует некоторые классические команды терминала, вроде cat, rm, git, ssh, scp. Расширение поддерживает исполнение скриптов в фоновом режиме до тех пор, пока приложение «висит» в оперативной памяти.

В Pythonista встроены популярные пакеты, как bs4 и requests. Остальные можно установить через pip в StaSh. Я однажды столкнулся с проблемой, что StaSh установил расширение для Python 2 или старую версию для Python 3, из-за чего у меня не получилось исполнить скрипт.

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

К сожалению, в Pythonista нет тесной синхронизации с Working Copy, как в Textastic. Однако, пользователи написали инструкцию, как переносить файлы из одного приложения в другое.

Разработчик Pythonista сделал большой акцент на UI-программирование. Приложение поддерживает файлы .pyui и предоставляет библиотеки для программирования специфичной функциональности iOS. Я никогда не пользовался этими возможностями приложения.

Как бонус, Pythonista работает и на iPhone. Пару раз мне это пригодилось — написал консольную утилиту, которая считает цены покупки и продажи криптовалюты.

Working copy

Working Copy — продвинутый Git-клиент для iOS. Мне он нравится понятным интерфейсом и обилием действий, для запуска которых не нужно обращаться к командной строке.

Для удобства работы добавьте в Working Copy учетные записи и хосты, на которых хранятся репозитории. Приложение поддерживает «из коробки» GitHub, GitLab, BitBucket и GitBook — а если у вас свой Git-сервер, то вы можете указать его в настройках.

Чтобы клонировать и обновлять репозитории, добавьте на хост SSH-ключ, который сгенерирует приложение. Так Working Copy получит список репозиториев, из которых вы сможете выбрать те, которые вам нужны на iPad — я сохраняю на устройстве все, с которыми активно работаю.

В Working Copy есть встроенный редактор кода и текста — в нем подтормаживает подсветка синтаксиса и русские/английские символы отображаются разным шрифтом. Тем не менее, он подходит для быстрого исправления ошибок или написания коротких программ. Для более серьезных задач я использую редактор Textastic.

Приложение показывает изменения, которые вы сделали с последнего коммита, и предлагает просмотреть их в совмещенном режиме или в раздельном (эквивалент git diff). При коммите приложение откроет всплывающее окно и покажет поле для описания коммита вместе со списком измененных файлов. В нем есть счетчик символов — следую ему, чтобы сделать сообщения максимально информативными.

Working Copy умеет исполнять команды fetch, fast-forward, pull и merge с удаленного сервера. При совмещении (merge) приложение покажет конфликты и предложит выбрать с помощью свайпов правильный вариант.

Для каждого репозитория программа строит графическое дерево коммитов. Тут же происходит работа с ветками (branch). К сожалению, в приложении нельзя создать «осиротевшие» ветви (orphan branch) — мне это нужно, когда начинаю работать над новыми версиями программ.

Working Copy доступна в App Store бесплатно. Однако за одноразовый платеж в 1150 рублей вы разблокируете темную тему и загрузку коммитов на удаленные серверы (git push). Премиум-версию приложения можно протестировать на протяжении десятидневного пробного периода.

Xcode

Текстовый редактор в Xcode переписали на Swift, сделав его надёжнее и быстрее. Можно ли это почувствовать? Да! Подсветка синтаксиса работает (почти) моментально, открытие и навигация по файлу теперь без заметных задержек, а сообщения об ошибках больше не перекрывают исходный код. В beta все выглядит очень приятно, посмотрим, что нас ждет в релизе!

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

Что нужно знать перед тем, как писать под iOS / Хабр
(Источник)

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

Что нужно знать перед тем, как писать под iOS / Хабр
(Источник)

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

Что нужно знать перед тем, как писать под iOS / Хабр
(Источник)

Из менее выделяющихся, но тем не менее полезных фич, можно назвать:

Зачем соблюдать гайдлайны apple

Human Interface Guidelines — это «каноны», по которым проектируется пользовательский интерфейс устройств Apple. Унифицированные, нативные элементы помогают пользователю интуитивно ориентироваться в разных приложениях, а не изучать каждое заново.

Создание программ для iOS
Гайдлайны Apple

Вот основные принципы iOS-интерфейса, которые нужно соблюдать при разработке приложений:

  • Эстетическая целостность — дизайн не противоречит предназначению приложения. Мы не можем добавить в приложение, которое выполняет серьёзную задачу, милую анимацию: Apple считает это неуместным.
  • Последовательность — навигация в приложении очевидна: используются известные значки, стандартные стили текста и единая терминология, а приложение реагирует на действия людей так, как они ожидают.
  • Прямое действие — приложение однозначно реагирует на повороты устройства и жесты пользователя.
  • Обратная связь — приложение даёт пользователю обратную связь в ответ на его действия: интерактивные элементы выделяются при нажатии, индикаторы прогресса сообщают о состоянии длительных операций, а анимация и звук помогают прояснить результаты действий.
  • Аналогичность — люди быстрее понимают приложение, если могут взаимодействовать с ним по аналогии с физическим опытом: «смахивать» экраны, «перетаскивать» элементы, «прокручивать» страницы.
  • Пользовательский контроль — В iOS все контролируют люди, а не искусственный интеллект. Приложение может предупредить или уведомить об ошибке, но никогда не будет принимать решения за пользователя.
Читайте также:  Правда ли, что Apple готовит складной iPhone? Видимо, да |

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

Интеграция ios-приложений

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

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

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

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

Новые возможности для бизнеса

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

Преимущества приложений

  • Инвестиции в будущее. Грамотно изготовленный и продвигаемый продукт быстро окупится и позволит расширить границы бизнеса.
  • Взаимодействие с постоянными и потенциальными клиентами. С помощью приложения легко построить общение с ЦА.
  • Упрощенная форма оплаты заказа. Пользователь может привязать свою карту, применять платежные системы Apple, оплачивать покупку в одно касание.
  • Рост конверсий. МП всегда находится под рукой, что обеспечивает более высокие конверсии, по сравнению с сайтом.
  • Обратная связь. Через приложение можно организовать поддержку клиентов в виде опросов, отзывов, чатов и пр.

Как заработать на ios-приложении

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

Создание мобильных приложений под iOS
За последний год прибыль App Store выросла на $4,5 миллиарда, в то время как прибыль Google Play увеличилась всего на $2,6 миллиарда.

Если сравнить цены в сторах, то можно обнаружить, что некоторые приложения в App Store продаются дороже, чем в Google Play. Приложение Duet Display — второй дисплей для ноутбуков и ПК — под iOS стоит 899 ₽, а под Android 790 ₽.

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

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

Если вы хотите узнать об особенностях разработки под Android — читайте нашу статью. А если вы уже готовы сделать свой выбор и начать работу над мобильным приложением — звоните 7 495 204-35-03 или пишите нам.

Как зарегистрироваться в ios developer program


У вас есть два пути:

Разница между ними в следующем: при участии в Enterprise программе вы не можете, в отличие от обычной программы, выкладывать свои приложения в AppStore, зато можете разрабатывать in-house приложения — приложения, для внутреннего использования в своей компании, без открытого доступа.

(последний вопрос в списке)

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

Небольшое замечание по Ad Hoc — это способ распространения приложений без AppStore, прямой установкой файла-сборки приложения через iTunes. И тут возникает вопрос: чем это отличается от тех in-house приложений, которыми манит нас Enterprise программа?

Тем, что в стандартной программе вы можете зарегистрировать в год не более 100 устройств для установки на них своих приложений, то есть ни о каком коммерческом распространении тут речь идти не может. Более того, Ad Hoc распространение ориентированно в первую очередь на тестирование продуктов — программы, установленные таким образом, могут работать на устройствах только в течение 6 месяцев.

Легко ли начать разработку для ios с нуля?

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

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

Разработка мобильных приложений под iOS – это не только весело, но и выгодно. В США за 2021 г. средняя годовая зарплата составляла 84 тыс. долл.

На диаграмме учитываются зарплаты разработчиков Apple, IBM и Sapient Corporation.
На диаграмме учитываются зарплаты разработчиков Apple, IBM и Sapient Corporation.

C тех пор, как Apple запустил App Store в 2008 г., было разработано 2 млн приложений. Согласно Appinventiv к 2021 году количество загрузок достигнет 353 млрд. Что насчёт России? По данным портала SuperJob в России разработчики iOS-приложений получают от 64 до 120 тыс. рублей.

Итак, что нужно, чтобы получить работу в качестве разработчика iOS?

Нативные средства разработки

Это прежде всего язык Objective-C и среда разработки Xcode (за компанию с Interface Builder, iPhone симулятором и другими приложениями из пакета разработчика). Еще можно писать на C и C , но без Objective-C вам в некоторых моментах будет все-таки не обойтись.


На хабре довольно много статей об этом языке — стоит только пролистать блог

. У Objective-C есть определенный шарм (хотя на этот счет высказываются

), он немного сложен в начале освоения, -парадигма, унаследованная от Smalltalk дает о себе знать — но потом затягивает.


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

Недавно JetBrains анонсировали свою среду разработки для Objective-C —

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

Нейминг

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

по этому поводу. К подбору имени я решил подойти основательно: для начала я перебрал список 1000 самых популярных слов в английском языке и выписал всевозможные комбинации, которые подходили бы для названия мобильного приложения для заметок, к тому же хотелось уложиться в 8-10 символов. Но при этом не хотелось выбирать название SuperNotes или NotesPlus etc, хотелось чего-то нового. Мне понравилось сочетание

mad note

, на которое случайно наткнулся в Urban Dictionary:

mad note — excellent, entertaining, surprising, unexpected or awe-inspiring


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

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

Обязательно ли нужен mac?

Вам обязательно понадобится Mac OS X, так как ни на какой другой платформе вы не сможете работать с iOS SDK. Есть много различных вариантов разработки iOS приложений, но минимум для сборки и загрузки приложения в AppStore вам будет необходима Mac OS X. Да, последнее время появляются различные сервисы, которые

и пирожки за вас есть будут

предлагают постить приложения за вас и различные другие услуги, и о них на хабре тоже

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

Способы заполучить Mac OS X:

Mac mini сейчас вполне доступная вещь, хотя, конечно, всегда хочется большего, а там цены у Apple уже начинают кусаться.

Относительно двух других вариантов: я слышал отзывы людей, которые вполне счастливы с хакинтошем или с Mac OS X на VMWare, но и отрицательного опыта тоже накоплено достаточно. Тут все зависит от железа, прямоты рук и вашего желания.

В целом, если вы хотите разрабатывать под iPhone, операционная система препятствием стать не должна.

Планшет по возможностям не уступает пк?

Все возможности iPad заключаются в приложениях, которые вы используете на нем.

По большей части, я использую в работе язык Python 3.6 и прекрасную IDE для него — Pythonista. Кстати, она доступна в AppStore. Эта среда разработки предоставляет мне возможности полноценных десктопных редакторов:

  • я могу создавать код на планшете и сразу же видеть результат его работы;
  • в любой момент можно подключить сторонние библиотеки;
  • встроенный в приложение терминал позволяет даже запускать простые веб-сервера прямо на планшете.
Читайте также:  Удаление устройства из приложения «Локатор» на iPad - Служба поддержки Apple

Работаю с кодом в Pythonista

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

Рисую маску в Procreate

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

Управление сервером я веду через протокол SSH, используя для этого клиент Termius. Как я заметил, premium версия этого приложения даёт множество преимуществ, которые могут сохранить вам нервы и крепкий сон по ночам, но для базовой работы совсем не обязательна.

Для работы с файлами на сервере удобнее всего для меня оказался FTP Manager Pro, который позволяет перемещать Файлы с локального хранилища iPad простым перетаскиванием с помощью Drag & Drop.

Split View с FTP Manager Pro — идеальное сочетание

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

Поддержка приложений для ios

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

Зачем нужны данные услуги?

Выпуск новых гаджетов

На рынке постоянно появляются новые устройства, на которых старые версии приложений будут работать некорректно.

Обновление операционной системы

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

Расширение возможностей

Пользователи «яблочной» продукции нередко просят что-то добавить или изменить, то есть улучшить функциональность.

На шаг впереди

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

Научно-технический прогресс

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

Безопасность

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

В рамках услуги мы:

  • Поддерживаем бесперебойную работу программы
  • Устраняем баги
  • Обрабатываем отзывы
  • Выпускаем релизы
  • Осуществляем мониторинг работы серверов
  • Выполняем резервное копирование
  • Следим за обновлениями ОС
  • Обеспечиваем свободное место на диске
  • Расширяем функционал и внедряем новый

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

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

Разработка


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

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

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

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

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

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

Процесс разработки нативного приложения — это написание программы на одном из основных языков iOS-разработки: Objective-C или Swift. Этот путь создан корпорацией Apple и предполагает следование всем её идеям. Apple обеспечивает разработчиков последними версиями SDK (software development kit — набор средств разработки), документацией, а также средой разработки Xcode.

Преимущества нативной разработки:

  • приложение оптимизировано под платфому iOS, а значит, будет работать быстро и корректно;
  • приложение реагирует на нажатия мгновенно, отсутствуют задержки в анимации и при скроллинге контента;
  • понятный и простой доступ к аппаратной части устройств — камере, микрофону, акселерометру, геолокации, адресной книге, плееру и т. д. На этих и других возможностях устройства можно базировать функциональность приложения;
  • родной для платформы интерфейс. Нативные приложения обычно оперируют «платформенными» элементами интерфейса: меню, навигация, формы и все остальные элементы дизайна берутся от операционной системы и потому привычны и понятны пользователю;
  • с каждым обновлением iOS синтаксис языка Objective-C практически не меняется, поэтому поддержка приложения происходит практически безболезненно — изменить или переписать придётся лишь незначительное количество кода.

Недостатки:

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

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

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

Разработка приложений и игр с дополненной реальностью при помощи arkit

ARKit — фреймворк, разработанный компанией Apple для работы с AR. Что такое AR и как это работает? AR — это технология, которая способна сканировать окружающее пространство и максимально достоверно интегрировать виртуальные объекты в реальную жизнь. Эти самые виртуальные элементы могут отображать специальные устройства, поддерживающие эту технологию:

Сканирование пространства происходит при помощи камеры устройства. Что может AR-приложение? Например, онлайн магазин кроссовок, в котором, помимо покупки, есть возможность отсканировать свою ногу и «примерить» понравившуюся модель, таким образом на экране твоего iPhone или iPad твоя нога будет в выбранном кроссовке.

И это далеко не все возможности! При помощи AR разрабатывают обучающие, развлекательные программы и, конечно же, игры:

Классное видео с одной из презентаций Apple, на котором при помощи AR оживает мир, сделанный из конструктора Lego.

Важно! Для разработки требуется iPhone или iPad. Хочу лишь напомнить, что в симуляторе Xcode нет камеры, и без нее не получится отсканировать пространство. В строке arkit из таблицы Device Compatibility ты можешь увидеть полный список устройств Apple c поддержкой ARKit.

Учебные материалы по ARKit:

Создаем связь между графическими элементами и кодом

В Visual Studio (или Delphi) объект в коде создается автоматически в тот момент, когда кладешь визуальный компонент на форму. В Xcode этого не происходит, но это не создает проблем.

Открой содержимое заголовочного файла ViewController.h в отдельном окне, дважды щелкнув на нем. В этом файле находится объявление расширения класса UIViewController, помечается ключевым словом @interface. Такая возможность была добавлена во вторую версию Objective-C.

Теперь выполни такой трюк: перемести курсор мыши на компонент — текстовую метку, зажми клавишу Ctrl и левую кнопку мыши. Перемести курсор в окно с кодом (файл ViewController.h), за курсором потянется синяя линия. Отпусти мышь и клавишу внутри описания интерфейса ViewController.

Появится окно создания Outlet’а.

Создание Outlet’а
Создание Outlet’а

Это свойство объекта, которое ссылается на другой объект (в данном случае визуальный компонент). Тебе надо ввести имя объекта Outlet, по нему ты будешь обращаться к визуальному компоненту, пускай будет lab. Далее выбирается тип объекта, он выбран правильно: UILabel.

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

@property (weak, nonatomic) IBOutlet UILabel *lab;

Убеждаемся, что Outlet — это свойство.

Теперь создадим Outlet для кнопки. Алгоритм остался прежним. Только для свойства Name надо ввести другое имя, например but. В код будет добавлена строка:

@property (weak, nonatomic) IBOutlet UIButton *but;

В результате имеем два указателя на визуальные компоненты: lab и but — соответственно, надпись и кнопку. Теперь, используя указатели, мы можем манипулировать компонентами в коде.

Затем надо создать обработчик события нажатия кнопки. Для этого в отдельном окне открой файл реализации ViewController.m. Точно таким же образом, как ты перетаскивал линию в заголовочный файл для создания аутлета, от кнопки перетащи линию в файл реализации и отпусти до закрывающей командной скобки — @end.

Создание обработчика события
Создание обработчика события

Заполни поле Name, его значение представляет имя свойства — метода. Пусть будет onClick. Значение поля Type оставь по умолчанию — id. В языке Objective-C данный тип является предком для всех остальных. В ниспадающем списке Event выбрано по умолчанию событие Touch Up Inside, которое происходит в момент отпускания указателя (мыши, пальца…) над кнопкой, то есть заключительная стадия нажатия кнопки.

- (IBAction)onClick:(id)sender {
}

Минус в начале означает закрытый метод (private). Ключевым словом IBAction помечаются события (методы) визуальных компонентов из Interface Builder.

Читайте также:  Не восстанавливается Айфон: 9 причины и способов исправить

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

_lab.hidden = !_lab.hidden;

В этой строчке кода мы инвертируем значение свойства hidden. Оно имеет тип BOOL, который располагает двумя значениями: YES — истина и NO — ложь (несколько непривычно Windows-программерам, где true и false).

Обрати внимание на символ подчеркивания, стоящий перед именем объекта — надписи (_lab). Без него компиляция завершится с ошибкой. Символ подчеркивания добавляется автоматически для объектов, содержащихся в других объектах; то есть в данном случае объект lab содержится в объекте ViewController.

Сейчас можно скомпилировать приложение и запустить его на симуляторе. Мы выбрали симулятор для iPhone 7, входящий в Xcode 8. Кнопка компиляции и запуска представляет собой черный прямоугольник и находится на панели вверху интерфейса.

После компиляции приложения, запуска симулятора и загрузки нашего приложения на экране симулятора отобразится его интерфейс: надпись «Hello, World» и кнопка Switch. Если нажать последнюю, надпись исчезнет, при повторном нажатии она появится вновь.

Мы сделали очень простое приложение для понимания сути разработки под iOS. Более подробные сведения о создании приложений для iOS на языке Objective-C ты можешь узнать из курса наших друзей из GeekBrains «Мобильный разработчик». В курсе два месяца отдается на изучение этого языка. Во время первого месяца — вводные темы, а на втором — реальный кодинг профессиональных приложений.

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

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

В ниспадающем списке Language оставим выбранный по умолчанию язык — Objective-C. Далее в ниспадающем списке Devices оставим выбор Universal. Здесь определяется, для какого устройства (iPhone или iPad) создается приложение. Пункт Universal означает для обоих.

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

Свойства проекта
Свойства проекта

Сначала нам надо создать интерфейс приложения. Для этого одним кликом выбери файл Main.storyboard в списке слева (если этот файл не видно, разверни содержимое папки ShowLab). Правее списка все окно займет Interface Builder. В центре отобразится макет устройства.

В правом нижнем углу окна находится панель компонентов. Перетащи оттуда на макет компоненты Label и Button. Выше панели компонентов находится список свойств. Если у тебя он отсутствует, нажми кнопку Show the Attributes Inspector, находящуюся под заголовком окна в правой части интерфейса.

Выдели в макете компонент Label и настрой его свойство Text: в ниспадающем списке оставь выбор Plain, в строку ниже введи нужную надпись, в нашем случае «Hello, World». Если текст не помещается в границы надписи, измени их, перетаскивая маркеры на краях компонента.

Чтобы централизовать его по горизонтали, перейди на страницу Size Inspector, нажав на кнопку Show the Size Inspector (справа от Show the Attributes Inspector). На этой странице из ниспадающего списка Arrange выбери пункт Center Horizontally in Container.

Теперь выбери компонент Button, измени его свойство Text на желаемую метку — Switch. Отцентрировать можешь так же, как описано выше.

Среда разработки ios приложений

Самыми популярные среды разработки приложений на iOS, или IDE (Integrated Development Environmetn) — это Xcode от Apple и AppCode от JetBrains.

Быстрый редактор, укомплектованный полным набором инструментов для разработки под iOS, macOS и др. Скачивается из App Store бесплатно.

Плюсы:

  • IB (Interface Builder). IB — это приложение с набором инструментов для разработки графических интерфейсов, интегрированное в Xcode. Процесс работы напоминает создание дизайна «на холсте». Всю вёрстку можно сделать в IB, а затем связать визуальные элементы с файлом реализации, в котором описана вся логика взаимодействия с ними.

Плюсом Interface Builder является наглядная вёрстка, настраивание стилей, бэкграунда, шрифтов и т. д., а минусом будет, например, работа с анимацией, её можно выполнить только кодом.

  • симулятор. Предоставляет полный набор iOS-устройств, на которых можно запустить и протестировать своё приложение;
  • отладчик. Умеет разбирать визуальную часть поэлементно для поиска ошибок в вёрстке, также поможет отловить баг и разобраться с проблемой утечки памяти. В добавок ко всему отладчик может производить все эти операции и UI-тесты в «беспроводном» режиме;
  • встроенная система контроля версий в GitHub. Помимо стандартных функций ветвления, в режиме разделённого экрана позволяет просматривать изменения в различных «ветках»;
  • функция имитации геолокации. Незаменима при работе с картой. Имеет «зашитый» набор городов, список которых можно дополнить;
  • содержит Swift Playground, так называемую «песочницу», которая позволяет быстро проверить новый алгоритм или графическую рутину (например, несколько строчек кода), не создавая целое приложение;
  • может собирать приложение сразу на iOS-устройство;
  • поддержка «тёмной темы» macOS.

Минусы:

  • нестабилен. В процессе работы может самопроизвольно закрываться с ошибкой. Проект никак не пострадает, и последние изменения кода не пропадут. Просто перезапусти Xcode и продолжай работать с того момента, на котором остановился;
  • зачастую не работает автодополнение (функция дополнения текста по введённой части).

Как и Xcode, содержит полный набор необходимых средств для эффективной и удобной работы с языком Objective-C, Swift, C и на 100% совместима с Xcode.

Плюсы:

  • стабилен. Внезапных закрытий, как в Xcode, нет;
  • автодополнение не отваливается и работает быстрее, чем в Xcode;
  • интеграция с баг/issue-трекерами, такими как JIRA, YouTrack, Lighthouse, Pivotal Tracker, GitHub, Redmine и т. д.;
  • более подробное описание ошибок и предупреждений;
  • может собирать приложение сразу на iOS-устройство, как и Xcode.

Минусы:

Иными словами, даже если ты выберешь AppCode в качестве основного IDE, для полноценной разработки мобильных приложений на iOS всё равно нужен Xcode.

Типы приложений

  • Заготовка Single View Application предназначена для простого приложения с одним экраном. Заготовка включает компонент View Controller, который позволяет настроить вид приложения с помощью конструктора форм Interface Builder.
  • Master Detail Application создает приложение, где в табличном представлении отображается коллекция объектов. После выбора одного из них показываются подробные сведения об этом объекте. Первый вид — мастер, второй — детализация.
  • С помощью Page-Based Application создаются приложения, имеющие несколько экранов, как страницы в книге. Следовательно, из этой заготовки создаются, например, читалки.
  • Tabbed application позволяет создавать приложения, где на каждый экран можно переключиться в любой момент, то есть у каждого экрана есть своя кнопка для его активации, на которой отображается заголовок. В качестве примера можно привести iTunes.
  • Game служит для создания заготовки игры. На выбор предлагаются четыре фреймворка для создания игры: SpriteKit, SceneKit, OpenGL ES, Metal. Вкратце рассмотрим их.
    SpriteKit представляет собой систему для двумерной визуализации и анимации текстурированных прямоугольников — спрайтов. При отображении кадров используется стандартный цикл, кадр выводится после того, как обработку пройдет все содержимое сцены.
    SceneKit — высокоуровневый фреймворк для визуализации трехмерной графики без помощи OpenGL. Он поддерживает загрузку, манипуляцию трехмерными объектами. В него включены: физический движок, генератор частиц и легкий способ скриптования.
    OpenGL ES — стандарт в области компьютерной графики. Позволяет визуализировать 2D- и 3D-сцены. Позволяет описать пайплайн для видеокарты: вершины проходят преобразование, собираются в примитивы, которые растеризуются в двумерное изображение и выводятся на экран. В пайплайн можно включить программируемые шейдеры.
    Metal — представляет собой низкоуровневый API, который позволит тебе выжать все мощности из твоего видеоадаптера. Отлаженные API вместе с предкомпилированными шейдерами и многопоточностью позволяют твоей игре подняться на новый уровень производительности и качества.
  • Sticker Pack Application — новый вид приложений, появившийся в iOS 10 и Xcode 8. Представляет собой набор простых или анимированных изображений, используемых в новом iMessage. Для своего создания не требует кодирования.
  • iMessage Application — новый вид приложений, появившийся в iOS 10 и Xcode 8. Позволяет создавать дополнения для iMessage, например для покупки и загрузки твоего пакета стикеров. Также можно, воспользовавшись API iMessage, создать свой аналог данного приложения, включая проигрывание аудио, видео, использование стикеров и другое.

Итоги

Мы разработали простое приложение для мобильной операционной системы iOS, используя для этого систему программирования Xcode вместе с языком Objective-C. Протестировали готовое приложение на симуляторе iPhone 7. Мы узнали, как построить пользовательский интерфейс с помощью Interface Builder, как связать графические элементы с кодом приложения, как создать обработчики событий.

Однако изученный материал — это только начало. Чтобы интенсивно прокачаться в направлении мобильного кодинга и разработки реально продаваемых приложений, мы рекомендуем пройти курс «Mobile-разработчик» на сайте наших друзей GeekBrains.

Это достойный курс: пройдя его, ты точно не потратишь время зря. Он начинается с двух подробных курсов по языку Java, затем следует изучение базового программирования под мобильную операционную систему Android. Далее курс по базам данных в общем и языку SQL в частности.

Программа курса
Программа курса

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

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

Специальный проект с компанией GeekBrains

Оцените статью
iPad Мобайл
Добавить комментарий