💡Простий додаток на Swift/WebAssembly
Хлопці з Pointfree запустили нову серію відео, в рамках якої вони будуть розробляти кросплатформений додаток, що запускається як на iOS, так і в браузері, за допомогою експериментального компілятора Swift у WebAssembly.
🇺🇦 iOSDevUA
Хлопці з Pointfree запустили нову серію відео, в рамках якої вони будуть розробляти кросплатформений додаток, що запускається як на iOS, так і в браузері, за допомогою експериментального компілятора Swift у WebAssembly.
🇺🇦 iOSDevUA
www.pointfree.co
Video #291: Cross-Platform Swift: WebAssembly
We are going to take a Swift feature into the browser. We will set up a WebAssembly application from scratch, show how to run and debug it, and even set up some basic UI. And then we will integrate our existing model into it, all powered by the magic of Swift’s…
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀Як використовувати файли EditorConfig в Xcode 16
🛠 Якщо ви працювали або працюєте над кількома проєктами з різними кодстайлами, то може виникнути ситуація, коли потрібно налаштовувати параметри Xcode кожного разу при переключенні між проєктами.
А якщо в проєкті немає лінтера, який забезпечує дотримання стилю, і ви раптом забудете застосувати ці налаштування, то можна легко отримати непослідовне форматування коду в усьому проєкті.
В Xcode 16 додана підтримка файлів EditorConfig, які дозволяють задавати налаштування редактора Xcode для кожного проєкту.
📖 У цій статті ви дізнаєтеся, як налаштувати файли EditorConfig в Xcode та які налаштування підтримуються на даний момент.
🇺🇦 iOSDevUA
🛠 Якщо ви працювали або працюєте над кількома проєктами з різними кодстайлами, то може виникнути ситуація, коли потрібно налаштовувати параметри Xcode кожного разу при переключенні між проєктами.
А якщо в проєкті немає лінтера, який забезпечує дотримання стилю, і ви раптом забудете застосувати ці налаштування, то можна легко отримати непослідовне форматування коду в усьому проєкті.
В Xcode 16 додана підтримка файлів EditorConfig, які дозволяють задавати налаштування редактора Xcode для кожного проєкту.
📖 У цій статті ви дізнаєтеся, як налаштувати файли EditorConfig в Xcode та які налаштування підтримуються на даний момент.
🇺🇦 iOSDevUA
💡Хочете локалізувати свій додаток, але виникає забагато проблем з цим? Можливо, цей інструмент вам допоможе. Він перекладає все через OpenAI GPT 3.5 turbo (це не двигун від спорткара) модель. Думаю, що деякі переклади, можливо, потрібно буде виправити в подальшому, але в цілому виглядає як класна штука для пет-прокекту 👍
👉 https://swiftpackageindex.com/hidden-spectrum/swift-translate
🇺🇦 iOSDevUA
👉 https://swiftpackageindex.com/hidden-spectrum/swift-translate
🇺🇦 iOSDevUA
The Swift Package Index
SwiftTranslate – Swift Package Index
SwiftTranslate by Hidden Spectrum on the Swift Package Index – Swift Package Plugin for automatically translating your String Catalogs
👍1
Hello iOS developers! New digest is here!
Hello everyone! New iOS weekly digest is here!
Send data Between iOS Apps and Extensions Using Darwin Notifications
n iOS development, app extensions run in separate processes from their containing apps. This separation poses a challenge when you need to communicate between the main app and its extensions. While NSNotificationCenter is a common choice for passing data between view controllers within the same app, it falls short when it comes to inter-process communication. Have you ever thought about how to pass data between the main app and its extension? Darwin notifications provide a powerful solution for this scenario. In this post, we’ll explore how to implement a Darwin Notifications manager and use it to facilitate real-time data transfer between a main app and its extension:
https://ohmyswift.com/blog/2024/08/27/send-data-between-ios-apps-and-extensions-using-darwin-notifications
SwiftUI Modifiers Deep Dive: containerBackground
On this deep dive, we are exploring the containerBackground SwiftUI modifier, which was added in iOS 17:
https://swift.mackarous.com/posts/2024/08/modifiers-container-background/
A great article about concurrency with a lot of interesting examples
Concurrency Step-by-Step: A Network Request
https://www.massicotte.org/step-by-step-network-request
JavaScript to Swift and back: Bridging location services in WKWebView
https://swiftlybald.com/javascript-to-swift-and-back-bridging-location-services-in-wkwebview
SwiftUI Previewable Mac
Apple added the Previewable macro to iOS 18. This generates the boilerplate wrapper view you need to preview a view with State bindings:
https://useyourloaf.com/blog/swiftui-previewable-macro
Continuous deployment for large monorepos
A story about Uber's process of updating code
In this article, we share how we reimagined continuous deployment of microservices at Uber to improve our deployment automation and the user experience of managing microservices, while tackling some of the peculiar challenges of working with large monorepos with increasing commit volumes:
https://www.uber.com/en-UA/blog/continuous-deployment/
Hello everyone! New iOS weekly digest is here!
Send data Between iOS Apps and Extensions Using Darwin Notifications
n iOS development, app extensions run in separate processes from their containing apps. This separation poses a challenge when you need to communicate between the main app and its extensions. While NSNotificationCenter is a common choice for passing data between view controllers within the same app, it falls short when it comes to inter-process communication. Have you ever thought about how to pass data between the main app and its extension? Darwin notifications provide a powerful solution for this scenario. In this post, we’ll explore how to implement a Darwin Notifications manager and use it to facilitate real-time data transfer between a main app and its extension:
https://ohmyswift.com/blog/2024/08/27/send-data-between-ios-apps-and-extensions-using-darwin-notifications
SwiftUI Modifiers Deep Dive: containerBackground
On this deep dive, we are exploring the containerBackground SwiftUI modifier, which was added in iOS 17:
https://swift.mackarous.com/posts/2024/08/modifiers-container-background/
A great article about concurrency with a lot of interesting examples
Concurrency Step-by-Step: A Network Request
https://www.massicotte.org/step-by-step-network-request
JavaScript to Swift and back: Bridging location services in WKWebView
https://swiftlybald.com/javascript-to-swift-and-back-bridging-location-services-in-wkwebview
SwiftUI Previewable Mac
Apple added the Previewable macro to iOS 18. This generates the boilerplate wrapper view you need to preview a view with State bindings:
https://useyourloaf.com/blog/swiftui-previewable-macro
Continuous deployment for large monorepos
A story about Uber's process of updating code
In this article, we share how we reimagined continuous deployment of microservices at Uber to improve our deployment automation and the user experience of managing microservices, while tackling some of the peculiar challenges of working with large monorepos with increasing commit volumes:
https://www.uber.com/en-UA/blog/continuous-deployment/
OhMySwift
Send data Between iOS Apps and Extensions Using Darwin Notifications
In iOS development, app extensions run in separate processes from their containing apps. This separation poses a challenge when you need to communicate between the main app and its extensions. While NSNotificationCenter is a common choice for passing data…
👍1🔥1
💡Typed throws у Swift 6.0
Ще одне покращення якості життя у Swift 6 – можливість явно вказати тип помилки, яку може викидати функція. При цьому ви можете продовжувати писати код як і раніше, не вказуючи конкретний тип – компілятор сам приведе його до
🇺🇦 iOSDevUA
Ще одне покращення якості життя у Swift 6 – можливість явно вказати тип помилки, яку може викидати функція. При цьому ви можете продовжувати писати код як і раніше, не вказуючи конкретний тип – компілятор сам приведе його до
any Error.🇺🇦 iOSDevUA
💡Conditional брейкпойнти можуть уповільнювати роботу додатку
Чудова історія дебагу неочевидної проблеми з перфомансом, де сам дебаггер і став головним винуватцем.
🇺🇦 iOSDevUA
Чудова історія дебагу неочевидної проблеми з перфомансом, де сам дебаггер і став головним винуватцем.
🇺🇦 iOSDevUA
Twocentstudios
Reminder: Conditional Breakpoints are Slow
❤1
💡Як не слід використовувати DeviceCheck Framework
DeviceCheck фреймворк надає можливість зберігати довільну інформацію обсягом два біти для додатка. Ця інформація зберігається між всіма переустановками додатка, стиранням даних і навіть при зміні власників телефону. У статті розповідається, як Snapchat використовував ці два біти для збереження інформації про статус бану користувача, через що новий власник айфона не міг користуватися їхнім додатком.
🇺🇦 iOSDevUA
DeviceCheck фреймворк надає можливість зберігати довільну інформацію обсягом два біти для додатка. Ця інформація зберігається між всіма переустановками додатка, стиранням даних і навіть при зміні власників телефону. У статті розповідається, як Snapchat використовував ці два біти для збереження інформації про статус бану користувача, через що новий власник айфона не міг користуватися їхнім додатком.
🇺🇦 iOSDevUA
Finnvoorhees
Apple Repaired My iPhone Screen, but Now My Social Media Account Is Banned
👍2
💡Як підтримувати версії залежностей актуальними
👉 Призначаємо відповідального за кожен з уже доданих пакетів. Роль відповідального – оновлювати його версії, коли вони виходять.
👉 За допомогою пакета swift-outdated слідкуємо на CI за появою нових версій.
👉 Якщо з’являється нова версія, пишемо про це в Slack і повідомляємо відповідального.
👉 Якщо раптом у якогось пакета немає відповідального, генеруємо помилку.
🇺🇦 iOSDevUA
👉 Призначаємо відповідального за кожен з уже доданих пакетів. Роль відповідального – оновлювати його версії, коли вони виходять.
👉 За допомогою пакета swift-outdated слідкуємо на CI за появою нових версій.
👉 Якщо з’являється нова версія, пишемо про це в Slack і повідомляємо відповідального.
👉 Якщо раптом у якогось пакета немає відповідального, генеруємо помилку.
🇺🇦 iOSDevUA
Alejandro M. P.
Swift Package Manager Dependency Owners | Alejandro M. P.
In my team, one of the things we always make sure of is keeping our dependencies up to date. We rarely add a dependency without a really good reason, and when we do, we assign an owner who is responsible for keeping it up to date.
💡Використовуєте в Xcode таку опцію, як Build with Timing Summary?
Якщо ні, то прочитайте про це в статті. Якщо так, то теж читайте, можливо, дізнаєтеся щось нове.
Матеріал в цілому вступний, але для багатьох буде корисним.
Ось такі цікаві речі показує 👍
👉 https://pfandrade.me/blog/swift-build-times-and-module-verification/
🇺🇦 iOSDevUA
Якщо ні, то прочитайте про це в статті. Якщо так, то теж читайте, можливо, дізнаєтеся щось нове.
Матеріал в цілому вступний, але для багатьох буде корисним.
Ось такі цікаві речі показує 👍
👉 https://pfandrade.me/blog/swift-build-times-and-module-verification/
🇺🇦 iOSDevUA
❤2
💡Отримання прапора країни у вигляді емодзі у Swift
Часто потрібно відобразити емодзі для країни за її кодом.
Прапори Emoji представлені за допомогою послідовностей символів у юнікоді. Дивно, але юнікодове представлення кожного прапора безпосередньо відповідає коду згідно зі стандартом ISO (ISO 3166-1 alpha-2).
Але є й інший шлях.
📖 У цьому матеріалі розглядаються не лише принципи отримання емодзі, але й обговорюються неочевидні моменти для різних стандартів.
🇺🇦 iOSDevUA
Часто потрібно відобразити емодзі для країни за її кодом.
Прапори Emoji представлені за допомогою послідовностей символів у юнікоді. Дивно, але юнікодове представлення кожного прапора безпосередньо відповідає коду згідно зі стандартом ISO (ISO 3166-1 alpha-2).
Але є й інший шлях.
📖 У цьому матеріалі розглядаються не лише принципи отримання емодзі, але й обговорюються неочевидні моменти для різних стандартів.
🇺🇦 iOSDevUA
Hello iOS developers! New iOS news digest is here!
First thing first, if you somehow missed or haven't seen it yet - Apple released new iPhones, updates to AirPods, new Apple Watches. My favourite update - hearing aid. What about yours? Share in the comments
https://www.cnbc.com/2024/09/09/apple-event-2024-live-updates-iphone-16-apple-watch-10.html
Have you ever failed with you application, site or startup? Maybe you chose wrong idea, launched too early or too late, do you think only small companies make huge mistakes? Not at all! Read this article to know how Google failed in 2008 when tried to launch Google Maps in India
Google Maps UX: The India Conundrum
When Google Maps expanded to India in 2008, it made a major blunder. Here’s how we quickly recovered from our mistake and creatively adapted Google Maps to work in India:
https://elizlaraki.substack.com/p/google-maps-ux-the-india-conundrum
Revolutionizing Surgery and Medical Treatments with visionOS
This article has been crafted as the theoretical companion to the Speculative Spatial Design Canvas, providing an in-depth exploration of the principles and concepts that underpin the canvas’s practical application. It aims to enrich your understanding and enhance your use of the canvas, ensuring you can apply it more effectively to create innovative and user-friendly spatial experiences:
https://www.createwithswift.com/revolutionizing-surgery-and-medical-treatments-with-visionos
Github contribution graph with Swift Charts
In 2022 Apple introduced a brand new SwiftUI framework — Swift Charts. You can use it to visualize data with rich customization and minimal code. Swift Charts is available in iOS 16+ and supports watchOS and macOS as well. In this article I'll guide you through recreating Github Contribution Graph. Let's start:
https://www.artemnovichkov.com/blog/github-contribution-graph-swift-charts
SwiftData Expressions
SwiftData gained support for predicate expression in iOS 18. How does it compare to the expressions we can use with Core Data? To learn more check the article:
https://useyourloaf.com/blog/swiftdata-expressions
Swift Testing: Validate your code using expressive APIs
Apple announced the Swift Testing framework during WWDC 2024. It transforms the way we write tests in Swift. A new clear, expressive API makes writing tests more straightforward, while the Xcode user interface communicates with improved feedback when a test fails or succeeds.
The testing framework embraces Swift Macros, reducing the boilerplate code you must write for repetitive tests. So-called parameterized tests help you run similar tests over a sequence of values. Hence, you no longer have to duplicate and maintain an almost identical test for a different input value. Let’s dive into how Swift Testing works and how you can use it today:
https://www.avanderlee.com/swift-testing/introducing-expressive-apis
The Future of Vapor
Discussing what the future holds for Vapor
https://blog.vapor.codes/posts/the-future-of-vapor
First thing first, if you somehow missed or haven't seen it yet - Apple released new iPhones, updates to AirPods, new Apple Watches. My favourite update - hearing aid. What about yours? Share in the comments
https://www.cnbc.com/2024/09/09/apple-event-2024-live-updates-iphone-16-apple-watch-10.html
Have you ever failed with you application, site or startup? Maybe you chose wrong idea, launched too early or too late, do you think only small companies make huge mistakes? Not at all! Read this article to know how Google failed in 2008 when tried to launch Google Maps in India
Google Maps UX: The India Conundrum
When Google Maps expanded to India in 2008, it made a major blunder. Here’s how we quickly recovered from our mistake and creatively adapted Google Maps to work in India:
https://elizlaraki.substack.com/p/google-maps-ux-the-india-conundrum
Revolutionizing Surgery and Medical Treatments with visionOS
This article has been crafted as the theoretical companion to the Speculative Spatial Design Canvas, providing an in-depth exploration of the principles and concepts that underpin the canvas’s practical application. It aims to enrich your understanding and enhance your use of the canvas, ensuring you can apply it more effectively to create innovative and user-friendly spatial experiences:
https://www.createwithswift.com/revolutionizing-surgery-and-medical-treatments-with-visionos
Github contribution graph with Swift Charts
In 2022 Apple introduced a brand new SwiftUI framework — Swift Charts. You can use it to visualize data with rich customization and minimal code. Swift Charts is available in iOS 16+ and supports watchOS and macOS as well. In this article I'll guide you through recreating Github Contribution Graph. Let's start:
https://www.artemnovichkov.com/blog/github-contribution-graph-swift-charts
SwiftData Expressions
SwiftData gained support for predicate expression in iOS 18. How does it compare to the expressions we can use with Core Data? To learn more check the article:
https://useyourloaf.com/blog/swiftdata-expressions
Swift Testing: Validate your code using expressive APIs
Apple announced the Swift Testing framework during WWDC 2024. It transforms the way we write tests in Swift. A new clear, expressive API makes writing tests more straightforward, while the Xcode user interface communicates with improved feedback when a test fails or succeeds.
The testing framework embraces Swift Macros, reducing the boilerplate code you must write for repetitive tests. So-called parameterized tests help you run similar tests over a sequence of values. Hence, you no longer have to duplicate and maintain an almost identical test for a different input value. Let’s dive into how Swift Testing works and how you can use it today:
https://www.avanderlee.com/swift-testing/introducing-expressive-apis
The Future of Vapor
Discussing what the future holds for Vapor
https://blog.vapor.codes/posts/the-future-of-vapor
CNBC
Here's everything Apple just announced: iPhone 16, iPhone 16 Pro, Apple Watch Series 10, AirPods 4 and more
Apple announced the new iPhone 16, the new Apple Watch Series 10, AirPods 4 and more on Monday. CNBC's live blog coverage is below.
💡DebugDescription у Xcode 16: новий макрос для спрощення дебагу
Під час роботи з кастомними типами відладки може бути непростим завданням.
Для спрощення можна використовувати
А за допомогою макроса DebugDescription можна викликати
🇺🇦 iOSDevUA
Під час роботи з кастомними типами відладки може бути непростим завданням.
Для спрощення можна використовувати
CustomDebugStringConvertible, який дозволяє налаштувати вивід в консоль у таких випадках.А за допомогою макроса DebugDescription можна викликати
debugDescription та перевірити детальний опис.🇺🇦 iOSDevUA
💡Як автоматично локалізувати розділ «Що нового?» за допомогою App Store Connect API
При створенні нової версії додатку в App Store Connect ми зобов’язані вказувати якусь інформацію, яка змінюється нечасто (звичайно, якщо у вас немає SMM-команди, яка відповідає за гумор і репости скріншотів).
Раніше для цього широко використовували fastlane, але зараз все частіше я чую від колег про перехід на нативне API (деякі пишуть свою обгортку, інші використовують готові рішення).
Ці способи дозволяють заощадити трохи часу, зусиль і усунути людські помилки.
📖 У цій статті розповідається, як використовувати API App Store Connect для попереднього вказання інформації при створенні нової версії додатку.
🇺🇦 iOSDevUA
При створенні нової версії додатку в App Store Connect ми зобов’язані вказувати якусь інформацію, яка змінюється нечасто (звичайно, якщо у вас немає SMM-команди, яка відповідає за гумор і репости скріншотів).
Раніше для цього широко використовували fastlane, але зараз все частіше я чую від колег про перехід на нативне API (деякі пишуть свою обгортку, інші використовують готові рішення).
Ці способи дозволяють заощадити трохи часу, зусиль і усунути людські помилки.
📖 У цій статті розповідається, як використовувати API App Store Connect для попереднього вказання інформації при створенні нової версії додатку.
🇺🇦 iOSDevUA
❤3
💡Робота з JSON у Swift: розширене керівництво
Парсинг JSON найчастіше є основою додатка для iOS, який використовує REST API.
Ділюся керівництвом, яке допоможе освіжити знання (складається з кількох глав, у кожній з яких є підрозділи з прикладами).
1️⃣ Як працювати з даними JSON у Swift.
2️⃣ Розширені техніки для парсингу складних даних.
3️⃣ Створення додатка SwiftUI, який завантажує та парсить JSON.
🛠 Проект повністю доступний і на GitHub.
🔗 А ось тут я писав про чотири корисні сервіси для спрощення роботи з JSON.
🇺🇦 iOSDevUA
Парсинг JSON найчастіше є основою додатка для iOS, який використовує REST API.
Ділюся керівництвом, яке допоможе освіжити знання (складається з кількох глав, у кожній з яких є підрозділи з прикладами).
1️⃣ Як працювати з даними JSON у Swift.
2️⃣ Розширені техніки для парсингу складних даних.
3️⃣ Створення додатка SwiftUI, який завантажує та парсить JSON.
🛠 Проект повністю доступний і на GitHub.
🔗 А ось тут я писав про чотири корисні сервіси для спрощення роботи з JSON.
🇺🇦 iOSDevUA
💡Роадмап Vapor 5
Vapor – один з основних серверних фреймворків на Swift. Команда опублікувала роадмап на наступну мажорну версію, першу альфу якої планують випустити разом з Swift 6. Ключова зміна – повний перехід на Swift Concurrency, але також є й інші цікаві плани.
🇺🇦 iOSDevUA
Vapor – один з основних серверних фреймворків на Swift. Команда опублікувала роадмап на наступну мажорну версію, першу альфу якої планують випустити разом з Swift 6. Ключова зміна – повний перехід на Swift Concurrency, але також є й інші цікаві плани.
🇺🇦 iOSDevUA
The Vapor Blog
The Future of Vapor | The Vapor Blog
Discussing what the future holds for Vapor
❤1👍1🔥1
🎬Server-side Swift Meetup #3
Продовжуючи тему Swift на сервері, ось посилання на наступний митап від команди, яка займається його розвитком. У програмі:
👉 Swift і WebAssembly
👉 Підготовка проектів до Swift 6
📆 Митап відбудеться сьогодні
🇺🇦 iOSDevUA
Продовжуючи тему Swift на сервері, ось посилання на наступний митап від команди, яка займається його розвитком. У програмі:
👉 Swift і WebAssembly
👉 Підготовка проектів до Swift 6
📆 Митап відбудеться сьогодні
🇺🇦 iOSDevUA
YouTube
Swift Server Side Meetup #03
Announcing the Third Swift Server-Side Meetup: APJ Edition
This gathering is designed for Swift developers and enthusiasts interested in server-side development. We'll delve into the latest trends, techniques, and best practices in the Swift ecosystem.…
This gathering is designed for Swift developers and enthusiasts interested in server-side development. We'll delve into the latest trends, techniques, and best practices in the Swift ecosystem.…
❤1👍1🔥1
Відбувся реліз Swift 6! 🎉🎉🎉
🦺 Concurrency: memory safety і data-race safety
🪟 Підтримка вбудованих та крос-платформених рішень
🧪 Swift Testing: параметризоване тестування на основі макросів
👉 https://www.swift.org/blog/announcing-swift-6/
🇺🇦 iOSDevUA
🦺 Concurrency: memory safety і data-race safety
🪟 Підтримка вбудованих та крос-платформених рішень
🧪 Swift Testing: параметризоване тестування на основі макросів
👉 https://www.swift.org/blog/announcing-swift-6/
🇺🇦 iOSDevUA
Swift.org
Announcing Swift 6
We’re delighted to announce the general availability of Swift 6. This is a major new release that expands Swift to more platforms and domains.
👍4❤2🔥2
💡Camera Control в iPhone16: AVCaptureControl та фреймворк LockedCameraCapture
Буквально тиждень тому показали новий телефон, а у нас вже з’явився новий інструмент, новий контрол, з яким можна працювати.
📖 На офіційній сторінці Apple можна ознайомитися з найкращими практиками в плані дизайну.
А з того, що нам може знадобитися:
1️⃣ AVCaptureControl — новий контрол тільки для 16/16 Pro (приклади роботи — тут).
2️⃣ LockedCameraCapture — новий фреймворк, за допомогою якого можна створити розширення для запуску камери на заблокованому пристрої. Туторіал вже доступний (але, як і завжди, є ряд обмежень).
🇺🇦 iOSDevUA
Буквально тиждень тому показали новий телефон, а у нас вже з’явився новий інструмент, новий контрол, з яким можна працювати.
📖 На офіційній сторінці Apple можна ознайомитися з найкращими практиками в плані дизайну.
А з того, що нам може знадобитися:
1️⃣ AVCaptureControl — новий контрол тільки для 16/16 Pro (приклади роботи — тут).
2️⃣ LockedCameraCapture — новий фреймворк, за допомогою якого можна створити розширення для запуску камери на заблокованому пристрої. Туторіал вже доступний (але, як і завжди, є ряд обмежень).
🇺🇦 iOSDevUA
💡libcimbar – протокол передачі даних за допомогою QR-кодів
Не знаю, навіщо вам цей проєкт, але виглядає як крута ідея для основи якогось пет-проєкту! На базі анімованого QR-коду реалізована передача даних зі швидкістю близько 100 кбіт/сек.
🇺🇦 iOSDevUA
Не знаю, навіщо вам цей проєкт, але виглядає як крута ідея для основи якогось пет-проєкту! На базі анімованого QR-коду реалізована передача даних зі швидкістю близько 100 кбіт/сек.
🇺🇦 iOSDevUA