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

iOS *

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

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

SwiftUI в 2022. Что нового?

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

Всем привет, с вами я, Наиль Габутдинов, iOS разработчик.

Apple выпустила первый SwiftUI в 2019 году, предлагая тем самым новый подход создания приложений в декларативном стиле. SwiftUI 4.0, представленный этим летом на WWDC 2022 вместе с iOS 16 и macOS 13 включает в себя много нововведений для более качественных и универсальных приложений под разные платформы Apple с меньшим количеством кода.

Давайте посмотрим, что нового.

Читать далее

Как превратить единственный SwiftUI контейнер в dropDestination для нескольких Transferable типов?

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

Новый протокол  Transferable пришел на замену классу NSItemProvider в iOS 16+, macOS 13+ (Ventura и новее), watchOS 9.0+ и tvOS 16+. Познакомиться с некоторыми аспектами применения протокола  Transferable можно в постах Протокол Transferable меняет правила игры для Drag & Drop в SwiftUI и Протокол Transferable в SwiftUI — передача альтернативного контента с помощью ProxyRepresentation.

Проблема в том, что при использовании нового протокола Transferable и нового View модификатора .dropDestination (for: action: isTargeted:); его параметр for не принимает несколько ТИПов "сбрасываемых" объектов одновременно, как это делает выше приведенный View модификатор .onDrop (of: [.plainText, .url, .image] ...).

С помощью перечисления enum DropItem, куда мы включили все возможные объекты (текст StringURL-адрес, изображение в виде двоичного файла Data), нам удалось в SwiftUI с помощью нового протокола Transferable обеспечить перетаскивание и "сброс" (Drag & Drop) в один и тот же контейнер (например,ZStack) различных ТИПов объектов.

Читать далее

Приложение Хабра для Android и iOS

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров23K

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

UPD: пост можно прикрепить к 5 хабам — как только выбрал «Разработка под iOS», сразу прошли ревью!

Читать далее

Как настроить Gitlab CI/CD в связке с Fastlane для iOS-проектов на Mac mini

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

Всем привет! Меня зовут Ярослав Фоменко, я iOS-разработчик в компании Даблтап. Мы с моим коллегой по отделу с конца мая работаем над внедрением, улучшением и масштабированием CI/CD на наших проектах. В этой статье мы хотим поделиться гайдом по подготовке проекта в Xcode и настройке раннеров, скриптов и конфигов, а также расскажем, как нам помогает CI/CD.

О том, как и почему мы пришли к решению использовать Mac mini для CI/CD, можно почитать здесь.

Читать далее

CI/CD для iOS-проектов: на железе или в облаке? Что лучше, по версии Doubletapp

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

Привет, Хабр! Меня зовут Ярослав Фоменко, я iOS-разработчик в компании Даблтап. После того, как мы с ребятами из iOS-отдела настроили наш CI/CD на Mac mini, начали задумываться о его масштабировании и инкапсулировании и пошли ресерчить то, как это можно сделать. Первым на ум пришел Docker, но инфы оказалось довольно мало как о нем, так и о других возможных способах. В этой статье мы рассмотрим найденные нами возможные решения по развертыванию Gitlab CI/CD на железе и в облаке.

Читать далее

Логи в iOS, эпизод 3: BlackBox

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

В 2019 году я устроился в Додо Пиццу. В первую же неделю я спросил у ребят, как они логируют происходящее в iOS-приложении у клиентов и узнал, что никак.

Я удивился и понял, что у меня нет абсолютно никакой уверенности, что приложение Додо Пиццы работает как было задумано. А ещё мне прям вот ну интересно было как логируют «большие взрослые дяди»: перед Додо я работал над небольшими проектами, где было не до логов, так что опыта у меня не было.

Итого: клиентских логов нет, а неопределённость и интерес остались. Значит надо сделать систему логов самому. Ну я и сделал. А это — история появления и развития логов в iOS-приложении Додо Пиццы.

Читать далее

Как я засунул Stable Diffusion в IPhone

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

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

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

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

Как добавить Live Activity в существующий проект. Часть I

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

