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

Swift *
Открытый объектно-ориентированный язык
SwiftUI уроки (часть 7)

В этом разделе вы узнаете, как рисовать линии, дуги и диаграммы с помощью Path и встроенных форм, таких как Circle и RoundedRectangle, в SwiftUI. Вот что мы изучим:
* Понимание Path и рисование линий
* Что такое протокол Shape и как нарисовать настраиваемую форму путем соответствия протоколу
* Рисование диаграммы
* Создание индикатора прогресса с помощью открытого круга
* Рисование «pie chart» диаграммы
Apple Vision Pro: обзор платформы и создание первого мобильного приложения

Привет! Меня зовут Андрей Груненков, я iOS - разработчик в агентстве InstaDev. Делаем мобильные приложения, которые помогают бизнесу расти. В этой статье я расскажу о том, как разработать первое мобильное приложение для платформы Apple Vision Pro.
Для начала надо сказать пару слов о самой платформе. Apple Vision Pro это компьютер Apple, который предоставляет пользователю новый опыт пространственного взаимодействия с интерфейсом. По сути представляет из себя гарнитуру смешанной реальности (AR/VR).
Достаточно просто надеть устройство на голову, чтобы погрузиться в последние проекты или трёхмерный контент.
Гарнитура отслеживает движение глаз пользователя, передает изображение с внешних камер на дисплеи перед глазами и показывает 3D-контент. При нажатии на одну кнопку можно погрузиться в виртуальный мир, в остальное время окна и приложения перемещаются в воздухе перед пользователем и дают возможность с ними взаимодействовать.
Apple Vision Pro помогает решать следующие задачи:
SwiftUI: архитектура State-Model-View

В документации по UIKit компании Apple можно найти объяснение, что “структура приложений основана на шаблоне проектирования Model-View-Controller (MVC)”.
В материалах Apple по SwiftUI объяснений и даже просто ссылок на паттерны проектирования, похоже, нет. Попробуем сначала разобраться почему. Далее рассмотрим логичные и простые решения для построения как отдельных компонентов, так и уровень приложения с использованием состояний и property wrappers; подход, который логично обозначить как State-Model-View.
SwiftUI уроки (часть 6)

Мы наконец-то добрались до одних из самых важных тем связанных с управлением данными, включая их модификацию, слежение за ними и передачу. Мы начнем с самых простых вещей таких как State и Binding.
SwiftUI уроки (часть 5)

Buttons, Labels, Gradients
В этой части мы рассмотрим основы создания кнопок в SwiftUI. Кнопки играют ключевую роль в любом пользовательском интерфейсе приложения. Хорошо спроектированные кнопки не только делают ваш интерфейс более привлекательным, но и повышают пользовательский опыт от вашего приложения.
YandexMapKit и SwiftUI: обратный геокодинг

Обратное геокодирование (получение адреса по географическим координатам) на стороне клиента в рамках разработка мобильного приложения под IOS для мониторинга автотранспорта
IOS - 15.5, SwiftUI, YandexMapKit
Я не стану описывать в статье способ подключения YandexMapKit к проекту. Во-первых, это не сложно, а во-вторых описаний этого процессе в интернете предостаточно, в том числе на сайте YandexMapKit SDK.
Однако хочу "пожаловаться", что исключительно из-за картографии Яндекса в проекте начали использовать CocoaPods, потому что вендор (по состоянию на март 2024 года) не снизошел до разработки пакета, который можно подключить к проекту минуя Pods.
Интерактивные виджет-подборки в Иви (iOS)

И снова здравствуйте! В 2022 году у нас появились первые HomeScreen виджеты, это был первый опыт работы с библиотекой WidgetKit. Затем появились LockScreen виджеты и мы их тоже добавили. А выход iOS 17 и поддержка библиотеки AppIntents в виджетах, знаменовал новый этап в эволюции виджетов.
В этой статье поговорим о том, как мы зарелизили интерактивные виджеты и из чего они состоят: разделение логических слоёв на SPM пакеты, обеспечение качества (unit, snapshot тесты), accessibility и с каким нюансами столкнулись, о которых Apple не рассказывала на WWDC23.
Быстрый старт, или Как ускорить запуск iOS-приложений

Всем привет! Меня зовут Фируза, я iOS-разработчик в компании SimbirSoft. В этой статье мы попробуем разобраться, как ускорить запуск приложения, а именно:
• что происходит от момента нажатия на иконку приложения до представления возможности пользователю взаимодействовать с UI;
• как собрать актуальные метрики скорости запуска и отзывчивости приложения;
• какие тактики применить, чтобы ускорить старт и отзывчивость запуска.
Статья будет полезна для iOS-разработчиков любого уровня, желающих улучшить производительность своих приложений.
SwiftUI уроки (часть 4)

Понимание ScrollView и создание UI карусели
В этом уроке мы разберемся с таким элементом как ScrollView для создания длинных прокручивающихся полотен.
Cocoapods pod install без интернета на CI при использовании Tuist

Для успешного выполнения команды pod install менеджера зависимости Cocoapods нужен доступ в интернет, но на раннерах в целях безопасности для continuous integration может отсутствовать сеть. В некоторых случаях, например, при использовании инструмента Tuist в проекте, исполнение pod install на CI необходимо для интеграции Подов в проекты. В этой статье рассмотрим, как можно легко с помощью нескольких команд возобновить успешное выполнение команды pod install на раннерах без выхода в интернет.
SwiftUI уроки (часть 3)

