Вышла Composable Architecture 1.0
Спустя 3 года развития TCA получил первый мажорный релиз. Если вы боялись использовать архитектуру из-за потенциальной возможности изменения API, самое время ознакомиться. Навигация уже поддерживает релиз 1.0, а на этой неделе начнется публикация уроков по использованию TCA на примере простого приложения
Спустя 3 года развития TCA получил первый мажорный релиз. Если вы боялись использовать архитектуру из-за потенциальной возможности изменения API, самое время ознакомиться. Навигация уже поддерживает релиз 1.0, а на этой неделе начнется публикация уроков по использованию TCA на примере простого приложения
🎉16👎1
Круговые диаграммы в iOS 17
👉 Круговые диаграммы более интуитивны
👉 Поддерживают анимации для изменения данных
👉 Графики теперь имеют удобный API для отображения деталей в выбранной точке
👉 Скроллинг доступен из коробки
👉 Проект с примерами диаграмм
#SwiftUI #Charts #WWDC
👉 Круговые диаграммы более интуитивны
👉 Поддерживают анимации для изменения данных
👉 Графики теперь имеют удобный API для отображения деталей в выбранной точке
👉 Скроллинг доступен из коробки
👉 Проект с примерами диаграмм
#SwiftUI #Charts #WWDC
👍9❤2👎1
Новое свойство contentUnavailableConfiguration у UIViewController в iOS 17
В этом году на WWDC Apple внезапно расширила UIKit новым API для отображения состояния загрузки, ошибки или пустого контента. Такое улучшение легко сделать самому, но приятно иметь из коробки. Доступно 4 способа создать
👉 Создать с нуля заполнить поля у
👉 Использовать готовую
👉 Использовать готовую
👉 Использовать UIHostingConfiguration
с блоком в котором можно использовать SwiftUI
#UIKit #WWDC
В этом году на WWDC Apple внезапно расширила UIKit новым API для отображения состояния загрузки, ошибки или пустого контента. Такое улучшение легко сделать самому, но приятно иметь из коробки. Доступно 4 способа создать
UIContentUnavailableConfiguration
: 👉 Создать с нуля заполнить поля у
.empty
конфигурации👉 Использовать готовую
.loading
конфигурацию👉 Использовать готовую
.search
конфигурацию👉 Использовать UIHostingConfiguration
с блоком в котором можно использовать SwiftUI
#UIKit #WWDC
👍4👎1
Создаем и модифицируем UIKit компоненты в стиле SwiftUI
Простой способ превратить императивный интерфейс UIKit в декларативный. Применив этот подход в вашем проекте вы можете делать код более читаемым. В статье разбирается:
👉 Как структурировать UI компоненты
👉 Как применить протокол-ориентированное программирование для простых задач
#UIKit #DSL #SwiftUI
Простой способ превратить императивный интерфейс UIKit в декларативный. Применив этот подход в вашем проекте вы можете делать код более читаемым. В статье разбирается:
👉 Как структурировать UI компоненты
👉 Как применить протокол-ориентированное программирование для простых задач
#UIKit #DSL #SwiftUI
👎6🔥4👍2❤1
На сколько Swift удобен для DSL? (5 мин)
По следам обсуждения прошлого поста решил написать статью про динамические фишки Swift,
👉 SE-0195 Dynamic Member Lookup
👉 SE-0216 Dynamic callable
👉 SE-0253 CallAsFunction
👉 Примеры использования их комбинаций в повседневных задачах
#swift #proposal #DSL
По следам обсуждения прошлого поста решил написать статью про динамические фишки Swift,
@dynamicCallable
и @dynamicMemberLookup
. Они были добавлены для интеропа с динамическими языками, такими как Python, JavaScript, но их использование этим не ограничивается.👉 SE-0195 Dynamic Member Lookup
👉 SE-0216 Dynamic callable
👉 SE-0253 CallAsFunction
👉 Примеры использования их комбинаций в повседневных задачах
#swift #proposal #DSL
👍7👎1
Генерализованые API с пакетами параметров
Благодаря SE-0393, SE-0398 и SE-0399 в Swift 5.9 появились вариативные дженерики, которые решают важную проблему в Swift - дженерик функции для каждого набора аргументов.
Благодаря этому, например, в SwiftUI убрали лимит на 10 View 🎉.
#wwdc #swift #proposal
Благодаря SE-0393, SE-0398 и SE-0399 в Swift 5.9 появились вариативные дженерики, которые решают важную проблему в Swift - дженерик функции для каждого набора аргументов.
Благодаря этому, например, в SwiftUI убрали лимит на 10 View 🎉.
#wwdc #swift #proposal
👍4👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Глубокое погружение в Observation (13 мин)
На WWDC представили новый фреймворк призванный оптимизировать работу SwiftUI. Советую ознакомиться со статьей перед началом использования нового фреймворка
👉 Зачем нужен
👉 Как объявить
👉 Как работает макрос
👉 Как использовать
#Observation #SwiftUI #swift
На WWDC представили новый фреймворк призванный оптимизировать работу SwiftUI. Советую ознакомиться со статьей перед началом использования нового фреймворка
👉 Зачем нужен
Observation
👉 Как объявить
Observable Object
👉 Как работает макрос
@Observable
👉 Как использовать
Observable Object
совместно с SwiftUI View#Observation #SwiftUI #swift
👍1👎1
Анализ .ipa файла Threads app
Ожидаемо ничего интересного или провокационного не обнаружено. Анализ показывает как просто получить доступ к файлам в бандле, и что plist не место для приватных ключей. Из интересного:
👉 Полный набор собственных шрифтов
👉 Библиотеки статически слинкованы
👉 36 локализаций
👉 Metal шейдеры
👉 CoreML модели для оптимизации выдачи ленты на устройстве
👉 info.plist содержит релизный бранч
#reverseEngineering
Ожидаемо ничего интересного или провокационного не обнаружено. Анализ показывает как просто получить доступ к файлам в бандле, и что plist не место для приватных ключей. Из интересного:
👉 Полный набор собственных шрифтов
👉 Библиотеки статически слинкованы
👉 36 локализаций
👉 Metal шейдеры
👉 CoreML модели для оптимизации выдачи ленты на устройстве
👉 info.plist содержит релизный бранч
fbobjc/releases/release-igios-2023.07.17
#reverseEngineering
👍5👎1