🇺🇦 iOS Dev UA - спільнота iOS розробників
384 subscribers
399 photos
42 videos
9 files
961 links
Перша україномовна спільнота iOS розробників 🇺🇦

👨‍💻Цікаві матеріали зі світу розробки для продуктів Apple.
Статті по розробці на Swift та SwiftUI. Огляд нових технологій в розробці від Apple.

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Typed throws у Swift 6.0

Ще одне покращення якості життя у Swift 6 – можливість явно вказати тип помилки, яку може викидати функція. При цьому ви можете продовжувати писати код як і раніше, не вказуючи конкретний тип – компілятор сам приведе його до any Error.

🇺🇦 iOSDevUA
💡Conditional брейкпойнти можуть уповільнювати роботу додатку

Чудова історія дебагу неочевидної проблеми з перфомансом, де сам дебаггер і став головним винуватцем.

🇺🇦 iOSDevUA
1
💡Як не слід використовувати DeviceCheck Framework

DeviceCheck фреймворк надає можливість зберігати довільну інформацію обсягом два біти для додатка. Ця інформація зберігається між всіма переустановками додатка, стиранням даних і навіть при зміні власників телефону. У статті розповідається, як Snapchat використовував ці два біти для збереження інформації про статус бану користувача, через що новий власник айфона не міг користуватися їхнім додатком.

🇺🇦 iOSDevUA
👍2
💡Як підтримувати версії залежностей актуальними

👉 Призначаємо відповідального за кожен з уже доданих пакетів. Роль відповідального – оновлювати його версії, коли вони виходять.
👉 За допомогою пакета swift-outdated слідкуємо на CI за появою нових версій.
👉 Якщо з’являється нова версія, пишемо про це в Slack і повідомляємо відповідального.
👉 Якщо раптом у якогось пакета немає відповідального, генеруємо помилку.

🇺🇦 iOSDevUA
💡Використовуєте в Xcode таку опцію, як Build with Timing Summary?

Якщо ні, то прочитайте про це в статті. Якщо так, то теж читайте, можливо, дізнаєтеся щось нове.
Матеріал в цілому вступний, але для багатьох буде корисним.
Ось такі цікаві речі показує 👍

👉 https://pfandrade.me/blog/swift-build-times-and-module-verification/

🇺🇦 iOSDevUA
2
💡Отримання прапора країни у вигляді емодзі у Swift

Часто потрібно відобразити емодзі для країни за її кодом.

Прапори 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
💡DebugDescription у Xcode 16: новий макрос для спрощення дебагу

Під час роботи з кастомними типами відладки може бути непростим завданням.

Для спрощення можна використовувати CustomDebugStringConvertible, який дозволяє налаштувати вивід в консоль у таких випадках.

А за допомогою макроса DebugDescription можна викликати debugDescription та перевірити детальний опис.

🇺🇦 iOSDevUA
💡Як автоматично локалізувати розділ «Що нового?» за допомогою App Store Connect API

При створенні нової версії додатку в 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
💡Роадмап Vapor 5

Vapor – один з основних серверних фреймворків на Swift. Команда опублікувала роадмап на наступну мажорну версію, першу альфу якої планують випустити разом з Swift 6. Ключова зміна – повний перехід на Swift Concurrency, але також є й інші цікаві плани.

🇺🇦 iOSDevUA
1👍1🔥1
🎬Server-side Swift Meetup #3

Продовжуючи тему Swift на сервері, ось посилання на наступний митап від команди, яка займається його розвитком. У програмі:

👉 Swift і WebAssembly
👉 Підготовка проектів до Swift 6

📆 Митап відбудеться сьогодні

🇺🇦 iOSDevUA
1👍1🔥1
Відбувся реліз Swift 6! 🎉🎉🎉

🦺 Concurrency: memory safety і data-race safety
🪟 Підтримка вбудованих та крос-платформених рішень
🧪 Swift Testing: параметризоване тестування на основі макросів

👉 https://www.swift.org/blog/announcing-swift-6/

🇺🇦 iOSDevUA
👍42🔥2
💡Camera Control в iPhone16: AVCaptureControl та фреймворк LockedCameraCapture

Буквально тиждень тому показали новий телефон, а у нас вже з’явився новий інструмент, новий контрол, з яким можна працювати.

📖 На офіційній сторінці Apple можна ознайомитися з найкращими практиками в плані дизайну.

А з того, що нам може знадобитися:

1️⃣ AVCaptureControl — новий контрол тільки для 16/16 Pro (приклади роботи — тут).

2️⃣ LockedCameraCapture — новий фреймворк, за допомогою якого можна створити розширення для запуску камери на заблокованому пристрої. Туторіал вже доступний (але, як і завжди, є ряд обмежень).

🇺🇦 iOSDevUA
💡libcimbar – протокол передачі даних за допомогою QR-кодів

Не знаю, навіщо вам цей проєкт, але виглядає як крута ідея для основи якогось пет-проєкту! На базі анімованого QR-коду реалізована передача даних зі швидкістю близько 100 кбіт/сек.

🇺🇦 iOSDevUA
💡Swift Testing: Розбір API та макроса #expect

Новий зрозумілий та виразний API робить написання тестів більш простим, а сам інтерфейс Xcode зробив великий крок вперед для сповіщень при помилках (або ж коректному виконанні).

📖 У цій статті приділено увагу написанню тестів з використанням нових можливостей, а також розглянуто міграцію з XCTests.

🇺🇦 iOSDevUA
💡Реліз Hummingbird 2

Останнім часом кількість новин навколо серверного Swift якось зашкалює. Цього разу мова про мажорний реліз ще одного порівняно популярного фреймворку. Ключова зміна, звісно ж, Swift Concurrency. Повні реліз-ноути можна прочитати тут.

🇺🇦 iOSDevUA
💡Оновлення App Store Connect

Тепер обов’язковим є лише один набір скріншотів для додатків (і для iPhone, і для iPad).

🤩 Викладати додатки буде простіше (і швидше).

🇺🇦 iOSDevUA
👍3