💡Пам'ятаєте Personal Voice, функцію доступності в iOS 17, яка дозволяє створити AI-версію вашого голосу?
Вона працює дійсно досить добре!
Додатки можуть використовувати цей голос для перетворення тексту в мову 🤯
Ось стаття, про це 👉 https://bendodson.com/weblog/2024/04/03/using-your-personal-voice-in-an-ios-app/
🇺🇦 iOSDevUA
Вона працює дійсно досить добре!
Додатки можуть використовувати цей голос для перетворення тексту в мову 🤯
Ось стаття, про це 👉 https://bendodson.com/weblog/2024/04/03/using-your-personal-voice-in-an-ios-app/
🇺🇦 iOSDevUA
Bendodson
Using your Personal Voice (along with system and novelty voices) in an iOS app
You may be aware of the Personal Voice accessibility feature, but did you know you can use it to make your apps speak?
💡SwiftUI QR-код сканування прямокутника з кутовою рамкою:
Ви можете досягти цієї рамки за допомогою
🇺🇦 iOSDevUA
Ви можете досягти цієї рамки за допомогою
stroke(). Він приймає деякі додаткові параметри, такі як StrokeStyle. З невеликими розрахунками ви можете досягти цього результату.🇺🇦 iOSDevUA
Hello iOS developers! New digest is here!
Hello everyone! New iOS weekly digest is here!
🚀🚀🚀 Last Week at Apple 🚀 🚀 🚀
Let's start from the unusual topic: Swift on the Server
Very interesting article about benchmarking different web servers:
FPM w/ NGINX (PHP).
Helidon (Kotlin / Java1).
Node.js (JavaScript).
Vapor (Swift)
More info here:
https://wadetregaskis.com/swift-sucks-at-web-serving-or-does-it
Programmatic navigation in SwiftUI with NavigationPath and navigationDestination
In this post we’ll look at:
Understanding iOS 16’s navigation API
Navigating through a NavigationPath:
https://www.donnywals.com/programmatic-navigation-in-swiftui-with-navigationpath-and-navigationdestination
SwiftUI Split View Configuration
Starting with iOS 16, the NavigationSplitView is the preferred way to create two or three column layouts on the iPad and Mac. It has configuration options to control the column visibility, width and style:
https://useyourloaf.com/blog/swiftui-split-view-configuration
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
Your Complete Guide to Push Notifications in SwiftUI
Push notifications are a feature that many apps use, but there hasn’t been much content around how they work or how to implement them. In this tutorial we will make this complex topic easier to understand and implement in your own project:
https://medium.com/@jpmtech/your-complete-guide-to-push-notifications-in-swiftui-8a13f5588662
Replacing The Deprecated cornerRadius View Modifier In SwiftUI
https://serialcoder.dev/text-tutorials/swiftui/replacing-the-deprecated-cornerradius-view-modifier-in-swiftui
Hello everyone! New iOS weekly digest is here!
🚀🚀🚀 Last Week at Apple 🚀 🚀 🚀
Let's start from the unusual topic: Swift on the Server
Very interesting article about benchmarking different web servers:
FPM w/ NGINX (PHP).
Helidon (Kotlin / Java1).
Node.js (JavaScript).
Vapor (Swift)
More info here:
https://wadetregaskis.com/swift-sucks-at-web-serving-or-does-it
Programmatic navigation in SwiftUI with NavigationPath and navigationDestination
In this post we’ll look at:
Understanding iOS 16’s navigation API
Navigating through a NavigationPath:
https://www.donnywals.com/programmatic-navigation-in-swiftui-with-navigationpath-and-navigationdestination
SwiftUI Split View Configuration
Starting with iOS 16, the NavigationSplitView is the preferred way to create two or three column layouts on the iPad and Mac. It has configuration options to control the column visibility, width and style:
https://useyourloaf.com/blog/swiftui-split-view-configuration
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
Your Complete Guide to Push Notifications in SwiftUI
Push notifications are a feature that many apps use, but there hasn’t been much content around how they work or how to implement them. In this tutorial we will make this complex topic easier to understand and implement in your own project:
https://medium.com/@jpmtech/your-complete-guide-to-push-notifications-in-swiftui-8a13f5588662
Replacing The Deprecated cornerRadius View Modifier In SwiftUI
https://serialcoder.dev/text-tutorials/swiftui/replacing-the-deprecated-cornerradius-view-modifier-in-swiftui
Donny Wals
Programmatic navigation in SwiftUI with NavigationPath and navigationDestination
Learn how you can leverage NavigationPath and navigationDestination in SwiftUI to implement programmatic navigation
💡Чому завантаження пакетів за допомогою Swift Package Manager займає надто багато часу?
Коли ми додаємо залежність у проект через spm, він витягує весь репозиторій пакету з усіма гілками та повною історією git, яка може включати в себе роки git-знімків.
Суть проблеми тут.
Але чому?
На це питання відповів інженер з інфраструктури GitHub (зверніть увагу на дату коментаря), схожа проблема була і в Cocoapods:
Поверхневе клонування з якоїсь причини обходиться набагато дорожче, ніж клонування всього репозиторію. До того ж, GitHub обмежує швидкість у таких репозиторіях, що призводить до значного збільшення часу.
Гірше того, fetch може взагалі завершитися помилкою через тайм-аут.
То в чому ж полягає рішення?
Очевидно, багато компаній використовують такий підхід. Вони створюють окремий репозиторій з попередньо скомпільованим
Наприклад, airbnb/lottie застосувала цей підхід і зменшила розмір свого репозиторію з +300 МБ до менше 500 КБ!
Signal зробила те ж саме: звідси OneSignal-iOS-SDK прийшли до оптимізованої версії OneSignal-XCFramework.
🇺🇦 iOSDevUA
Коли ми додаємо залежність у проект через spm, він витягує весь репозиторій пакету з усіма гілками та повною історією git, яка може включати в себе роки git-знімків.
Суть проблеми тут.
Але чому?
На це питання відповів інженер з інфраструктури GitHub (зверніть увагу на дату коментаря), схожа проблема була і в Cocoapods:
Поверхневе клонування з якоїсь причини обходиться набагато дорожче, ніж клонування всього репозиторію. До того ж, GitHub обмежує швидкість у таких репозиторіях, що призводить до значного збільшення часу.
Гірше того, fetch може взагалі завершитися помилкою через тайм-аут.
То в чому ж полягає рішення?
Очевидно, багато компаній використовують такий підхід. Вони створюють окремий репозиторій з попередньо скомпільованим
.xcframework, при цьому користувач отримає тільки потрібну частину вихідного репозиторію.Наприклад, airbnb/lottie застосувала цей підхід і зменшила розмір свого репозиторію з +300 МБ до менше 500 КБ!
Signal зробила те ж саме: звідси OneSignal-iOS-SDK прийшли до оптимізованої версії OneSignal-XCFramework.
🇺🇦 iOSDevUA
🚀Apple запрошує на WWDC24
Приєднуйтесь до всесвітньої спільноти розробників для неймовірного тижня технологій і творчості — все онлайн і безкоштовно. WWDC24 проходить з 10 по 14 червня.
🇺🇦 iOSDevUA
Приєднуйтесь до всесвітньої спільноти розробників для неймовірного тижня технологій і творчості — все онлайн і безкоштовно. WWDC24 проходить з 10 по 14 червня.
🇺🇦 iOSDevUA
❤1
💡Великий і детальний матеріал з прикладами коду, картинками та поясненнями. Про
👉 https://fatbobman.com/en/posts/spacing-of-swiftui/
🇺🇦 iOSDevUA
spacing = nil у SwiftUI та верстку загалом!👉 https://fatbobman.com/en/posts/spacing-of-swiftui/
🇺🇦 iOSDevUA
fatbobman.com
What Does spacing = nil Mean in SwiftUI?
Explore SwiftUI spacing in-depth: understand what spacing = nil means, how default spacing is calculated, and when to use specific values. Learn practical spacing tips.
💡Якщо ви вже почали копатися у visionOS, то цей матеріал має бути для вас корисним.
Детально про типографіку у visionOS, з прикладами та красивими картинками 🔥
👉 https://www.createwithswift.com/understanding-typography-in-visionos/
🇺🇦 iOSDevUA
Детально про типографіку у visionOS, з прикладами та красивими картинками 🔥
👉 https://www.createwithswift.com/understanding-typography-in-visionos/
🇺🇦 iOSDevUA
Create with Swift
Understanding typography in visionOS
Optimize text readability in visionOS leveraging font, color, and vibrancy
❤1
💡Якщо ви все ще не залишаєте надії писати backend на Swift 🤪, то ось матеріал для вас!
Дуже детальний, з купою бенчмарків, міркувань та пояснень!
Автор порівнює Swift з іншими інструментами для бекенду. Дуже популярними, хоча, можливо, і не найкращими в наш час: PHP/Kotlin/Java JS.
Було б цікаво ще побачити порівняння з Go, але добре вже 🙂
Варто ще сказати, що це навряд чи стосується великих навантажень, але тим не менше.
Загалом, переходьте і дивіться. Є багато цікавого 🔥
СПОЙЛЕР: все не так погано, як ми могли думати!
👉 https://wadetregaskis.com/swift-sucks-at-web-serving-or-does-it
🇺🇦 iOSDevUA
Дуже детальний, з купою бенчмарків, міркувань та пояснень!
Автор порівнює Swift з іншими інструментами для бекенду. Дуже популярними, хоча, можливо, і не найкращими в наш час: PHP/Kotlin/Java JS.
Було б цікаво ще побачити порівняння з Go, але добре вже 🙂
Варто ще сказати, що це навряд чи стосується великих навантажень, але тим не менше.
Загалом, переходьте і дивіться. Є багато цікавого 🔥
СПОЙЛЕР: все не так погано, як ми могли думати!
👉 https://wadetregaskis.com/swift-sucks-at-web-serving-or-does-it
🇺🇦 iOSDevUA
👍2
💡Як і коли запитувати відгуки на додаток
Тред з обговоренням особливостей роботи з requestReview API, яке показує користувачу пропозицію оцінити додаток. Основна складність у тому, що розробник безпосередньо не керує появою цього алерта, так само як і не може дізнатися, чи був він показаний.
👉 Приблизні бенчмарки кількості оцінок до кількості завантажень: 1.5-2.5%.
👉 Конкретних стратегій дуже багато, але народна мудрість каже, що краще запитувати відгук не відразу на старті додатку, а після завершення цільової дії.
👉 Найбільше хвалять показ за поєднанням наступних факторів: 5 запусків додатку, кілька виконаних цільових дій, і хоча б тиждень, що минув з першого запуску.
🇺🇦 iOSDevUA
Тред з обговоренням особливостей роботи з requestReview API, яке показує користувачу пропозицію оцінити додаток. Основна складність у тому, що розробник безпосередньо не керує появою цього алерта, так само як і не може дізнатися, чи був він показаний.
👉 Приблизні бенчмарки кількості оцінок до кількості завантажень: 1.5-2.5%.
👉 Конкретних стратегій дуже багато, але народна мудрість каже, що краще запитувати відгук не відразу на старті додатку, а після завершення цільової дії.
👉 Найбільше хвалять показ за поєднанням наступних факторів: 5 запусків додатку, кілька виконаних цільових дій, і хоча б тиждень, що минув з першого запуску.
🇺🇦 iOSDevUA
iOS Dev Space
Matt Corey (@matt1corey@iosdev.space)
What are folks' strategies with using the StoreKit 'requestReview' call? Given that Apple controls when the user sees this, I often see advice that you should be pretty aggressive with calling this - is this how you call it?
Have you seen any evidence…
Have you seen any evidence…
Катерина з команди Uklon поділилась досвідом впровадження SwiftUI в UIKit проєкт ✨
З якими викликами стикнулась Uklon Tech iOS команда на цьому шляху та які рішення були імплементовані в процесі 🔥
👉 https://dou.ua/forums/topic/48905/
🇺🇦 iOSDevUA
З якими викликами стикнулась Uklon Tech iOS команда на цьому шляху та які рішення були імплементовані в процесі 🔥
👉 https://dou.ua/forums/topic/48905/
🇺🇦 iOSDevUA
DOU
Імплементуємо SwiftUI до UIKit і навпаки
В команді Катерини Ніколаєвої, iOS Software Engineer в Uklon, довго не наважувались спробувати SwiftUI, бо перші ітерації були доволі «сирі», до того ж — породжували нові складнощі та проблеми. Проте з часом все ж інтегрували його у проєкт. Про це Катерин
👍2🔥1
💡Function Body Macros
У Swift прийняли пропозал, що додає до системи макросів можливість замінювати або аугментувати тіло функції. Коротше кажучи, це такий свіззлінг, але в компайл-таймі.
Ця функція відкриває багато можливостей, наприклад:
👉 Автоматичне логування виклику функції та переданих аргументів
👉 Перетворення звичайних функцій на RPC
🇺🇦 iOSDevUA
У Swift прийняли пропозал, що додає до системи макросів можливість замінювати або аугментувати тіло функції. Коротше кажучи, це такий свіззлінг, але в компайл-таймі.
Ця функція відкриває багато можливостей, наприклад:
👉 Автоматичне логування виклику функції та переданих аргументів
👉 Перетворення звичайних функцій на RPC
🇺🇦 iOSDevUA
💡mise – зручний менеджер версій для інструментів
mise – менеджер версій, який дозволяє централізовано керувати версіями консольних інструментів, що використовуються як локально, так і на CI. Створюєте
🇺🇦 iOSDevUA
mise – менеджер версій, який дозволяє централізовано керувати версіями консольних інструментів, що використовуються як локально, так і на CI. Створюєте
toml файл, визначаєте там потрібні версії, додаєте його до репозиторію проєкту – і готово!🇺🇦 iOSDevUA
🔥Колекція шпалер Futuristic iPod, ностальгічну данину культовому портативному музичному плеєру початку 2000-х. Пориньте у ретро музичну атмосферу та додайте унікального вигляду своєму iPhone за допомогою вибору кастомних дизайнів та яскравих кольорів.
Повний пак 👉 https://wallpapersapp.gumroad.com/l/musicipodwallpapers
🇺🇦 iOSDevUA
Повний пак 👉 https://wallpapersapp.gumroad.com/l/musicipodwallpapers
🇺🇦 iOSDevUA
Gumroad
Futuristic Music iPod Wallpapers
Introducing the Futuristic iPod Wallpaper Collection, a nostalgic homage to the iconic portable music player of the early 2000s. Dive into the retro music vibes and give your iPhone a unique touch ...
👍1🔥1
💡Якщо ви пишете свою SDK, або, наприклад, збираєте свій проєкт із модулів, то, можливо, вам буде цікава ця стаття!
Про такий модифікатор, як
Звісно, атрибут поки що експериментальний, але, можливо, ситуація скоро зміниться.
У будь-якому випадку, варто дізнатися про нього 👍
👉 https://varanios.com/articles/spi-or-how-to-develop-better-apis-in-swift/
🇺🇦 iOSDevUA
Про такий модифікатор, як
@_spi. Що він робить, для чого потрібен, і як з його допомогою покращити API ваших компонентів.Звісно, атрибут поки що експериментальний, але, можливо, ситуація скоро зміниться.
У будь-якому випадку, варто дізнатися про нього 👍
👉 https://varanios.com/articles/spi-or-how-to-develop-better-apis-in-swift/
🇺🇦 iOSDevUA
VaraniOS
@_spi or How to develop better APIs in Swift | VaraniOS
Learn the fundamentals of System Programming Interfaces (SPIs) and how to leverage them in Swift.
💡Невеликий матеріал для загального розвитку. Про те, що відбувається зі SwiftUI прев'ю та прев'ю контентом під час білда для стора, потрапляють вони туди чи ні, і ще трохи деталей.
Можливо, до речі, хтось захоче трохи оптимізувати свій код і додати перевірок після прочитання цього матеріалу 🤔
👉 https://jaredsinclair.com/2024/05/20/preview-content.html
🇺🇦 iOSDevUA
Можливо, до речі, хтось захоче трохи оптимізувати свій код і додати перевірок після прочитання цього матеріалу 🤔
👉 https://jaredsinclair.com/2024/05/20/preview-content.html
🇺🇦 iOSDevUA
❤1
💡Про iOS розробку в Revolut
Оглядова стаття про те, як у Revolut організована iOS розробка у всіх їх додатках. Цікаві факти:
👉 Використовується Clean Architecture, змішана з MVVM-C.
👉 Додатки розбиті на модулі, 160 поширені між усіма проектами, ще 170 в основному додатку.
👉 Щодо технічного стека: Swift, Bazel, мінімум залежностей від сторонніх фреймворків.
👉 Всього над їх проектами працює 120 iOS-розробників.
👉 Регулярно виконується 150.000 юніт тестів і 3.000 UI тестів.
🇺🇦 iOSDevUA
Оглядова стаття про те, як у Revolut організована iOS розробка у всіх їх додатках. Цікаві факти:
👉 Використовується Clean Architecture, змішана з MVVM-C.
👉 Додатки розбиті на модулі, 160 поширені між усіма проектами, ще 170 в основному додатку.
👉 Щодо технічного стека: Swift, Bazel, мінімум залежностей від сторонніх фреймворків.
👉 Всього над їх проектами працює 120 iOS-розробників.
👉 Регулярно виконується 150.000 юніт тестів і 3.000 UI тестів.
🇺🇦 iOSDevUA
Medium
The fundamentals of iOS at Revolut
We believe that it’s possible to deliver high-quality software, fast. To achieve this we follow a set of important principles and apply a…
👍1