Создаем UI с помощью стеков
Стеки в SUI похожи на стеквью в UIKit. Если комбинировать горизонтальные и вертикальные стеки можно создать комплексный UI для приложения, который будет отлично адаптировать под различные размеры экранов и типы устройств. В UIKit основное средство создания UI — это auto layout который применяется для правильного отображения вьюшек на экране. Зачастую для начинающих разработчиков автолейаут кажется чем‑то очень сложным как для применения так и обучения, так что если вы уже переходите на SUI — есть хорошие новости, автолэйаут вам больше не потребуется. Вы будете оперировать такими компонентами как VStack, HStack, ZStack.
Continuations для взаимодействия асинхронных задач с синхронным кодом

В Swift были представлены новые функции, которые помогают нам адаптировать старые API в стиле completionhandler к современному асинхронному коду.
Например, эта функция возвращает свои значения асинхронно, используя обработчик завершения:
Ближайшие события
SwiftUI уроки (часть 2)

Если вы уже ознакомились с первой частью, то у вас есть базовое понимание что из себя представляет SUI и знаете как отобразить текстовый контент, в этой части давайте познакомимся с элементом отображающим изображения.
Как работает async/await в Swift

Функция async/await в Swift появилась в iOS 15, и я полагаю, что на данный момент вы уже знаете, как ее использовать. Но задумывались ли вы когда-нибудь о том, как работает async/await изнутри? Или, может быть, почему выглядит и ведет себя именно так? Или даже почему вообще была представлена?
В типичной для SwiftRocks манере мы углубимся в компилятор Swift, чтобы ответить на вопросы о том, как работает async/await внутри. Это не инструкция по использованию async/await, а глубокое погружение в историю и реализацию этой функции, чтобы понять, как она работает, почему она работает, чего можно добиться с ее помощью и, самое главное, какие нюансы следует учитывать при работе с ней.
Task и structured concurrency в swift

В данной части из серии статей про Swift concurrency мы подробно остановимся на сущности под названием Task и разберем на примерах, как с ней работать. Также поговорим про structured concurrency. Что это такое, как это понятие связано с Task и почему механизмы языка async/await structured, но не concurrent.
Помимо этого, мы разберем инструменты и механизмы structured concurrency. Среди них async let
, Task hierarchy и Task cancellation. И, как обычно, не оставлю вас без примеров применения этого букета конкуррентности.
SwiftUI уроки (часть 1)

В чём особенность этих уроков?
Основаны на книге "Mastering SwiftUI" от Appcoda: Мы берем за основу материал этой книги, но не слепо следуем ей.
Интерпретация и перевод: Мы адаптируем материал книги для русскоговорящей аудитории, делая его более понятным и удобным для восприятия.
Для начинающих и опытных: Эти уроки подойдут как тем, кто только начинает изучать SwiftUI, так и тем, кто хочет узнать что-то новое об этом фреймворке.
Чего вы можете ожидать?
Пошаговое изучение SwiftUI: Мы будем проходить все основные темы, от простых до сложных.
Практические примеры: Вы сможете закрепить полученные знания, выполняя практические задания.
Присоединяйтесь к этой серии!
Миссия выполнима: как мы создали приложение для Apple Vision Pro за 8 дней

Всем привет! На связи Саша Сырков из 2ГИС, и это рассказ, как чуть больше недели мы разрабатывали приложение на Vision OS, разбирались в особенностях Reality Composer Pro, ловили всевозможные текстурные баги, а в итоге всё же получили заветный апрув от Apple за 17 часов до официального открытия продаж VR-гарнитуры.
Под катом хронология событий от идеи до рабочего продукта и технические подробности создания нашего первого VisionOS-приложения — краткого справочника с 3D-моделями достопримечательностей.
P.S. для самых пытливых в конце вопрос: кто первый отгадает ответ, тому подарим нашего гуся.
Топ-5 распространенных практик написания хорошего Swift-кода

Эффективность при написании кода заключается не только в достижении желаемой функциональности, но и в создании кода, который будет производительным, удобным в сопровождении и легко читаемым. В Swift то, как вы пишете код, может оказывать сильное влияние на общую производительность и user experience ваших приложений. В этой статье мы рассмотрим некоторые ключевые сравнения и практики программирования на Swift, которые могут значительно повысить эффективность вашего кода.
Благодаря этим сравнениям вы получите более глубокое понимание того, как определенные методы написания кода в Swift могут привести к более оптимизированным, элегантным и эффективным решениям. Независимо от того, являетесь ли вы опытным разработчиком или только начинаете свой путь, эти знания помогут вам писать Swift-код, который не только хорошо работает, но и достигает оптимальной производительности, читабельности и удобства сопровождения.
Как устроен @State в SwiftUI

Привет! Меня зовут Илья, я iOS разработчик в компании Банки.ру
Уже больше двух лет наше приложение мы пишем на SwiftUI.
В статье расскажу о Property Wrapper'е @State.
Вклад авторов
WildGreyPlus 232.0miden16 170.0yeswolf 153.0illusionofchaos 140.0MaxRokatansky 135.0kuradnaths 131.0nsurl-dev 121.0yarmolchuk 119.8niklnd 112.0freetonik 112.0