Уязвимости в CocoaPods
В CocoaPods обнаружили сразу несколько очень неприятных уязвимостей, которые уже исправлены:
👉Злоумышленники могли получить контроль над заброшенными подами, и, как результат, добавить туда вредоносный код, который подтянулся бы в приложения без лока на определенную версию библиотеки.
👉Авторизация через email была реализована небезопасно, из-за чего злоумышленники могли исполнять произвольный код на сервере CocoaPods, отвечающем за Podspec'и.
👉Злоумышленники могли получить доступ к авторизационным токенам разработчиков и подменять пакеты прямо на сервере.
Обязательно посмотрите чек-лист того, что вам надо сделать с вашим проектом, чтобы проверить, не стали ли вы жертвой подмены пакетов.
В CocoaPods обнаружили сразу несколько очень неприятных уязвимостей, которые уже исправлены:
👉Злоумышленники могли получить контроль над заброшенными подами, и, как результат, добавить туда вредоносный код, который подтянулся бы в приложения без лока на определенную версию библиотеки.
👉Авторизация через email была реализована небезопасно, из-за чего злоумышленники могли исполнять произвольный код на сервере CocoaPods, отвечающем за Podspec'и.
👉Злоумышленники могли получить доступ к авторизационным токенам разработчиков и подменять пакеты прямо на сервере.
Обязательно посмотрите чек-лист того, что вам надо сделать с вашим проектом, чтобы проверить, не стали ли вы жертвой подмены пакетов.
www.evasec.io
Vulnerabilities in CocoaPods Open the Door to Supply Chain Attacks Against Thousands of iOS and MacOS Applications | E.V.A
Multiple vulnerabilities affecting the CocoaPods ecosystem, have been discovered, posing a major risk of supply chain attacks.
Клиент-серверное приложение на вебсокетах с фреймворком Hummingbird
Подробный туториал по тому, как написать простые клиент и сервер для приложения чата, которые будут общаться с помощью вебсокетов, на фреймворке Hummingbird.
Подробный туториал по тому, как написать простые клиент и сервер для приложения чата, которые будут общаться с помощью вебсокетов, на фреймворке Hummingbird.
Как работают очереди
Отличный пост про то, как работают разные типы очередей, по каким параметрам их можно сравнивать друг с другом, и как приоритизация запросов влияет на них. Самое классное – все это с интерактивными примерами!
Отличный пост про то, как работают разные типы очередей, по каким параметрам их можно сравнивать друг с другом, и как приоритизация запросов влияет на них. Самое классное – все это с интерактивными примерами!
Expicitly built modules в Xcode 16
В Xcode 16 завезли фичу "Explicitly built modules", которая должна помогать с ускорением билдов и делать ошибки более информативными. В статье детально рассказывается, как эта фича ускоряет работу xcodebuild, и как ее можно включить для своего проекта.
На Beta 1, правда, ускорения пока не заметно.
В Xcode 16 завезли фичу "Explicitly built modules", которая должна помогать с ускорением билдов и делать ошибки более информативными. В статье детально рассказывается, как эта фича ускоряет работу xcodebuild, и как ее можно включить для своего проекта.
На Beta 1, правда, ускорения пока не заметно.
Про Meridian, еще один серверный фреймворк
Meridian – фреймворк для разработки бэкенда на Swift. Его отличительная особенность – API, похожий на SwiftUI. Еще из интересного:
👉Есть поддержка вебсокетов
👉async/await из коробки
👉Можно удобно объявлять свой Middleware
Meridian – фреймворк для разработки бэкенда на Swift. Его отличительная особенность – API, похожий на SwiftUI. Еще из интересного:
👉Есть поддержка вебсокетов
👉async/await из коробки
👉Можно удобно объявлять свой Middleware
This media is not supported in your browser
VIEW IN TELEGRAM
Сложности в работе с кареткой
Автор библиотеки DeclarativeTextKit рассказывает про неочевидные сложности расчета позиции каретки и ментальную модель, которая помогает рассуждать даже в граничных кейсах.
А если вы захотите узнать больше про разные интересные моменты в том, как работает рендеринг текста, напоминаю о чудесном выпуске Подлодки с Тонским на эту тему!
Автор библиотеки DeclarativeTextKit рассказывает про неочевидные сложности расчета позиции каретки и ментальную модель, которая помогает рассуждать даже в граничных кейсах.
А если вы захотите узнать больше про разные интересные моменты в том, как работает рендеринг текста, напоминаю о чудесном выпуске Подлодки с Тонским на эту тему!
This media is not supported in your browser
VIEW IN TELEGRAM
TextRenderer в SwiftUI
В SwiftUI появился новый протокол
В SwiftUI появился новый протокол
TextRenderer
, который заменяет NSAttributedString
. В статье разбирается, как с его помощью подсветить часть символов в строке.Как создать кастомный SF Symbol
Вы можете пользоваться не только готовыми SF Symbols, но и создавать полностью свои. В туториале разбираются все шаги – от создания векторной иконки в Sketch до использования ее в коде приложения.
Вы можете пользоваться не только готовыми SF Symbols, но и создавать полностью свои. В туториале разбираются все шаги – от создания векторной иконки в Sketch до использования ее в коде приложения.
Danijela's blog
Create Custom SF Symbols in Sketch | Danijela's blog
Symbols (or icons) are an essential part of any app. Luckily, when developing for Apple platforms, we have the amazing collection of SF symbols at our disposal. But even with over 6000 symbols already available, sometimes the one you need doesn't exist yet.…
Blend modes в SwiftUI
Гайд по тому, как работают разные режимы смешивания цветов в SwiftUI, и какими формулами они описываются.
Гайд по тому, как работают разные режимы смешивания цветов в SwiftUI, и какими формулами они описываются.
Что нового в UI тестах в Xcode 16
👉Функция waitForNonExistence(withTimeout:), которая позволяет привязаться к исчезновению какого-то элемента.
👉Функция wait(for:toEqual:timeout:), которая дает привязаться к моменту, когда свойство элемента будет равняться определенному значению.
👉Функция waitForNonExistence(withTimeout:), которая позволяет привязаться к исчезновению какого-то элемента.
👉Функция wait(for:toEqual:timeout:), которая дает привязаться к моменту, когда свойство элемента будет равняться определенному значению.
Jesse Squires
UI testing improvements in Xcode 16
While the new Swift Testing framework announced this year at WWDC24 is getting a lot of attention, there are some notable improvements coming to UI testing i...
Проблемы использования NSCopying со Swift
Из-за особенностей того, как в Objective-C работают designated initializer'ы, наследование от классов, реализующих протокол NSCopying, в Swift может привести к неприятным крешам. Инженеры PSPDFKit рассказывают о том, как их можно попробовать обойти.
Из-за особенностей того, как в Objective-C работают designated initializer'ы, наследование от классов, реализующих протокол NSCopying, в Swift может привести к неприятным крешам. Инженеры PSPDFKit рассказывают о том, как их можно попробовать обойти.
Nutrient
NSCopying in a Swift World | Nutrient
An exploration into how a modern Swift programming mindset clashes with Objective-C’s NSCopying protocol.
This media is not supported in your browser
VIEW IN TELEGRAM
Как принципы дизайна реализуются в конкретных решениях
Очень крутой обзор приложения Family, крипто-кошелька с топовым дизайном и анимациями. В посте разбираются все принципы дизайна, которым следовала команда, и то, в какие паттерны интерфейса и анимаций они превращались. Если вы ищете вдохновения – рекомендую!
Очень крутой обзор приложения Family, крипто-кошелька с топовым дизайном и анимациями. В посте разбираются все принципы дизайна, которым следовала команда, и то, в какие паттерны интерфейса и анимаций они превращались. Если вы ищете вдохновения – рекомендую!
Лонгрид про макросы
Огромная статья про то, как работают макросы в Swift: их роли, реализация конкретных макросов, устройство библиотеки SwiftSyntax, инструменты для их тестирования и влияние на перфоманс проекта.
Огромная статья про то, как работают макросы в Swift: их роли, реализация конкретных макросов, устройство библиотеки SwiftSyntax, инструменты для их тестирования и влияние на перфоманс проекта.
Латтнер считает Swift слишком сложным
Крис Латтнер недавно дал интервью, в рамках которого прошелся по Swift:
👉Swift, the original idea was factor complexity (…) massively failed, in my opinion (…) Swift has turned into a gigantic, super complicated bag of special cases, special syntax, special stuff.
👉instead of fixing the core, what the team did, both when I was there, so partially my fault, but also subsequently, is they started adding all these special cases (…) a lot of this stuff got added under extreme time pressure to enable a feature like #SwiftUI. And there's a bunch of stuff that feeds into that, as well as just the language gets more and more and more and more complicated.
Крис Латтнер недавно дал интервью, в рамках которого прошелся по Swift:
👉Swift, the original idea was factor complexity (…) massively failed, in my opinion (…) Swift has turned into a gigantic, super complicated bag of special cases, special syntax, special stuff.
👉instead of fixing the core, what the team did, both when I was there, so partially my fault, but also subsequently, is they started adding all these special cases (…) a lot of this stuff got added under extreme time pressure to enable a feature like #SwiftUI. And there's a bunch of stuff that feeds into that, as well as just the language gets more and more and more and more complicated.
YouTube
I Interviewed The Creator Of LLVM, Clang, Swift, and Mojo
Recorded live on twitch, GET IN
### Guests
Chris Lattner
https://x.com/clattner_llvm?s=21&t=-sv4MdpmLrRuMIhARbLk-g
https://www.modular.com
TJ DeVries
https://youtube.com/@teej_dv?si=AIrpF3SWJYZqlboU
### My Stream
https://twitch.tv/ThePrimeagen
###…
### Guests
Chris Lattner
https://x.com/clattner_llvm?s=21&t=-sv4MdpmLrRuMIhARbLk-g
https://www.modular.com
TJ DeVries
https://youtube.com/@teej_dv?si=AIrpF3SWJYZqlboU
### My Stream
https://twitch.tv/ThePrimeagen
###…
Критика data race safety
Критику сложности Swift, поднятую Латтнером, продолжает Алекс Гребенюк, автор Nuke и Pulse. Swift 6 с data race safety и компиляторными ошибками, которые только мешают в простых приложениях и перекладывает на плечи программиста кучу работы, и делает опыт работы с языком только хуже. Это идет вразрез с изначальными планами Apple по созданию языка, дружелюбного к разработчикам, быстрого и простого.
Критику сложности Swift, поднятую Латтнером, продолжает Алекс Гребенюк, автор Nuke и Pulse. Swift 6 с data race safety и компиляторными ошибками, которые только мешают в простых приложениях и перекладывает на плечи программиста кучу работы, и делает опыт работы с языком только хуже. Это идет вразрез с изначальными планами Apple по созданию языка, дружелюбного к разработчикам, быстрого и простого.
Как создать альтстор
Q&A с авторами AltStore, первого официального стороннего стора, появившегося в EU.
👉Как магазин заводится с технической стороны
👉Особенности распространения приложений через такие магазины
👉Отличие процессов нотаризации заливки приложений от обычного
👉Платежные опции для приложений
👉Adult контент
Q&A с авторами AltStore, первого официального стороннего стора, появившегося в EU.
👉Как магазин заводится с технической стороны
👉Особенности распространения приложений через такие магазины
👉Отличие процессов нотаризации заливки приложений от обычного
👉Платежные опции для приложений
👉Adult контент
Revenuecat
AltStore: Q&A with Riley Testut
Explore the pioneering AltStore with founder Riley Testut, discussing the rise of third-party iOS app stores.
Используем SwiftUI из CLI
Пример того, как с помощью класса ImageRenderer из SwiftUI можно сделать консольную тулу, которая будет добавлять бейджи на иконку приложения.
Пример того, как с помощью класса ImageRenderer из SwiftUI можно сделать консольную тулу, которая будет добавлять бейджи на иконку приложения.
swifttoolkit.dev
Using SwiftUI in Command Line Tools
You can take advantage of SwiftUI even in your command line tools
Live Activity в Uber
Uber рассказали про свой опыт разработки Live Activity. С технической стороны все довольно тривиально, а вот продуктовые результаты интересные:
👉На 2.3% меньше отмен заказов водителем
👉На 2.1% меньше отмен заказов пассажиром
Получается, что благодаря более прозрачному статусу заказа уменьшаются шансы того, что пассажир забудет про такси.
Uber рассказали про свой опыт разработки Live Activity. С технической стороны все довольно тривиально, а вот продуктовые результаты интересные:
👉На 2.3% меньше отмен заказов водителем
👉На 2.1% меньше отмен заказов пассажиром
Получается, что благодаря более прозрачному статусу заказа уменьшаются шансы того, что пассажир забудет про такси.
Swift Homomorphic Encryption
Apple выпустили новую официальную библиотеку для гомоморфного шифрования. Если не вдаваться в детали, то это такой метод шифрования, который позволяет выполнять операции над секретными данными без знания ключа шифрования. Например, это помогает вынести тяжелые вычислительные операции на сервер, не нарушая при этом приватности для пользователя.
Apple выпустили новую официальную библиотеку для гомоморфного шифрования. Если не вдаваться в детали, то это такой метод шифрования, который позволяет выполнять операции над секретными данными без знания ключа шифрования. Например, это помогает вынести тяжелые вычислительные операции на сервер, не нарушая при этом приватности для пользователя.
Swift.org
Announcing Swift Homomorphic Encryption
We’re excited to announce a new open source Swift package for homomorphic
encryption in Swift:
swift-homomorphic-encryption.
encryption in Swift:
swift-homomorphic-encryption.
Обнаружение flaky тестов в Tuist
Tuist теперь умеет определять тесты, которые выдают неконсистентные результаты, хотя ни сам тест, ни тестируемый код не изменялись.
Tuist теперь умеет определять тесты, которые выдают неконсистентные результаты, хотя ни сам тест, ни тестируемый код не изменялись.