💡Як TextView працює під капотом
Найкраща стаття минулого тижня. Розбір купи деталей того, як TextView працює під капотом – починаючи з того, як обробляються стилі у AttributedString, закінчуючи тим, як курсор реагує на натискання кнопок на клавіатурі в залежності від положення в тексті.
👉 https://papereditor.app/internals
🇺🇦 iOSDevUA
Найкраща стаття минулого тижня. Розбір купи деталей того, як TextView працює під капотом – починаючи з того, як обробляються стилі у AttributedString, закінчуючи тим, як курсор реагує на натискання кнопок на клавіатурі в залежності від положення в тексті.
👉 https://papereditor.app/internals
🇺🇦 iOSDevUA
👍1
💡Створення додатку-чату, використовуючи StreamChat SDK та SwiftUI
🛠 SDK на Github включає в себе гарний набір високопродуктивних та налаштовуваних компонентів інтерфейсу.
📖 А в цій статті наводиться приклад налаштування (близько 100 рядків коду на повністю робочий додаток).
Додам, що SDK та приклад додатку дозволять ознайомитися з чатом, але при власній реалізації чекатимуть зовсім інші складнощі. Наприклад, як додаток буде справлятися з сотнями повідомлень в секунду (вірте, буває і таке), і як при цьому буде поводити себе інтерфейс. Втім, це зовсім інша історія😎
🇺🇦 iOSDevUA
🛠 SDK на Github включає в себе гарний набір високопродуктивних та налаштовуваних компонентів інтерфейсу.
📖 А в цій статті наводиться приклад налаштування (близько 100 рядків коду на повністю робочий додаток).
Додам, що SDK та приклад додатку дозволять ознайомитися з чатом, але при власній реалізації чекатимуть зовсім інші складнощі. Наприклад, як додаток буде справлятися з сотнями повідомлень в секунду (вірте, буває і таке), і як при цьому буде поводити себе інтерфейс. Втім, це зовсім інша історія😎
🇺🇦 iOSDevUA
👍1🔥1
💡У Swift 6 імпорти можна буде робити публічними або приватними. Це також вплине на ваші публічні функції, якщо ви хочете в них повернути щось, що заімпортовано з якоїсь бібліотеки, наприклад, а вона приватна.
Загалом виглядає цікаво, але набагато цікавіше зрозуміти, який профіт ми з цього отримаємо і як це позначиться на часі збирання, наприклад, та інших важливих речах.
Детальніше можна подивитись у статті, але найцікавіші дослідження з цієї теми ще попереду, думаю!
👉 https://www.polpiella.dev/swift-6-import-access-level
🇺🇦 iOSDevUA
Загалом виглядає цікаво, але набагато цікавіше зрозуміти, який профіт ми з цього отримаємо і як це позначиться на часі збирання, наприклад, та інших важливих речах.
Детальніше можна подивитись у статті, але найцікавіші дослідження з цієї теми ще попереду, думаю!
👉 https://www.polpiella.dev/swift-6-import-access-level
🇺🇦 iOSDevUA
www.polpiella.dev
Swift 6: Access level on import statements
How to get ready for Swift 6's new import access level feature and make sure that you are not caught by surprise by the breaking changes that come with it.
💡Apple змінює умови комісії Core Technology Fee, це та, що про альтернативні магазини:
1. Якщо не заробляєте на додатках, то CTF анулюється. Тільки персональні додатки, бізнесу не можна. Підтверджувати статус щорічно.
2. Якщо додаток став вірусним у перші три роки, то CTF за понад мільйон установок брати не будуть. Дохід повинен бути менше €10 млн.
3. Адаптивний CTF від доходу:
До €10 млн: CTF не стягується протягом трьох років.
Від 10 до 50: CTF до €1 млн на рік протягом трьох років.
Понад 50: стягується повний CTF.
Apple раніше говорила, що їхня комісія небезпечна для студентів та вірусних додатків. Нові умови пом'якшують це.
👉 https://developer.apple.com/news/?id=d0z8d8rx
🇺🇦 iOSDevUA
1. Якщо не заробляєте на додатках, то CTF анулюється. Тільки персональні додатки, бізнесу не можна. Підтверджувати статус щорічно.
2. Якщо додаток став вірусним у перші три роки, то CTF за понад мільйон установок брати не будуть. Дохід повинен бути менше €10 млн.
3. Адаптивний CTF від доходу:
До €10 млн: CTF не стягується протягом трьох років.
Від 10 до 50: CTF до €1 млн на рік протягом трьох років.
Понад 50: стягується повний CTF.
Apple раніше говорила, що їхня комісія небезпечна для студентів та вірусних додатків. Нові умови пом'якшують це.
👉 https://developer.apple.com/news/?id=d0z8d8rx
🇺🇦 iOSDevUA
Apple
Core Technology Fee - Support - Apple Developer
The Core Technology Fee (CTF) is an element of the business terms in the European Union (EU) if a developer chooses to adopt the Alternative Terms Addendum for Apps in the EU. The fee reflects the value Apple provides developers through ongoing investments…
💡Про Safe Area, мабуть, знають усі, і що стосується UIKit, вже давно мали б навчитися працювати з нею.
А от з SwiftUI + Safe Area ще можуть бути проблеми, думаю.
Ось стаття, яка, якщо і не закриє всі питання, то хоча б з базовими має допомогти 👍
👉 https://swiftwithmajid.com/2021/11/03/managing-safe-area-in-swiftui/
🇺🇦 iOSDevUA
А от з SwiftUI + Safe Area ще можуть бути проблеми, думаю.
Ось стаття, яка, якщо і не закриє всі питання, то хоча б з базовими має допомогти 👍
👉 https://swiftwithmajid.com/2021/11/03/managing-safe-area-in-swiftui/
🇺🇦 iOSDevUA
👍3
💡Детально про
Впевнений, що багато хто не особливо працював з цією функцією, але після цієї статті мають почати 👍
Ну і, звісно, усім новачкам обов'язково до ознайомлення!
👉 https://www.polpiella.dev/mastering-the-reduce-operator-in-swift
🇺🇦 iOSDevUA
reduce та про те, як і де його можна використовувати.Впевнений, що багато хто не особливо працював з цією функцією, але після цієї статті мають почати 👍
Ну і, звісно, усім новачкам обов'язково до ознайомлення!
👉 https://www.polpiella.dev/mastering-the-reduce-operator-in-swift
🇺🇦 iOSDevUA
www.polpiella.dev
Master the reduce operator in Swift and make your code more performant
Learn all about Sequence's reduce operator in Swift through a series of real-world examples.
👍1
Xcode видалив увесь список симуляторів, що сталося?
Вчора (і можливо, позавчора) я зіткнувся з цікавою поведінкою у нашому середовищі розробки. Схоже, багато з вас теж.
При цьому перезапуск Xcode малоймовірно допоміг, а ось повний ребут — так, то що ж сталося?
Я провів невелике розслідування.
Кілька днів тому система захисту macOS від шкідливого ПЗ XProtect отримала оновлення 132, яке виявило помилкову реакцію на образ диска з симулятором і намагалося її виправити, і саме це спричинило зникнення усього списку симуляторів.
Вийшло silent-оновлення 133 (ймовірно воно вже застосувалося, але якщо ні - перевірте оновлення у системі).
Помилку можна було помітити і без оновлення Xcode, і навіть при завантаженні симулятора нічого б не змінилося (хоча одним із рішень було використати команду
Так що й Apple іноді тестують на проді 🥴.
Детальніше, якщо вас зачепило, і вам теж цікаво, можна прочитати ось тут, тут і тут.
🇺🇦 iOSDevUA
Вчора (і можливо, позавчора) я зіткнувся з цікавою поведінкою у нашому середовищі розробки. Схоже, багато з вас теж.
При цьому перезапуск Xcode малоймовірно допоміг, а ось повний ребут — так, то що ж сталося?
Я провів невелике розслідування.
Кілька днів тому система захисту macOS від шкідливого ПЗ XProtect отримала оновлення 132, яке виявило помилкову реакцію на образ диска з симулятором і намагалося її виправити, і саме це спричинило зникнення усього списку симуляторів.
Вийшло silent-оновлення 133 (ймовірно воно вже застосувалося, але якщо ні - перевірте оновлення у системі).
Помилку можна було помітити і без оновлення Xcode, і навіть при завантаженні симулятора нічого б не змінилося (хоча одним із рішень було використати команду
sudo killall -9 http://com.apple.CoreSimulator.CoreSimulatorService).Так що й Apple іноді тестують на проді 🥴.
Детальніше, якщо вас зачепило, і вам теж цікаво, можна прочитати ось тут, тут і тут.
🇺🇦 iOSDevUA
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
💡Чи знаєте ви про цю чудову функцію в Xcode? Замість того, щоб набирати все, просто почніть набирати 3 перші символи з назви та параметрів, наприклад,
🇺🇦 iOSDevUA
frawihe. Якщо вам потрібен весь обсяг - натисніть Alt та Enter.🇺🇦 iOSDevUA
💡Dispatch Barrier, потокобезпечність і чому занадто багато черг це погано
Паралельні та послідовні черги допомагають нам управляти виконанням завдань, а разом з тим дозволяють нашим додаткам працювати швидше та ефективніше.
Ми можемо легко створювати черги, використовуючи клас DispatchQueue, який побудований на основі GCD.
🦾 Dispatch Barrier представляє собою механізм синхронізації завдань у черзі.
Якщо за замовчуванням черга працює паралельно, то після додавання прапорця
👉 https://medium.com/@ranga.c222/dispatch-barrier-in-swift-84779f49a291
🇺🇦 iOSDevUA
Паралельні та послідовні черги допомагають нам управляти виконанням завдань, а разом з тим дозволяють нашим додаткам працювати швидше та ефективніше.
Ми можемо легко створювати черги, використовуючи клас DispatchQueue, який побудований на основі GCD.
🦾 Dispatch Barrier представляє собою механізм синхронізації завдань у черзі.
Якщо за замовчуванням черга працює паралельно, то після додавання прапорця
.barrier таке завдання буде відкладене, доки не виконаються всі інші. Вже після цього черга виконає наше завдання, помічене бар'єром, самостійно, і повернеться до звичайного режиму роботи.👉 https://medium.com/@ranga.c222/dispatch-barrier-in-swift-84779f49a291
🇺🇦 iOSDevUA
Напевно багато хто чув про Test-Driven Development (той самий TDD). Але мало хто його використовує. Так от якщо ви раптом захочете почати його використовувати, або вам просто цікаво трохи детальніше розібратися в цій темі, то ось непоганий матеріал з прикладами!
👉 https://www.avanderlee.com/workflow/test-driven-development-tdd-for-bug-fixes-in-swift/
🇺🇦 iOSDevUA
👉 https://www.avanderlee.com/workflow/test-driven-development-tdd-for-bug-fixes-in-swift/
🇺🇦 iOSDevUA
SwiftLee
Test-Driven Development (TDD) for bug fixes in Swift
Test-driven development increases code quality, test code coverage, and codebase confidence. You'll prevent bugs from returning.
This media is not supported in your browser
VIEW IN TELEGRAM
💡Реліз SystemNotification 1.0
SystemNotification – бібліотека, яка допомагає реалізовувати сповіщення в SwiftUI, повторюючи зовнішній вигляд та поведінку системних попапів. Можна як кастомізувати стандартний вигляд сповіщення, задавши іконку та текст, так і додавати свою в'юху.
🔗 Getting Started
🔗 Демо додаток
🇺🇦 iOSDevUA
SystemNotification – бібліотека, яка допомагає реалізовувати сповіщення в SwiftUI, повторюючи зовнішній вигляд та поведінку системних попапів. Можна як кастомізувати стандартний вигляд сповіщення, задавши іконку та текст, так і додавати свою в'юху.
🔗 Getting Started
🔗 Демо додаток
🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Стаття про те, як додати такий чудовий «stretchable & sticky» хедер, який, по суті, буде розтягуватися і прижиматися до верху екрана в залежності від вашого скролу. При використанні SwiftUI, звичайно, тому що для UIKit таких статей море і вже давно всіми прочитані (сподіваюся)!
👉 https://danielsaidi.com/blog/2023/02/09/adding-a-sticky-header-to-a-swiftui-scroll-view
🇺🇦 iOSDevUA
👉 https://danielsaidi.com/blog/2023/02/09/adding-a-sticky-header-to-a-swiftui-scroll-view
🇺🇦 iOSDevUA
👍2🔥1
💡KeyPath в Swift
Чудовий розбір того, як працюють KeyPath у Swift, для чого вони потрібні, і які неочевидні можливості в них є.
👉 KeyPath літерал можна конвертувати в функцію виду
👉 KeyPath'и можна комбінувати один з одним через функцію
👉 У KeyPath можна зашити доступ за індексом до будь-якого з параметрів
👉 Можна визначати свої атрибути через
👉 З KeyPath працює вивід типів
🇺🇦 iOSDevUA
Чудовий розбір того, як працюють KeyPath у Swift, для чого вони потрібні, і які неочевидні можливості в них є.
👉 KeyPath літерал можна конвертувати в функцію виду
(Root) -> Value👉 KeyPath'и можна комбінувати один з одним через функцію
.appending👉 У KeyPath можна зашити доступ за індексом до будь-якого з параметрів
👉 Можна визначати свої атрибути через
@dynamicMemberLookup👉 З KeyPath працює вивід типів
🇺🇦 iOSDevUA
💪 Ефект 3D-каруселі в iOS
Джанум Триведі продемонстрував, як можна реалізувати таке відображення у своєму додатку.
Щоб показати фізично точне викривлення перспективи, він створив 3D-циліндр і наклав зображення на його поверхню.
Проте, якщо самі зображення не знаходяться на
Насправді існує суперширокий, невидимий
І вже після цього модель підсвічується розсіяним світлом, що і створює природні тіні на краях диска. На зображенні показано, як виглядає реалізований ефект «під капотом» на базі
🇺🇦 iOSDevUA
Джанум Триведі продемонстрував, як можна реалізувати таке відображення у своєму додатку.
Щоб показати фізично точне викривлення перспективи, він створив 3D-циліндр і наклав зображення на його поверхню.
Проте, якщо самі зображення не знаходяться на
ScrollView, то як тоді вдається такий ефект фізики?Насправді існує суперширокий, невидимий
scrollview, який сприймає жест прокрутки та відповідає йому contentOffset з обертанням 3D-моделі.І вже після цього модель підсвічується розсіяним світлом, що і створює природні тіні на краях диска. На зображенні показано, як виглядає реалізований ефект «під капотом» на базі
SceneKit.🇺🇦 iOSDevUA
💡Навіщо додавати озвучення в додаток
Озвучення дій в додатку може бути як найбільш дратуючим елементом UX, так і одним із найцікавіших. При цьому, у багатьох користувачів звук зазвичай вимкнений за замовчуванням. У статті розглядається, навіщо включати озвучення в своє додаток, як зробити його запам'ятовуваним і не надокучливим, і звідки взагалі брати матеріали для звуків. І все це - на живих прикладах!
👉 https://www.notboring.software/words/the-sound-of-software
🇺🇦 iOSDevUA
Озвучення дій в додатку може бути як найбільш дратуючим елементом UX, так і одним із найцікавіших. При цьому, у багатьох користувачів звук зазвичай вимкнений за замовчуванням. У статті розглядається, навіщо включати озвучення в своє додаток, як зробити його запам'ятовуваним і не надокучливим, і звідки взагалі брати матеріали для звуків. І все це - на живих прикладах!
👉 https://www.notboring.software/words/the-sound-of-software
🇺🇦 iOSDevUA
notbor.ing
The Sound of Software | !Boring Software
How to design sound that elevates software and won't drive you crazy
🔥iPad Pro на M4, iPad Air та Apple Pencil Pro. Що нового презентувала Apple на заході Let Loose
Apple провела захід Let Loose, присвячений новим iPad. Уперше за два роки Apple презентувала нові моделі iPad, новий Apple Pencil та клавіатуру.
👉 iPad Air на M2
Перша новинка, яку презентувала Apple — iPad Air. Він доступний у двох розмірах: 11-дюймовий та 13-дюймовий дисплеї. iPad Air оснащений чипом M2, у компанії кажуть, що він приблизно на 50 % швидший за М1, а сам планшет — десь утричі швидший за iPad Air 2020 року.
👉 iPad Pro на M4
Друга новинка – iPad Pro на чипі M4. Планшети стали першими пристроями Apple, у яких використали нові M4. Чип має збільшити продуктивність, також він орієнтований на роботу із ШІ. iPad Pro також доступний у двох розмірах (11 і 13 дюймів) та у двох кольорах. Обидва варіанти матиють OLED-дисплей.
👉 Чип M4
А тепер власне трохи про сам чип М4. Він оснащений новим механізмом відображення та оновленими ядрами CPU та GPU. Пропускна здатність пам’яті була покращена до 120 ГБ/с, і вперше для лінійки iPad Apple додала підтримку динамічного кешування, апаратно-прискореної трасування променів і апаратно-прискореного затінення сітки.
M4 також оснащено оновленим 16-ядерним нейронним механізмом, здатним виконувати до 38 трильйонів операцій на секунду, що в 60 разів швидше, ніж перший NPU компанії A11 Bionic. Деякі інші можливості M4 включають апаратне прискорення AV1 — уперше для лінійки iPad — і зменшені вимоги до пам’яті під час виконання робочих навантажень.
👉 Apple Pencil Pro
Користувачі iPad довго чекали й нарешті дочекалися нового Apple Pencil Pro. У компанії його називають революційним рішенням. Пристрій містить новий датчик у корпусі, який реагує на натискання. Це, наприклад, дозволяє викликати палітру інструментів Procreate, не не використовуючи другу руку.
🇺🇦 iOSDevUA
Apple провела захід Let Loose, присвячений новим iPad. Уперше за два роки Apple презентувала нові моделі iPad, новий Apple Pencil та клавіатуру.
👉 iPad Air на M2
Перша новинка, яку презентувала Apple — iPad Air. Він доступний у двох розмірах: 11-дюймовий та 13-дюймовий дисплеї. iPad Air оснащений чипом M2, у компанії кажуть, що він приблизно на 50 % швидший за М1, а сам планшет — десь утричі швидший за iPad Air 2020 року.
👉 iPad Pro на M4
Друга новинка – iPad Pro на чипі M4. Планшети стали першими пристроями Apple, у яких використали нові M4. Чип має збільшити продуктивність, також він орієнтований на роботу із ШІ. iPad Pro також доступний у двох розмірах (11 і 13 дюймів) та у двох кольорах. Обидва варіанти матиють OLED-дисплей.
👉 Чип M4
А тепер власне трохи про сам чип М4. Він оснащений новим механізмом відображення та оновленими ядрами CPU та GPU. Пропускна здатність пам’яті була покращена до 120 ГБ/с, і вперше для лінійки iPad Apple додала підтримку динамічного кешування, апаратно-прискореної трасування променів і апаратно-прискореного затінення сітки.
M4 також оснащено оновленим 16-ядерним нейронним механізмом, здатним виконувати до 38 трильйонів операцій на секунду, що в 60 разів швидше, ніж перший NPU компанії A11 Bionic. Деякі інші можливості M4 включають апаратне прискорення AV1 — уперше для лінійки iPad — і зменшені вимоги до пам’яті під час виконання робочих навантажень.
👉 Apple Pencil Pro
Користувачі iPad довго чекали й нарешті дочекалися нового Apple Pencil Pro. У компанії його називають революційним рішенням. Пристрій містить новий датчик у корпусі, який реагує на натискання. Це, наприклад, дозволяє викликати палітру інструментів Procreate, не не використовуючи другу руку.
🇺🇦 iOSDevUA
👍1