💡Якщо ви вже почали копатися у 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
Hello iOS developers! New digest is here!
Hello everyone! New iOS weekly digest is here!
🚀🚀🚀 Last Week at Apple 🚀 🚀 🚀
The fundamentals of iOS at Revolut
Let’s take a look behind the scenes of the iOS development at Revolut, where we strive to provide exceptional financial services and seamless customer experiences for the customers who rely on our iOS apps to manage their financial lives:
https://medium.com/revolut/the-fundamentals-of-ios-at-revolut-f75acb765ac8
Previews
How to get the most out of Xcode Previews
https://www.manu.show/2024-05-30-previews
Bad practice: not using a ButtonStyle
Very interesting article about issues that you can face with buttons:
https://www.swiftwithvincent.com/blog/bad-practice-not-using-a-buttonstyle
Scenes types in a SwiftUI Mac app
Creating versatile and efficient macOS applications with SwiftUI involves understanding how to use various scene types. Scenes in SwiftUI manage and display their contents through windows, with different scene types offering distinct behaviors and capabilities. In this post, we'll explore the different scene types available in SwiftUI for macOS, including WindowGroup, DocumentGroup, Settings, Window, and MenuBarExtra:
https://nilcoalescing.com/blog/ScenesTypesInASwiftUIMacApp
Nice thread discussion about requesting application review from the user:
https://iosdev.space/@matt1corey/112474715937446698
Do NOT init State externally in SwiftUI
https://samwize.com/2024/05/08/do-not-init-state-externally-in-swiftui-view
#tools
A new Postman alternative:
https://getapi.io/
Hello everyone! New iOS weekly digest is here!
🚀🚀🚀 Last Week at Apple 🚀 🚀 🚀
The fundamentals of iOS at Revolut
Let’s take a look behind the scenes of the iOS development at Revolut, where we strive to provide exceptional financial services and seamless customer experiences for the customers who rely on our iOS apps to manage their financial lives:
https://medium.com/revolut/the-fundamentals-of-ios-at-revolut-f75acb765ac8
Previews
How to get the most out of Xcode Previews
https://www.manu.show/2024-05-30-previews
Bad practice: not using a ButtonStyle
Very interesting article about issues that you can face with buttons:
https://www.swiftwithvincent.com/blog/bad-practice-not-using-a-buttonstyle
Scenes types in a SwiftUI Mac app
Creating versatile and efficient macOS applications with SwiftUI involves understanding how to use various scene types. Scenes in SwiftUI manage and display their contents through windows, with different scene types offering distinct behaviors and capabilities. In this post, we'll explore the different scene types available in SwiftUI for macOS, including WindowGroup, DocumentGroup, Settings, Window, and MenuBarExtra:
https://nilcoalescing.com/blog/ScenesTypesInASwiftUIMacApp
Nice thread discussion about requesting application review from the user:
https://iosdev.space/@matt1corey/112474715937446698
Do NOT init State externally in SwiftUI
https://samwize.com/2024/05/08/do-not-init-state-externally-in-swiftui-view
#tools
A new Postman alternative:
https://getapi.io/
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
💡Якщо ви любите використовувати ChatGPT і просити його написати за вас код, то ось вам стаття з 5 підказками, як покращити цей процес і як краще просити ChatGPT виконати необхідну вам задачу! 🤖
👉 https://www.avanderlee.com/swift/chatgpt-code-generation-prompts/
🇺🇦 iOSDevUA
👉 https://www.avanderlee.com/swift/chatgpt-code-generation-prompts/
🇺🇦 iOSDevUA
SwiftLee
ChatGPT for Swift: Top 5 code generation prompts
Boost your productivity with ChatGPT for Swift code generation. Learn how to harness the power of AI to speed up your development process.
💡Get API – новий аналог Postman
Якщо ви втомилися від перенасиченості Postman функціями, а Insomnia з якихось причин теж не підходить, зверніть увагу на Get API. Основні переваги:
👉 Нативний додаток для macOS, не перенасичений функціями та складним інтерфейсом
👉 Підтримує роботу як з REST, так і з вебсокетами
👉 Не вимагає створення облікових записів, використовує GitHub як джерело правди
🇺🇦 iOSDevUA
Якщо ви втомилися від перенасиченості Postman функціями, а Insomnia з якихось причин теж не підходить, зверніть увагу на Get API. Основні переваги:
👉 Нативний додаток для macOS, не перенасичений функціями та складним інтерфейсом
👉 Підтримує роботу як з REST, так і з вебсокетами
👉 Не вимагає створення облікових записів, використовує GitHub як джерело правди
🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
📲 Як зробити іконку застосунку анімованою?
Напевно, багато хто міг задуматися раніше, як уникнути алерта при виборі альтернативної іконки.
Bryce Bostwick, розробник, відомий своїми чудовими постами про реверс-інжиніринг, спробував заглибитися в це питання і написав велике дослідження про те, як створити ілюзію анімації (насправді для цього потрібно досить часто змінювати ці іконки).
📖 Прочитати захоплюючу статтю можна тут (і рекомендую подивитися інші статті блогу).
📺 У форматі відео ось тут.
🛠 Демо-проєкт (подивитися і спробувати повторити) доступний на github.
🇺🇦 iOSDevUA
Напевно, багато хто міг задуматися раніше, як уникнути алерта при виборі альтернативної іконки.
Bryce Bostwick, розробник, відомий своїми чудовими постами про реверс-інжиніринг, спробував заглибитися в це питання і написав велике дослідження про те, як створити ілюзію анімації (насправді для цього потрібно досить часто змінювати ці іконки).
📖 Прочитати захоплюючу статтю можна тут (і рекомендую подивитися інші статті блогу).
📺 У форматі відео ось тут.
🛠 Демо-проєкт (подивитися і спробувати повторити) доступний на github.
🇺🇦 iOSDevUA
❤2
💡Останнім часом (вже досить довго) SPM набирає популярність і, чесно кажучи, він досить непоганий, хоча деякі питання до нього все ж є.
Отже, якщо раптом хочете додати в свій SDK підтримку SPM або все-таки вирішили розбити проєкт на модулі за допомогою все того ж SPM, то ловіть хорошу покрокову інструкцію, як створити такий package! 👍
👉 https://www.avanderlee.com/swift/creating-swift-package-manager-framework/
🇺🇦 iOSDevUA
Отже, якщо раптом хочете додати в свій SDK підтримку SPM або все-таки вирішили розбити проєкт на модулі за допомогою все того ж SPM, то ловіть хорошу покрокову інструкцію, як створити такий package! 👍
👉 https://www.avanderlee.com/swift/creating-swift-package-manager-framework/
🇺🇦 iOSDevUA
SwiftLee
Swift Package Manager framework creation in Xcode
Create a Swift Package that works with the Swift Package manager. Add dependencies, platform requirements and work with development packages.
💡Пояснення використання @preconcurrency в Swift
Якщо включити -strict-concurrency для своїх існуючих проєктів, то, ймовірніше за все, при першій компіляції проєкту Xcode видасть безліч попереджень і/або помилок.
Цього можна уникнути з використанням @preconcurrency, який можна використовувати для:
👉 functions
👉 types
👉 protocols
👉 imports
За допомогою @preconcurrency з'являється можливість імпортувати старі модулі в новий код.
Це чудовий спосіб поступово впроваджувати строгий паралелізм у міру наближення випуску Swift 6.
📖 У цьому пості розглянуті приклади використання і помилки, які можуть зустрітися.
🇺🇦 iOSDevUA
Якщо включити -strict-concurrency для своїх існуючих проєктів, то, ймовірніше за все, при першій компіляції проєкту Xcode видасть безліч попереджень і/або помилок.
Цього можна уникнути з використанням @preconcurrency, який можна використовувати для:
👉 functions
👉 types
👉 protocols
👉 imports
За допомогою @preconcurrency з'являється можливість імпортувати старі модулі в новий код.
Це чудовий спосіб поступово впроваджувати строгий паралелізм у міру наближення випуску Swift 6.
📖 У цьому пості розглянуті приклади використання і помилки, які можуть зустрітися.
🇺🇦 iOSDevUA
💡Якщо ви займаєтесь розробкою під macOS і вирішили спробувати
👉 https://nilcoalescing.com/blog/ScenesTypesInASwiftUIMacApp/
🇺🇦 iOSDevUA
SwiftUI, то з чогось починати все-таки потрібно. Ось невеликий матеріал про різні типи Scenes у SwiftUI. Це не найповніший і найдетальніший матеріал, але ті пункти, які він охоплює, описані досить детально та зрозуміло!👉 https://nilcoalescing.com/blog/ScenesTypesInASwiftUIMacApp/
🇺🇦 iOSDevUA
Nil Coalescing
Scenes types in a SwiftUI Mac app
Discover how to leverage SwiftUI's versatile scene types, like WindowGroup, DocumentGroup, Settings, Window, and MenuBarExtra, to create efficient and dynamic macOS applications.
❤2