EasySwift iOS🍏
3.02K subscribers
269 photos
8 videos
395 links
ВсС самоС интСрСсноС Π² ΠΌΠΈΡ€Π΅ iOS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ πŸ§‘πŸ»β€πŸ’»

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒ: @EasySwiftBot

По всСм вопросам ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ @itereznikov
Download Telegram
Default Actor Isolation: New Problems from Good Intentions

πŸ†• Swift 6.2 приносит Π΄ΠΎΠ»Π³ΠΎΠΆΠ΄Π°Π½Π½ΠΎΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ β€” Default Actor Isolation, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мСняСт ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ конкурСнтности Π² Swift. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ вСсь ΠΊΠΎΠ΄ Ρ‚Π°Ρ€Π³Π΅Ρ‚Π° изолируСтся Π½Π° @MainActor, Ссли явно Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅. Π­Ρ‚ΠΎ сниТаСт количСство boilerplate-ΠΊΠΎΠ΄Π° с аннотациями  @MainActor  ΠΈ  Sendable , упрощая Тизнь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π² UI-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ ΠΈ эффСкты Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°:

➑️ Π”ΠΎ Swift 6.2 Π½Π΅Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ считался nonisolated, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ мноТСству ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ ошибок ΠΏΡ€ΠΈ строгой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ конкурСнтности, особСнно ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π½Π° самом Π΄Π΅Π»Π΅ всСгда выполнялся Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅.

➑️ Default Actor Isolation мСняСт это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅: Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ автоматичСски считаСтся ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π½Π° @MainActor.

➑️ Π’ Xcode 26 Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ эту настройку ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π° для старых Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π² настройках компилятора ΠΈΠ»ΠΈ Π² Swift Package Manager Ρ‡Π΅Ρ€Π΅Π· defaultIsolation(MainActor.self) 

➑️ nonisolated  сохраняСтся ΠΊΠ°ΠΊ способ явного Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· изоляции, Π½ΠΎ мСняСт сСмантику β€” асинхронныС nonisolated Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡƒΠΆΠ΅ Π½Π΅ β€œΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚β€ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ, Π° Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π΅Π΅ ΠΎΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ контСкста.

➑️ Π’Π°ΠΆΠ½ΠΎ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ  nonisolated  ΠΈ  @concurrent , особСнно Π² слоТных ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… сцСнариях.

❓ Новый ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сниТаСт ΡˆΡƒΠΌ ошибок ΠΏΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Swift 6 ΠΈ стимулируСт Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ использованиС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ программирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘4❀2
What's New in UIKit

ΠŸΡ€ΠΈΠ½Π΅Ρ Π²Π°ΠΌ супСр Π»ΠΎΠ½Π³ Ρ€ΠΈΠ΄ ΠΏΡ€ΠΎ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² UIKit Π² 26 iOS. 64 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ - самоС Ρ‚ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… 🍷

Π’ΠΎΡ‚ основныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ‚Π΅ΠΌΡ‹, освСщённыС Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅:

➑️ ОбновлСния UIAction ΠΈ UIApplicationDelegate: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ дСйствий ΠΈ происходит постСпСнный ΠΎΡ‚Ρ…ΠΎΠ΄ ΠΎΡ‚  UIApplicationDelegate  Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π±ΠΎΠ»Π΅Π΅ соврСмСнных  UISceneDelegate  ΠΈ  UIWindowSceneDelegate 

