es
Feedback
🇺🇦 iOS Dev UA - спільнота iOS розробників

🇺🇦 iOS Dev UA - спільнота iOS розробників

Ir al canal en Telegram

Перша україномовна спільнота iOS розробників 🇺🇦 👨‍💻Цікаві матеріали зі світу розробки для продуктів Apple. Статті по розробці на Swift та SwiftUI. Огляд нових технологій в розробці від Apple. чат: @iOSDevsUAChat Ідеї та пропозиції: @SergeyZhuravel

Mostrar más
384
Suscriptores
Sin datos24 horas
+17 días
+1030 días
Archivo de publicaciones
💡Helm – нативний додаток macOS для роботи з App Store Connect Я здивований, що такий клієнт з’явився лише зараз. З появою у
💡Helm – нативний додаток macOS для роботи з App Store Connect Я здивований, що такий клієнт з’явився лише зараз. З появою у App Store Connect нормального API, ідея лежала на поверхні. Що вміє додаток: 👉 Керувати білдами та користувачами в TestFlight 👉 Перевіряти статус білдів 👉 Перемикатися між різними командами 👉 Керувати локалізацією сторінки додатка та всіма ASO речами 🇺🇦 iOSDevUA

💡Realm vs SwiftData: що швидше? Jacob Bartlett з компанії Emerge Tools провів велике дослідження і порівняв продуктивність з
💡Realm vs SwiftData: що швидше? Jacob Bartlett з компанії Emerge Tools провів велике дослідження і порівняв продуктивність за трьома ключовими метриками: 1️⃣ Швидкість. 2️⃣ Розмір. 3️⃣ Пам’ять. І хоча з точки зору запису та виконання простих запитів на читання Realm попереду, але в деяких моментах завдяки чудовому управлінню графами об’єктів при роботі з більш складними даними SwiftData виявилася продуктивнішою. При невеликих обсягах (≤10 000 елементів, що охоплює переважну більшість сценаріїв у мобільних додатках) SwiftData також була набагато швидшою при оновленні існуючих даних. 📖 Багато графіків, висновків і цікавих особливостей можна дізнатися в цій статті. 🇺🇦 iOSDevUA

💡Як керувати позицією скролу в SwiftUI Одна з найбільш очікуваних нових фіч у SwiftUI – програмний скрол до будь-якої позиції. У статті розглядаються основні можливості нового API: 👉 Визначення позиції скролу як хардкодом, так і через позицію інших елементів. 👉 Біндинг позиції скролу до стейту. 👉 Анімування зміни скролу. 🇺🇦 iOSDevUA

🚀Predictive code completion в Xcode 16 просто дивовижний 🇺🇦 iOSDevUA
🚀Predictive code completion в Xcode 16 просто дивовижний 🇺🇦 iOSDevUA

💡Правила створення класних анімацій Рекомендації щодо того, як створювати красиві та корисні анімації. Більшість рекомендаці
💡Правила створення класних анімацій Рекомендації щодо того, як створювати красиві та корисні анімації. Більшість рекомендацій супроводжуються інтерактивними прикладами. Наприклад, можна пограти з різними параметрами spring-анімації, щоб відчути, при яких значеннях вона буде відчуватися максимально природньо. 🇺🇦 iOSDevUA

💡Жести також уніфікували між SwiftUI та UIKit. 🇺🇦 iOSDevUA
💡Жести також уніфікували між SwiftUI та UIKit. 🇺🇦 iOSDevUA

💡Як iOS 18 покращує роботу з градієнтами Дуже часто в проектах розробники використовують додатковий градієнт, щоб створити к
💡Як iOS 18 покращує роботу з градієнтами Дуже часто в проектах розробники використовують додатковий градієнт, щоб створити контраст між фоном і текстом. Однак при такому використанні лінійного градієнта будуть видні перепади яскравості та різкий перехід. 📖 В iOS 18 доступне нове API для змішування кольорів. Тому, використовуючи UnitCurve, можна інтерполювати кольори за допомогою вбудованих або кастомних кривих Безьє, щоб забезпечити плавність переходу. Приклад використання під катом:
extension Gradient {
    init(from: Color, to:Color, with curve:UnitCurve, steps:Int = 10) {
        let colors = stride(from: 0.0, through: 1.0, by: 1.0 / Double(steps))
            .map { f in
                from.mix(with: to, by: curve.value(at: f))
            }
        self.init(colors: colors)
    }
}
📖 Додатково почитати про змішування кольорів можна в цій статті. 🇺🇦 iOSDevUA

