Как стать автором
Поиск
Написать публикацию
Обновить
39.98

iOS *

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

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

Что будет с iOS-разработкой в России

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

Этим вопросом наверняка задавался не один мобильный разработчик, который создаёт приложения для айфонов и другой яблочной техники. Приложения удаляют из App Store, статьи пугают тем, что скоро все смартфоны превратятся в кирпич, — ситуация напряжённая. Может, уже стоит искать другую работу?

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров2.2K
В новом дайджесте чиним баги и анализируем Now in Android, тестируем и понимаем React Native, улучшаем монетизацию, дизайним слайдер оплаты, запускаем Dev Box-ы и и многое другое.

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

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

Анимации и вибрации: как задизайнить фидбэк слайдера оплаты

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

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

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

Читать далее

App Store Connect API SDK в Swift: создание инструментов разработчика

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

Новый App Store Connect API, который был анонсирован на WWDC 2018, наконец позволил писать приложения для App Store Connect. Вы можете использовать этот API для получения метаданных приложений, TestFlight-сборок, загрузки отчетов о продажах и многого другого. Apple добавляла новые конечные точки на протяжении всех этих лет, и недавний релиз версии 2.0 не стал исключением, добавив конечные точки для отзывов клиентов и многого другого.

App Store Connect API соответствует спецификациям OpenAPI и поставляется с обширной документацией, которую предоставляет сама Apple. Спецификации OpenAPI, которые внедрила Apple, дала мне возможность реализовать работу с API в рамках App Store Connect Swift SDK во время написании Swift-приложений. Давайте же разберемся, как мы можем создавать свои инструменты разработчика с помощью этого API в Swift.

Читать далее

Что нового в Swift 5.7

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

Swift 5.7 привносит в язык очередную гигантскую коллекцию изменений и улучшений, включая такие мощные фичи, как регулярные выражения; практические усовершенствования, как сокращенный синтаксис if let; а также множество доработок по приведению в порядок согласованности вокруг ключевых слов any и some.

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

Читать далее

Чиним баг в iOS Firebase RemoteConfig

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

Здравствуйте, меня зовут Артем Волков. Я iOS разработчик в компании "AliExpress Россия".

В этой статье расскажу историю одного бага, который мы встретили, работая c подом Remote Config из SDK Google Firebase для iOS, а также о том, как мы внесли свой небольшой вклад в его исправление.

Жизнь и приключения одного бага

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

Время на прочтение5 мин
Количество просмотров2.8K
Как и обещали, возвращаемся после отпуска с новым дайджестом! В нем классные UI и много графиков, главная концепция Jetpack Compose и паттерны Dart проектирования, новый язык программирования Google, ловушки монетизации и многое другое!

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

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

Сложно, но можно — стажировка в Яндекс Go

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

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

Я Максим, iOS-разработчик в службе технического развития Яндекс Go. В декабре 2021 года завершил стажировку в команде и хочу поделиться опытом, полезными ссылками и выводами, которые я делал на протяжении работы. Надеюсь, они помогут вам быстрее адаптироваться в первые месяцы работы.

Читать далее

Ошибка.log(): как логируются ошибки в мобильном приложении Авито

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

Вы настроили в приложении краш-репортинг, всё протестировали и выложили в магазин. Постоянно мониторите crash rate, в котором всегда четыре девятки, — приложение работает отлично и все довольны. Но всё-таки вы смотрите на него как будто сквозь замочную скважину и не видите полной картины. Чтобы это исправить, нужен полноценный лог ошибок.

Читать далее

Навигация в Swift UI: что изменилось с появлением iOS 16

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

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

В iOS 16 появился совершенно новый API для работы с навигацией. Разбираемся, стало ли удобнее.

Читать далее

Подключение OAuth в iOS за полчаса

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

Привет! Меня зовут Лена, я занимаюсь iOS-разработкой в KTS.

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

В мобильных приложениях используется Authorization Code Flow with Proof Key for Code Exchange (PKCE). Подробнее о выборе flow читайте в нашей предыдущей статье. Эта статья является продолжением.

