💪Доповіді з конференції 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
💡Подкаст з менеджером команди компілятора Swift
Випуск подкасту Swift Package Indexing з Голлі Борла, менеджером Swift Compiler Team. Весь випуск зосереджений на змінах у Swift 6.
Якщо ви не хочете слухати випуск, то можете відкрити його автогенерований транскрипт в Apple Podcasts – функція з'явилася зовсім нещодавно.
🇺🇦 iOSDevUA
Випуск подкасту Swift Package Indexing з Голлі Борла, менеджером Swift Compiler Team. Весь випуск зосереджений на змінах у Swift 6.
Якщо ви не хочете слухати випуск, то можете відкрити його автогенерований транскрипт в Apple Podcasts – функція з'явилася зовсім нещодавно.
🇺🇦 iOSDevUA
💡Детальний матеріал про обробку помилок у Swift.
Багато різних прикладів, як це можна реалізувати. Йдеться про варіації catch, звичайно 👍
👉 https://sarunw.com/posts/different-ways-to-catch-throwing-errors-in-swift/
🇺🇦 iOSDevUA
Багато різних прикладів, як це можна реалізувати. Йдеться про варіації catch, звичайно 👍
👉 https://sarunw.com/posts/different-ways-to-catch-throwing-errors-in-swift/
🇺🇦 iOSDevUA
Sarunw
Different ways to catch throwing errors from Swift do-catch | Sarunw
It is tempting to just catch all a throwing error in a single catch clause and call it a day, but not all errors are created equals, and you should treat it as such.
👍1
💡Сервіс для тестування універсальних посилань в iOS
З'явилася спеціальна утиліта для розробників, яка спрощує процес тестування універсальних посилань (спеціальних URL-адрес, які ведуть на певний контент у вашому додатку).
Платформа запитує останній AASA-файл з серверів Apple та генерує просту панель керування для тестування.
Наприклад, можна побачити, як поводиться кожне посилання, перевірити налаштування та виявити регресії. І ще не важливо, скільки додатків підтримує ваш AASA-файл (протестувати можна їх усі).
Бонус: платформа також повідомить, коли оновиться кешована версія AASA-файлу.
🔗 Перевірити сервіс можна тут 👉 https://getuniversal.link/
📖 А документацію можна знайти тут 👉 https://digitalbunker.dev/launching-getuniversal-link/
🇺🇦 iOSDevUA
З'явилася спеціальна утиліта для розробників, яка спрощує процес тестування універсальних посилань (спеціальних URL-адрес, які ведуть на певний контент у вашому додатку).
Платформа запитує останній AASA-файл з серверів Apple та генерує просту панель керування для тестування.
Наприклад, можна побачити, як поводиться кожне посилання, перевірити налаштування та виявити регресії. І ще не важливо, скільки додатків підтримує ваш AASA-файл (протестувати можна їх усі).
Бонус: платформа також повідомить, коли оновиться кешована версія AASA-файлу.
🔗 Перевірити сервіс можна тут 👉 https://getuniversal.link/
📖 А документацію можна знайти тут 👉 https://digitalbunker.dev/launching-getuniversal-link/
🇺🇦 iOSDevUA
Привіт, тепер по вівторках в каналі буде виходити дайджест з найцікавішими новинами у iOS світі 🙂
Hello everyone! New iOS weekly digest is here!
🚀🚀🚀 Last Week at Apple 🚀 🚀 🚀
WWDC Index
An unofficial index of sessions from WWDC with information about 3428 sessions, from 2000 to 2023, plus various Tech Talks:
https://nonstrict.eu/wwdcindex/
Animations: Bringing the Host Passport to Life on iOS
Very interesting article from Airbnb about passport animation in iOS app.
How Airbnb enabled hosts and guests to connect and introduce themselves through the Host Passport:
https://medium.com/airbnb-engineering/animations-bringing-the-host-passport-to-life-on-ios-72856aea68a7
If you looking for a migration guide from Cocoapods to Tuist please check this very detailed article.
Migrating from CocoaPods to Tuist at Playtomic
In the constantly changing world of software development, embracing change and innovation is crucial for staying ahead. At Playtomic, we recognized the need for improving our build system and planned to make a big change by migrating our 4 years old dependency management system from "Manual project management” + CocoaPods to Tuist.
This shift was all about improving the project structure, simplifying development processes, cleaner build configurations, compatibility with Swift Packages and modern SwiftUI projects and giving the overall development experience a huge boost:
https://dev.to/playtomic/migrating-from-cocoapods-to-tuist-at-playtomic-26ed
Looks like we are so close to Android world of different devices and sizes 🙂 Make sure to check this great article about iPad screen sizes.
iPad 2024 Screen Sizes
The 2024 iPad release updates both iPad Pro and iPad Air models. Here’s a recap of what you need to know when updating your apps for the new devices:
https://useyourloaf.com/blog/ipad-2024-screen-sizes
The Dark Side of Unidirectional Architectures in Swift
https://medium.com/the-swift-cooperative/the-dark-side-of-unidirectional-architectures-in-swift-e4acf243ff1c
The Composable Architecture: My 3 Year Experience
I recently finished a 3 year stint with a company that uses the Composable Architecture (TCA) from PointFree. I wanted to write about my experiences with TCA and some of the problems I see with it.
I think Brandon Williams and Stephen Cellis, the creators of TCA, are absolutely brilliant, and what they have managed to pull off with the creation of TCA is amazing. However, It’s just the two of them, and nobody, or no thing, is perfect:
https://rodschmidt.com/posts/composable-architecture-experience
#iOS_Design
Apple already added templates for new iPad to Sketch:
https://developer.apple.com/design/resources/#product-bezels
Hello everyone! New iOS weekly digest is here!
🚀🚀🚀 Last Week at Apple 🚀 🚀 🚀
WWDC Index
An unofficial index of sessions from WWDC with information about 3428 sessions, from 2000 to 2023, plus various Tech Talks:
https://nonstrict.eu/wwdcindex/
Animations: Bringing the Host Passport to Life on iOS
Very interesting article from Airbnb about passport animation in iOS app.
How Airbnb enabled hosts and guests to connect and introduce themselves through the Host Passport:
https://medium.com/airbnb-engineering/animations-bringing-the-host-passport-to-life-on-ios-72856aea68a7
If you looking for a migration guide from Cocoapods to Tuist please check this very detailed article.
Migrating from CocoaPods to Tuist at Playtomic
In the constantly changing world of software development, embracing change and innovation is crucial for staying ahead. At Playtomic, we recognized the need for improving our build system and planned to make a big change by migrating our 4 years old dependency management system from "Manual project management” + CocoaPods to Tuist.
This shift was all about improving the project structure, simplifying development processes, cleaner build configurations, compatibility with Swift Packages and modern SwiftUI projects and giving the overall development experience a huge boost:
https://dev.to/playtomic/migrating-from-cocoapods-to-tuist-at-playtomic-26ed
Looks like we are so close to Android world of different devices and sizes 🙂 Make sure to check this great article about iPad screen sizes.
iPad 2024 Screen Sizes
The 2024 iPad release updates both iPad Pro and iPad Air models. Here’s a recap of what you need to know when updating your apps for the new devices:
https://useyourloaf.com/blog/ipad-2024-screen-sizes
The Dark Side of Unidirectional Architectures in Swift
https://medium.com/the-swift-cooperative/the-dark-side-of-unidirectional-architectures-in-swift-e4acf243ff1c
The Composable Architecture: My 3 Year Experience
I recently finished a 3 year stint with a company that uses the Composable Architecture (TCA) from PointFree. I wanted to write about my experiences with TCA and some of the problems I see with it.
I think Brandon Williams and Stephen Cellis, the creators of TCA, are absolutely brilliant, and what they have managed to pull off with the creation of TCA is amazing. However, It’s just the two of them, and nobody, or no thing, is perfect:
https://rodschmidt.com/posts/composable-architecture-experience
#iOS_Design
Apple already added templates for new iPad to Sketch:
https://developer.apple.com/design/resources/#product-bezels
🔥3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
💡Анімація паспорта в Airbnb
Інженери з Airbnb крок за кроком розповідають, як вони створили складну анімацію відкривання паспорта. А якщо ви хочете дізнатися більше про їхню систему роботи з анімаціями загалом, прочитайте одну з попередніх статей.
🇺🇦 iOSDevUA
Інженери з Airbnb крок за кроком розповідають, як вони створили складну анімацію відкривання паспорта. А якщо ви хочете дізнатися більше про їхню систему роботи з анімаціями загалом, прочитайте одну з попередніх статей.
🇺🇦 iOSDevUA
👍2
💡Swift Argument Parser Guide — створення власних інструментів
Посібник наразі складається з трьох великих частин, які дозволять створити власні утиліти (з аналізом команд, аргументів та прикладами).
1️⃣ Основи та аргументи.
У першій частині розглянуті основи аналізатора аргументів, способи підготовки інструментів, команди та підкоманди.
2️⃣ Flags.
У цій частині ви дізнаєтесь про прапорці та специфікації імен на інтерактивному прикладі.
3️⃣ Опції, перевірка вводу та варіанти завершення.
У цій частині описані параметри (та їх групи), перевірка вводу і, нарешті, варіанти завершення роботи (з кастомізацією тексту помилок та розбором ситуацій, коли щось пішло не за планом).
🇺🇦 iOSDevUA
Посібник наразі складається з трьох великих частин, які дозволять створити власні утиліти (з аналізом команд, аргументів та прикладами).
1️⃣ Основи та аргументи.
У першій частині розглянуті основи аналізатора аргументів, способи підготовки інструментів, команди та підкоманди.
2️⃣ Flags.
У цій частині ви дізнаєтесь про прапорці та специфікації імен на інтерактивному прикладі.
3️⃣ Опції, перевірка вводу та варіанти завершення.
У цій частині описані параметри (та їх групи), перевірка вводу і, нарешті, варіанти завершення роботи (з кастомізацією тексту помилок та розбором ситуацій, коли щось пішло не за планом).
🇺🇦 iOSDevUA
👍1
💡Хороший матеріал про час збірки в Xcode. Про те, як стежити за цим і чому це важливо.
Звісно, тут автор не обходиться без реклами свого інструменту RocketSim, який насправді прикольний, і ми вже про нього постили, але навіть якщо пропустити цей момент, стаття дійсно корисна.
З цікавого тут є те, що важливо не лише стежити за часом збірки, розуміти, чи просів він у вашому проєкті, чи покращився з новим Xcode тощо, але також важливо порівнювати час збірки на вашому пристрої з часом збірки на пристроях колег. Можливо, придбати вам потужніший ноутбук буде навіть вигідніше для компанії з погляду витрат 😀
👉 https://www.avanderlee.com/xcode/xcode-build-insights-keep-track-of-project-compilation-times/
🇺🇦 iOSDevUA
Звісно, тут автор не обходиться без реклами свого інструменту RocketSim, який насправді прикольний, і ми вже про нього постили, але навіть якщо пропустити цей момент, стаття дійсно корисна.
З цікавого тут є те, що важливо не лише стежити за часом збірки, розуміти, чи просів він у вашому проєкті, чи покращився з новим Xcode тощо, але також важливо порівнювати час збірки на вашому пристрої з часом збірки на пристроях колег. Можливо, придбати вам потужніший ноутбук буде навіть вигідніше для компанії з погляду витрат 😀
👉 https://www.avanderlee.com/xcode/xcode-build-insights-keep-track-of-project-compilation-times/
🇺🇦 iOSDevUA
SwiftLee
Xcode Build Insights: Keep track of project compilation times
Improve your Xcode build times and boost productivity with Xcode Build Insights. Keep track of compilation times for better performance.
💡Підбірка великих iOS-додатків з відкритим кодом
Більшість додатків з багатомільйонною аудиторією не публікують свої рішення (з очевидних причин, адже це може допомогти не тільки конкурентам, але й тим, хто хотів би ними стати).
Незважаючи на це, деякі дійсно масштабні проекти все-таки викладають код. І це непоганий спосіб покращити свої навички (читання коду, вибору архітектури, пошуку відповідей на складні питання).
Ось кілька додатків у опенсорсі:
1️⃣ ProtonMail — популярний поштовий клієнт для зашифрованих листів.
2️⃣ Signal — якщо вам потрібно реалізувати у своєму додатку якісь функції для чату, цей проєкт може стати чудовим джерелом натхнення.
3️⃣ VLC — мабуть, найпопулярніший кросплатформенний медіаплеєр з відкритим вихідним кодом.
4️⃣ Kickstarter — платформа для краудфандингових проєктів.
У цьому додатку зроблено вибір на користь функціонального підходу до програмування, який підтримується завдяки впровадженню кількох кастомних операторів.
Можливо, вам буде цікаво, як такий підхід працює на прикладі настільки масштабного додатку.
5️⃣ Telegram iOS — далеко не завжди очевидні підходи (і іноді складночитаємі), але при цьому важко заперечувати, що телеграм залишається неймовірно швидким при великому навантаженні. А ще тут можна надихнутися ефектами та рішеннями найскладніших завдань.
🇺🇦 iOSDevUA
Більшість додатків з багатомільйонною аудиторією не публікують свої рішення (з очевидних причин, адже це може допомогти не тільки конкурентам, але й тим, хто хотів би ними стати).
Незважаючи на це, деякі дійсно масштабні проекти все-таки викладають код. І це непоганий спосіб покращити свої навички (читання коду, вибору архітектури, пошуку відповідей на складні питання).
Ось кілька додатків у опенсорсі:
1️⃣ ProtonMail — популярний поштовий клієнт для зашифрованих листів.
2️⃣ Signal — якщо вам потрібно реалізувати у своєму додатку якісь функції для чату, цей проєкт може стати чудовим джерелом натхнення.
3️⃣ VLC — мабуть, найпопулярніший кросплатформенний медіаплеєр з відкритим вихідним кодом.
4️⃣ Kickstarter — платформа для краудфандингових проєктів.
У цьому додатку зроблено вибір на користь функціонального підходу до програмування, який підтримується завдяки впровадженню кількох кастомних операторів.
Можливо, вам буде цікаво, як такий підхід працює на прикладі настільки масштабного додатку.
5️⃣ Telegram iOS — далеко не завжди очевидні підходи (і іноді складночитаємі), але при цьому важко заперечувати, що телеграм залишається неймовірно швидким при великому навантаженні. А ще тут можна надихнутися ефектами та рішеннями найскладніших завдань.
🇺🇦 iOSDevUA
Swift with Vincent
Did you know that a few popular iOS apps are open-source? 🤨 — Swift with Vincent
Hi 👋 This week I want to share with you a clever way to improve your skills on challenging topics, like designing the architecture of a large codebase or implementing high-quality user interfaces. But first, I have a big thank you for the sponsor of this…
❤1
💡WWDC Index
Новий ком'юніті-проєкт навколо WWDC – список усіх сесій та їхніх описів на одній сторінці. Cmd+F, пишете потрібне вам ключове слово, отримуєте список усіх сесій!
🇺🇦 iOSDevUA
Новий ком'юніті-проєкт навколо WWDC – список усіх сесій та їхніх описів на одній сторінці. Cmd+F, пишете потрібне вам ключове слово, отримуєте список усіх сесій!
🇺🇦 iOSDevUA
💡Clock у Swift неефективні
Автор статті зіткнувся з поганою продуктивністю роботи з
🇺🇦 iOSDevUA
Автор статті зіткнувся з поганою продуктивністю роботи з
ContinuousClock та SuspendingClock, провів бенчмарки, і виявилося, що вони працюють набагато повільніше, ніж звичайний Date. Замість них він пропонує перейти на функцію mach_absolute_time.🇺🇦 iOSDevUA
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Apple приділяє надзвичайну увагу до деталей. Неможливо подивитися на це і не посміхнутися 🤯
🇺🇦 iOSDevUA
🇺🇦 iOSDevUA
👍1
💡Тренуємо і запускаємо ML модель на пристрої
Гарний туторіал про те, як з нуля навчити свою ML модель для того, щоб передбачати ймовірність закриття діалогового вікна залежно від рівня заряду батареї.
🇺🇦 iOSDevUA
Гарний туторіал про те, як з нуля навчити свою ML модель для того, щоб передбачати ймовірність закриття діалогового вікна залежно від рівня заряду батареї.
🇺🇦 iOSDevUA
🚀Hello Developer: травень 2024
Новий випуск щомісячної розсилки Apple для розробників.
👉 Pathways – навчальні треки з підбіркою статей, відео та документації з різних тем.
👉 Інтерв'ю з переможцями Swift Student Challenge.
👉 Реєстрація на онлайн-зустрічі з App Review Team.
👉 Огляд Apple Pencil Pro.
👉 Q&A від команди SharePlay.
👉 Новий фреймворк для конвертації документів у PDF.
🇺🇦 iOSDevUA
Новий випуск щомісячної розсилки Apple для розробників.
👉 Pathways – навчальні треки з підбіркою статей, відео та документації з різних тем.
👉 Інтерв'ю з переможцями Swift Student Challenge.
👉 Реєстрація на онлайн-зустрічі з App Review Team.
👉 Огляд Apple Pencil Pro.
👉 Q&A від команди SharePlay.
👉 Новий фреймворк для конвертації документів у PDF.
🇺🇦 iOSDevUA
💡Шаблони нових айпадів уже в Sketch
Після анонсу нових айпадів (і скандалу з рекламою, але про нього ми в каналі говорити не будемо), Apple додали шаблони з їх рамками в офіційну бібліотеку в Sketch. Можете вже використовувати для своїх скріншотів!
🇺🇦 iOSDevUA
Після анонсу нових айпадів (і скандалу з рекламою, але про нього ми в каналі говорити не будемо), Apple додали шаблони з їх рамками в офіційну бібліотеку в Sketch. Можете вже використовувати для своїх скріншотів!
🇺🇦 iOSDevUA
👍1
🇺🇦 iOS Dev UA - спільнота iOS розробників
💡І знову про privacy manifest file. Але цього разу просто роздуми від автора та людей з ком'юніті.
Про підхід Apple до цього та взагалі як бути зі старими і непідтримуваними бібліотеками, якщо ти навіть не до кінця знаєш, що вони можуть використовувати у себе? 🤔
👉 https://www.jessesquires.com/blog/2024/04/29/sdk-privacy-manifests/
🇺🇦 iOSDevUA
Про підхід Apple до цього та взагалі як бути зі старими і непідтримуваними бібліотеками, якщо ти навіть не до кінця знаєш, що вони можуть використовувати у себе? 🤔
👉 https://www.jessesquires.com/blog/2024/04/29/sdk-privacy-manifests/
🇺🇦 iOSDevUA
Jesse Squires
The curious case of Apple's third-party SDK list for privacy manifests
At last year’s WWDC, Apple introduced privacy manifests. They recently sent out a reminder that the deadline for complying with these new requirements is May...
💡Базова річ, аналог якої має бути у багатьох, але якщо раптом немає або тільки вчитеся, то ось чудовий матеріал про конфігуровану кнопку в SwiftUI! Тобто просто компонент, який має різні стани та ними легко керувати. Ну і використовувати цю кнопку всюди в проекті, звичайно.
👉 https://www.danijelavrzan.com/posts/2024/05/configurable-button-swiftui
🇺🇦 iOSDevUA
👉 https://www.danijelavrzan.com/posts/2024/05/configurable-button-swiftui
🇺🇦 iOSDevUA
Danijela's blog
Build a Configurable Button with Multiple States in SwiftUI
In this post, we'll take a look at how we can create a configurable button with pre-defined states. We'll add four different states and update the button state in the code.
Як правильно зробити вибір між Set та Array в Swift?
🔑 Колекції — ключовий компонент будь-якої мови програмування.
Безумовно, в переважній більшості ситуацій ми використовуємо Array або Set, але є й інші види колекцій (наприклад, ArraySlice, який відноситься до частини масиву).
📖 У цій статті розглянуті особливості Set та Array, ключові характеристики кожного з них і кейси використання (а також питання продуктивності).
🇺🇦 iOSDevUA
🔑 Колекції — ключовий компонент будь-якої мови програмування.
Безумовно, в переважній більшості ситуацій ми використовуємо Array або Set, але є й інші види колекцій (наприклад, ArraySlice, який відноситься до частини масиву).
📖 У цій статті розглянуті особливості Set та Array, ключові характеристики кожного з них і кейси використання (а також питання продуктивності).
🇺🇦 iOSDevUA
Donny Wals
How to decide between a Set and Array in Swift? – Donny Wals
Collections are a key component in any programming language. We often refer to collections as or but there are several other kinds of collections in programming like (often a collection of type ) and…
Hello everyone! New iOS weekly digest is here!
🚀🚀🚀 Last Week at Apple 🚀 🚀 🚀
Today we will start from the very important topic - perfomance. If you are working on the iOS application and want to improve perfomance please consider Accelerate framework.
Boost Performance by Over 100x Using the Accelerate Framework
Learn how to leverage the Accelerate Framework to improve the performance of Stream’s Video SDK by over 100x:
https://getstream.io/blog/accelerate-framework/
What Does spacing = nil Mean in SwiftUI?
In SwiftUI, many layout container constructors include a spacing parameter with a default value of nil, which controls the spacing between adjacent views. This article will start with this default parameter to explore the concept of Spacing in SwiftUI in-depth, and share some related tips and considerations.
Why Are the Spacings Between My Subviews Inconsistent?
As developers become more proficient with SwiftUI, they gradually master certain “rules of thumb.” For instance, in a VStack, if the spacing parameter is not explicitly specified and its default value nil is used, the spacing is typically about 8:
https://fatbobman.com/en/posts/spacing-of-swiftui
MVVM: An architectural coding pattern to structure SwiftUI Views
MVVM (Model-View-ViewModel) is an architectural coding pattern for structuring SwiftUI views. The goal of the pattern is to separate the view definition from the business logic behind it. Your views will not depend on any specific model type if done correctly.
While MVVM was mostly used in the UIKit/AppKit days, it’s still a commonly used pattern in SwiftUI. In my experience, how it’s being used isn’t always consistent and results more in a View-ViewModel pattern. However, this might be justified considering ‘overengineering’. Let’s dive in:
https://www.avanderlee.com/swiftui/mvvm-architectural-coding-pattern-to-structure-views
If you have some custom views for tips in your iOS application consider replace them with built-in iOS solution - TipKit
Refactoring to TipKit from AppStorage and Custom Views in SwiftUI
https://www.swiftjectivec.com/refactoring-tipkit-swiftui-from-appstorage
And one more about TipKit
Discovering app features with TipKit. Rules.
This week, we will continue discussing how to highlight app features using the TipKit framework. TipKit provides a flexible way of customizing the condition under which tips should appear:
https://swiftwithmajid.com/2024/05/15/discovering-app-features-with-tipkit-rules
You are experienced iOS developer with a lot of experience with UIKit? Or maybe you have an iOS application created with UIKit and you want to move to SwiftUI? Check this great article about moving from UIKit to SwiftUI.
Avoid These Common Errors When Switching from UIKit to SwiftUI
I truly believe that I am 10x more productive with SwiftUI than with UIKit. However, there is no denying that SwiftUI has a steep learning curve. In fact, UIKit programmers might be at a disadvantage to newcomers because they know certain ways to make things work which are no longer relevant in SwiftUI. SwiftUI requires to to throw out everything you know, and retrain your brain.
In today's blog post, we are going to refactor a SwiftUI view to use simple, idiomatic SwiftUI. We will add support for Dark Mode and Dynamic Type. In the process, I will point out a bunch of mistakes that I find UIKit programmers make when first starting SwiftUI.
https://dev.jeremygale.com/avoid-these-common-errors-when-switching-from-uikit-to-swiftui
And a nice tip how to react to network changes in SwiftUI
React to network status updates in SwiftUI
In this short post we'll look into how to easily manage network status updates in SwiftUI by using the NWPathMonitor as an async sequence. This method integrates seamlessly with your views for efficient updates:
https://nilcoalescing.com/blog/ReactToNetworkStatusUpdatesInSwiftUI
🚀🚀🚀 Last Week at Apple 🚀 🚀 🚀
Today we will start from the very important topic - perfomance. If you are working on the iOS application and want to improve perfomance please consider Accelerate framework.
Boost Performance by Over 100x Using the Accelerate Framework
Learn how to leverage the Accelerate Framework to improve the performance of Stream’s Video SDK by over 100x:
https://getstream.io/blog/accelerate-framework/
What Does spacing = nil Mean in SwiftUI?
In SwiftUI, many layout container constructors include a spacing parameter with a default value of nil, which controls the spacing between adjacent views. This article will start with this default parameter to explore the concept of Spacing in SwiftUI in-depth, and share some related tips and considerations.
Why Are the Spacings Between My Subviews Inconsistent?
As developers become more proficient with SwiftUI, they gradually master certain “rules of thumb.” For instance, in a VStack, if the spacing parameter is not explicitly specified and its default value nil is used, the spacing is typically about 8:
https://fatbobman.com/en/posts/spacing-of-swiftui
MVVM: An architectural coding pattern to structure SwiftUI Views
MVVM (Model-View-ViewModel) is an architectural coding pattern for structuring SwiftUI views. The goal of the pattern is to separate the view definition from the business logic behind it. Your views will not depend on any specific model type if done correctly.
While MVVM was mostly used in the UIKit/AppKit days, it’s still a commonly used pattern in SwiftUI. In my experience, how it’s being used isn’t always consistent and results more in a View-ViewModel pattern. However, this might be justified considering ‘overengineering’. Let’s dive in:
https://www.avanderlee.com/swiftui/mvvm-architectural-coding-pattern-to-structure-views
If you have some custom views for tips in your iOS application consider replace them with built-in iOS solution - TipKit
Refactoring to TipKit from AppStorage and Custom Views in SwiftUI
https://www.swiftjectivec.com/refactoring-tipkit-swiftui-from-appstorage
And one more about TipKit
Discovering app features with TipKit. Rules.
This week, we will continue discussing how to highlight app features using the TipKit framework. TipKit provides a flexible way of customizing the condition under which tips should appear:
https://swiftwithmajid.com/2024/05/15/discovering-app-features-with-tipkit-rules
You are experienced iOS developer with a lot of experience with UIKit? Or maybe you have an iOS application created with UIKit and you want to move to SwiftUI? Check this great article about moving from UIKit to SwiftUI.
Avoid These Common Errors When Switching from UIKit to SwiftUI
I truly believe that I am 10x more productive with SwiftUI than with UIKit. However, there is no denying that SwiftUI has a steep learning curve. In fact, UIKit programmers might be at a disadvantage to newcomers because they know certain ways to make things work which are no longer relevant in SwiftUI. SwiftUI requires to to throw out everything you know, and retrain your brain.
In today's blog post, we are going to refactor a SwiftUI view to use simple, idiomatic SwiftUI. We will add support for Dark Mode and Dynamic Type. In the process, I will point out a bunch of mistakes that I find UIKit programmers make when first starting SwiftUI.
https://dev.jeremygale.com/avoid-these-common-errors-when-switching-from-uikit-to-swiftui
And a nice tip how to react to network changes in SwiftUI
React to network status updates in SwiftUI
In this short post we'll look into how to easily manage network status updates in SwiftUI by using the NWPathMonitor as an async sequence. This method integrates seamlessly with your views for efficient updates:
https://nilcoalescing.com/blog/ReactToNetworkStatusUpdatesInSwiftUI
getstream.io
Boost Performance 100x Accelerate Framework
How we improved performance 100x in some parts of our Video SDK by using the Accelerate Framework.
💡Недолік unidirectional архітектур
Основний недолік однонаправлених архітектур, на думку автора, – розсіювання бізнес-логіки по різних місцях у коді, через що складно отримати цілісну картину того, що відбувається. У статті він показує, чому це здається проблемою, на прикладі одного екрану.
👉 https://medium.com/the-swift-cooperative/the-dark-side-of-unidirectional-architectures-in-swift-e4acf243ff1c
🇺🇦 iOSDevUA
Основний недолік однонаправлених архітектур, на думку автора, – розсіювання бізнес-логіки по різних місцях у коді, через що складно отримати цілісну картину того, що відбувається. У статті він показує, чому це здається проблемою, на прикладі одного екрану.
👉 https://medium.com/the-swift-cooperative/the-dark-side-of-unidirectional-architectures-in-swift-e4acf243ff1c
🇺🇦 iOSDevUA
Medium
The Dark Side of Unidirectional Architectures in Swift
The ping-pong problem
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
💡Як виміряти продуктивність за допомогою інструментів та os_signposts
⚙️ Інструменти допомагають нам не тільки вимірювати обсяг пам'яті чи навантаження на процесор, але також відіграють вирішальну роль у виявленні вузьких місць.
Одна з корисних функцій інструментів — можливість додавати в код вказівники (signposts) для визначення потрібних областей під час трасування. Це особливо корисно, коли у нас багато схожих викликів, і нам потрібно виміряти час, витрачений на конкретну операцію.
📖 У цій статті можна подивитися на приклад використання таких вказівників.
🇺🇦 iOSDevUA
⚙️ Інструменти допомагають нам не тільки вимірювати обсяг пам'яті чи навантаження на процесор, але також відіграють вирішальну роль у виявленні вузьких місць.
Одна з корисних функцій інструментів — можливість додавати в код вказівники (signposts) для визначення потрібних областей під час трасування. Це особливо корисно, коли у нас багато схожих викликів, і нам потрібно виміряти час, витрачений на конкретну операцію.
📖 У цій статті можна подивитися на приклад використання таких вказівників.
🇺🇦 iOSDevUA