💡NodeSwift – пакет для інтеропу Swift з Node.js NodeSwift – пакет, за допомогою якого можна реалізовувати інтероп Swift з Node.js в обидва боки. Навіщо це взагалі може бути потрібно: 👉 Працювати з нативним кодом і macOS API в Electron-додатку 👉 Використовувати NPM пакети з Swift-додатку 👉 Прискорювати JS код, реалізуючи критичні частини на Swift 🇺🇦 iOSDevUA

🤝 Готовий UI текстового форматера Можна налаштувати, які дії скільки місця займають Презентується як звичайний контролер. Уп
🤝 Готовий UI текстового форматера Можна налаштувати, які дії скільки місця займають Презентується як звичайний контролер. Управління через делегати 🇺🇦 iOSDevUA

💡NotPrivateAPIs — проєкт, який розкриває деякі приватні API ❗️Звичайно, їх не можна використовувати в робочих проєктах і вик
💡NotPrivateAPIs — проєкт, який розкриває деякі приватні API ❗️Звичайно, їх не можна використовувати в робочих проєктах і викладати в App Store. Наприклад, меню зі своїми елементами — це взагалі ще та задача (подивіться реакції в Messages над повідомленням, або реалізацію в телеграмі). 📖 Morris Richman зібрав в одному місці речі, які використовує Apple: наприклад, як додати кастомний хедер в UIAlertController або як змінити іконку додатка без попередження користувача. 🇺🇦 iOSDevUA

💡UIKitNavigation – бібліотека від Pointfree За мотивами недавньої серії роликів про сучасну розробку на UIKit Pointfree випустили прев'ю бібліотеки UIKitNavigation, за допомогою якої можна керувати станом додатка, реалізовувати біндинги та навігацію за аналогією зі SwiftUI. 🇺🇦 iOSDevUA

Hello iOS developers! New digest is here! Hello everyone! New iOS weekly digest is here! 🚀🚀🚀 Last Week at Apple 🚀 🚀 🚀 SwiftUI, SwiftUI but what about UIKit? Jordan Morgan wrote an interesting article about UIKit improvements in iOS 18: iOS 18: Notable UIKit Additions https://www.swiftjectivec.com/ios-18-notable-uikit-additions Why Swift's type checker is so slow The Swift compiler can take an absurdly long time to compile expressions due to how types are inferred1. Here’s an explanation by the creator of Swift, Chris Lattner (from from his Mojo talk and edited for clarity): My experience with Swift is we tried to make a really fancy bi-directional Hindley-Milner type checker and it’s really great because you can have very beautiful minimal syntax but the problem is that A) compile times are really bad (particularly if you have complicated expressions) and 😎 the error messages are awful because now you have a global constraint system and when something goes wrong you have to infer what happened and the user can’t know that something over there made it so something over here can’t type check. In my experience it sounds great but it doesn’t work super well: https://danielchasehooper.com/posts/why-swift-is-slow Mastering ScrollView in SwiftUI. Scroll Offset WWDC 24 is over, and I decided to start writing posts about new features in the upcoming iteration of the SwiftUI framework. Apple continues filling gaps this year by introducing more granular control over the scroll position. This week, we will learn how to manipulate and read the scroll offset: https://swiftwithmajid.com/2024/06/17/mastering-scrollview-in-swiftui-scroll-offset Async await in Swift explained with code examples Async await is part of the new structured concurrency changes that arrived in Swift 5.5 during WWDC 2021. Concurrency in Swift means allowing multiple pieces of code to run at the same time. This is a very simplified description, but it should give you an idea already how important concurrency in Swift is for the performance of your apps. With the new async methods and await statements, we can define methods performing work asynchronously: https://www.avanderlee.com/swift/async-await If you wondered how many Apple pays to OpenAI for ChatGPT integration, the answer is: zero: https://www.macrumors.com/2024/06/13/apple-not-paying-openai-chatgpt-ios-18 And the last but not least - one hard thing for us as iOS and MacOS developers: iOS 18 could ‘sherlock’ $400M in app revenue This feels natural and probably good for end users but not for developers. Especially I can't understand when developers are happy about Apple "killed" some company or startup - we don't know when our app or company will be "killed" next: https://techcrunch.com/2024/06/18/ios-18-could-sherlock-400m-in-app-revenue/

💡Створення анімації в стилі Siri в iOS 18 Siddhant Mehta та Meng To використовували комбінацію Mesh Gradient (приклад ви можете побачити у моєму пості вище) та ripple-ефекту. 🛠 Вихідний код проєкту доступний на GitHub. 📺 Сесія з прикладами анімацій ось тут. 🇺🇦 iOSDevUA

