iOS Dev
7.87K subscribers
1.11K photos
130 videos
1 file
1.36K links
👨‍💻Автор: Виктор Грушевский (@Viktorianec)

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

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

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

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

#ios #mobile #swift
Download Telegram
Виды кэширования в iOS: разбор видов, возможных подходов, стратегий обновления и интересных задач

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

От того, что именно мы планируем кэшить, будет и зависеть выбранный: ответ сети, изображения, модели, резы вычислений, где хранить (память, диск, БД) и как управлять инвалидацией.

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

А ещё разобрал несколько популярных паттернов для реализации этой задачи.

Про TTL, версионирование и как лучше всего поступить при логауте - тоже есть.

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

Знаю, что многие спрашивают это и в рамках секции по систем-дизайну, так что красивое и доступное структурирование никогда не помешает.

Весь код, все примеры и многое другое: 💰 На бусти и ⭐️ в телеграме.

🧠 Что вы получите ещё, подписавшись:
➡️Карта изучения Swift Concurrency (примеры, разбор каждого уровня, полезные советы)
➡️Вопросы на чтение кода (несколько уровней: простых, посложнее)
➡️Многопоточность
➡️DispatchQueue: практические вопросы
➡️Swift Concurrency
➡️Алгоритмы: терминология и примеры + путь Яндекс Coderun (разбор нескольких десятков задач)
➡️Память: ARC, side table, флаги, утечки
➡️Результаты зарплатного опроса в нашем канале + сравнение с европейскими реальными зарплатами в iOS
➡️Разбор подходов к анимациям и лучшие паттерны (классические способы, Metal, комбинации - все подкреплено кодом)
➡️Утечки памяти в Swift: что с ними делать, как предотвратить?
➡️Навигация в SwiftUI: типы, отличия, разбор неочевидных моментов


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

❤️ Спасибо всем, кто поддерживает iOS IQ - благодаря вам я нахожу силы на составление не только задач, но и кайфовых примеров, разборов и многого другого (и для вас все останется по-прежнему).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
811🔥6👍4❤‍🔥3🫡2👏1💯1
Apple Music будет отмечать контент, созданный ИИ

📖 Теперь появятся специальные теги, которые дистрибьюторы смогут использовать для обозначения элементов песни, созданных с помощью ИИ.

Среди них: обложка песни, сам трек, текст или видео, которое идёт вместе с музыкой (в Spotify был анонс схожих изменений ещё в сентябре)

💪 Такими темпами и моя шутка про специальную пометку приложений, сделанных нейросетью станет реальностью.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
7👏26🔥95❤‍🔥2👍1🎉1🏆1
На ваш взгляд, какая ситуация сейчас для iOS в России?
Anonymous Poll
10%
Рынок кандидата
90%
Рынок работодателя
1🤯20🔥541❤‍🔥1👍11
Потокобезопасность в Swift - предотвращение гонок данных с помощью блокировок, очередей и акторов

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

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

Что из себя представляет потокобезопасность
В чём её важность для приложения
Как возникают конфликты данных
Методы обеспечения безопасности потоков в Swift
Как современная модель параллелизма Swift повышает безопасность

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥179❤‍🔥43👏1
Что упало — не пропало? EXC_BAD_ACCESS vs. LLDB

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

Есть советы, как читать backtrace, много инфы про регистры и про то, как отследить цепочку до причины падения приложения.

📖 Сама статья доступна здесь

А о продвинутых трюках lldb для Swift можно почитать в этом посте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
10👏20🔥115❤‍🔥43🍾2
Модуляризация Swift-приложений с помощью SPM

В этой статье автор делится своим подходом по работе с зависимостями на проекте. И делит их на три типа: common (для логгеров и небольших тулкит-расширений), services (для работы с моделями API и эндпоинтами в целом), а также features.

Можно посмотреть на пример настройки таких пакетов (и полный граф зависимостей).

📖 А почитать можно тут.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥138👍4👏2
This media is not supported in your browser
VIEW IN TELEGRAM
Анимация принтера в 30 строчек кода

Глупо отрицать, что многие непростые вещи сейчас можно сделать буквально за считанные минуты.

Например, на гифке один из эффектов в моём пет-проекте. Под капотом UIBezierPath, а значит, эффект можно полностью кастомизировать как угодно.

🏠 Как это выглядит в продакшне - можно посмотреть здесь.

А расширенный код фичи целиком: 💰 вот тут и ⭐️ здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
720❤‍🔥10🔥9👍5👌4👏3
За последний месяц время проверки приложений в App Store для вас
Anonymous Poll
29%
Увеличилось
6%
Уменьшилось
17%
Не изменилось
47%
Интересны ответы
3👌52🍾22❤‍🔥1👍1🔥1💯1
Ещё один день

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

Современной - а значит: молодёжной, самой светлой, умной и продвинутой части 21 века. Тех самых умов, которые двигают науку, технологии, экономику и все остальные не менее важные сферы далее, вперёд.

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

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

