iOS Dev
7.82K subscribers
1.04K photos
95 videos
1 file
1.22K links
👨‍💻Автор: Виктор Грушевский (@Viktorianec)

⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru

🍏Канал об iOS-разработке, алгоритмах и архитектурах

⭐️ Подготовка к собесам

⭐️ Код. Много кода.

#ios #mobile #swift
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
5😁46🤣23🔥6🫡42👍1🤩1🤝11
Что там по Swift Concurrency да и вообще по целям?

Или как говорится, у меня была какая-то практика, и я её придерживался.

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

Кстати, совсем скоро выйдет и новая версия приложения, которое в бете уже месяц.

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

🤖 Ботом воспользовалось уже около тысячи человек, и вот первые выводы.

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

Подпишитесь 💰 на бусти и ⭐️ прямо здесь и получите доступ к эсклюзивному и качественному контенту.

С вас подписка по специальному офферу - с меня все нижеперечисленное (и даже больше).

Что можно получить сегодня?
➡️Несколько десятков пройденных алгоритмических задач с боевых конкурсов.
➡️Вопросы на чтение кода
➡️Многопоточность
➡️DispatchQueue: практические вопросы (две части)
➡️Swift Concurrency
➡️Память: ARC, side table, флаги, утечки
➡️UIKit (теория + практика, две части)
➡️Компилятор Swift
➡️Основы: URLSession, UICollectionView и многое другое.

А также:
➡️Множество необычных подходов к анимации (включая шейдеры).
➡️Разбор популярных архитектур (и их недостатков).
➡️Несколько кайфовых и интересных фактов об истории прототипирования в Apple.
➡️Как на самом деле работает Code Signing.
➡️Несколько трюков и фишек при работе c Xcode.


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
1116🔥12👏6👍3🍓21
SwiftUI WebView: настройка, навигация, кастомные схемы

На WWDC 2025 был анонсирован WebView для SwiftUI, но код из видео не работал, более того, он даже не компилился.

📖 В этой статье можно посмотреть на основные аспекты работы, пример навигации и работу с JavaScript-функциями.

🛠 Код проекта доступен и на GitHub.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥1814👍84👏2💯1🏆1🤝1
Что нового в Swift 6.2 (помимо обновлений, связанных с параллелизмом)

📺 Неплохой разбор нововведений, которые появятся в iOS 26 и Xcode 26.

И хотя основное внимание все уделяют concurrency, есть и много других фич, о которых можно узнать.

Среди разобранных пропозалов:

➡️ Default Value in String Interpolations
➡️ Raw identifiers
➡️ Collection conformances for enumerated()
➡️ InlineArray, a fixed-size array
➡️ InlineArray Type Sugar
➡️ Integer Generic Parameters
➡️ Span: Safe Access to Contiguous Storage

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
512👍8🔥7❤‍🔥3👏2🎉1🏆1
Быть инженером

Прочитал кайфовую историю, как Вадим интегрировал себе PassKit за несколько часов разработки, чтобы вместо 47 секунд тратить 3 на вход в тренажёрку 💪

Разве не в этом смысл быть разработчиком вообще? Упрощать жизнь, делать привычные действия быстрее или вообще автоматизированными.

В своём приложении Starly я также бился с возможностью упрощения и экономии личного времени. У меня сейчас порядка 20 пет-проектов, из которых я поддерживаю около 7. И представьте, что в каждом по 15 локализаций. Сколько времени надо на переводы?

Ну по классике: прикрутил SDK для работы с AppStore Connect, лупанул туда движок DeepL (и есть ещё кое-какой хак, как в телеге). Хотя можно подумать сейчас и над чем-то более весёлым в современных реалиях)

Так вот, вместо 1.5 часов просто на то, чтобы вбить переводы, я трачу около 2 минут - пишу текст обновления на русском или английском, а алгоритм под капотом делает всё остальное за меня.

Или вот надо было зарефакторить большой проект (всё еще надо) - сделал себе подсчёт строк в каждом файле, чтобы понять, с чего вообще начать.

А ещё когда-то пилил скрипт на питоне, чтобы спарсить все оценки с кинопоиска и перенести на letterboxd автоматически (киноманы поймут, о чём речь, когда у вас просмотренных тысяча фильмов). Думал даже выложить его в открытый доступ, но решил, что слишком маленькая аудитория.

А что для вас быть инженером? Используете ли вы свои навыки вне работы?

Может у вас есть пет-проект, о котором вы бы хотели рассказать - поделитесь!

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
419❤‍🔥12🔥9👍62👏1👌1🍓11
This media is not supported in your browser
VIEW IN TELEGRAM
🚪 Превращаем макбук в скрипящую дверь с помощью датчика наклона (есть звук)

Оказывается, есть специальное (непубличное API), доступное аж с 2019. Впервые появилось в 16-дюймовом макбук про и если ваш ноут более новый, то оно скорее всего также доступно.

📖 В этой репе можно посмотреть на пример тестового проекта.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥6615👍115🤩4🍓2😎2🤝1
Что изменилось в работе со строками в Swift 6.2

Если раньше для опционального значения и использования в коде ниже было предупреждение String interpolation produces a debug description for an optional value; did you mean to make this explicit?:

let age: Int? = nil
print("Your age: \(age)")


И компилятор предлагал юзать String(describing:), чтобы избавиться от ворнинга, то теперь все стало проще.

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

