Обновить
37.95

iOS *

Мобильная ОС компании Apple

Сначала показывать
Порог рейтинга
Уровень сложности

Bottom Sheet API в SwiftUI

Время на прочтение4 мин
Количество просмотров4.4K

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

Новый API SwiftUI для отображения bottom sheet достаточно прост в использовании. Все, что нам нужно сделать, это прикрепить модификатор представления presentationDetents к содержимому модификатора представления sheet.

Читать далее

Как я подключил Sign in with Apple — Apple авторизацию. Подробный гайд

Время на прочтение4 мин
Количество просмотров2.2K

Салют, меня зовут Макс Нечаев, я занимаюсь продуктовой разработкой (iOS Developer). Эта небольшая статья расскажет вам, как подключить Apple Sign In (авторизация через Apple) в ваше iOS приложение. Плюс расскажу некоторые edge кейсы технологии.

Читать далее

Дайджест интересных материалов для мобильного разработчика #463 (24 — 30 октября)

Время на прочтение4 мин
Количество просмотров3.7K
В нашем новом дайджесте учимся работать с Metric и DivKit, превращаем макеты в код Compose, пишем тексты для экранов подтверждений и сообщений об ошибках, настраиваем Charles, создаем игру для Windows Mobile (самое время!) и делаем многое-многое другое!

Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

Читать дальше →

Хоть Android, хоть iOS: о чём расскажут на Mobius 2022 Autumn

Время на прочтение11 мин
Количество просмотров1.7K

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

А вот общая идея конференции остаётся прежней: здесь будут доклады и по Android-разработке, и по iOS, и «универсальные». В этом хабрапосте пометили всё значками ?, ? и ♾️ соответственно.

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

Читать далее

Как превратить сайт в удобное мобильное приложение на примере интернет-банка «ВТБ Онлайн»

Время на прочтение8 мин
Количество просмотров9.7K

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

Рассказываем о ключевых решениях, которые позволили доработать интернет-банк «ВТБ Онлайн», по сути объединив преимущества сайта и мобильного приложения: сервис не занимает память на устройстве и не требует обновления, но при этом удобен и понятен для наших пользователей.

Читать далее

Дайджест интересных материалов для мобильного разработчика #462 (17 — 23 октября)

Время на прочтение4 мин
Количество просмотров2.1K
В нашем новом дайджесте новая навигация в iOS и известность команд разработки, умная камера Яндекса и ключ к тайной комнате, конец программирования, технологические тренды 2023 и многое другое!

Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

Читать дальше →

Аналитика и нотификации для iOS

Время на прочтение9 мин
Количество просмотров2.6K

В этой статье поделюсь тем, как настроить трекинг событий о получении и об открытии нотификаций на iOS устройствах. Рассматривается вариант, когда приложение уже интегрировано с Firebase Cloud Messaging для получения FCM токенов и отправки нотификаций через собственный сервер, а для трекинга событий подключен сервис Amplitude. Даже если в вашем приложении используется другой набор сервисов для работы с нотификациями и аналитикой, решения, описанные здесь, могут подойти.

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

Читать далее

iOS: Навигация по-новому

Время на прочтение4 мин
Количество просмотров6.7K

С каждый днем все больше разработчиков IOS стремятся свои новые проекты начинать с использованием SwiftUI. И здесь перед ними возникает проблемы в виде реализации устоявшихся представлений о навигации в iOS. Предлагаемые решения от Apple работают весьма часто довольно криво. Это понимают и в самой Apple. По мере развития SwiftUI основной компонент навигации NavigationView был заменен на NavigationStack. И это не просто переименование. Те кто уже использовал NavigationView не готовы от него отказаться, так как его реализация лежала через боль и слезы. Те же кто только входит в мир SUI либо наталкиваются на рекомендации создавать кастомную навигацию, либо смотрят на статьи как разруливать проблемы NavigationView. Новая альтернатива не всем пришлась по-душе, так как на WWDC не продемонстрировали его с лучшей стороны. А она есть. И это хорошая новость! Apple, наконец, освоила паттерн Navigator, которым конкуренты пользовались более 10 лет!

Читать далее

4 видео для мобильных разработчиков. Анимации в React Native, keyboard avoiding в SwiftUI и другое

Время на прочтение2 мин
Количество просмотров1.3K

Привет! На связи tech-команда СберМаркета. 13 октября мы провели онлайн-митап для iOS и Android-разработчиков. Хотим поделиться с аудиторией Хабра видео с докладами оттуда. Рассказываем о нашем опыте внедрения SwiftUI и делимся кейсами на ReactNative.

Читать далее

Дайджест интересных материалов для мобильного разработчика #461 (10 — 16 октября)

Время на прочтение4 мин
Количество просмотров2.4K
В новом выпуске Dynamic Island и Live Activities, MVI и State Machine, сложные интерфейсы, подготовка к собеседованиям, маркетинг приложений в кризис, реверс инжиниринг кормушки для кошек и многое другое!

Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