Live Activity был показан Apple на презентации iOS 16 и нового iPhone с Dynamic Island. Обновление доступно только для тех, кто обновил iOS до 16.1. 

Меня зовут Азиз, я iOS-разработчик в inDrive. В статье расскажу, как мы добавляли Live Activity в наше iOS-приложение. Постараюсь ответить на все вопросы, которые возникли у нас в процессе разработки.

Читать далее

Как внедрить KMM в существующие проекты и не пожалеть: теория, наш опыт и гайд

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

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

Читать далее

Как прошел митап для iOS-разработчиков в Минске

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

Всем привет! Я Александр Дюбкин, в Тинькофф занимаюсь iOS-разработкой. Команда, в которой я работаю, отвечает за разработку фич для мобильного банка — того самого желтого приложения Тинькофф — и приложения Тинькофф Бизнеса. В мобильную разработку у нас вовлечено множество команд, которые распределены по разным проектам. На проектах есть особенности и вызовы, о которых хочется рассказывать. 

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

Читать далее

Статические и динамические фреймворки на iOS — обсуждение с ChatGPT

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

Статические и динамические фреймворки на iOS - обсуждение с ChatGPT

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

Читать далее

Расширяя Xcode с помощью включений

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

Расширяя Xcode с помощью включений

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

Читать далее

Туториал по Встроенным Подпискам в iOS с помощью StoreKit 2 и Swift

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

Туториал по Встроенным Подпискам в iOS с помощью StoreKit 2 и Swift

Пошаговое руководство по созданию рабочего примера приложения с подписками на SwiftUI.

Читать далее

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

Будущее Foundation

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

Будущее Foundation

9 ДЕКАБРЯ 2022 г. Тони Паркер

Фреймворк Foundation используется почти во всех проектах Swift. Он обеспечивает как базовый уровень функциональности для таких основных элементов, как строки, коллекции и даты, так и устанавливает соглашения для написания отличного Swift-кода.

Читать далее

Создание собственного макета в SwiftUI. Интервалы

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

Создание собственного макета в SwiftUI. Интервалы

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

Читать далее

Мобильная разработка за неделю #471 (19 — 25 декабря)

Время на прочтение4 мин
Количество просмотров4.1K
Рождественский, последний в этом году дайджест. Счастливого вам Нового года и Рождества, хорошего кода и интересных проектов, мира, любви и счастья. Увидимся в уже в новом году!

В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

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

Как подключить российский SSL-сертификат к iOS-приложению

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

Одна из санкций, которая досталась России, — запрет на выдачу и продление SSL-сертификатов. Это приводит к тому, что у некоторых компаний сертификат может протухнуть и сайты перестанут открываться.

Основных решений два:

Использовать российский Яндекс.Браузер или Атом.

Поставить на компьютер сертификат или профиль от минцифры.

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

Например, 15 февраля 2023 года у Сбера истечёт действие сертификата и надо переходить на самоподписанный. Если этого не сделать, то эквайринг через Сбер может перестать работать. SberPay будет работать как и раньше.

В статье покажу, что делать разработчикам приложений, чтобы экраны c 3-D Secure открывались и эквайринг продолжал работу.

Читать далее

Async/await в iOS: что нам дает неблокирование потоков

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

Разработчикам, только начинающим работать с Async/await, бывает довольно сложно разобраться в главной его особенности — неблокировании потоков.

Рассказываем, что такое неблокирование потоков, как оно работает и какие преимущества даёт Async/await при работе с большим количеством задач.

Читать далее

Meet Transferable

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

На WWDC 2022 Apple представила множество интересных нововведений, одно из который — Transferable. О новом протоколе (только для SwiftUI и только для iOS 16, macOS 13 и tvOS 16?), который позволяет удобно и быстро передавать какие-либо данные как внутри приложения, так и между приложениями рассказывают разработчики студии CleverPumpkin.

Читать далее

Swift модуляризация вашего проекта

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

Всем привет сегодня я покажу как можно завернуть проект в spm (модуляризация)

Модуляризация — Это процесс разбиения кодовой базы на небольшие специализированные, готовые к повторному использованию модули

У меня есть небольшой проект и я хочу чтобы он был завернут в spm.

Читать далее