TCA Action Boundaries
При использовании архитектуры TCA в очень больших приложениях возникают проблемы, которые не решаются стандартными подходами. В статье разбирается какую проблему несет в себе стандартная реализация Action.
При использовании архитектуры TCA в очень больших приложениях возникают проблемы, которые не решаются стандартными подходами. В статье разбирается какую проблему несет в себе стандартная реализация Action.
Релиз Pulse 2.0
Pulse – это система работы с логами для iOS и macOS приложений. Она записывает логи и сетевые запросы и позволяет удобно с ними работать. Состоит из встраиваемой в приложение библиотеки, экрана-консоли логов и сетевых запросов и приложений для анализа логов.
В версии 2.0 появилось много новых фичей:
- Отображение статуса pending сетевых запросов
- Улучшенное отображение метрик сетевых запросов, в том числе средней продолжительности и размеров запросов и ответов сервера
- Подробное отображение ошибок URLSession
- Улучшенное macOS приложение для анализа логов
Pulse – это система работы с логами для iOS и macOS приложений. Она записывает логи и сетевые запросы и позволяет удобно с ними работать. Состоит из встраиваемой в приложение библиотеки, экрана-консоли логов и сетевых запросов и приложений для анализа логов.
В версии 2.0 появилось много новых фичей:
- Отображение статуса pending сетевых запросов
- Улучшенное отображение метрик сетевых запросов, в том числе средней продолжительности и размеров запросов и ответов сервера
- Подробное отображение ошибок URLSession
- Улучшенное macOS приложение для анализа логов
DivKit — новый фреймворк для Server-Driven UI
- Позволяет управлять с сервера как отдельным элементом интерфейса, так и всем экраном
- Поддерживает server-driven ui второго поколения: описываются не параметры кастомизации крупных блоков, а вся верстка блока в целом
- Создан и применялся в приложениях Яндекса, сейчас опубликован командой на гитхабе.
- Позволяет управлять с сервера как отдельным элементом интерфейса, так и всем экраном
- Поддерживает server-driven ui второго поколения: описываются не параметры кастомизации крупных блоков, а вся верстка блока в целом
- Создан и применялся в приложениях Яндекса, сейчас опубликован командой на гитхабе.
Как отловить приложения, которые трекают ваши действия во встроенном браузере
На прошлой неделе Felix Krause выпустил исследование, в котором он проверил, какие скрипты инжектятся во встроенные браузеры разных социальных сетей. TikTok, например, трекает в нем все ваши действия, вплоть до вводимых данных, в том числе и паролей.
Он же запустил сайт InAppBrowser.com. При заходе на него вы увидите, каким образом браузер модифицировал код страницы.
На прошлой неделе Felix Krause выпустил исследование, в котором он проверил, какие скрипты инжектятся во встроенные браузеры разных социальных сетей. TikTok, например, трекает в нем все ваши действия, вплоть до вводимых данных, в том числе и паролей.
Он же запустил сайт InAppBrowser.com. При заходе на него вы увидите, каким образом браузер модифицировал код страницы.
Визуализация алгоритмов сортировки на Swift Charts
Автор видео реализует различные алгоритмы сортировки на Swift и визуализирует их на графиках из Swift Charts.
🫧Bubble Sort
☝️Selection Sort
📥 Insertion Sort
💨 Quick Sort
Автор видео реализует различные алгоритмы сортировки на Swift и визуализирует их на графиках из Swift Charts.
🫧Bubble Sort
☝️Selection Sort
📥 Insertion Sort
💨 Quick Sort
SwiftUI и Large Content Viewer
- В iOS доступны семь дефолтных размеров текста – от супер маленького до супер большого
- Некоторые системные компоненты физически не могут показывать текст слишком большого размера, и вместо этого по лонг тапу показывает увеличенную вьюшку. Эта функциональность называется Large Content Viewer
- В посте разбирается, как ее поддержать в своих кастомных компонентах и настроить Large Content Viewer для своего кейса
- В iOS доступны семь дефолтных размеров текста – от супер маленького до супер большого
- Некоторые системные компоненты физически не могут показывать текст слишком большого размера, и вместо этого по лонг тапу показывает увеличенную вьюшку. Эта функциональность называется Large Content Viewer
- В посте разбирается, как ее поддержать в своих кастомных компонентах и настроить Large Content Viewer для своего кейса
Осенняя презентация новых девайсов Apple
Apple анонсировали традиционный осенний ивент, на котором обычно показывают новые часы и айфоны. Подключайтесь к трансляции 7 сентября в 20 часов по Москве.
Apple анонсировали традиционный осенний ивент, на котором обычно показывают новые часы и айфоны. Подключайтесь к трансляции 7 сентября в 20 часов по Москве.
X (formerly Twitter)
Apple (@Apple) on X
Go for launch. Tune in for a special #AppleEvent on September 7 at 10 a.m. PT.
Tap the ❤️ and we’ll send you a reminder on event day.
Tap the ❤️ and we’ll send you a reminder on event day.
Круглый стол: Жизнь со SwiftUI
Через полчаса пройдет открытая сессия Podlodka Crew про то, как сейчас живется со SwiftUI в проде. Основной акцент будет на практических примерах из жизни гибрида SwiftUI и UIKit, связи этих двух фреймворков и выборе архитектуры.
Через полчаса пройдет открытая сессия Podlodka Crew про то, как сейчас живется со SwiftUI в проде. Основной акцент будет на практических примерах из жизни гибрида SwiftUI и UIKit, связи этих двух фреймворков и выборе архитектуры.
YouTube
Круглый стол “Жизнь со SwiftUI”
На круглом столе с экспертами из Agora, SberDevices, Osome и Dodo Brands обсудим практические вопросы того как и с чего они начали переход на SwiftUI, на каком сейчас этапе, какие сложности возникают.
Основной акцент будем делать на практические примеры…
Основной акцент будем делать на практические примеры…
Советы по работе с WidgetKit
- Виджеты получают от приложений «таймлайны» – массивы моделек для отображения. Даже если вам не нужно отображать всю последовательность сразу, это полезная техника для обновления стейта вовремя
- Если вы предоставляете данные для отображения на несколько часов вперед, не забывайте обновить их вручную, если они перестанут быть актуальными
- Если виджет работает с данными, которые недоступны в залоченном состоянии телефона, настройте правильный кеш. Пример можно посмотреть здесь
- Виджеты получают от приложений «таймлайны» – массивы моделек для отображения. Даже если вам не нужно отображать всю последовательность сразу, это полезная техника для обновления стейта вовремя
- Если вы предоставляете данные для отображения на несколько часов вперед, не забывайте обновить их вручную, если они перестанут быть актуальными
- Если виджет работает с данными, которые недоступны в залоченном состоянии телефона, настройте правильный кеш. Пример можно посмотреть здесь
Настройка кастомных Launch Screen для разных диплинков
Начиная с Xcode 12, можно конфигурировать отдельные launch screens для каждого из диплинков, которые обрабатывает приложение.
Начиная с Xcode 12, можно конфигурировать отдельные launch screens для каждого из диплинков, которые обрабатывает приложение.
Разбор алгоритма diff’инга в SwiftUI
Очень детальный разбор всех нюансов работы алгоритма, который определяет, когда и как нужно изменить лейаут.
Очень детальный разбор всех нюансов работы алгоритма, который определяет, когда и как нужно изменить лейаут.
SwiftTUI – аналог SwiftUI для консольных интерфейсов
Автор предыдущей статьи не просто так разбирался с устройством SwiftUI. Он написал собственную реализацию его движка для того, чтобы легко строить поверх него текстовые интерйесы для консоли.
Автор предыдущей статьи не просто так разбирался с устройством SwiftUI. Он написал собственную реализацию его движка для того, чтобы легко строить поверх него текстовые интерйесы для консоли.
Решение проблемы повышенного потребления батареи у Xcode 14 beta
- Иногда при запуске симулятора iOS 16 в Xcode 14 beta резко вырастает нагрузка на CPU и потребление батареи
- В статье разбирается воркэраунд, который помогает временно решить проблему
- Иногда при запуске симулятора iOS 16 в Xcode 14 beta резко вырастает нагрузка на CPU и потребление батареи
- В статье разбирается воркэраунд, который помогает временно решить проблему
Nihongo Blog
Stop Xcode 14 beta from draining your battery
There's a bug in Xcode 14 betas 4-6 that causes your CPU to go crazy and drain your battery. Here's a workaround.
Отличия Live Screen Widgets и Live Activities
В iOS 16 появилось сразу несколько новых способов взаимодействия с пользователем вне приложения. Держите сводную таблицу с их отличиями.
В iOS 16 появилось сразу несколько новых способов взаимодействия с пользователем вне приложения. Держите сводную таблицу с их отличиями.
Переписывание парсера Swift с С++ на Swift
SwiftSyntax – SwiftPM пакет, который умеет парсить любой Swift код в синтаксическое дерево. Он используется в SwiftLint и swift-format. Исторически он был реализован поверх C++ библиотеки, которая привязана к инфраструктуре компилятора Swift. Сейчас стартанула активность по его переписыванию на Swift.
Вы можете либо почитать код, чтобы разобраться, как работают парсеры, либо помочь проекту, репортя баги или исправляя их самостоятельно!
SwiftSyntax – SwiftPM пакет, который умеет парсить любой Swift код в синтаксическое дерево. Он используется в SwiftLint и swift-format. Исторически он был реализован поверх C++ библиотеки, которая привязана к инфраструктуре компилятора Swift. Сейчас стартанула активность по его переписыванию на Swift.
Вы можете либо почитать код, чтобы разобраться, как работают парсеры, либо помочь проекту, репортя баги или исправляя их самостоятельно!
Swift Forums
A New Swift Parser for SwiftSyntax
Hello Swift Community, SwiftSyntax is a SwiftPM package that allows one to parse Swift source code into a syntax tree, manipulate that tree, and render the tree back to source code. It is used by tools such as SwiftLint and swift-format that operate on Swift…
XcLauncher – быстрый доступ к вашим Xcode проектам
XcLauncher – это живущее в трее приложение, которое помогает быстро открывать проекты, над которыми вы работаете.
XcLauncher – это живущее в трее приложение, которое помогает быстро открывать проекты, над которыми вы работаете.
Configuration Profiles и Apple MDM
- Configuration Profile – это XML файл, описывающий настройки, политики и ограничения, распространяющиеся на корпоративное устройство
- Для создания и подписывания этих профилей есть целый набор специальных инструментов
- MDM — это технология для удаленного управления устройством, позволяющая выполнять на нем команды с сервера
- MDM дает возможность удаленно устанавливать и удалять приложения, обновлять ОС, блокировать устройство
- MDM дает больше возможностей и на уровне клиентских приложений – например, можно получать данные сим-карты вплоть до номера телефона
- Configuration Profile – это XML файл, описывающий настройки, политики и ограничения, распространяющиеся на корпоративное устройство
- Для создания и подписывания этих профилей есть целый набор специальных инструментов
- MDM — это технология для удаленного управления устройством, позволяющая выполнять на нем команды с сервера
- MDM дает возможность удаленно устанавливать и удалять приложения, обновлять ОС, блокировать устройство
- MDM дает больше возможностей и на уровне клиентских приложений – например, можно получать данные сим-карты вплоть до номера телефона