Сегодня мы рассмотрим вариант реализации OAuth-авторизации с помощью библиотеки AppAuth-iOS. Она одна из самых популярных и довольна проста в использовании. Весь код из статьи доступен в Github.

Читать далее

Конфиденциальность iOS: Instagram* и Facebook* могут отслеживать всю вашу активность в браузере внутри приложения

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

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

Чтобы упростить пост, будет использоваться термин «Instagram*» вместо «Meta*» или «Facebook*».

*Meta признана в России экстремистской организацией, деятельность ее сервисов Facebook* и Instagram* в стране запрещена.

Примечание. Если статья покажется интересной, то вот тут я пишу об iOS-разработке и о том, что с ней связано.

Читать далее

Создаем классный UI: iOS Shape Morphing

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

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

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

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

Итак, в качестве первой статьи из (я надеюсь) большой серии, давайте разберемся, как создать классный компонент пользовательского интерфейса: “Shape Morphing” на iOS.

Читать далее

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

[Async/await] Structured concurrency Pt.1

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

Всем привет! Мы продолжаем разбираться в асинхронном Swift! В рамках этой статьи мы познакомимся с тем, как писать зависящие друг от друга асинхронные задачи, познакомимся с Task поближе и разберем несколько интересных  примеров

Читать далее

Сложности переноса Papers, Please на мобильные

Время на прочтение16 мин
Количество просмотров20K
Mobile-Title

Я разработал Papers, Please в 2013 году специально с расчётом на десктопные компьютеры и управление мышью. В 2022 году десктопных компьютеров уже не существует и все компьютеры — это мобильные телефоны. Настало время обновить этого динозавра.

Эта статья из тысяч слов и мегабайтов изображений раскроет вам некоторые аспекты портирования игры с большого десктопа на маленький телефон. Отдавая дань прошлому, я написал эту статью как большой кусок текста с вкраплениями тегов img, а не превратил её в яркое видео. Ещё через девять лет я портирую этот пост в VR.

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

То же блюдо на другой тарелке.
Читать дальше →

SwiftUI. Есть ли жизнь без NavigationView или пару слов о координаторе

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

В далекие – далекие времена, когда iOS была совсем маленькой, разработчики, гордо именуемые iOS-девелоперами, задумались о кастомизации навигационного стека. Не то что навигационный стек был плох – он отлично вписывался в картину мира Apple, но вот навигационная панель часто была «бельмом в глазу» для пользователей и дизайнеров. Поэтому разработчики применяли простой трюк – скрывали панель в приложении, а вместо нее показывали свою собственную панель, со своим собственным дизайном интерфейса, управляющие элементы которого были привязаны все к тем же методам push и pop доступных им из коробки.

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

Читать далее

С помощью API iOS 16 компания Apple закладывает основу для разработки смешанной реальности

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

Не сказав об этом ни слова, Apple готовит разработчиков к созданию приложений для своего долгожданного AR/VR-устройства.

Читать далее

Как локализовать SPM модуль?

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

Swift Package Manager существует уже довольно давно, его популярность растёт, как и количество модулей, доступных для использования. Если вы работаете над своим SPM модулем, будет здорово расширить число разработчиков и проектов, которые могут его использовать, путём добавления локализации.

Читать далее

Flutter jank shaders — история проблемы и пути решения

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

Меня зовут Андрей, я Flutter-разработчик в команде Центра развития финансовых технологий (ЦРФТ) Россельхозбанка. Сегодня поговорим о «jank shaders» — дёргающейся анимации при первых запусках приложений на Flutter — и о том, как можно постараться её исправить.

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

На скриншоте ниже приведен пример задержки анимации перехода между экранами при первом запуске.

Читать далее

Получение URL-адресов системных папок в iOS 16

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

Работа с файлами и каталогами стала намного проще в iOS 16. Раньше, чтобы получить путь к файлу в папке приложения, приходилось использовать API FileManager, что довольно сложно. Теперь мы можем получать пути к системным папкам непосредственно из статических свойств типа URL.

Читать далее