Но несмотря на это, этот продукт - фактический флагман современной iOS-разработки, все лучшее и самое производительное собрано здесь. Другие - копируют.

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

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

Лимитировать доступ к буквально важнейшему средству общения сейчас - абсурдно.

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

Пока это будет в моих силах - я продолжу писать здесь.

Спасибо за внимание.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
35❤‍🔥115👏32💯15🔥11🤗54👍2🍾1
This media is not supported in your browser
VIEW IN TELEGRAM
Фильтр Кувахара в iOS: делаем из фотки картину с помощью алгоритма

Знаете ли вы, как в приложениях получаются те самые эффекты «картины маслом» или акварели?

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

Вы практически наверняка видели этот фильтр в куче редакторов.

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

На один из вариантов реализации можно посмотреть здесь.

А исходный код на SwiftUI+Metal уже доступен: 💰 вот тут и ⭐️ здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
16186❤‍🔥5🔥4💯21
This media is not supported in your browser
VIEW IN TELEGRAM
Текущая обстановка в разработке: промпт-инженеры просят ИИ-помощников исправить ошибки в их коде

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
😁55🤣24💯11🔥2👍1
На сколько вам хватит финансовой подушки безопасности? Особенно актуальный вопрос после прошлого опроса про ситуацию на рынке
Anonymous Poll
15%
0 месяцев
9%
До 1 месяца (хватит на самое необходимое)
16%
1-3 месяца
14%
3-6 месяцев
10%
6-12 месяцев
10%
Больше года, но меньше трех
7%
Хватит более, чем на 3 года
19%
Узнать результаты
🤯30🔥43🎉2💯2🤝2
Please open Telegram to view this post
VIEW IN TELEGRAM
1😁57💯14🤣8❤‍🔥2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Анимация разворачивания контента в SwiftUI

Не всегда стандартные элементы в iOS выполняют свою функцию так, как нужно, и периодически это относится даже к анимациям.

Делюсь занятным подходом к реализации компонента для раскрытия (под капотом GeometryReader и протокол Animatable).

📖 Почитать статью можно здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
8248🔥5👍4👏2
🗓 WWDC26 пройдет с 8 по 12 июня

Какие нововведения ждёте больше всего? Может быть, новый фреймворк или очередное превращение шутки в реальность?

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
2615🔥8🫡3❤‍🔥1👍1💯1🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Отображение процесса синхронизации SwiftData с iCloud

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

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

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

📖 Почитать об этом подходе можно здесь.

🛠 А на пример реализации можно посмотреть в этом репозитории.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥124👍33❤‍🔥2👌1
Нейрослоп отменяется

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

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

Надеюсь, Apple тоже будет жестче фильтровать поток, которым сейчас забивают стор.

Вынесли сор из избы, получается.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥397💯5🍾4🤯3❤‍🔥2🤩1
Новый App Store Connect уже доступен: обновили аналитику, статистику и сотню метрик

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

➡️ Узнать больше можно тут, поделиться обратной связью здесь.

Стандартные панели отчётов будут задепрекейчены уже в середине этого года. А новые отчёты в трендах перестанут генерировать в 2027 году.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥2273🫡2❤‍🔥1🎅1
🎉 В Xcode 26.4 спустя тысячу лет появились направляющие области видимости!

Настраивается в Settings->Display->Scope Guides.

Теперь и WWDC не нужен уже.

И только попробуйте не поставить лайк 🐾

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
10🎉125👍21🤩19🔥10🏆10
Алгоритмы Swift для работы с коллекциями и последовательностями, которые можно использовать в ваших проектах

Стандартная библиотека Swift уже предоставляет нам мощные примитивы для работы с коллекциями.

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

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
712🔥95👏2❤‍🔥1🙏1
Project Hail Mary - чудесный символ того, что не все безнадёжно

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

Но иногда маячит то, что впереди не бесконечное серое пространство, но и кое что ещё.

Если вы искали, что бы посмотреть на выходных (а ещё лучше - почитать), то попробую порекомендовать вам одно из произведений Энди Вейера (книги которого можно сосчитать по пальцам одной руки, буквально).

Визуальный шедевр Фила Лорда и Кристофера Миллера просто шикарная иллюстрация подхода к адаптации сложного sci-fi в эпоху повального использования гринскрина для чего угодно. Эти же ребята воссоздали не только декорации, но и творчески подошли к использованию инструментов внутри.

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

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

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

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

Произведение не о том, как быть, а скорее - о том, что делать. О том, что называется, вопреки. О надежде.

В конце-концов, только это и остаётся.

P.S. Я очень люблю кино, и Project Hail Mary (и мне более привычно так, а не очередная локализация в нашем прокате) хороший пример, что в киноиндустрии ещё могут показывать, а не просто следовать мантре - добавь то, то и это, чтобы опять получился банальный коктейль из рекламы и мыла.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
10❤‍🔥27👏7🔥62