Разработка под iOS — Популярная мобильная ОС / Хабр
Популярная мобильная ОС
Статьи Авторы Компании
Сначала показывать
Порог рейтинга
Obsession_with_Japan
Блог компании JUG Ru Group Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Конференции
Конференция по мобильной разработке Mobius в этот раз пройдёт в хитром формате. Два дня будут полностью онлайновыми, а в отдельный третий день можно будет хоть лично прийти на мероприятие в Москве, хоть поучаствовать удалённо.
А вот общая идея конференции остаётся прежней: здесь будут доклады и по Android-разработке, и по iOS, и «универсальные». В этом хабрапосте пометили всё значками 🤖, 🍏 и ♾️ соответственно.
Какие именно будут доклады в этот раз? Собрали в этом хабрапосте описания всех и разделили на тематические блоки, чтобы удобнее было разобраться.
Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры518
Комментарии 0
VTB
Блог компании ВТБ Разработка веб-сайтов *Разработка под iOS *Финансы в IT
В течение последних лет внимание компаний переключилось с сайтов на мобильные приложения — комфортные в использовании, кастомизированные технологии. Однако разнообразие доступов к онлайн-услугам не бывает лишним, и тем более это актуально для банковских сервисов.
Рассказываем о ключевых решениях, которые позволили доработать интернет-банк «ВТБ Онлайн», по сути объединив преимущества сайта и мобильного приложения: сервис не занимает память на устройстве и не требует обновления, но при этом удобен и понятен для наших пользователей.
Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Просмотры1.8K
Комментарии 9
ProductivityInside
Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В нашем новом дайджесте новая навигация в iOS и известность команд разработки, умная камера Яндекса и ключ к тайной комнате, конец программирования, технологические тренды 2023 и многое другое!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры1.2K
Комментарии 0
Mmmalinka
Разработка под iOS *Разработка мобильных приложений *
В этой статье поделюсь тем, как настроить трекинг событий о получении и об открытии нотификаций на iOS устройствах. Рассматривается вариант, когда приложение уже интегрировано с Firebase Cloud Messaging для получения FCM токенов и отправки нотификаций через собственный сервер, а для трекинга событий подключен сервис Amplitude. Даже если в вашем приложении используется другой набор сервисов для работы с нотификациями и аналитикой, решения, описанные здесь, могут подойти.
Задача заключается в том, чтобы затрекать два события аналитики: событие получения нотификации (нотификация пришла на устройство пользователя, но пользователь еще не нажимал на нее) и событие открытия приложения по клику на нотификацию.
Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры346
Комментарии 0
Demtriy
Разработка под iOS *Swift *
Tutorial
С каждый днем все больше разработчиков IOS стремятся свои новые проекты начинать с использованием SwiftUI. И здесь перед ними возникает проблемы в виде реализации устоявшихся представлений о навигации в iOS. Предлагаемые решения от Apple работают весьма часто довольно криво. Это понимают и в самой Apple. По мере развития SwiftUI основной компонент навигации NavigationView был заменен на NavigationStack. И это не просто переименование. Те кто уже использовал NavigationView не готовы от него отказаться, так как его реализация лежала через боль и слезы. Те же кто только входит в мир SUI либо наталкиваются на рекомендации создавать кастомную навигацию, либо смотрят на статьи как разруливать проблемы NavigationView. Новая альтернатива не всем пришлась по-душе, так как на WWDC не продемонстрировали его с лучшей стороны. А она есть. И это хорошая новость! Apple, наконец, освоила паттерн Navigator, которым конкуренты пользовались более 10 лет!
В чем суть: теперь навигация становится возможной даже при помощи передачи пути для навигации. Те кто пользовался DeepLink или UniversalLink возрадуются. Теперь и на их улице будет праздник. Оговорюсь – это не значит что раньше это было невозможно, но теперь не приходится для этого устраивать танцы с бубном.
Чтоб продемонстрировать идею, был набросан минимальный проект, включающий пять экранов, с незамысловатыми названиями: first, second, third и fourh. Эти экраны были объединены следующей схемой переходов:
Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры3.2K
Комментарии 3
Sbermarket
Блог компании СберМаркет Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
Привет! На связи tech-команда СберМаркета. 13 октября мы провели онлайн-митап для iOS и Android-разработчиков. Хотим поделиться с аудиторией Хабра видео с докладами оттуда. Рассказываем о нашем опыте внедрения SwiftUI и делимся кейсами на ReactNative.
Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры632
Комментарии 0
ProductivityInside
Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В новом выпуске Dynamic Island и Live Activities, MVI и State Machine, сложные интерфейсы, подготовка к собеседованиям, маркетинг приложений в кризис, реверс инжиниринг кормушки для кошек и многое другое!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры1.5K
Комментарии 1
troy_brox
Блог компании KTS Программирование *Разработка под iOS *Разработка мобильных приложений *Дизайн мобильных приложений *
Перевод
Документация Apple рассказывает, как начать работу с Dynamic Island, динамическим островом. Система была представлена Apple в сентябре 2022 года, на данный момент она есть только в моделях iPhone 14 Pro и iPhone 14 Pro Max. С Dynamic Island можно анимированно показывать информацию вокруг области выреза фронтальной камеры iPhone, которую мы привыкли называть «чёлкой».
В этой статье мы рассмотрим пример базовой работы с размещением контента в Dynamic Island для его разных состояний.
Для сборки проекта нужно запустить Xcode версии не ниже 14. 1 Beta.
Этот пример основан на документации Apple. Ещё вы увидите работу с данными, которые отправляются в Activity в Dynamic Island.
Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры2.5K
Комментарии 3
ProductivityInside
Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В нашем новом дайджесте анимации и расстановка приоритетов, комфортные WebView и удобные бенчмарки, все откладывающая победа PWA, рабочие процессы, шаринг еды, снижение доходов приложений и многое другое!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1. 9K
Комментарии 1
extremall
Разработка под iOS *Swift *
Из песочницы
Всем привет! Я хочу поделится своим опытом реализации кастомных переходов между экранами в iOS. Несмотря на то, что тема эта достаточно популярная, и очень многие дизайнеры хотят привнести в процесс перехода какую-то свою изюминку (затемнение, параллакс и т. п.), реализация этих вещей не очень тривиальна. Я попробую разложить все по полочкам. Рассмотрим сначала стандартное решение, которое не особо гибкое, но зачастую достаточное для многих проектов. Затем реализуем полностью кастомное и контролируемое исключительно нами решение.
Итак, погнали!
Всего голосов 2: ↑2 и ↓0 +2
Просмотры1.2K
Комментарии 0
NatalieVT 000Z» title=»2022-10-07, 16:57″>7 октября в 16:57
Блог компании Яндекс Практикум Программирование *Разработка под iOS *Разработка под Android *Учебный процесс в IT
Мобильная разработка — одно из актуальных направлений в IT-сфере. Мир вокруг нас стремительно меняется, но, несмотря на это, люди по-прежнему решают множество своих задач с помощью телефонов. Такси, шопинг, обучение — всё это доступно в виде мобильных приложений. А за создание этих приложений отвечают мобильные разработчики.
Летом в Яндекс Практикуме стартовало два курса по мобильной разработке: «Android-разработчик» и «iOS-разработчик». О том, что особенного в каждой программе, мы поговорили с командой Практикума, которая их создавала.
Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры1.9K
Комментарии 4
rublyabachka 000Z» title=»2022-10-07, 16:00″>7 октября в 16:00
Блог компании МТС Разработка под iOS *Swift *
Всем привет, меня зовут Валерия Рублевская и я iOS-разработчик на проекте онлайн-кинотеатра KION в МТС Digital. Это третья часть рассказа о фиче Autoplay и сегодня мы поговорим о нюансах ее реализации на tvOS.
Хотите подробностей? Добро пожаловать под кат!
Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры1.3K
Комментарии 1
Блог компании Sportmaster Lab Разработка под iOS *Разработка мобильных приложений *Дизайн мобильных приложений *Дизайн
Мегапроект
Зашёл я (@Lavs) в «Спортмастер», чтобы купить себе футбольный мяч. В этом деле мне помогла сотрудница Ксения: задала пару вопросов, отвлеклась на смартфон и через минуту протянула подходящий мячик.
Я знал, что на экране у Ксении был не мессенджер с подружками, а внутренние приложения магазина. Дело в том, что в «Спортмастер» я пришёл не только за мячиком. Хабр отправил меня с редакционным заданием: разобраться, как устроена технологическая начинка магазина.
Ребята из SM Lab (IT-компания «Спортмастера») сейчас ищут Android- и iOS-разработчиков. Под катом речь пойдёт о том, чем занимаются команды мобильной разработки: а они ни много ни мало обеспечивают работу всех 533 розничных «Спортмастеров».
Читать далее
Всего голосов 34: ↑32 и ↓2 +30
Просмотры20K
Комментарии 9
AllDmeat
Блог компании Dodo Engineering Программирование *Разработка под iOS *Разработка мобильных приложений *
Tutorial
В какой-то момент разработки вашего приложения вы получаете обратную связь от пользователей: при нажатии на кнопку, например, «Выбрать адрес», ваше приложение сначала на пару секунд подвисает, а уже только потом показывает экран со списком адресов. Специально никто медленный код не писал, но он откуда-то где-то возник.
Сегодня расскажу, как Apple предлагает решать эту проблему с помощью логов.
Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Просмотры1.6K
Комментарии 0
ProductivityInside
Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В нашей новой еженедельной подборке история Goose Maps и WebView, продолжение неочевидного про Fragment API, перепады высот, эмуляторы, симуляторы, тестовые фермы и многое другое!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
Читать дальше →
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1. 9K
Комментарии 0
nazar228
Разработка под iOS *Xcode *Swift *
Из песочницы
В iOS-разработке выравнивание контента и интервалы — это то, на что может уйти много времени. Давайте рассмотрим, как устанавливать ограничения с помощью UIKit, обновлять их и разрешать конфликты ограничений.
Ограничение(constraint) — это правило, позволяющее операционной системе размещать ваш компонент пользовательского интерфейса. В UIKit есть 2 основных способа установки ограничений: StoryBoard и кодом. В данной статье рассмотрим только подход кодом.
Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры1.1K
Комментарии 0
Jedr
Блог компании Циан Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
При разработке мобильного приложения iOS или Android рано или поздно может встать вопрос: «Реализовать фичу на WebView или же нативно?». В некоторых случаях ответ лежит на поверхности, но, к сожалению, так бывает не всегда. А если очень велик соблазн предоставить пользователям новый функционал поскорее — это может склонить к неправильному решению, с которым впоследствии предстоит что-то сделать.
Сегодня мы хотим поделиться с вами тем, какую стратегию мы выбрали в Циан для себя и как к ней пришли. Посмотрим, где же мы поставили запятую 🙂
Поехали!
Всего голосов 14: ↑14 и ↓0 +14
Просмотры4K
Комментарии 11
dar1na
Разработка под iOS *Разработка мобильных приложений *OpenStreetMap *Геоинформационные сервисы *Развитие стартапа
Перевод
Недавно мы запустили офлайн карты для Apple Watch. Проект занял более 2 лет и потребовал огромного внимания со стороны нашей небольшой команды энтузиастов. Мы столкнулись с таким количеством продуктовых и технических сложностей, что просто не может не поделиться этим с вами. Вот наша история.
Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры3.9K
Комментарии 16
tri_tuza_v_karmane
Open source *Разработка под iOS *Objective C *Промышленное программирование *Разработка под MacOS *
Из песочницы
Всем привет.
Это моя первая публикация на Хабре, я взволнован и вообще; и в качестве дебюта хочу представить вам свой пет-проект: программный пакет на Obj-C, который реализует (некоторые) известные мне паттерны асинхронного поведения и претендует обеспечить простые инструменты для утилизации всех имеющихся процессоров.
Вперед, за деталями
Всего голосов 4: ↑4 и ↓0 +4
Просмотры724
Комментарии 4
AllDmeat 000Z» title=»2022-09-27, 15:54″>27 сентября в 15:54
Блог компании Dodo Engineering Программирование *Разработка под iOS *Разработка мобильных приложений *
Tutorial
Представьте, что вы садитесь делать новый проект для iOS/iPadOS/macOS/tvOS/watchOS. Совсем скоро сталкиваетесь с первым багом и, чтобы его понять и исправить, добавляете логи — вызываете print()
тут и там. Баг исправили и часть логов убрали, а часть оставили на будущее — полезные, ещё пригодятся.
Спустя пару месяцев работы над проектом консоль в Xcode превращается в водопад из логов. В них сложно разобраться и в них невозможно ориентироваться. Вы принимаете это как данность и в новые логи для удобства добавляете какие-то маркеты по типу "----->"
или ещё что-нибудь в этом духе — так их можно будет различить в бесконечном потоке.
Но это работает ровно до тех пор, пока не перестаёт. В этот момент вы не выдерживаете и чистите большую часть бесполезных, по вашему мнению, логов, случайно зацепляя вместе с ними и полезные. Теперь у вас остались какие-то логи, которые что-то показывают. Какова их ценность — не ясно.
В этой статье расскажу, как Apple предлагает решать такую проблему.
Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Просмотры2.6K
Комментарии 2
31 ссылка для тех, кто хочет освоить iOS-разработку
Развитие языка Swift снизило и так невысокий порог вхождения в iOS-разработку. Изучать сам язык, среду разработки и практики написания кода на нём — одно удовольствие. Но это не значит, что писать для платформ Apple просто или непрестижно: iOS-разработчики востребованы в большинстве крупных компаний. Ссылки на статьи и другие материалы в этом списке подобрал Артур Антонов — разработчик в команде приложения Яндекс.Переводчик.
Советы будут полезны будущим стажёрам Яндекса, а также всем остальным, кто хочет создавать приложения в режиме полного цикла, знать инструменты и основные фреймворки, придумывать архитектуру сервисов, писать производительный код без багов и угадывать мысли цензоров App Store. Если вы уже уверены в своих силах и готовы применять знания на практике, то вы можете податься на летнюю стажировку для iOS-разработчиков.
Инструменты платформы
Если вы только начинаете знакомиться с SDK, набором библиотек для iOS или хотите систематизировать знания в области создания приложений — пройдитесь по этим ссылкам.
Документация Apple, конечно же
Когда в марте 2008 года Apple представила первый SDK (тогда ещё для iPhone OS), больше ста тысяч человек загрузили его за первые две недели после релиза. Но тогда мало кто подозревал, какой бум iOS ждёт нас впереди. Сейчас Apple предлагает очень много полезной информации: ссылки на API, статьи, код. Лучше сначала ознакомиться с содержанием, а потом возвращаться в документацию по необходимости.
Статьи про отдельные библиотеки iOS
Полезнее документации, инструкций и учебников может быть только советы опытных разработчиков. Авторы журнала NSHipster — именно такие ребята. Стоит отметить очень удобную навигацию по темам и классные рекомендации книг.
Рассылка про iOS-разработку
Если вы мобильный разработчик или только собираетесь им стать, то вы наверняка уже слышали рекомендации подписаться на ряд email-рассылок. Вот всего одна, зато исчерпывающая и с очень чёткой структурой. Её ведёт независимый iOS-разработчик Дэйв Вервер. Внутри — новости индустрии за неделю, ссылки на полезные тулзы, GitHub и многое другое.
На кого стоит подписаться в твиттере
Твиттер — источник остросоциальных тем, новых мемов и идей для iOS-разработки. По ссылке вы найдёте список из 52 сильнейших специалистов индустрии: подписывайтесь, чтобы первыми узнавать важные новости, участвовать в обсуждениях и просто быть в теме.
Интерфейс
Фреймворк UIKit позволяет строить интерфейсы iOS-приложений и обрабатывать действия пользователя. В прошлом году Apple представила SwiftUI, который однажды должен заменить UIKit — но переходный период будет долгим, и ещё в течение нескольких лет большинству разработчиков потребуется знать оба фреймворка.
Документация по UIKit
Официальная документация от Apple очень подробная и становится со временем всё лучше: её точно будет полезно изучить новичкам, но даже при наличии опыта получится найти что-то интересное. Она покрывает большинство тем — от структуры приложения и методов пользовательского ввода до защиты данных и взаимодействия с самой iOS. Обратите внимание на раздел про UIView и его наследников.
Видеокурс по созданию приложения с UIKit
Если вам пока сложно разобраться с UIKit самостоятельно, обратите внимание на этот англоязычный видеокурс. Он создан для абсолютных новичков: опыт в создании iOS-приложений или знание Swift не понадобятся. Первые уроки в игровой форме рассказывают про основные понятия и термины. Все видео короткие — самые длинные идут около 9 минут — и бесплатные.
Туториалы по созданию интерфейса
Статьи про UI в. iOS-приложениях. Тут и про добавление разных элементов (например, контекстного меню или навигации), и про начало работы с анимацией, и про SnapKit для iOS. Основная ценность статей заключается в том, что это полноценные инструкции: со всеми подробностями и комментариями для новичков. Тексты, конечно, тоже на английском языке.
Туториалы по SwiftUI
UIKit — это прошлое и настоящее, а SwiftUI (по крайней мере, по замыслу Apple) — будущее. Apple предлагает начать создавать красивые, динамичные и быстрые приложения с новым декларативным фреймворком. Авторы собрали целый учебник: множество туториалов с разделением на секции и шаги. Каждый шаг проиллюстрирован скриншотом страницы или кода — словом, точно не запутаетесь. В конце каждого туториала можно пройти короткий тест, который проверит, насколько хорошо вы разобрались в теме.
Архитектура
Самый ответственный этап в создании приложения — выбор архитектуры и принципов, по которым вы планируете вести разработку. Чем позже вы найдёте ошибку, допущенную при проектировании, тем сложнее будет её исправить. Изучите материалы по этим ссылкам, чтобы сразу выбрать правильную концепцию приложения.
Примеры SOLID
Существует много разных подходов к проектированию архитектур. Но все они так или иначе опираются на принципы SOLID. iOS-разработчик Сергей Крапивенский в своём докладе доходчиво рассказывает, как эти фундаментальные правила могут применяться в стандартных задачах разработки. Самая полезная часть доклада — разбор распространенных ошибок и способов, которые помогут их избежать или оперативно устранить.
GoF-паттерны с примерами
На этом сайте собрана исчерпывающая информация о паттернах проектирования. Автор предлагает начать с основ: изучить историю создания, задуматься о пользе, почитать критику и узнать всё о классификации. Самое ценное здесь — это сам каталог паттернов.
Clean Architecture
Статья на Хабре, которая призвана донести до сообщества детали концепции Clean Architecture и популярные заблуждения, связанные с ней.
Обзор архитектурных паттернов в iOS
iOS-разработчик из Badoo сравнивает популярные архитектурные практики и рассказывает о своих выводах. Всего автор разбирает четыре архитектурных паттерна: MVC, MVP, MVVM и VIPER. Впечатления от каждого из них в формате «ожидание/реальность» от практикующего разработчика — полезное чтение для новичков в этой теме.
Список опенсорсных iOS-приложений
Действительно огромный список опенсорсных приложений для iOS, watchOS и tvOS. Они распределены по категориям, и к каждому приложению есть небольшое описание Посмотрите, как устроены приложения, или примите участие в развитии любого из проектов на GitHub.
Многопоточность
Концепция многопоточного программирования отлично укладывается в общую идеологию iOS. Запускать процессы в отдельных потоках можно с помощью понятного набора инструментов, который только улучшился с развитием языка Swift. Эта часть списка посвящена Grand Central Dispatch — технологии Apple для управления параллельными операциями. Можно почитать и о некоторых других опциях — знания в области многопоточности пригодятся и на собеседовании, и в продакшене.
Введение в многопоточность iOS
Туториал по улучшению отзывчивости приложений при помощи GCD. Это первая часть большого учебника, которая поможет разобраться, как использовать GCD, а также познакомит с основными функциями, плюсами и минусами API. В рамках туториала авторы предлагают не просто почитать теорию, но и попробовать применить её на практике. Для этого вместе с учебными материалами вы получите почти готовый проект под названием GooglyPuff. Сможете оптимизировать его с помощью GCD — и миссия выполнена!
Архивный гайд от Apple
Несмотря на то, что это руководство за 2012 год, мы советуем не обходить его стороной. Возможно, будет полезно даже начать с него, если вы впервые знакомитесь с темой многопоточности. Внутри вас ждёт подробное описание главных процессов: вы познакомитесь с основами асинхронного проектирования приложений, узнаете про выполнение задач с помощью объектов Objective-C и асинхронную обработку системных событий. Бонус — словарь с основными терминами.
objc.io про многопоточность
objc.io — проект трёх разработчиков из Берлина: Криса Эйдхофома, Даниэля Эггерта и Флориана Куглера. В далёком 2013 году они создали этот сайт, чтобы обсуждать темы, актуальные для всех разработчиков iOS и macOS. Прошло много времени, ребята выпустили целых пять книг и написали множество материалов — самостоятельно и с крутыми экспертами. По ссылке — выпуск на тему многопоточности. Вместе с автором библиотеки PSPDFKit Питером Штейнбергером и опытным разаботчиком Тобиасом Кранцером они рассказывают об основных методах, проблемах и подводных камнях параллельного программирования.
Отладка
Отладка здесь — это не только поиск багов. Инструментарий iOS-разработчика позволяет вам делать структуру кода более прозрачной и видеть больше свойств приложения прямо во время программирования.
Cессия WWDC
Видео доклада с WWDC 2018 — это целый час ценнейшей информации про методы отладки Xcode. Вы узнаете, как использовать популярный дебаггер LLDB и брейкпоинты для исправления ошибок в вашем приложении и что нужно сделать, чтобы получить максимум от инструментов отладки Xcode. Всё это с примерами и подробными объяснениями.
Выпуск objc.io про отладку
Целый урок про отладку приложений от objc.io. Начинается он с разбора кейса — автор рассказывает о процессе и инструментах, которые он использовал для отслеживания ошибки регрессии в UIKit. После этого полезного чтения вас ждут не менее интересные размышления про LLDB и технологии DTrace и Activity Tracing.
Отладка приложений под iOS
Роман Ермолов руководит группой разработки приложения Яндекс для iOS. В этом докладе от 2015 года он говорит про интересные возможности LLDB, отладку иерархии UIView и отладку без исходников. Бонус — реальные примеры и дискуссия по теме в конце доклада.
Как работает LLDB
Во всех вышеперечисленных источниках много внимания уделяется именно этому отладчику. Хотите разобраться во всех нюансах его работы? Тогда вам точно пригодится этот доклад с WWDC 2019. Вы узнаете про разные способы отображения значений, форматирование пользовательских типов данных и (самое интересное!) расширение LLDB с помощью собственных сценариев Python 3.
Устройство Objective-C Runtime
Майк Эш — программист и пилот планера, который живет в Вашингтоне. Впечатляет? Это вы ещё не видели его блог! В нём он делится полезным софтом, делает остроумные посты в формате Q&A по пятницам и рассказывает о полётах. В этом старом (2009 год), но всё ещё полезном материале он рассуждает об Objective-C Runtime. Максимально подробное объяснение поможет разобраться в теме даже новичкам.
Оптимизация
Недостаточно просто придумать приложение, написать код и опубликовать результат в App Store. Нужно, чтобы оно хорошо работало: запуск не занимал много времени, реакция на ввод данных была мгновенной, а батарея не разряжалась из-за большого количества сетевых запросов.
Обзорная статья Apple
В своей обзорной статье Apple советует, как применять цикл непрерывного улучшения для оптимизации работы приложений. Помимо верхнеуровневых сведений и советов, в материале есть ссылки на полезные инструменты.
Вводная сессия WWDC об инструментах
Если вы хотите больше узнать про инструментарий Xcode, посмотрите видео с WWDC-2019. Это получасовой рассказ с примерами, который поможет разобраться с такими вещами, как шаблоны для профилирования производительности приложений и поиск «узких» мест в коде. Все описанные спикером инструменты призваны существенно повысить скорость отклика вашего приложения.
Сессия WWDC о подходах к оптимизации
Ещё одно видео с конференции Apple, но уже за 2018 год. Оно позволит глобально взглянуть на тему оптимизации: спикеры говорят об общем подходе и стратегиях, которых стоит придерживаться. Однако тут тоже не обошлось без практических советов, основанных на опыте авторов: они приложили руку к нескольким популярным приложениям от самой Apple. В видео рассказывается о том, как научиться пользоваться пакетом Instruments и другими возможностями Xcode.
Книга о внутреннем устройстве iOS и macOS
Продолжаем погружаться в тему — нужно ещё больше теории. По ссылке вы найдёте почти 800 страниц авторства Джонатана Левина с информацией практически обо всём, что когда-либо интересовало вас в работе с iOS. Чтобы разобраться в принципах работы системы, автор активно пользуется реверс-инжинирингом (обратной разработкой) и учит читателей делать то же самое. Вас ждёт большое количеством практических примеров, иллюстраций, скриншотов и ссылок на открытый исходный код от Apple.
Доклад об оптимизации запуска приложения
Вернёмся к практике. В этом видео руководитель службы мобильной разработки Яндекс. Карт Николай Лихогруд рассказывает об оптимизации времени запуска iOS-приложения Карт. На примере реального кейса вы узнаете, как правильно измерять время запуска, оптимизировать системную и пользовательскую части и поддерживать результат в следующих версиях.
Публикация в App Store
Многие разработчики, включая сотрудников Яндекса, недооценивали сложность процесса подписи iOS-приложения и модерации в App Store. Казалось бы, у вас всё готово: программа работает, вы хотите начать распространять её среди клиентов. Но у Apple есть правила, которым ваш код должен соответствовать.
Как загрузить приложение в App Store
Начните с пошаговой инструкции. Она выгодно отличается от публикаций на других ресурсах своей актуальностью: это популярный гайд от разработчиков Густаво Амброзио и Тони Дабура, обновлённый в 2020 году — с информацией из последней версии Xcode.
Подробный разбор подписи приложения
Ещё одна классная статья на сайте objc.io. Автор считает, что механизм подписи и подготовки кода — одна из самых сложных вещей, с которыми сталкивается iOS-разработчик. Поэтому он подробно описывает процесс: почитайте, чтобы понимать, что и зачем вы делаете. Но учитывайте, что статья написана в далёком 2014 году.
Обзор инструментов Xcode для подписи приложения
Для тех, кто хочет совсем углубиться в тему и разобраться: презентация Apple про функции Xcode, которые упрощают процессы управления сертификатами, подпись приложений и настройку параметров сборки проекта. Это видео с конференции WWDC 2016. Именно тогда компания представила обновлённый способ управления конфигурацией подписи с включенным по умолчанию автоматическим режимом.
Непрерывная интеграция
Пара дополнительных ссылок для тех, кто уже программирует под iOS и теперь беспокоится, как соотнести и объединить свой труд с результатами коллег по команде.
Подать заявку на стажировку для iOS-разработчиков
Начало работы с разработкой приложений для iOS
Разработка для iOS
iOS — это мобильная ОС Apple, работающая на оборудовании iPhone, iPad, iPod Touch. Apple предоставляет инструменты и ресурсы для создания приложений iOS и аксессуаров для этих устройств. Как разработчик iOS, вы можете программировать на родных языках, таких как Swift или Objective-C, или создавать кроссплатформенные нативные приложения с помощью React Native (JavaScript) или Xamarin (C# и F#).
Требования разработчика
Для разработки приложений для iOS вам потребуется компьютер Mac с последней версией Xcode. Xcode — это IDE (интегрированная среда разработки) от Apple для приложений Mac и iOS. Xcode — это графический интерфейс, который вы будете использовать для написания приложений для iOS. Xcode включает iOS SDK, инструменты, компиляторы и фреймворки, которые вам нужны специально для проектирования, разработки, написания кода и отладки приложения для iOS. Для разработки нативных мобильных приложений на iOS Apple предлагает использовать современный язык программирования Swift.
Важно отметить, что Xcode работает только в Mac OS X и является единственным поддерживаемым способом разработки приложений для iOS.
iOS Software Development Kit (SDK)
Изучите инструменты, технологии, возможности и языки, включенные в iOS SDK, которые делают возможной разработку приложений. Некоторыми основными элементами iOS SDK являются платформы Cocoa Touch, которые включают UIKit, GameKit, PushKit, Foundation Kit и MapKit. Эти и другие платформы позволяют управлять камерой iPhone или iPad, добавлять голосовое взаимодействие с помощью SiriKit, изучать музыку с помощью MusicKit, расширять возможности просмотра и прослушивания с помощью AirPlay 2 и даже добавлять бизнес-чат iMessage в ваше приложение. В iOS 11 добавлены возможности машинного обучения с помощью Core ML и возможности дополненной реальности (AR) с помощью ARKit.
Подготовьте среду разработки
- Загрузить Xcode
- Запустите Xcode и создайте новый проект
- Ознакомьтесь с Xcode
- Создайте и запустите свое приложение с помощью встроенного приложения iOS Simulator, включенного в Xcode. Симулятор iOS — отличный способ увидеть, как будет выглядеть ваше приложение, и вы можете взаимодействовать с ним, как если бы вы были на реальном устройстве. Вы можете имитировать свое приложение на различных типах оборудования и версиях iOS.
Бета-тестирование
После того, как вы создали и протестировали (с помощью XCTest framework или iOS Unit test) свое приложение, вы можете приглашать пользователей в свои приложения и собирать отзывы с помощью TestFlight перед развертыванием в App Store. Это хорошее время для тестирования push-уведомлений, хранения данных с использованием Core Data и сетевых вызовов сторонних API. Чтобы начать работу, вы просто загружаете бета-версию своего приложения и используете iTunes Connect, чтобы добавить имя и адрес электронной почты тестировщиков. Тестировщики установят приложение TestFlight для iOS, чтобы они могли взаимодействовать с вашим приложением и оставлять ценные отзывы.
Облачное тестирование
Тестирование вашего приложения iOS на реальных устройствах критически важно, поскольку производительность реального устройства, различные версии операционной системы, модификации, сделанные производителем и прошивкой оператора, могут привести к неожиданным проблемам с вашим приложением. Тестирование на реальном устройстве дает более точное представление о том, как пользователи взаимодействуют с вашим приложением.
С другой стороны, получение физических устройств для тестирования представляет собой логистическую проблему. Здесь в игру вступает облачное тестирование. С помощью облачного тестирования вы можете протестировать свое приложение на реальных устройствах, доступных в облаке. Вы можете выполнить ручное тестирование или запустить автоматические тесты, чтобы убедиться в качестве вашего приложения.
Развертывание
После создания, тестирования и бета-тестирования приложения iOS вы можете развернуть его в App Store. На этом этапе вы должны присоединиться к программе Apple Developer Program. Как участник вы получите доступ к бета-версии программного обеспечения, расширенным возможностям приложений, обширным инструментам бета-тестирования и аналитике приложений.
Узнайте больше о разработке приложений для iOS.
Посетите страницу «Начало работы с iOS»
Готовы к сборке?
Начало работы с Amplify Framework
Есть еще вопросы?
Свяжитесь с нами
Войдите в консоль
Узнайте об AWS
- Что такое AWS?
- Что такое облачные вычисления?
- AWS Разнообразие, равенство и инклюзивность
- Что такое DevOps?
- Что такое контейнер?
- Что такое озеро данных?
- Облачная безопасность AWS
- Что нового
- Блоги
- Пресс-релизы
Ресурсы для AWS
- Начало работы
- Обучение и сертификация
- Портфель решений AWS
- Архитектурный центр
- Часто задаваемые вопросы по продуктам и техническим вопросам
- Аналитические отчеты
- Партнеры AWS
Разработчики на AWS
- Центр разработчиков
- SDK и инструменты
- .
NET на AWS
- Python на AWS
- Java на AWS
- PHP на AWS
- JavaScript на AWS
Помощь
- Свяжитесь с нами
- Подайте заявку в службу поддержки
- Центр знаний
- AWS re: Сообщение
- Обзор поддержки AWS
- Юридический
- Карьера в AWS
Amazon является работодателем с равными возможностями: Меньшинства / Женщины / Инвалидность / Ветеран / Гендерная идентичность / Сексуальная ориентация / Возраст.
- Конфиденциальность
- |
- Условия сайта
- |
- Настройки файлов cookie
- |
- © 2022, Amazon Web Services, Inc. или ее дочерние компании. Все права защищены.
Поддержка AWS для Internet Explorer заканчивается 31. 07.2022. Поддерживаемые браузеры: Chrome, Firefox, Edge и Safari.
Узнать больше »
Разработка приложений для iOS | IBM
Создаете новое приложение для iOS? Чтобы улучшить результаты, в начале разработки приложения для iOS определите ключевые требования к разработчику, выберите правильный язык программирования и используйте облачные ресурсы.
Что такое разработка приложений для iOS?
Разработка приложений для iOS — это процесс создания мобильных приложений для оборудования Apple, включая iPhone, iPad и iPod Touch. Программное обеспечение написано на языке программирования Swift или Objective-C, а затем размещено в App Store для загрузки пользователями.
Если вы разработчик мобильных приложений, возможно, у вас были сомнения по поводу разработки для iOS. Например, каждому разработчику нужен компьютер Mac, а компьютеры Mac, как правило, дороже, чем их аналоги на базе Windows. Кроме того, как только вы закончите свое приложение, оно пройдет строгий процесс проверки качества, прежде чем его можно будет распространять через App Store.
Тем не менее, если сотрудники, клиенты или партнеры вашей организации входят в число сотен миллионов пользователей Apple iPhone и iPad по всему миру, у вас есть очевидные причины заняться разработкой приложений для iOS. И, несмотря на потенциально высокие барьеры для входа, разработка приложения для iOS может быть такой же простой (а в некоторых случаях даже проще, как и) для Android. При правильном планировании и наличии необходимых ресурсов вы можете пополнить ряды разработчиков приложений для iOS.
Готовы попробовать свои силы в разработке мобильных приложений для iOS? IBM предлагает простое практическое руководство по созданию приложения iOS с облачными push-уведомлениями и мониторингом производительности.
Соответствие требованиям разработчика
Прежде чем писать хоть одну строку кода в процессе разработки приложения для iOS, вам необходимо:
- Компьютер Apple Mac с последней версией macOS.
- Xcode — интегрированная среда разработки (IDE) для macOS, которую можно бесплатно загрузить из Mac App Store.
- Активная учетная запись Apple Developer, для которой требуется ежегодная плата в размере 99 долларов США.
Эти три требования работают вместе: только активные участники программы Apple Developer Program могут публиковать приложения в Apple App Store. Только приложения, подписанные и опубликованные Xcode, имеют право на отправку в App Store. Xcode работает только на macOS, а macOS работает только на компьютерах Apple.
Хорошая новость заключается в том, что Xcode предлагает гораздо больше, чем просто возможность подписать и опубликовать готовое приложение. IDE содержит конструктор пользовательского интерфейса, редактор кода, механизм тестирования, каталог активов и многое другое — практически все, что вам нужно для разработки приложений для iOS.
Выберите язык программирования для iOS
В настоящее время существует два языка программирования для разработки приложений для iOS.
- Objective-C: Разработанный в начале 1980-х, Objective-C десятилетиями был основным языком программирования для всех продуктов Apple.
Основанный на языке C, Objective-C — это объектно-ориентированный язык программирования, ориентированный на передачу сообщений различным процессам (в отличие от вызова процесса в традиционном программировании на C). Многие разработчики предпочитают поддерживать свои устаревшие приложения, написанные на Objective-C, вместо того, чтобы интегрировать их в платформу Swift, представленную в 2014 году.0020
- Swift: Язык программирования Swift — это новый «официальный» язык iOS. Хотя Swift во многом похож на Objective-C, он использует более простой синтаксис и больше ориентирован на безопасность, чем его предшественник. Поскольку он использует ту же среду выполнения, что и Objective-C, вы можете легко включать устаревший код в обновленные приложения. Swift прост в освоении даже для тех, кто только начинает программировать. Поскольку Swift быстрее, безопаснее и проще в использовании, чем Objective-C, вы должны планировать использовать его для разработки своего приложения для iOS, если у вас нет веских причин придерживаться Objective-C.
Получите доступ к API и библиотекам
Одним из основных преимуществ разработки приложений для iOS является обширная коллекция доступных вам ресурсов для разработчиков. Благодаря стандартизации, функциональности и согласованности разработки приложений для iOS Apple может выпускать нативные API и библиотеки в виде стабильных, многофункциональных и простых в использовании наборов. Вы можете использовать эти SDK для iOS, чтобы легко интегрировать свое приложение в существующую инфраструктуру Apple.
Например, если вы работаете над контроллером приложений для умной печи тостера, вы можете использовать HomeKit для стандартизации связи между тостером и телефоном. Пользователи смогут координировать связь между своей умной печью-тостером и умной кофеваркой. Есть наборы для разработки игр (такие как SpriteKit, GameplayKit и ReplayKit), приложения для здоровья, карты, камеры, а также Siri, виртуальный помощник Apple.
Эти обширные комплекты позволяют вам воспользоваться преимуществами функций, встроенных в iOS, и с легкостью интегрировать сторонние приложения, создавая приложения, которые подключаются к социальным сетям, используют камеру или встроенное приложение календаря или автоматически записывают видео повторов особенно захватывающих игровой момент.
Расширение в облако
iPhone — мощные устройства. Но для выполнения ресурсоемких задач рассмотрите возможность переноса тяжелой работы в облако. Подключив свое приложение к облачным службам через API, вы можете использовать облако для хранения, управления базами данных и даже кэширования приложений. Вы также можете дополнить свое приложение инновационными сервисами нового поколения.
IBM Cloud® поддерживает серверные платформы Swift, включая Kitura, для создания серверных частей iOS, а также веб-приложений. Вы можете вызывать REST API из приложения iOS. Используя Kitura, вы можете интегрироваться с рядом сервисов IBM Cloud, от push-уведомлений и баз данных до мобильной аналитики и машинного обучения.
(Подробнее о создании серверной части iOS см. в этом кратком руководстве IBM по созданию приложения с помощью Kitura.)
Архитектура для включения push-уведомлений и аналитики в приложение iOS
Тестируйте локально, тестируйте глобально
Даже лучшие разработчики не пишут идеальный код — по крайней мере, не в первый раз. После того, как вы завершили разработку приложения для iOS, вам необходимо его протестировать. К счастью, вам не нужно будет тестировать мобильные устройства разных производителей, как это может быть при разработке для Android. iOS — это проприетарная мобильная операционная система Apple, которая работает только на Apple iPhone. Хотя вы можете захотеть протестировать свое приложение iOS на нескольких поколениях iPhone (с несколькими операционными системами), устройств для тестирования по-прежнему меньше, чем на Android.
Ваша первая линия тестирования находится в самом Xcode. В дополнение к стандартным модульным тестам, к которым вы привыкли, Xcode предлагает автоматическое тестирование пользовательского интерфейса. Вы можете написать тесты, которые перемещаются по вашему пользовательскому интерфейсу, взаимодействуя с вашим приложением, как пользователь, чтобы обнаружить любые проблемы. Тестирование пользовательского интерфейса не использует API для взаимодействия с вашим кодом — оно имитирует реальное взаимодействие пользователя с вашим приложением. Пока вы пишете тесты, охватывающие все аспекты вашего приложения, вы можете автоматически получать тестирование пользовательского интерфейса, которое зачастую является более тщательным, чем то, что может выполнить любой человек.
Однако, если ваши тесты не учитывают все возможные взаимодействия пользователя с вашим приложением, вы все равно захотите позволить людям проводить бета-тестирование вашего программного обеспечения. Хотя вы можете загружать приложения на устройства iOS, не отправляя их в App Store, Apple упрощает предварительный просмотр вашего приложения для друзей, семьи или вашей пользовательской базы с помощью своего приложения TestFlight. TestFlight позволяет участникам программы Apple Developer Program проводить внутреннее тестирование с участием до 25 членов команды на 30 устройствах каждый. Вы можете дать своей команде разработчиков приложений для iOS возможность протестировать ваше приложение в небольшой группе и подготовиться к проверке Apple Beta, чтобы вы могли выпустить свое новое приложение для iOS для внешних тестировщиков.
После того, как Apple одобрит ваше приложение в соответствии со своими рекомендациями по проверке App Store, вы можете пригласить до 10 000 пользователей для загрузки тестовой версии. Эти пользователи загружают приложение TestFlight и используют уникальную ссылку для доступа к вашему приложению. Вы можете разделить своих внешних тестировщиков на настраиваемые группы и отправить определенные сборки в каждую группу, что позволит вам выполнять A/B-тесты и сравнивать ответы на функции. Взамен вы автоматически получаете данные об использовании, и пользователи могут легко отправлять отзывы о любых проблемах, с которыми они сталкиваются.
Опубликуйте свое приложение в App Store
После того, как вы закончите разработку и тестирование приложения для iOS, вам нужно отправить свое приложение в App Store. Вы можете отправить и подписать свое приложение непосредственно через Xcode. Будьте терпеливы: процесс проверки приложения может быть длительным, часто требуя нескольких итераций отклонения-пересмотра-повторной отправки-отклонения, пока вы не получите окончательное одобрение.