🇺🇦 iOS Dev UA - спільнота iOS розробників
前往频道在 Telegram
Перша україномовна спільнота iOS розробників 🇺🇦 👨💻Цікаві матеріали зі світу розробки для продуктів Apple. Статті по розробці на Swift та SwiftUI. Огляд нових технологій в розробці від Apple. чат: @iOSDevsUAChat Ідеї та пропозиції: @SergeyZhuravel
显示更多384
订阅者
无数据24 小时
+17 天
+1030 天
帖子存档
🎬Server-side Swift Meetup #3
Продовжуючи тему Swift на сервері, ось посилання на наступний митап від команди, яка займається його розвитком. У програмі:
👉 Swift і WebAssembly
👉 Підготовка проектів до Swift 6
📆 Митап відбудеться сьогодні
🇺🇦 iOSDevUA
💡Роадмап Vapor 5
Vapor – один з основних серверних фреймворків на Swift. Команда опублікувала роадмап на наступну мажорну версію, першу альфу якої планують випустити разом з Swift 6. Ключова зміна – повний перехід на Swift Concurrency, але також є й інші цікаві плани.
🇺🇦 iOSDevUA
💡Робота з JSON у Swift: розширене керівництво
Парсинг JSON найчастіше є основою додатка для iOS, який використовує REST API.
Ділюся керівництвом, яке допоможе освіжити знання (складається з кількох глав, у кожній з яких є підрозділи з прикладами).
1️⃣ Як працювати з даними JSON у Swift.
2️⃣ Розширені техніки для парсингу складних даних.
3️⃣ Створення додатка SwiftUI, який завантажує та парсить JSON.
🛠 Проект повністю доступний і на GitHub.
🔗 А ось тут я писав про чотири корисні сервіси для спрощення роботи з JSON.
🇺🇦 iOSDevUA
💡Як автоматично локалізувати розділ «Що нового?» за допомогою App Store Connect API
При створенні нової версії додатку в App Store Connect ми зобов’язані вказувати якусь інформацію, яка змінюється нечасто (звичайно, якщо у вас немає SMM-команди, яка відповідає за гумор і репости скріншотів).
Раніше для цього широко використовували fastlane, але зараз все частіше я чую від колег про перехід на нативне API (деякі пишуть свою обгортку, інші використовують готові рішення).
Ці способи дозволяють заощадити трохи часу, зусиль і усунути людські помилки.
📖 У цій статті розповідається, як використовувати API App Store Connect для попереднього вказання інформації при створенні нової версії додатку.
🇺🇦 iOSDevUA
💡DebugDescription у Xcode 16: новий макрос для спрощення дебагу
Під час роботи з кастомними типами відладки може бути непростим завданням.
Для спрощення можна використовувати
CustomDebugStringConvertible, який дозволяє налаштувати вивід в консоль у таких випадках.
А за допомогою макроса DebugDescription можна викликати debugDescription та перевірити детальний опис.
🇺🇦 iOSDevUAHello 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
💡Отримання прапора країни у вигляді емодзі у Swift
Часто потрібно відобразити емодзі для країни за її кодом.
Прапори Emoji представлені за допомогою послідовностей символів у юнікоді. Дивно, але юнікодове представлення кожного прапора безпосередньо відповідає коду згідно зі стандартом ISO (ISO 3166-1 alpha-2).
Але є й інший шлях.
📖 У цьому матеріалі розглядаються не лише принципи отримання емодзі, але й обговорюються неочевидні моменти для різних стандартів.
🇺🇦 iOSDevUA
💡Використовуєте в Xcode таку опцію, як Build with Timing Summary?
Якщо ні, то прочитайте про це в статті. Якщо так, то теж читайте, можливо, дізнаєтеся щось нове.
Матеріал в цілому вступний, але для багатьох буде корисним.
Ось такі цікаві речі показує 👍
👉 https://pfandrade.me/blog/swift-build-times-and-module-verification/
🇺🇦 iOSDevUA
💡Як підтримувати версії залежностей актуальними
👉 Призначаємо відповідального за кожен з уже доданих пакетів. Роль відповідального – оновлювати його версії, коли вони виходять.
👉 За допомогою пакета swift-outdated слідкуємо на CI за появою нових версій.
👉 Якщо з’являється нова версія, пишемо про це в Slack і повідомляємо відповідального.
👉 Якщо раптом у якогось пакета немає відповідального, генеруємо помилку.
🇺🇦 iOSDevUA
💡Як не слід використовувати DeviceCheck Framework
DeviceCheck фреймворк надає можливість зберігати довільну інформацію обсягом два біти для додатка. Ця інформація зберігається між всіма переустановками додатка, стиранням даних і навіть при зміні власників телефону. У статті розповідається, як Snapchat використовував ці два біти для збереження інформації про статус бану користувача, через що новий власник айфона не міг користуватися їхнім додатком.
🇺🇦 iOSDevUA
💡Conditional брейкпойнти можуть уповільнювати роботу додатку
Чудова історія дебагу неочевидної проблеми з перфомансом, де сам дебаггер і став головним винуватцем.
🇺🇦 iOSDevUA
💡Typed throws у Swift 6.0
Ще одне покращення якості життя у Swift 6 – можливість явно вказати тип помилки, яку може викидати функція. При цьому ви можете продовжувати писати код як і раніше, не вказуючи конкретний тип – компілятор сам приведе його до
any Error.
🇺🇦 iOSDevUAHello 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/
💡Хочете локалізувати свій додаток, але виникає забагато проблем з цим? Можливо, цей інструмент вам допоможе. Він перекладає все через OpenAI GPT 3.5 turbo (це не двигун від спорткара) модель. Думаю, що деякі переклади, можливо, потрібно буде виправити в подальшому, але в цілому виглядає як класна штука для пет-прокекту 👍
👉 https://swiftpackageindex.com/hidden-spectrum/swift-translate
🇺🇦 iOSDevUA
🚀Як використовувати файли EditorConfig в Xcode 16
🛠 Якщо ви працювали або працюєте над кількома проєктами з різними кодстайлами, то може виникнути ситуація, коли потрібно налаштовувати параметри Xcode кожного разу при переключенні між проєктами.
А якщо в проєкті немає лінтера, який забезпечує дотримання стилю, і ви раптом забудете застосувати ці налаштування, то можна легко отримати непослідовне форматування коду в усьому проєкті.
В Xcode 16 додана підтримка файлів EditorConfig, які дозволяють задавати налаштування редактора Xcode для кожного проєкту.
📖 У цій статті ви дізнаєтеся, як налаштувати файли EditorConfig в Xcode та які налаштування підтримуються на даний момент.
🇺🇦 iOSDevUA
💡Простий додаток на Swift/WebAssembly
Хлопці з Pointfree запустили нову серію відео, в рамках якої вони будуть розробляти кросплатформений додаток, що запускається як на iOS, так і в браузері, за допомогою експериментального компілятора Swift у WebAssembly.
🇺🇦 iOSDevUA
💡Swift Testing стає частиною основного тулчейна
Swift Testing, який спочатку був доступний у вигляді окремого пакета, інтегрують в основну робочу гілку Swift, і з моменту релізу Swift 6.0 він офіційно стане його частиною.
🇺🇦 iOSDevUA
+1
💡Tophat – open source проект для поширення билд-файлів всередині компанії
Пам’ятаєте, я минулого тижня розповідав про Tuist Previews? Так ось, Shopify опенсорснули дуже схожу річ. Усі гілки автоматично збираються на CI, артефакти завантажуються в окреме сховище, посилання на них прив’язуються до PR, і додатково доступні через окремий macOS додаток. Виглядає дуже зручно, подивіться!
🇺🇦 iOSDevUA
Матеріал про те, як використовувати Concurrency у Swift.
З прикладами і поясненням, все покроково 👍
👉 https://www.massicotte.org/step-by-step-network-request
🇺🇦 iOSDevUA
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
