Несмотря на то что Swift Error избавился от приставки NS, под капотом часто оказывается старый "добрый" NSError. Если не понимать как с ним правильно работать, сообщения об ошибках будут отображаться не корректно. Почти в каждом проекте есть набор утилит для того чтобы решить эту проблему, в статье же рассматривается готовое опенсорсное решение
Причина проблемы: мост NSError
Официальное решение: LocalizedError
Альтернативное решение: Протокол Throwable
Throwable
, который устраняет проблемы LocalizedError
Не буду приводить тут выводы из статьи, она явно расхваливает конкретную библиотеку. Но посмотреть в исходники и модифицировать свои обработчики ошибок, может быть полезно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥1
📱➡️ 🧱 Одна строка кода для окирпичивания iPhone
Очень интересный обзор уязвимости в iOS, стоимостью в 17,500$ которая окирпичивала iPhone. Внедрение эксплойта происходит через устаревший API уведомлений Darwin. Уведомления Darwin используются для обмена сообщениями между процессами в операционных системах Apple. Уязвимость позволяет любому процессу в системе регистрироваться для получения уведомлений из своей "песочницы". Очень советую почитать, интересна не сама уязвимость, а пример того как происходит воспроизведение и исправление уязвимости. Apple получила отчет об уязвимости и выпустила фикс, ограничивающий права на отправку конфиденциальных уведомлений Darwin.
➡️ 26 июня: Начальный репорт с демо приложением "окирпичивателем"
➡️ 27 сентября: Репорт взят в работу
➡️ 11 марта: Репорт отмечен как исправленный в iOS 18.3
Очень интересный обзор уязвимости в iOS, стоимостью в 17,500$ которая окирпичивала iPhone. Внедрение эксплойта происходит через устаревший API уведомлений Darwin. Уведомления Darwin используются для обмена сообщениями между процессами в операционных системах Apple. Уязвимость позволяет любому процессу в системе регистрироваться для получения уведомлений из своей "песочницы". Очень советую почитать, интересна не сама уязвимость, а пример того как происходит воспроизведение и исправление уязвимости. Apple получила отчет об уязвимости и выпустила фикс, ограничивающий права на отправку конфиденциальных уведомлений Darwin.
Please open Telegram to view this post
VIEW IN TELEGRAM
Rambo Codes
How a Single Line Of Code Could Brick Your iPhone | Rambo Codes
Gui Rambo writes about his coding and reverse engineering adventures.
🔥4🤔2❤1
Понимание работы SwiftUI, инвалидации View, процесса диффа вьюх очень важно, но не менее важно уметь это профайлить. Пример слева демонстрирует распространенные ошибки в SwiftUI:
Оптимизация View:
Волшебство EquatableView и транзакций:
Вывод
Лучше сразу делать с минимальной гигиеной (
Equatable
) и уже при появлении проблем профилировать бутылочные горлышки со знанием дела и мест пристального внимания.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍2❤1
Forwarded from Compose Broadcast
🔥⚙️ Compose iOS теперь Stable
Самый громкий и важный анонс в истории Compose Multiplatform с выходом версии 1.8.0
Что именно готово для продакшен применения
👉 Все основные фичи из Jetpack Compose работают на iOS
👉 Типобезопасная навигация с поддержкой deep link
👉 Гибкое управление ресурсами
👉 Поддержка iOS Accessibility API
👉 Ощущения от UI приложения как нативного (скрол, редактирование текста, drag-and-drop, адаптивный UI, навигация жестами и пр)
👉 Производительность UI на Compose близка к SwiftUI, но пока немного уступает
Новая эра мобильной разработки уже тут!
#compose #ios
Самый громкий и важный анонс в истории Compose Multiplatform с выходом версии 1.8.0
Что именно готово для продакшен применения
👉 Все основные фичи из Jetpack Compose работают на iOS
👉 Типобезопасная навигация с поддержкой deep link
👉 Гибкое управление ресурсами
👉 Поддержка iOS Accessibility API
👉 Ощущения от UI приложения как нативного (скрол, редактирование текста, drag-and-drop, адаптивный UI, навигация жестами и пр)
👉 Производительность UI на Compose близка к SwiftUI, но пока немного уступает
Новая эра мобильной разработки уже тут!
#compose #ios
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🤔9
Apple обновили свой список туториалов по решению практических задач с использованием Swift.В ней можно найти пошаговые инструкции и готовые проекты по решению следующих задач:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤1
Swift предоставляет слабые ссылки на объекты с помощью модификатора
weak
. Слабые ссылки становятся nil
при уничтожении объекта. Текущее правило требует объявления слабых ссылок с ключевым словом var
. Это вызывает проблемы с потокобезопасностью при использовании слабых ссылок в параллельных контекстах. Предложение позволяет объединить weak
с Sendable
.Мотивация:
Sendable
Sendable
weak let
) решит проблемуОграничение на слабые ссылки:
Обходное решение:
weak
ссылки в структурах ведут себя иначе, чем в других типахweak
теперь можно комбинировать с let
Статус:
13 мая завершается Active review, ждем перехода в
Как вам такая фича? 🔥/🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔13🔥4❤1
Этот пропоузал расширяет использование
key path
ссылками не только на свойства но и на методы. Например, методы экземпляра и типа, а также инициализаторы. Основные преимущества:key path
Судя по статусу, "Active Review (April 22 ... May 5, 2025)", активное ревью закончилось, ждем перехода в
Как вам такая фича? 🔥/🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4🔥3❤1
Отзывающаяся мне серия статей, посвященная обучения программированию в мире AI ассистентов. Особенно мне понравилась часть про "илюзию компетентности". Искусственный интеллект расширяет возможности программирования, а не заменяет его. Программирование развивает логическое мышление и навыки решения проблем.
Вычислительное мышление и его развитие
Будущее карьеры программиста
Избегайте иллюзии компетентности
Советы по избежанию иллюзии
Очень интересно, проще ли научиться программировать было в мире без AI или в современном мире. Сможем ли мы достаточно быстро адаптироваться к быстро меняющемуся миру...
Please open Telegram to view this post
VIEW IN TELEGRAM
The JetBrains Blog
Is It Still Worth Learning to Code? | The JetBrains Academy Blog
Part 1 of our "How to Learn to Code in an AI World" series.
👍3🔥2💯1