💡Розбір режимів накладання у Swift: приклади та можливі варіанти
Режими накладання (blend modes) відіграють найважливішу роль у дизайні. Вони необхідні при роботі з фото, створенні ефектів освітлення, і, наприклад, використовуються для досягнення ефекту глибини в зображеннях.
💬 Як випливає з назви, при використанні такого режиму відбувається змішування кольору кількох шарів пікселів за допомогою математичних формул для визначення ступеня впливу кожного пікселя на кінцеве зображення.
Можна комбінувати будь-яку кількість шарів, але мінімально необхідно лише два — базовий і сам шар накладання.
📖 У цій статті докладно розглядаються різні режими накладання (та математичні формули), способи реалізації та приклади використання.
🇺🇦 iOSDevUA
Режими накладання (blend modes) відіграють найважливішу роль у дизайні. Вони необхідні при роботі з фото, створенні ефектів освітлення, і, наприклад, використовуються для досягнення ефекту глибини в зображеннях.
💬 Як випливає з назви, при використанні такого режиму відбувається змішування кольору кількох шарів пікселів за допомогою математичних формул для визначення ступеня впливу кожного пікселя на кінцеве зображення.
Можна комбінувати будь-яку кількість шарів, але мінімально необхідно лише два — базовий і сам шар накладання.
📖 У цій статті докладно розглядаються різні режими накладання (та математичні формули), способи реалізації та приклади використання.
🇺🇦 iOSDevUA
👍3
💡Що нового в UI тестах в Xcode 16
👉 Функція waitForNonExistence(withTimeout:), яка дозволяє прив’язатися до зникнення якогось елемента.
👉 Функція wait(for:toEqual:timeout:), яка дає можливість прив’язатися до моменту, коли властивість елемента буде дорівнювати певному значенню.
🇺🇦 iOSDevUA
👉 Функція waitForNonExistence(withTimeout:), яка дозволяє прив’язатися до зникнення якогось елемента.
👉 Функція wait(for:toEqual:timeout:), яка дає можливість прив’язатися до моменту, коли властивість елемента буде дорівнювати певному значенню.
🇺🇦 iOSDevUA
Jesse Squires
UI testing improvements in Xcode 16
While the new Swift Testing framework announced this year at WWDC24 is getting a lot of attention, there are some notable improvements coming to UI testing i...
👍1
💡Невелика стаття з порадами та хитрощами в новому API ScrollView в iOS 18
Про пагінацію та приховування навігаційної панелі та таббарів.
З прикладами коду
👉 https://dimillian.medium.com/some-tips-tricks-with-the-new-ios-18-scrollview-api-95632b41bc8e
🇺🇦 iOSDevUA
Про пагінацію та приховування навігаційної панелі та таббарів.
З прикладами коду
👉 https://dimillian.medium.com/some-tips-tricks-with-the-new-ios-18-scrollview-api-95632b41bc8e
🇺🇦 iOSDevUA
Medium
Some tips & tricks with the new iOS 18 ScrollView API
Pagination, hiding navigation and tab bar & more.
👍1
💡Стаття з цікавим заголовком. Навряд чи чомусь сильно навчить вас, але роздуми цікаві! І не дуже популярні, від чого ще цікавішими стають 😀
Але все ж чомусь навчить і навіть приклади покаже. Взагалі, якщо вам цікава розробка під macOS, але ви все не можете зважитися, то, можливо, ця стаття трохи підштовхне вас!
👉 https://www.avanderlee.com/swiftui/macos-development-powerful-utilities/
🇺🇦 iOSDevUA
Але все ж чомусь навчить і навіть приклади покаже. Взагалі, якщо вам цікава розробка під macOS, але ви все не можете зважитися, то, можливо, ця стаття трохи підштовхне вас!
👉 https://www.avanderlee.com/swiftui/macos-development-powerful-utilities/
🇺🇦 iOSDevUA
SwiftLee
Why macOS Development is Perfect for Indie Developers
Learn from the experiences of a successful macOS app developer and gain the confidence to dive into creating your own Mac applications.
👍1
💡Проблеми використання NSCopying у світі Swift
Через особливості того, як в Objective-C працюють designated initializer’и, наслідування від класів, що реалізують протокол NSCopying, у Swift може призвести до неприємних крешів. Інженери PSPDFKit розповідають про те, як їх можна спробувати обійти.
🇺🇦 iOSDevUA
Через особливості того, як в Objective-C працюють designated initializer’и, наслідування від класів, що реалізують протокол NSCopying, у Swift може призвести до неприємних крешів. Інженери PSPDFKit розповідають про те, як їх можна спробувати обійти.
🇺🇦 iOSDevUA
Nutrient
NSCopying in a Swift world
An exploration into how a modern Swift programming mindset clashes with Objective-C’s NSCopying protocol.
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🔒 Encapsulation 🔒
Інкапсуляція є ключем до чистого, підтримуваного коду. Перегляньте приклад, доданий тут, де цей принцип застосовується з використанням Combine API у рамках архітектури MVVM. Замість того, щоб відкривати
🇺🇦 iOSDevUA
Інкапсуляція є ключем до чистого, підтримуваного коду. Перегляньте приклад, доданий тут, де цей принцип застосовується з використанням Combine API у рамках архітектури MVVM. Замість того, щоб відкривати
send на PassthroughSubject, інкапсулюйте його у своєму ViewModel. Це забезпечує цілісність даних та запобігає неправильному використанню.Пам’ятайте, цей підхід не обмежується Combine — він є важливим для кожного компонента, який ми розробляємо.
🇺🇦 iOSDevUA
👍2
🎬Вийшло потужне інтерв’ю з Крісом Латтнером
Такі відео з’являються надзвичайно рідко. Тому, якщо у вас знайдеться час, обов’язково постарайтеся подивитися діалог з творцем Swift, LLVM, Clang та інших продуктів.
Цікаво, що Кріс відповідає не лише на очевидні питання, але й ділиться інсайдами, а також розповідає, як проєкт, що був потенційно цікавим лише кільком сотням людей з 2010 до 2016 року, пройшов величезний шлях і став опенсорсним. До речі, зачіпаються і цікаві моменти, коли доводилося розповідати професіоналам з багаторічним досвідом на Objective-C про переваги нової мови і які складнощі були на цьому шляху.
📺 Зберігайте відео, щоб подивитися відповіді та коментарі одного з найвизначніших програмістів нашого покоління.
🇺🇦 iOSDevUA
Такі відео з’являються надзвичайно рідко. Тому, якщо у вас знайдеться час, обов’язково постарайтеся подивитися діалог з творцем Swift, LLVM, Clang та інших продуктів.
Цікаво, що Кріс відповідає не лише на очевидні питання, але й ділиться інсайдами, а також розповідає, як проєкт, що був потенційно цікавим лише кільком сотням людей з 2010 до 2016 року, пройшов величезний шлях і став опенсорсним. До речі, зачіпаються і цікаві моменти, коли доводилося розповідати професіоналам з багаторічним досвідом на Objective-C про переваги нової мови і які складнощі були на цьому шляху.
📺 Зберігайте відео, щоб подивитися відповіді та коментарі одного з найвизначніших програмістів нашого покоління.
🇺🇦 iOSDevUA
YouTube
I Interviewed The Creator Of LLVM, Clang, Swift, and Mojo
Recorded live on twitch, GET IN
### Guests
Chris Lattner
https://x.com/clattner_llvm?s=21&t=-sv4MdpmLrRuMIhARbLk-g
https://www.modular.com
TJ DeVries
https://youtube.com/@teej_dv?si=AIrpF3SWJYZqlboU
### My Stream
https://twitch.tv/ThePrimeagen
###…
### Guests
Chris Lattner
https://x.com/clattner_llvm?s=21&t=-sv4MdpmLrRuMIhARbLk-g
https://www.modular.com
TJ DeVries
https://youtube.com/@teej_dv?si=AIrpF3SWJYZqlboU
### My Stream
https://twitch.tv/ThePrimeagen
###…
❤4
💡Як вирішити проблему missing package product
🔨 Один з найнеприємніших багів у Xcode виникає, коли випадково видаляється файл
Це можливо, наприклад, при зміні гілок у гіті, а залежно від розміру проєкту — таких помилок можуть бути десятки (іноді навіть сотні).
Більшість можливих рішень на форумах зводяться до магічної комбінації очищення проєкту (
📖 Все це займає час, але Джессі Сквайрс радить перевірити налаштування git, або навіть автоматизувати це за допомогою Makefile.
🇺🇦 iOSDevUA
Package.resolved, що й призводить до помилки missing package product.Це можливо, наприклад, при зміні гілок у гіті, а залежно від розміру проєкту — таких помилок можуть бути десятки (іноді навіть сотні).
Більшість можливих рішень на форумах зводяться до магічної комбінації очищення проєкту (
cmd-shift-K), видалення DerivedData/, або використання File > Packages > Reset Package Caches (або закриття та повторного відкриття Xcode).📖 Все це займає час, але Джессі Сквайрс радить перевірити налаштування git, або навіть автоматизувати це за допомогою Makefile.
🇺🇦 iOSDevUA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
💡Як принципи дизайну реалізуються в конкретних рішеннях
Дуже крутий огляд додатка Family, крипто-гаманця з топовим дизайном і анімаціями. У пості розглядаються всі принципи дизайну, яким слідувала команда, та те, в які патерни інтерфейсу та анімацій вони перетворювались. Якщо ви шукаєте натхнення – рекомендую!
🇺🇦 iOSDevUA
Дуже крутий огляд додатка Family, крипто-гаманця з топовим дизайном і анімаціями. У пості розглядаються всі принципи дизайну, яким слідувала команда, та те, в які патерни інтерфейсу та анімацій вони перетворювались. Якщо ви шукаєте натхнення – рекомендую!
🇺🇦 iOSDevUA
🔥3
💡Міграція проєкту на Swift 6: неповне керівництво
Напевно, багато хто проходив кілька ітерацій оновлення кодової бази (хтось навіть з Objective-C, і досі певний відсоток коду може бути написаний на ньому і в ваших поточних проєктах).
Завдання міграції завжди стоїть окремо, це кропітка, важка і зовсім не швидка робота, а одна зі складностей при оптимізації — показати цінність для бізнесу. Буває непросто пояснити, чому нам потрібно щось змінювати, якщо і так все працює. Але іноді це просто необхідно.
Звісно, при переході на Swift 6 можуть виникати проблеми, та й що казати, часто ми не все можемо контролювати напряму (ті ж залежності CocoaPods або SPM), тому доводиться шукати варіанти.
📖 У цьому матеріалі є відповіді на питання, що виникають при міграції, аналіз помилок і навіть опис багів у самому Swift.
🇺🇦 iOSDevUA
Напевно, багато хто проходив кілька ітерацій оновлення кодової бази (хтось навіть з Objective-C, і досі певний відсоток коду може бути написаний на ньому і в ваших поточних проєктах).
Завдання міграції завжди стоїть окремо, це кропітка, важка і зовсім не швидка робота, а одна зі складностей при оптимізації — показати цінність для бізнесу. Буває непросто пояснити, чому нам потрібно щось змінювати, якщо і так все працює. Але іноді це просто необхідно.
Звісно, при переході на Swift 6 можуть виникати проблеми, та й що казати, часто ми не все можемо контролювати напряму (ті ж залежності CocoaPods або SPM), тому доводиться шукати варіанти.
📖 У цьому матеріалі є відповіді на питання, що виникають при міграції, аналіз помилок і навіть опис багів у самому Swift.
🇺🇦 iOSDevUA
Brightdigit
Swift 6 Incomplete Migration Guide for Dummies
Discover the first steps for migrating to Swift 6, focusing on concurrency safety. Learn how to handle mutable properties, use `nonisolated`, and make UI components `@MainActor` for a seamless transition.
Hello iOS developers! New digest is here!
Hello everyone! New iOS weekly digest is here!
Let's start this digest with something unusual - Mac development using Go 🙂
How I build simple Mac apps using Go
https://dev.to/progrium/how-i-build-simple-mac-apps-using-go-104j
And one more about Mac development. Great article from Jordi Bruin about all the pros and benefits of development for Mac
Why macOS Development is Perfect for Indie Developers
Building apps for macOS offers developers a fantastic opportunity to expand their skills, create useful utilities to solve their problems, and begin their journey as indie developers:
https://www.avanderlee.com/swiftui/macos-development-powerful-utilities
Adding values to the SwiftUI environment with Xcode 16’s Entry macro
Adding custom values to SwiftUI’s environment has never been very hard to do to. However, the syntax for doing it is verbose and easy to forget. To refresh your mind, take a look at this post where we explain how to add your own environment values to a SwiftUI view:
https://www.donnywals.com/adding-values-to-the-swiftui-environment-with-xcode-16s-entry-macro
The video you should definitely see - the interview with Chris Lattner the creator of the Swift language and his thoughts about current Swift state:
https://www.youtube.com/watch?v=ovYbgbrQ-v8&ab_channel=ThePrimeTime
And one more about Swift problems - Data race safety
https://kean.blog/post/swift-6
If you ever wondered what is the difference between Some and Any make sure to check this article
Some vs Any
https://mfaani.com/posts/swift/some-vs-any
Hello everyone! New iOS weekly digest is here!
Let's start this digest with something unusual - Mac development using Go 🙂
How I build simple Mac apps using Go
https://dev.to/progrium/how-i-build-simple-mac-apps-using-go-104j
And one more about Mac development. Great article from Jordi Bruin about all the pros and benefits of development for Mac
Why macOS Development is Perfect for Indie Developers
Building apps for macOS offers developers a fantastic opportunity to expand their skills, create useful utilities to solve their problems, and begin their journey as indie developers:
https://www.avanderlee.com/swiftui/macos-development-powerful-utilities
Adding values to the SwiftUI environment with Xcode 16’s Entry macro
Adding custom values to SwiftUI’s environment has never been very hard to do to. However, the syntax for doing it is verbose and easy to forget. To refresh your mind, take a look at this post where we explain how to add your own environment values to a SwiftUI view:
https://www.donnywals.com/adding-values-to-the-swiftui-environment-with-xcode-16s-entry-macro
The video you should definitely see - the interview with Chris Lattner the creator of the Swift language and his thoughts about current Swift state:
https://www.youtube.com/watch?v=ovYbgbrQ-v8&ab_channel=ThePrimeTime
And one more about Swift problems - Data race safety
https://kean.blog/post/swift-6
If you ever wondered what is the difference between Some and Any make sure to check this article
Some vs Any
https://mfaani.com/posts/swift/some-vs-any
DEV Community
How I build simple Mac apps using Go
The latest and largest release of Go bindings to Apple frameworks
🔥4
SwiftUI Tip💡
Запобігайте користувачам закривати представлене вікно шляхом його свайпу вниз.
🇺🇦 iOSDevUA
Запобігайте користувачам закривати представлене вікно шляхом його свайпу вниз.
🇺🇦 iOSDevUA
🤔3🌚3👍1
💡Великий і докладний матеріал про Zoom transitions в iOS. Тут і про SwiftUI, і про UIKit. Все описано досить якісно, хоча стаття за оформленням більше схожа на статтю в жовтій пресі, звісно, але матеріал дійсно корисний! 👍
👉https://douglashill.co/zoom-transitions/
🇺🇦 iOSDevUA
👉https://douglashill.co/zoom-transitions/
🇺🇦 iOSDevUA
Douglas Hill
Zoom transitions
A detailed, illustrated guide to my favourite addition in the iOS 18 SDK.
❤1
💡Способи перевірки доступності нової версії додатка в AppStore
У багатьох користувачів може бути вимкнена опція автооновлення, але часто нам необхідно якось повідомити, що наше додаток потрібно оновити. Що робити?
Пол Піелла ділиться двома популярними способами у своїй статті:
1. Використовувати iTunes Lookup:
Це варіант, який можна використовувати не тільки для отримання версії, але й для інших параметрів.
2. Використовувати App Store Connect API
Можна використовувати власну обгортку або використовувати SDK.
3. Від себе б я додав, що дуже популярний спосіб — тримати файл з оновленнями десь ще (або мати власне API для запиту актуальної версії в сторі).
4. Можна використовувати ще Firebase Remote Config (по суті повторення третього способу, просто від Google).
Після того як ми отримаємо дані додатка, можна порівняти нову версію з локальною:
Якщо ви знаєте інші способи (можливо, більш елегантні), поділіться, будь ласка, у коментарях.
🇺🇦 iOSDevUA
У багатьох користувачів може бути вимкнена опція автооновлення, але часто нам необхідно якось повідомити, що наше додаток потрібно оновити. Що робити?
Пол Піелла ділиться двома популярними способами у своїй статті:
1. Використовувати iTunes Lookup:
Це варіант, який можна використовувати не тільки для отримання версії, але й для інших параметрів.
import Foundation
struct LookUpResponse: Decodable {
let results: [LookUpResult]
struct LookUpResult: Decodable {
let version: String
let minimumOsVersion: String
let trackViewUrl: URL
}
}
struct LatestAppStoreVersion {
let version: String
let minimumOsVersion: String
let upgradeURL: URL
}
final class LookUpAPI {
private let session: URLSession
private let jsonDecoder: JSONDecoder
init(session: URLSession = .shared, jsonDecoder: JSONDecoder = .init()) {
self.session = session
self.jsonDecoder = jsonDecoder
}
func getLatestAvailableVersion(for appID: String) async throws -> LatestAppStoreVersion? {
let url = URL(string: "https://itunes.apple.com/lookup?appId=\(appID)")!
let request = URLRequest(url: url)
let (data, _) = try await session.data(for: request)
let response = try jsonDecoder.decode(LookUpResponse.self, from: data)
print(response)
return response.results.first.map {
.init(version: $0.version,
minimumOsVersion: $0.minimumOsVersion,
upgradeURL: $0.trackViewUrl)
}
}
}
2. Використовувати App Store Connect API
Можна використовувати власну обгортку або використовувати SDK.
3. Від себе б я додав, що дуже популярний спосіб — тримати файл з оновленнями десь ще (або мати власне API для запиту актуальної версії в сторі).
4. Можна використовувати ще Firebase Remote Config (по суті повторення третього способу, просто від Google).
Після того як ми отримаємо дані додатка, можна порівняти нову версію з локальною:
extension LatestAppStoreVersion {
var shouldUpdate: Bool {
guard let currentVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String else {
return false
}
let systemVersion = ProcessInfo().operatingSystemVersion
let versionString = "\(systemVersion.majorVersion).\(systemVersion.minorVersion).\(systemVersion.patchVersion)"
let isRemoteVersionHigherThanLocal = currentVersion.compare(self.version, options: .numeric) == .orderedAscending
let isSystemVersionAllowed = versionString.compare(self.minimumOsVersion, options: .numeric) == .orderedDescending
return isRemoteVersionHigherThanLocal && isSystemVersionAllowed
}
}
Якщо ви знаєте інші способи (можливо, більш елегантні), поділіться, будь ласка, у коментарях.
🇺🇦 iOSDevUA
www.polpiella.dev
Check if your app has a newer version on the App Store using Swift
How to notify your users that a new version of your app is available on the App Store directly from your app.
👍2🌚1
💡Розбір Grid View у SwiftUI: LazyVGrid, LazyHGrid, Grid, GridRow
Для створення потрібного макету у SwiftUI можна використовувати
Починаючи з iOS 16, нам також доступний варіант створення Grid з використанням
📖 У цій статті розглядаються не тільки види макетів, але й опції кастомізації, включаючи інтервали, вирівнювання і багато іншого.
🇺🇦 iOSDevUA
Для створення потрібного макету у SwiftUI можна використовувати
LazyVGrid, якщо потрібно вертикальне відображення, і LazyHGrid (якщо горизонтальне). Це дозволяє досягти бажаного ефекту, при цьому адаптованого до різних орієнтацій і розмірів екрану.Починаючи з iOS 16, нам також доступний варіант створення Grid з використанням
GridRow.📖 У цій статті розглядаються не тільки види макетів, але й опції кастомізації, включаючи інтервали, вирівнювання і багато іншого.
🇺🇦 iOSDevUA
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
💡Цікава стаття від Daniel Kuntz про реалізацію real-time фазового вокодера.
У статті він детально розповідає про кожен етап розробки, з якими проблемами він стикався і як їх зрештою вирішив.
Найкрутіше, що фінальна реалізація викладена у відкритому доступі на GitHub.
🔗 Посилання на статтю
🔗 Посилання на GitHub
🇺🇦 iOSDevUA
У статті він детально розповідає про кожен етап розробки, з якими проблемами він стикався і як їх зрештою вирішив.
Найкрутіше, що фінальна реалізація викладена у відкритому доступі на GitHub.
🔗 Посилання на статтю
🔗 Посилання на GitHub
🇺🇦 iOSDevUA
👍2
💡Використовуємо SwiftUI з CLI
Приклад того, як за допомогою класу
🇺🇦 iOSDevUA
Приклад того, як за допомогою класу
ImageRenderer зі SwiftUI можна створити консольний інструмент, який буде додавати бейджі на іконку додатка.🇺🇦 iOSDevUA
www.swifttoolkit.dev
Using SwiftUI in Command Line Tools
You can take advantage of SwiftUI even in your command line tools
Завантаження картинок з диска 🏞
Річ, про яку рідко замислюєшся в процесі розробки, але вона може мати дуже несподівані й негативні наслідки.
Ось стаття, де автор розбирає, як це працює і скільки пам’яті споживає 👍
👉 https://www.avanderlee.com/swiftui/memory-consumption-loading-uiimage-from-disk/
🇺🇦 iOSDevUA
Річ, про яку рідко замислюєшся в процесі розробки, але вона може мати дуже несподівані й негативні наслідки.
Ось стаття, де автор розбирає, як це працює і скільки пам’яті споживає 👍
👉 https://www.avanderlee.com/swiftui/memory-consumption-loading-uiimage-from-disk/
🇺🇦 iOSDevUA
💡Async await у Swift: набір інструментів
📖 У блозі Emerge Tools вийшла велика стаття, в якій розглянуто багато методів зі Swift Concurrency.
З важливого: для кожного інструменту наведено приклади коду та розглянуто теорію.
🇺🇦 iOSDevUA
📖 У блозі Emerge Tools вийшла велика стаття, в якій розглянуто багато методів зі Swift Concurrency.
З важливого: для кожного інструменту наведено приклади коду та розглянуто теорію.
🇺🇦 iOSDevUA
👍4❤3
💡Розгорнутий гайд по роботі з App Store Connect API
Виконання дій вручну на сайті App Store Connect, ймовірно, найпоширеніший спосіб для розробників керувати та відстежувати стан додатків в App Store.
Але деякі завдання можуть займати невиправдано багато часу, оскільки для їх виконання потрібно постійно повторювати одні й ті ж дії. Також сайт не завжди показує коректний опис помилок (наприклад, при завантаженні скріншотів).
Ось бібліотеки, які можуть допомогти при роботі з App Store Connect API:
🔗 appstoreconnect-swift-sdk
🔗 Bagbutik
🔗 asc-swift
Нижче перераховані статті, що демонструють способи створення власних засобів автоматизації за допомогою App Store Connect API:
1️⃣ Як надсилати запити до App Store Connect API.
2️⃣ Розрахунок середнього рейтингу відгуків.
3️⃣ Робота з provisioning profiles.
4️⃣ Створення та видалення сертифікатів.
🇺🇦 iOSDevUA
Виконання дій вручну на сайті App Store Connect, ймовірно, найпоширеніший спосіб для розробників керувати та відстежувати стан додатків в App Store.
Але деякі завдання можуть займати невиправдано багато часу, оскільки для їх виконання потрібно постійно повторювати одні й ті ж дії. Також сайт не завжди показує коректний опис помилок (наприклад, при завантаженні скріншотів).
Ось бібліотеки, які можуть допомогти при роботі з App Store Connect API:
🔗 appstoreconnect-swift-sdk
🔗 Bagbutik
🔗 asc-swift
Нижче перераховані статті, що демонструють способи створення власних засобів автоматизації за допомогою App Store Connect API:
1️⃣ Як надсилати запити до App Store Connect API.
2️⃣ Розрахунок середнього рейтингу відгуків.
3️⃣ Робота з provisioning profiles.
4️⃣ Створення та видалення сертифікатів.
🇺🇦 iOSDevUA
GitHub
GitHub - AvdLee/appstoreconnect-swift-sdk: The Swift SDK to work with the App Store Connect API from Apple.
The Swift SDK to work with the App Store Connect API from Apple. - AvdLee/appstoreconnect-swift-sdk
👍1
Media is too big
VIEW IN TELEGRAM
💡Swift Translation API: приклади реалізації
До анонсу цього фреймворка в пет-проєктах я використовував або Google Translate API, або DeepL (знаю, що багато хто використовує рішення від OpenAI).
📶 Але для них потрібне інтернет-з’єднання (що логічно), і гроші (наприклад, DeepL має преміум-акаунт, де потрібно платити за обсяг символів).
Тому анонс рішення Apple виглядає як криптоніт для багатьох проєктів і водночас можливість реалізації власних рішень.
Подивимося, що буде після виходу в продакшн, чи перейдуть на платну модель, як з Weather API, чи залишать всі фічі, як є.
📖 А вже зараз можна подивитися на приклад створення додатків з новим фреймворком і прочитати чудовий розбір API тут.
🇺🇦 iOSDevUA
До анонсу цього фреймворка в пет-проєктах я використовував або Google Translate API, або DeepL (знаю, що багато хто використовує рішення від OpenAI).
📶 Але для них потрібне інтернет-з’єднання (що логічно), і гроші (наприклад, DeepL має преміум-акаунт, де потрібно платити за обсяг символів).
Тому анонс рішення Apple виглядає як криптоніт для багатьох проєктів і водночас можливість реалізації власних рішень.
Подивимося, що буде після виходу в продакшн, чи перейдуть на платну модель, як з Weather API, чи залишать всі фічі, як є.
📖 А вже зараз можна подивитися на приклад створення додатків з новим фреймворком і прочитати чудовий розбір API тут.
🇺🇦 iOSDevUA
👍1