➑️ НовыС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ эффСкты ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹: Π²Π²Π΅Π΄Ρ‘Π½ Π½ΠΎΠ²Ρ‹ΠΉ класс  UIGlassEffect  с эффСктами Liquid Glass, Π½ΠΎΠ²Ρ‹Π΅ API для сглаТивания ΡƒΠ³Π»ΠΎΠ² Π² Π²ΠΈΠ΄Π΅  UICornerConfiguration  ΠΈ  UICornerRadius . Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ для ΠΊΠ½ΠΎΠΏΠΎΠΊ (UIButton.Configuration ΠΈ элСмСнтов Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ UIBarButtonItem, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½ΠΎΠ²Ρ‹Π΅ стили, Π±Π΅ΠΉΠ΄ΠΆΠΈ ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

➑️ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° HDR-Ρ†Π²Π΅Ρ‚ΠΎΠ²: Π²  UIColor  ΠΈ связанных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ конструкторы ΠΈ свойства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с HDR, Π° Π² UIColorPickerViewController  Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ HDR-лайтбокс.

➑️ Π Π°ΡΡˆΠΈΡ€Π΅Π½Π° систСма мСню с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ для Ρ‚ΠΎΠ½ΠΊΠΎΠΉ настройки Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню iPadOS ΠΈ контСкстных мСню, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ фокусного Π²Ρ‹Π±ΠΎΡ€Π° мСню.

➑️ Π½ΠΎΠ²Ρ‹Π΅ свойства для  UINavigationItem  ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ комплСксныС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ‚ΠΈΡ‚ΡƒΠ»ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ТСстов для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ закрытия экранов ΠΈ размСщСния поисковых ΠΏΠ°Π½Π΅Π»Π΅ΠΉ.

➑️ Π½ΠΎΠ²Ρ‹ΠΉ класс  UIScrollEdgeEffect  позволяСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эффСкты Π½Π° краях скроллов, Π° появилось Ρ‚Π°ΠΊΠΆΠ΅ взаимодСйствиС UIScrollEdgeElementContainerInteraction  для кастомных элСмСнтов.
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘3
Getting access to the user’s calendar

πŸ—“ Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€Π΅ΠΌ ΠΈ напоминаниями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ EventKitt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ инструмСнты для создания ΠΈ получСния событий.

πŸ”΄ ΠŸΠ΅Ρ€Π΅Π΄ доступом ΠΊ ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² настройках ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: Privacy - Calendars Full Access Usage Description ΠΈ Privacy - Reminders Full Access Usage Description.

πŸ–₯ Для запроса доступа ΠΊ событиям ΠΈ напоминаниям ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ requestFullAccessToEvents ΠΈ requestFullAccessToReminders, Π° Ρ‚Π°ΠΊΠΆΠ΅ requestWriteOnlyAccessToEvents для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ чтСния калСндаря.

⚠️ Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° authorizationStatus(for:), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния EKAuthorizationStatus, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ fullAccess, writeOnly, denied, notDetermined ΠΈ restricted.

➑️ РСкомСндуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ CalendarPermissionsViewModel, для управлСния статусом доступа ΠΊ ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŽ ΠΈ напоминаниям, Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов Π½Π° доступ.
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘4
Inspect & optimize Image Decoding timing in iOS

βŒ› Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² iOS происходит Π² основном ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π²ΠΎ врСмя Ρ„Π°Π·Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Core Animation, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ зависания прилоТСния ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими изобраТСниями.

βš™οΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ UIKit, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ prepareForDisplay ΠΈ prepareThumbnail, для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² основном ΠΏΠΎΡ‚ΠΎΠΊΠ΅.

➑️ Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ImageIO для создания ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ копирования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ основной ΠΈ графичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

⚠️ ИспользованиС API UIImageReader Π² iOS 17 ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ исправлСны Π² iOS 18.

Getting HDR UIImage in iOS 17 and display it in a UIImageView will result in major memory leak internally. Apple have fixed this issue on iOS 18
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘3❀2
High Level Anatomy of a Camera Capturing Session

❓ ΠšΠ°ΠΌΠ΅Ρ€Π° ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ слуТат источником для Π·Π°Ρ…Π²Π°Ρ‚Π° Π²ΠΈΠ΄Π΅ΠΎ, Ρ„ΠΎΡ‚ΠΎ ΠΈΠ»ΠΈ Π°ΡƒΠ΄ΠΈΠΎ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ заднюю ΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

ℹ️ Π’Ρ‹Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ„ΠΎΡ‚ΠΎ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° дискС ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ для распознавания Π»ΠΈΡ† ΠΈ примСнСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ².

➑️ AVCaptureSession являСтся Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ управляСт Π²Ρ…ΠΎΠ΄Π°ΠΌΠΈ, Π²Ρ‹Ρ…ΠΎΠ΄Π°ΠΌΠΈ ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ слоями для Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΌΠ΅Π΄ΠΈΠ°.

❓ ΠœΠ΅Ρ‚ΠΎΠ΄ capturePhoto асинхронный, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π°Ρ…Π²Π°Ρ‚ Ρ„ΠΎΡ‚ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ врСмя ΠΈΠ·-Π·Π° фокусировки ΠΈ экспозиции.

➑️ AVCapturePhoto - это Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄, PHAsset - ссылка Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, CGImage - это битовая ΠΊΠ°Ρ€Ρ‚Π°, Π° Image Π² SwiftUI - Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС.
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘3
Certificate Pinning on iOS in Practice

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ certificate pining ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ.

⚠️ Основная Ρ†Π΅Π»ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ certificate pining β€” Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊ Ρ‚ΠΈΠΏΠ° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ посСрСдинС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ уязвимости API.

πŸ–₯ Certificate pining Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ сСртификатов, состоящСй ΠΈΠ· ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ сСртификатов, с Π°ΠΊΡ†Π΅Π½Ρ‚ΠΎΠΌ Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ сСртификат для обСспСчСния бСзопасности соСдинСния.

ℹ️ МоТно ΠΏΠΈΠ½Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ вСсь сСртификат, Ρ‚Π°ΠΊ ΠΈ Π΅Π³ΠΎ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ сСртификатами, особСнно ΠΏΡ€ΠΈ ΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ.

❗️ ОбновлСниС сСртификатов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ обновлСния прилоТСния. РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΈΠ½Π½ΠΈΠ½Π³ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ обновлСния сСртификатов Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ CloudKit.

βš™οΈ Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ certificate pining Π² iOS Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ URLSessionDelegate для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… сСртификатов.
Please open Telegram to view this post
VIEW IN TELEGRAM