Читать дальше →

Начало работы с Dynamic Island и Live Activities в iOS 16.1

Время на прочтение7 мин
Количество просмотров10K

Документация 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.

Читать далее

Дайджест интересных материалов для мобильного разработчика #460 (3 — 9 октября)

Время на прочтение4 мин
Количество просмотров2.5K
В нашем новом дайджесте анимации и расстановка приоритетов, комфортные WebView и удобные бенчмарки, все откладывающая победа PWA, рабочие процессы, шаринг еды, снижение доходов приложений и многое другое!

Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

Читать дальше →

Создание анимаций для навигации в iOS

Время на прочтение9 мин
Количество просмотров3.2K

Всем привет! Я хочу поделится своим опытом реализации кастомных переходов между экранами в iOS. Несмотря на то, что тема эта достаточно популярная, и очень многие дизайнеры хотят привнести в процесс перехода какую-то свою изюминку (затемнение, параллакс и т. п.), реализация этих вещей не очень тривиальна. Я попробую разложить все по полочкам. Рассмотрим сначала стандартное решение, которое не особо гибкое, но зачастую достаточное для многих проектов. Затем реализуем полностью кастомное и контролируемое исключительно нами решение.

Итак, погнали!

Ближайшие события

Мы создали два курса по мобильной разработке, и вот чем они интересны

Время на прочтение14 мин
Количество просмотров4.2K

Мобильная разработка — одно из актуальных направлений в IT-сфере. Мир вокруг нас стремительно меняется, но, несмотря на это, люди по-прежнему решают множество своих задач с помощью телефонов. Такси, шопинг, обучение — всё это доступно в виде мобильных приложений. А за создание этих приложений отвечают мобильные разработчики. 

Летом в Яндекс Практикуме стартовало два курса по мобильной разработке: «Android-разработчик» и «iOS-разработчик». О том, что особенного в каждой программе, мы поговорили с командой Практикума, которая их создавала.

Читать далее

Как мы улучшали функциональность онлайн-кинотеатра на tvOS

Время на прочтение34 мин
Количество просмотров2.3K

Всем привет, меня зовут Валерия Рублевская и я iOS-разработчик на проекте онлайн-кинотеатра KION в МТС Digital. Это третья часть рассказа о фиче Autoplay и сегодня мы поговорим о нюансах ее реализации на tvOS.

Хотите подробностей? Добро пожаловать под кат!

Читать далее

Прогулка по изнанке «Спортмастера»: ножками и в приложениях

Время на прочтение13 мин
Количество просмотров25K

Зашёл я (@Lavs) в «Спортмастер», чтобы купить себе футбольный мяч. В этом деле мне помогла сотрудница Ксения: задала пару вопросов, отвлеклась на смартфон и через минуту протянула подходящий мячик.

Я знал, что на экране у Ксении был не мессенджер с подружками, а внутренние приложения магазина. Дело в том, что в «Спортмастер» я пришёл не только за мячиком. Хабр отправил меня с редакционным заданием: разобраться, как устроена технологическая начинка магазина.

Ребята из SM Lab (IT-компания «Спортмастера») сейчас ищут Android- и iOS-разработчиков. Под катом речь пойдёт о том, чем занимаются команды мобильной разработки: а они ни много ни мало обеспечивают работу всех 533 розничных «Спортмастеров».

Читать далее

Логи в iOS, эпизод 2: os_signpost

Время на прочтение4 мин
Количество просмотров3.4K

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

Сегодня расскажу, как Apple предлагает решать эту проблему с помощью логов.

Читать далее

Дайджест интересных материалов для мобильного разработчика #459 (26 сентября — 2 октября)

Время на прочтение4 мин
Количество просмотров2.2K
В нашей новой еженедельной подборке история Goose Maps и WebView, продолжение неочевидного про Fragment API, перепады высот, эмуляторы, симуляторы, тестовые фермы и многое другое!

Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

Читать дальше →

Auto Layout настройка кодом

Время на прочтение4 мин
Количество просмотров15K

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

Ограничение(constraint) - это правило, позволяющее операционной системе размещать ваш компонент пользовательского интерфейса. В UIKit есть 2 основных способа установки ограничений:  StoryBoard и кодом. В данной статье рассмотрим только подход кодом.

Читать далее

WebView: забыть нельзя интегрировать

Время на прочтение14 мин
Количество просмотров45K

При разработке мобильного приложения iOS или Android рано или поздно может встать вопрос: «Реализовать фичу на WebView или же нативно?». В некоторых случаях ответ лежит на поверхности, но, к сожалению, так бывает не всегда. А если очень велик соблазн предоставить пользователям новый функционал поскорее — это может склонить к неправильному решению, с которым впоследствии предстоит что-то сделать.

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

Поехали!