iOS Dev
7.76K subscribers
1.02K photos
90 videos
1 file
1.19K links
🍏Канал об iOS-разработке, необычных подходах и решениях.
👨‍💻Автор: Виктор Грушевский (@Viktorianec)
Темы:
⭐️ Подготовка к собеседованиям.
⭐️ Архитектуры и алгоритмы.
⭐️ Код. Много кода.

⚒️База знаний: https://boosty.to/ios_dev

#ios #mobile #swift
Download Telegram
Фуллстэк Swift: реализация гибридного приложения с помощью Vapor для сервера и SwifUI+Observation для клиента

Technicolor — это сайд-проект Криса Тротта, над которым он работает более десяти лет.

Изначально использовался Ruby on Rails с поддержкой только браузеров, а теперь это полноценный Swift-on-server и нативное клиентское приложение для девайсов Apple.

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

📖 На этом пути Крис столкнулся с самыми разными сложностями, и поделился ими в большом развернутом материале:

🔘 Обзор архитектуры.
🔘 API-слой.
🔘 Серверная часть и мысли на счёт фреймворка Vapor.
🔘 Аутентификация, сервисы и тестирование.
🔘 Клиентская часть: настройка проекта, работа с API и архитектура.

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

Все его преимущества не компенсируют того, насколько он отстает в более широкой экосистеме веб-фреймворков.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
9188👍7🔥3❤‍🔥1👌1💯1
This media is not supported in your browser
VIEW IN TELEGRAM
Путешествие в космосе - новый шейдер на Metal + SwiftUI

🧠 Первое, что видят пользователи в iOS IQ - одну из вариаций гиперпространства, нативно реализованного на Swift.

Но, как известно, технологии постоянно идут вперёд, а мы вместе с ними.

🚀 Хочу поделиться с вами тем, что получилось (результат на гифке).

Для получения доступа к исходному коду, примерам многому другому загляните сюда (или можно прямо вот тут).

Ещё примеры:

🔗 Warp-эффект на metal-шейдере
🔗 Beauty infinite loop
🔗 Огненный шейдер
🔗 Люминофор


Ах да, ещё там множество сложных тем от алгоритмов до решения проблем с производительностью.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥1913🤩5🏆4🆒33👍2❤‍🔥1🤝1
Реализация мема: @escaping @Sendable @MainActor @autoclosure () async -> Void

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

📖 Статья Джейкоба Бартлетта посвящена реализации мема, который изначально заставил автора почувствовать синдром самозванца.

В ней последовательно разбираются атрибуты от escaping до MainActor, и в итоге Джейкоб приходит к варианту:

Task {
await allTheAttributes(await helloWorld())
}

func allTheAttributes(
_ then: @escaping @Sendable @MainActor @autoclosure () async -> Void
) async {
Task {
await then()
}
}

@MainActor func helloWorld() {
print("Hello, world!")
}


😅 Как говорится, не пробуйте это дома (или на продакшне без должных навыков).

Кстати, напомню, что в канале был пост с огромным глоссарием по Swift Concurrency.

А вот тут есть примеры тем, вопросов - и несколько разборов подводных камней в Swift Concurrency.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
1020🔥12👍9🤯32👏2
Global actor в Swift Concurrency на реальных примерах

ℹ️ Swift Concurrency ввел концепцию глобального актора среди async/await и задач.

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

Однако нам доступна возможность создавать и собственные глобальные акторы.

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

📖 А о том, как его использовать (и как не допустить ошибок) можно прочитать в этой статье.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
811🔥105👍4❤‍🔥1🆒1
Огромный обзорный пост по всем изменениям UIKit в iOS 26

Ремарка - несколько месяцев назад целый ряд крупных ресурсов про iOS сообщали о том, что UIKit (и UIApplicationDelegate, в частности) депрекейтнут, но как обычно без какого-либо подкрепления фактов.

С тех пор прошла WWDC, и на практике всё совсем не так, в ближайшем времени фреймворк нам ещё пригодится.

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

В нашем канале уже есть несколько примеров по важным изменениям во фреймворке (и в экосистеме в целом), но этот пост просто невероятен по объёму и количеству примеров.

📖 В этом посте можно познакомиться и с UIBackgroundExtensionView, и с UICornerConfiguration (шок, что этого не было ранее и я, например, писал кастомное решение с UIBezierPath для большинства проектов). Также есть изменения и в UIResponder, и в UIScrollView, и во многом другом.

🔗 Сохраните пост в закладки (релиз новой оси совсем скоро).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥1411👍9❤‍🔥2👏21🍓1
Карта изучения Swift Concurrency

Последние несколько недель я активно изучал самые интересные моменты в Swift Concurrency и чем-то делился в канале, что-то пробовал в приложениях, а определённую часть выписывал и структурировал.

Пришло время первого роадмапа по изучению Swift Concurrency (постарался пошагово пройтись по самым важным концепциям и доступно разложить по полочкам самое интересное).

В канале уже есть и пример глоссария и разбор доступных нам инструментов в изложении Emerge Tools.

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

🔗 Файл в большом разрешении в .pdf доступен всем желающим в моём бусти (достаточно просто подписаться даже на бесплатный уровень).

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

🔘 С чего начать (основны многопоточности, существующие проблемы GCD и нужен ли переход на Swift Concurrency).
🔘 Синтаксис async/await, обработка ошибок, применение @MainActor.
🔘 Tasks (что это, как работать, как отменять и для чего нужен detached).
🔘 Sendable, потокобезопасность на практике.
🔘 AsyncStream и разбор на реальных примерах.
🔘 Работа в реальных проекта (тестирование, отладка и способы избежать ошибок).


И это далеко не всё.

Получите доступ к этому разбору и не только на бусти и прямо здесь уже сегодня.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
616❤‍🔥95💯53👍2🔥1🎉1
Разработчики на Objective-С получают самую высокую зарплату в России

На Хабр Карьере провели очередное крупное исследование (примерно 60 000 специалистов в выборке), и составили несколько отчётов по зарплатам за первое полугодие 2025 года.

Среди интересующих нас результатов:

💰 У разработчиков на Objective-С средняя зарплата 380 000 ₽ (самая высокая в отрасли), а на Swift 292 000 ₽.

Среди компаний лидеры: Авито, Райффайзен Банк, Иннотех и VK.

📖 Сравнить тенденцию изменений можно с этим постом.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
919🔥9👏7👍332❤‍🔥2💯2
496❤‍🔥43👍2😎2🔥1🎉1💯1🏆1