🚀Wow!! Калькулятор нарешті з’явиться на iPad з iPadOS 18, з розширеними функціями та інтеграцією Apple Pencil. Новий додаток Calculator також буде доступний для всіх сумісних моделей і матиме узгоджений інтерфейс на всіх пристроях. Спекуляції щодо відсутності додатка Calculator на iPad можуть бути пов’язані з філософією дизайну та пріоритизацією всередині Apple. 🇺🇦 iOSDevUA

💡Анімації 👶 SwiftUI тепер можна викликати в UIKit. І кастомні анімації теж. 🇺🇦 iOSDevUA
💡Анімації 👶 SwiftUI тепер можна викликати в UIKit. І кастомні анімації теж. 🇺🇦 iOSDevUA

💡Чому в Swift повільна перевірка типів У недавньому інтерв'ю Кріс Латтнер розповів, що вважає систему перевірки типів у Swif
💡Чому в Swift повільна перевірка типів У недавньому інтерв'ю Кріс Латтнер розповів, що вважає систему перевірки типів у Swift невдалою. У статті розбирається, чому в деяких випадках час перевірки типів може зростати експоненціально зі збільшенням складності виразу. 🇺🇦 iOSDevUA

💡Swift переїхав в окрему організацію на GitHub Swift тепер знаходиться не в організації Apple, а у власній організації Swiftlang. Там же буде розміщуватися стандартна бібліотека, компілятор, всі основні інструменти та бібліотеки, а також інші проекти, важливі для екосистеми. У майбутньому обіцяють представити єдиний процес додавання нових проектів в організацію та їх еволюції, почати використовувати GitHub Teams і покращувати CI для всього. 🇺🇦 iOSDevUA

💡Підбірка найкращих сесій з WWDC24 (Swift, Performance, Debugging) WWDC підійшов до кінця, тому вирішив виділити сесії, які варто переглянути в пріоритетному порядку. 📼 Аналіз heap memory
Розповідають не тільки про основи динамічної пам’яті (кучу), але й про те, як використовувати Instruments та Xcode для аналізу та усунення поширених проблем. А ще методи та найкращі практики для діагностики витоків у додатку.
📼 Використання некопійованих типів у Swift
Велика сесія, яка дозволить дізнатися, що взагалі мається на увазі під копіюванням у Swift, коли можна використовувати некопійований тип і як value ownership дозволяє чітко позначити свої наміри.
📼 Swift Performance
Сесія пояснює, як саме Swift забезпечує баланс продуктивності. Наводять приклади різних функцій Swift і способи їх реалізації, щоб краще зрозуміти можливі потенційні проблеми, що впливають на продуктивність. Можна глибше зануритися в основи виділення пам'яті, memory layout загалом, дженеріки, замикання – загалом топ і в закладки.
📼 Підбірка анімацій з WWDC з прикладами коду
Нові анімації скролу, ефекти, все з прикладами.
📼 Показники продуктивності в AVFoundation
Всі, хто працював з відео, компресією або навіть просто використовував AVPlayer, знають, як мало документації та прикладів по цьому розділу. У цій сесії розповідають, які метрики варто враховувати і як вони впливають на продуктивність.
📼 Run, Break, Inspect: Досліджуйте ефективну відладку в LLDB
Показують, як максимально ефективно використовувати крашлоги і бектрейси, а також як покращити брейкпоінти за допомогою дій та складних умов. А ще особливу увагу приділено команді «p» і новим можливостям Swift, які покращать досвід відладки.
📼 Swift Testing
Можна дізнатися, як написати набір тестів, використовуючи вбудовані функції. Як розширювати існуючі тести, щоб охопити більше сценаріїв, організувати тести в різних середовищах і оптимізувати тести для паралельного виконання.
📼 База в Xcode
Розповідають про популярні фішки Xcode, які допоможуть прискорити розробку.
📼 Міграція на Swift 6
Можна дізнатися, як перевести існуючий додаток на Swift 6 на реальному прикладі. Розповідають про опцію переносу модуль за модулем і як компілятор допомагає виявити код, схильний до ризику гонок даних. Розповідають про ізоляцію та як вирішити проблему одночасного доступу до спільного змінного стану.
📼 Що нового в UIKit
Дізнайтеся про всі новинки в UIKit, включаючи зручність запуску вкладок і документів, переходи, зміни тексту та введення. Також розповідають про сумісність анімацій і жестів UIKit і SwiftUI, а також загальні покращення у всьому UIKit.
🇺🇦 iOSDevUA

Dark mode app icons Рекомендації щодо адаптації іконок додатків різної композиції до темного режиму таким чином, щоб вони не
Dark mode app icons Рекомендації щодо адаптації іконок додатків різної композиції до темного режиму таким чином, щоб вони не виділялися надмірною яскравістю, але при цьому зберігали впізнаваність. 🇺🇦 iOSDevUA