Напевно багато хто чув про Test-Driven Development (той самий TDD). Але мало хто його використовує. Так от якщо ви раптом захочете почати його використовувати, або вам просто цікаво трохи детальніше розібратися в цій темі, то ось непоганий матеріал з прикладами!
👉 https://www.avanderlee.com/workflow/test-driven-development-tdd-for-bug-fixes-in-swift/
🇺🇦 iOSDevUA
👉 https://www.avanderlee.com/workflow/test-driven-development-tdd-for-bug-fixes-in-swift/
🇺🇦 iOSDevUA
SwiftLee
Test-Driven Development (TDD) for bug fixes in Swift
Test-driven development increases code quality, test code coverage, and codebase confidence. You'll prevent bugs from returning.
This media is not supported in your browser
VIEW IN TELEGRAM
💡Реліз SystemNotification 1.0
SystemNotification – бібліотека, яка допомагає реалізовувати сповіщення в SwiftUI, повторюючи зовнішній вигляд та поведінку системних попапів. Можна як кастомізувати стандартний вигляд сповіщення, задавши іконку та текст, так і додавати свою в'юху.
🔗 Getting Started
🔗 Демо додаток
🇺🇦 iOSDevUA
SystemNotification – бібліотека, яка допомагає реалізовувати сповіщення в SwiftUI, повторюючи зовнішній вигляд та поведінку системних попапів. Можна як кастомізувати стандартний вигляд сповіщення, задавши іконку та текст, так і додавати свою в'юху.
🔗 Getting Started
🔗 Демо додаток
🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Стаття про те, як додати такий чудовий «stretchable & sticky» хедер, який, по суті, буде розтягуватися і прижиматися до верху екрана в залежності від вашого скролу. При використанні SwiftUI, звичайно, тому що для UIKit таких статей море і вже давно всіми прочитані (сподіваюся)!
👉 https://danielsaidi.com/blog/2023/02/09/adding-a-sticky-header-to-a-swiftui-scroll-view
🇺🇦 iOSDevUA
👉 https://danielsaidi.com/blog/2023/02/09/adding-a-sticky-header-to-a-swiftui-scroll-view
🇺🇦 iOSDevUA
👍2🔥1
💡KeyPath в Swift
Чудовий розбір того, як працюють KeyPath у Swift, для чого вони потрібні, і які неочевидні можливості в них є.
👉 KeyPath літерал можна конвертувати в функцію виду
👉 KeyPath'и можна комбінувати один з одним через функцію
👉 У KeyPath можна зашити доступ за індексом до будь-якого з параметрів
👉 Можна визначати свої атрибути через
👉 З KeyPath працює вивід типів
🇺🇦 iOSDevUA
Чудовий розбір того, як працюють KeyPath у Swift, для чого вони потрібні, і які неочевидні можливості в них є.
👉 KeyPath літерал можна конвертувати в функцію виду
(Root) -> Value👉 KeyPath'и можна комбінувати один з одним через функцію
.appending👉 У KeyPath можна зашити доступ за індексом до будь-якого з параметрів
👉 Можна визначати свої атрибути через
@dynamicMemberLookup👉 З KeyPath працює вивід типів
🇺🇦 iOSDevUA
💪 Ефект 3D-каруселі в iOS
Джанум Триведі продемонстрував, як можна реалізувати таке відображення у своєму додатку.
Щоб показати фізично точне викривлення перспективи, він створив 3D-циліндр і наклав зображення на його поверхню.
Проте, якщо самі зображення не знаходяться на
Насправді існує суперширокий, невидимий
І вже після цього модель підсвічується розсіяним світлом, що і створює природні тіні на краях диска. На зображенні показано, як виглядає реалізований ефект «під капотом» на базі
🇺🇦 iOSDevUA
Джанум Триведі продемонстрував, як можна реалізувати таке відображення у своєму додатку.
Щоб показати фізично точне викривлення перспективи, він створив 3D-циліндр і наклав зображення на його поверхню.
Проте, якщо самі зображення не знаходяться на
ScrollView, то як тоді вдається такий ефект фізики?Насправді існує суперширокий, невидимий
scrollview, який сприймає жест прокрутки та відповідає йому contentOffset з обертанням 3D-моделі.І вже після цього модель підсвічується розсіяним світлом, що і створює природні тіні на краях диска. На зображенні показано, як виглядає реалізований ефект «під капотом» на базі
SceneKit.🇺🇦 iOSDevUA
💡Навіщо додавати озвучення в додаток
Озвучення дій в додатку може бути як найбільш дратуючим елементом UX, так і одним із найцікавіших. При цьому, у багатьох користувачів звук зазвичай вимкнений за замовчуванням. У статті розглядається, навіщо включати озвучення в своє додаток, як зробити його запам'ятовуваним і не надокучливим, і звідки взагалі брати матеріали для звуків. І все це - на живих прикладах!
👉 https://www.notboring.software/words/the-sound-of-software
🇺🇦 iOSDevUA
Озвучення дій в додатку може бути як найбільш дратуючим елементом UX, так і одним із найцікавіших. При цьому, у багатьох користувачів звук зазвичай вимкнений за замовчуванням. У статті розглядається, навіщо включати озвучення в своє додаток, як зробити його запам'ятовуваним і не надокучливим, і звідки взагалі брати матеріали для звуків. І все це - на живих прикладах!
👉 https://www.notboring.software/words/the-sound-of-software
🇺🇦 iOSDevUA
notbor.ing
The Sound of Software | !Boring Software
How to design sound that elevates software and won't drive you crazy
🔥iPad Pro на M4, iPad Air та Apple Pencil Pro. Що нового презентувала Apple на заході Let Loose
Apple провела захід Let Loose, присвячений новим iPad. Уперше за два роки Apple презентувала нові моделі iPad, новий Apple Pencil та клавіатуру.
👉 iPad Air на M2
Перша новинка, яку презентувала Apple — iPad Air. Він доступний у двох розмірах: 11-дюймовий та 13-дюймовий дисплеї. iPad Air оснащений чипом M2, у компанії кажуть, що він приблизно на 50 % швидший за М1, а сам планшет — десь утричі швидший за iPad Air 2020 року.
👉 iPad Pro на M4
Друга новинка – iPad Pro на чипі M4. Планшети стали першими пристроями Apple, у яких використали нові M4. Чип має збільшити продуктивність, також він орієнтований на роботу із ШІ. iPad Pro також доступний у двох розмірах (11 і 13 дюймів) та у двох кольорах. Обидва варіанти матиють OLED-дисплей.
👉 Чип M4
А тепер власне трохи про сам чип М4. Він оснащений новим механізмом відображення та оновленими ядрами CPU та GPU. Пропускна здатність пам’яті була покращена до 120 ГБ/с, і вперше для лінійки iPad Apple додала підтримку динамічного кешування, апаратно-прискореної трасування променів і апаратно-прискореного затінення сітки.
M4 також оснащено оновленим 16-ядерним нейронним механізмом, здатним виконувати до 38 трильйонів операцій на секунду, що в 60 разів швидше, ніж перший NPU компанії A11 Bionic. Деякі інші можливості M4 включають апаратне прискорення AV1 — уперше для лінійки iPad — і зменшені вимоги до пам’яті під час виконання робочих навантажень.
👉 Apple Pencil Pro
Користувачі iPad довго чекали й нарешті дочекалися нового Apple Pencil Pro. У компанії його називають революційним рішенням. Пристрій містить новий датчик у корпусі, який реагує на натискання. Це, наприклад, дозволяє викликати палітру інструментів Procreate, не не використовуючи другу руку.
🇺🇦 iOSDevUA
Apple провела захід Let Loose, присвячений новим iPad. Уперше за два роки Apple презентувала нові моделі iPad, новий Apple Pencil та клавіатуру.
👉 iPad Air на M2
Перша новинка, яку презентувала Apple — iPad Air. Він доступний у двох розмірах: 11-дюймовий та 13-дюймовий дисплеї. iPad Air оснащений чипом M2, у компанії кажуть, що він приблизно на 50 % швидший за М1, а сам планшет — десь утричі швидший за iPad Air 2020 року.
👉 iPad Pro на M4
Друга новинка – iPad Pro на чипі M4. Планшети стали першими пристроями Apple, у яких використали нові M4. Чип має збільшити продуктивність, також він орієнтований на роботу із ШІ. iPad Pro також доступний у двох розмірах (11 і 13 дюймів) та у двох кольорах. Обидва варіанти матиють OLED-дисплей.
👉 Чип M4
А тепер власне трохи про сам чип М4. Він оснащений новим механізмом відображення та оновленими ядрами CPU та GPU. Пропускна здатність пам’яті була покращена до 120 ГБ/с, і вперше для лінійки iPad Apple додала підтримку динамічного кешування, апаратно-прискореної трасування променів і апаратно-прискореного затінення сітки.
M4 також оснащено оновленим 16-ядерним нейронним механізмом, здатним виконувати до 38 трильйонів операцій на секунду, що в 60 разів швидше, ніж перший NPU компанії A11 Bionic. Деякі інші можливості M4 включають апаратне прискорення AV1 — уперше для лінійки iPad — і зменшені вимоги до пам’яті під час виконання робочих навантажень.
👉 Apple Pencil Pro
Користувачі iPad довго чекали й нарешті дочекалися нового Apple Pencil Pro. У компанії його називають революційним рішенням. Пристрій містить новий датчик у корпусі, який реагує на натискання. Це, наприклад, дозволяє викликати палітру інструментів Procreate, не не використовуючи другу руку.
🇺🇦 iOSDevUA
👍1
📲 Apple випускає Release Candidate для розробників для iOS 17.5, iPadOS та інші.
Release Notes:
👉 iOS & iPadOS 17.5 RC (21F79)
👉 tvOS 17.5 RC (21L569)
👉 visionOS 1.2 beta 5 (21O5587a)
👉 watchOS 10.5 RC (21T575)
👉 iOS & iPadOS 16.7.8 RC (20H343)
🇺🇦 iOSDevUA
Release Notes:
👉 iOS & iPadOS 17.5 RC (21F79)
👉 tvOS 17.5 RC (21L569)
👉 visionOS 1.2 beta 5 (21O5587a)
👉 watchOS 10.5 RC (21T575)
👉 iOS & iPadOS 16.7.8 RC (20H343)
🇺🇦 iOSDevUA
💡Дуже інформативний матеріал про Optional'и в Swift!
Досвідчені розробники, ймовірно, не знайдуть багато нового, але новачкам точно буде корисно.
До речі, деякі частини, які розглядаються в статті, часто запитують на співбесідах, тому знайомство з цим точно варте уваги.
Якщо коротко, автор розповідає про те, що таке Optional'и, що вони представляють з себе «під капотом», як їх використовувати, які наслідки є 👍
👉 https://www.avanderlee.com/swift/optionals-in-swift-explained-5-things-you-should-know/
🇺🇦 iOSDevUA
Досвідчені розробники, ймовірно, не знайдуть багато нового, але новачкам точно буде корисно.
До речі, деякі частини, які розглядаються в статті, часто запитують на співбесідах, тому знайомство з цим точно варте уваги.
Якщо коротко, автор розповідає про те, що таке Optional'и, що вони представляють з себе «під капотом», як їх використовувати, які наслідки є 👍
👉 https://www.avanderlee.com/swift/optionals-in-swift-explained-5-things-you-should-know/
🇺🇦 iOSDevUA
SwiftLee
Optionals in Swift explained: 5 things you should know
Optionals in Swift can be unwrapped (!) in multiple ways. As it's defined as an enum you can do more advanced implementations as well.
💡Компіляція Swift у Wasm для створення кросплатформних бібліотек
Виступ розробника з Core команди Swift про те, як працює його компіляція у WebAssembly та інтероп з C++. Результатом стала бібліотека, яка працює у браузері, macOS, Linux та Windows.
👉 https://youtube.com/watch?v=6yxPavqB144
🇺🇦 iOSDevUA
Виступ розробника з Core команди Swift про те, як працює його компіляція у WebAssembly та інтероп з C++. Результатом стала бібліотека, яка працює у браузері, macOS, Linux та Windows.
👉 https://youtube.com/watch?v=6yxPavqB144
🇺🇦 iOSDevUA
YouTube
Multi-Platform Libraries With Swift for WebAssembly by Max Desiatov @ Wasm I/O 2024
Wasm I/O 2024 - Barcelona, 14-15 March
WebAssembly support in Swift started as a community project and over the years evolved into an ecosystem of libraries and developer tools. The talk showcases features of Swift, including its ability to seamlessly interoperate…
WebAssembly support in Swift started as a community project and over the years evolved into an ecosystem of libraries and developer tools. The talk showcases features of Swift, including its ability to seamlessly interoperate…
This media is not supported in your browser
VIEW IN TELEGRAM
🚀Sticker Wall - Створення голографічного ефекту в SwiftUI
🤩 Ефект на відео — лінійний градієнтний шар, який змінює свої значення залежно від відносного положення нахилу та обертання пристрою.
У цьому прототипі кожен стікер — це View (і для кожного свої значення кута нахилу, обертання, CMMotionManager та таймери), що призводило до перегріву пристрою при 99%-му завантаженні процесора.
Тому були прийняті рішення для оптимізації:
1️⃣ Перенести весь код, пов’язаний з рухом, в єдиний об’єкт ObservableObject.
2️⃣ Використовувати один таймер для всіх змін значень.
3️⃣ Запускати всі зміни тільки один раз за цикл таймера.
І хоча процесор все одно показує навантаження у 45%, це вже краще початкових результатів.
🔗 Усю історію створення можна подивитися тут 👉 https://twitter.com/danielkorpai/status/1787488924400550160
🇺🇦 iOSDevUA
🤩 Ефект на відео — лінійний градієнтний шар, який змінює свої значення залежно від відносного положення нахилу та обертання пристрою.
У цьому прототипі кожен стікер — це View (і для кожного свої значення кута нахилу, обертання, CMMotionManager та таймери), що призводило до перегріву пристрою при 99%-му завантаженні процесора.
Тому були прийняті рішення для оптимізації:
1️⃣ Перенести весь код, пов’язаний з рухом, в єдиний об’єкт ObservableObject.
2️⃣ Використовувати один таймер для всіх змін значень.
3️⃣ Запускати всі зміни тільки один раз за цикл таймера.
І хоча процесор все одно показує навантаження у 45%, це вже краще початкових результатів.
🔗 Усю історію створення можна подивитися тут 👉 https://twitter.com/danielkorpai/status/1787488924400550160
🇺🇦 iOSDevUA
👍1
💡Xamarin все
Кінець епохи. Починаючи з 1 травня, Microsoft офіційно припинив підтримку всіх SDK Xamarin, включаючи Xamarin.Forms. Усіх, хто ще не встиг переїхати, закликають мігрувати на MAUI.
🇺🇦 iOSDevUA
Кінець епохи. Починаючи з 1 травня, Microsoft офіційно припинив підтримку всіх SDK Xamarin, включаючи Xamarin.Forms. Усіх, хто ще не встиг переїхати, закликають мігрувати на MAUI.
🇺🇦 iOSDevUA
💡Розробка бібліотеки з урахуванням strict concurrency
Детальний гайд з того, як дизайнити Swift бібліотеку, яка буде компілюватися без попереджень у режимі strict-concurrency. Автор аналізує купу проблем і компромісів, з якими вам також доведеться зіткнутися.
👉 https://rhonabwy.com/2024/04/29/designing-a-swift-library-with-data-race-safety/
🇺🇦 iOSDevUA
Детальний гайд з того, як дизайнити Swift бібліотеку, яка буде компілюватися без попереджень у режимі strict-concurrency. Автор аналізує купу проблем і компромісів, з якими вам також доведеться зіткнутися.
👉 https://rhonabwy.com/2024/04/29/designing-a-swift-library-with-data-race-safety/
🇺🇦 iOSDevUA
Rhonabwy
Designing a Swift library with data-race safety
I cut an initial release (0.1.0-alpha) of the library automerge-repo-swift. A supplemental library to Automerge swift, it adds background networking for sync and storage capabilities. The library e…
💡Про defer у Swift, коротко, з поясненнями та прикладами. Дуже сподіваюсь, що це буде корисно лише новачкам, інакше не знаю, як ви досі без цього жили. Річ дуже стара і дуже корисна 👍
👉 https://www.donnywals.com/what-is-defer-in-swift/
🇺🇦 iOSDevUA
👉 https://www.donnywals.com/what-is-defer-in-swift/
🇺🇦 iOSDevUA
Donny Wals
What is defer in Swift? – Donny Wals
Sometimes, we write code that needs set some state or perform some work at the start of a function and at the end of that same function we might have to reset that state, or perform some cleanup…
👍1
💡У Apple так багато всього, що вони зробили роадмапи. Всі категорії на скріншоті.
Вибираєте потрібну, а всередині вас структурно проведуть через документацію та відео-тюторіали у правильному порядку.
Назвали🗺 Pathways.
🇺🇦 iOSDevUA
Вибираєте потрібну, а всередині вас структурно проведуть через документацію та відео-тюторіали у правильному порядку.
Назвали
🇺🇦 iOSDevUA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
💪Доповіді з конференції try! Swift Tokyo 2024
try! Swift Tokyo — мабуть, одна з найпопулярніших конференцій по iOS у світі. Сподіваюся, колись вдасться цілеспрямовано потрапити і на неї.
Серед представлених 20+ доповідей я б рекомендував звернути увагу принаймні на ці:
📺 Виведення типів у Swift (пріоритет перевантаження, проблеми відповідності протоколу і чому компіляція коду може стати затратною)
📺 Code signing — розбір проблем.
📺 File Provider на iOS та macOS і всі пов’язані з ним можливості.
📺 Майбутнє сумісності C++: досвід перенесення гри на Swift.
📺 Взаємодія з сокетами та паралельна обробка у Swift (це відео вже в моєму обраному).
🔗 А весь плейлист доступний за цим посиланням.
🇺🇦 iOSDevUA
try! Swift Tokyo — мабуть, одна з найпопулярніших конференцій по iOS у світі. Сподіваюся, колись вдасться цілеспрямовано потрапити і на неї.
Серед представлених 20+ доповідей я б рекомендував звернути увагу принаймні на ці:
📺 Виведення типів у Swift (пріоритет перевантаження, проблеми відповідності протоколу і чому компіляція коду може стати затратною)
📺 Code signing — розбір проблем.
📺 File Provider на iOS та macOS і всі пов’язані з ним можливості.
📺 Майбутнє сумісності C++: досвід перенесення гри на Swift.
📺 Взаємодія з сокетами та паралельна обробка у Swift (це відео вже в моєму обраному).
🔗 А весь плейлист доступний за цим посиланням.
🇺🇦 iOSDevUA
👍1