let age: Int? = nil
print("Your age: \(age, default: "missing")")
// Prints "Your age: missing"


Это дополнение также повышает и ясность кода вместо того, чтобы допускать nil-утечку в строковый вывод.

Расширенный список принятых пропозалов - в этом посте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥3315👍9💯83❤‍🔥1👌1
iOS-разработчики получают самую высокую зарплату в России согласно исследованию хабра. Так ли это на самом деле?

Я проверил это с помощью масштабного опроса и поделился выводами.

Кроме аналитики, есть и сравнение с реальными европейскими зарплатами в нашей и смежных сферах, а также отслеживание динамики изменений.

Подпишитесь, чтобы посмотреть результаты на бусти и в телеграме (действует специальное предложение).

🧠 А ещё вы сможете получить:

➡️Карта изучения Swift Concurrency
➡️Вопросы на чтение кода
➡️Многопоточность
➡️DispatchQueue: практические вопросы
➡️Swift Concurrency
➡️Алгоритмы: терминология и примеры
➡️Память: ARC, side table, флаги, утечки
➡️Разбор подходов к анимациям и лучшие паттерны.
А также доступ к ранним релизам приложения iOS IQ, тонну теории и многое другое.


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
1218👍9🤯5🔥4💯3❤‍🔥2👏21🍓11
685🤯4👍2🔥2💯2🍓2
Утечки памяти в Swift: что с ними делать, как предотвратить?

Возможно, одна из самых неприятных, но в то же время часто встречающихся в практике историй - поиск утечек памяти.

Даже у нас на проекте сейчас одна из тасок - поиск вещей, связанных с экранами звонков и лайвкитом, в частности.

Кроме классических вариантов с циклическими ссылками (когда у нас есть дочерний контроллер, который хранит ссылку на своего владельца/родителя), может быть куча других проблем: от казалось бы очевидных вещей с таймерами до замыканий и делегатов.

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

Есть несколько полезных задач на подумать: при работе с сетью, что не так с NotificationCenter и многое другое.

Подписаться можно тут: 💰 с приятными условиями на бусти ⭐️ в телеграме.

А пока можно вспомнить и про эти истории:

📖 Утечка памяти: детектив в Xcode
📖 Как автоматически обнаруживать утечки памяти с помощью UI-тестов
📖 Управление памятью в Swift

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
616🔥65👍2👏2❤‍🔥1💯1🏆1🍓1
This media is not supported in your browser
VIEW IN TELEGRAM
Пошаговая визуализация алгоритма LLM, лежащего в основе ChatGPT

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

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

📖 Можно посмотреть на большое интерактивное руководство о том, как работает GPT под капотом. В частности, рассматривают модель nano-gpt, имеющую всего 85 000 параметров.

На каждом шаге рассматривается, что происходит внутри, когда ставят простую задачу:

Отсортировать по алфавиту входящую последовательность CBABBC в алфавитном порядке, чтобы на выходе получить ABBBCC.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
8208🤯5🔥4❤‍🔥3👍3💯22
Анатомия работы с записью видео в iOS

Работа с AVFoundation не относится к тем вещам, по которым достаточно посмотреть на доки и просто собрать всё воедино.

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

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

➡️Также можно чекнуть официальный пример от Apple и скачать исходный код.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
1018🔥9👍5❤‍🔥3💯21🤯1🤝1
Сегодня выходит iOS 26 - что можно обновить в рабочих проектах?

Хотя для большинства приложений принято поддерживать 2 последние мажорные версии, по результатам опроса на многих проектах таргет указан аж на 15 ось (и иногда даже ниже). На нашем рабочем до сих пор минималка 15, но пора бы тоже повысить.

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

Xcode

➡️ Все изменения Xcode 26 RC
➡️ Автогенерация Playground
➡️ Сессия на WWDC об изменениях в Xcode 26
➡️ Разбор двух фич в новом Xcode: установка global actor isolation в MainActor.self, включение Approachable concurrency.

Swift

➡️ Обзорный пост по WWDC25 (Swift, Память, Инструменты)
➡️ Изучение изменений concurrency в Swift 6.2
➡️ Использование памяти в Swift 6.2 и возможности для повышения производительности
➡️ Что нового в Swift 6.2 (помимо обновлений, связанных с параллелизмом)
➡️ Что изменилось в работе со строками в Swift 6.2
➡️ Default Actor Isolation in Swift 6.2

Стоит обратить внимание

➡️ Карта изучения Swift Concurrency
➡️ Как мигрировать UIKit-интерфейс на scene-based в iOS
➡️ Огромный обзорный пост по всем изменениям UIKit в iOS 26
➡️ Global actor в Swift Concurrency на реальных примерах
➡️ Все новые фреймворки iOS 26

Когда шутка зашла слишком далеко

➡️ Реализация мема: @escaping @Sendable @MainActor @autoclosure () async -> Void

Ах да, пора ли переходить на Swift 6 в 2025 году?

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
32247💯7❤‍🔥4👍3🔥1🏆1
🚀 Swift 6.2 уже доступен

📖 Самые важные изменения здесь и в карточках.

Можно ещё раз взглянуть на InlineArray и Span, познакомиться с Subprocess, узнать, что поменялось в NotificationCenter и многое другое.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤‍🔥299💯5👍321🔥1🏆1🍓1