Разбор алгоритма diff’инга в SwiftUI
Очень детальный разбор всех нюансов работы алгоритма, который определяет, когда и как нужно изменить лейаут.
Очень детальный разбор всех нюансов работы алгоритма, который определяет, когда и как нужно изменить лейаут.
👍24🔥7🤯1
SwiftTUI – аналог SwiftUI для консольных интерфейсов
Автор предыдущей статьи не просто так разбирался с устройством SwiftUI. Он написал собственную реализацию его движка для того, чтобы легко строить поверх него текстовые интерйесы для консоли.
Автор предыдущей статьи не просто так разбирался с устройством SwiftUI. Он написал собственную реализацию его движка для того, чтобы легко строить поверх него текстовые интерйесы для консоли.
👍20🔥18❤5🤯3
Решение проблемы повышенного потребления батареи у 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.
❤🔥9👍2
Отличия Live Screen Widgets и Live Activities
В iOS 16 появилось сразу несколько новых способов взаимодействия с пользователем вне приложения. Держите сводную таблицу с их отличиями.
В iOS 16 появилось сразу несколько новых способов взаимодействия с пользователем вне приложения. Держите сводную таблицу с их отличиями.
👍14
Переписывание парсера 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…
👍18🤡11👎1🤯1
XcLauncher – быстрый доступ к вашим Xcode проектам
XcLauncher – это живущее в трее приложение, которое помогает быстро открывать проекты, над которыми вы работаете.
XcLauncher – это живущее в трее приложение, которое помогает быстро открывать проекты, над которыми вы работаете.
🤡72🤔18🔥4👎3😢1
Configuration Profiles и Apple MDM
- Configuration Profile – это XML файл, описывающий настройки, политики и ограничения, распространяющиеся на корпоративное устройство
- Для создания и подписывания этих профилей есть целый набор специальных инструментов
- MDM — это технология для удаленного управления устройством, позволяющая выполнять на нем команды с сервера
- MDM дает возможность удаленно устанавливать и удалять приложения, обновлять ОС, блокировать устройство
- MDM дает больше возможностей и на уровне клиентских приложений – например, можно получать данные сим-карты вплоть до номера телефона
- Configuration Profile – это XML файл, описывающий настройки, политики и ограничения, распространяющиеся на корпоративное устройство
- Для создания и подписывания этих профилей есть целый набор специальных инструментов
- MDM — это технология для удаленного управления устройством, позволяющая выполнять на нем команды с сервера
- MDM дает возможность удаленно устанавливать и удалять приложения, обновлять ОС, блокировать устройство
- MDM дает больше возможностей и на уровне клиентских приложений – например, можно получать данные сим-карты вплоть до номера телефона
👍12❤🔥2
Разбор ExtensionKit
ExtensionKit – новый фреймворк iOS 16, который позволяет реализовывать плагины для системных приложений или реализовывать собственнцю плагинную систему. Второе, правда, доступно только для macOS.
1️⃣Вы объявляете extension points в своем приложенит
2️⃣Этот API используется вами или сторонними разработчиками, чтобы интегрировать плагины, как с UI, так и без него
3️⃣Общение между хостом и плагином идет через XPC
4️⃣Распространять плагины можно только внутри .app, так что теоретически их даже в App Store залить можно
ExtensionKit – новый фреймворк iOS 16, который позволяет реализовывать плагины для системных приложений или реализовывать собственнцю плагинную систему. Второе, правда, доступно только для macOS.
1️⃣Вы объявляете extension points в своем приложенит
2️⃣Этот API используется вами или сторонними разработчиками, чтобы интегрировать плагины, как с UI, так и без него
3️⃣Общение между хостом и плагином идет через XPC
4️⃣Распространять плагины можно только внутри .app, так что теоретически их даже в App Store залить можно
Chime
An Introduction to ExtensionKit
High-level details on macOS Ventura's ExtensionKit and how we use it for ChimeKit
😱12🔥6❤2
Xcode Cloud доступен для всех
- Xcode Cloud – новый сервис для CI/CD от Apple, который последний год крутился в закрытой бете
- 25 часов работы агентов в месяц бесплатны
- 100 часов работы в месяц – 50$
- 250 часов работы в месяц – 100$
- 1000 часов работы в месяц – 400$
- Xcode Cloud – новый сервис для CI/CD от Apple, который последний год крутился в закрытой бете
- 25 часов работы агентов в месяц бесплатны
- 100 часов работы в месяц – 50$
- 250 часов работы в месяц – 100$
- 1000 часов работы в месяц – 400$
🔥31👎3👍2🥰2❤1
Планируете работать с Xcode Cloud?
Anonymous Poll
5%
Да, уже начали использовать
17%
Подумываем, пока присматриваемся к нему
25%
Нет, не видим смысла
7%
Нет, слишком дорого
1%
Нет, попробовали и не понравилось
45%
Посмотреть результаты
🤔1
Maestro – новый фреймворк для автоматизации UI тестов
Ключевая особенность – тест описывается не в коде, а в yaml файле. Создатели говорят, что на уровне core концепций зашили следующие вещи:
- Обработку флакующих сценариев и элементов интерфейса
- Тестирование задач с асинхронными компонентами
- Супер-быстрый раундтрип за счет того, что тесты интерпретируемые
- Очень быстрый сетап
Пока выглядит как решение только для очень простых случаев. К тому же yaml – очень-очень спорный формат. Если кто-то попробует – расскажите в комментах про результаты!
Ключевая особенность – тест описывается не в коде, а в yaml файле. Создатели говорят, что на уровне core концепций зашили следующие вещи:
- Обработку флакующих сценариев и элементов интерфейса
- Тестирование задач с асинхронными компонентами
- Супер-быстрый раундтрип за счет того, что тесты интерпретируемые
- Очень быстрый сетап
Пока выглядит как решение только для очень простых случаев. К тому же yaml – очень-очень спорный формат. Если кто-то попробует – расскажите в комментах про результаты!
🤡40🤔3👍2
Навигация на стейт-машине
Revolut рассказывают, как устроена стейт-машина в их приложении, управляющая всей навигацией, и упрощающая работу с пошаговыми флоу.
Revolut рассказывают, как устроена стейт-машина в их приложении, управляющая всей навигацией, и упрощающая работу с пошаговыми флоу.
Medium
iOS Screen Navigation Engine at Revolut
I’m here to open your eyes to Custom Navigation Engines just like the one we created on our Revolut Flow Engine.
🤡45👏4👍3❤1
Как реализовать поддержку lock screen виджетов
- API для работы с lock screen виджетами тот же самый, что и для home screen виджетов. Если вы уже поддержали их, все будет сильно проще
- Важно помнить про три разных режима рендеринга виджетов и подстраиваться под них: full-color mode, vibrant mode, accented mode
- API для работы с lock screen виджетами тот же самый, что и для home screen виджетов. Если вы уже поддержали их, все будет сильно проще
- Важно помнить про три разных режима рендеринга виджетов и подстраиваться под них: full-color mode, vibrant mode, accented mode
❤17👍1
У Podlodka Crew акция! До 10 сентября на все плейлисты с записями конференций скидка до 20% по промокоду SCHOOL_TIME!🤑
Podlodka Crew – это онлайновые IT-конференции по самым разным направлениям: Android, iOS, Frontend, Backend-разработка, QA, тим- и техлидство, софтскиллы и даже дизайн и продукт! В программе конференций всегда особый упор сделан на прикладные навыки, а значит, даже после окончания сезона есть смысл пересмотреть самые полезные видео и попробовать что-то новое у себя на работе. Поэтому доступ к десяткам часов контента от Podlodka Crew – это отличная инвестиция в свою карьеру и профессиональный кругозор.
Переходите по ссылке ниже, выбирайте плейлисты, вводите промокод SCHOOL_TIME и смотрите записи Podlodka Crew. Отличной учебы!🧑🎓
https://podlodka.io/crew-records
Podlodka Crew – это онлайновые IT-конференции по самым разным направлениям: Android, iOS, Frontend, Backend-разработка, QA, тим- и техлидство, софтскиллы и даже дизайн и продукт! В программе конференций всегда особый упор сделан на прикладные навыки, а значит, даже после окончания сезона есть смысл пересмотреть самые полезные видео и попробовать что-то новое у себя на работе. Поэтому доступ к десяткам часов контента от Podlodka Crew – это отличная инвестиция в свою карьеру и профессиональный кругозор.
Переходите по ссылке ниже, выбирайте плейлисты, вводите промокод SCHOOL_TIME и смотрите записи Podlodka Crew. Отличной учебы!🧑🎓
https://podlodka.io/crew-records
podlodka.io
Crew Records
Если вы пропустили предыдущие Crew, но очень хотите посмотреть все записи — можете купить любой из плейлистов.
👎13👍5🔥2🤔1🌚1
This media is not supported in your browser
VIEW IN TELEGRAM
Красивая анимация для 3D текста
Она основана на variable font – стандарте шрифтов, все параметры которых можно динамически настраивать.
Она основана на variable font – стандарте шрифтов, все параметры которых можно динамически настраивать.
❤24🤔9🌚4👍1
Особенности работы со SwiftUI на macOS
Автор приложения Pulse, про которое я рассказывал на прошлой неделе, рассказывает про свой опыт портирования приложения с iOS на macOS.
- Советы по работе с колоночным лэйаутом и навигацией
- Менеджмент окон
- Реализация поиска в списках
- Создание собственного TextView
- Диплинки
Автор приложения Pulse, про которое я рассказывал на прошлой неделе, рассказывает про свой опыт портирования приложения с iOS на macOS.
- Советы по работе с колоночным лэйаутом и навигацией
- Менеджмент окон
- Реализация поиска в списках
- Создание собственного TextView
- Диплинки
👍26🔥3
Официальная книга про Swift теперь в Open Source
- Apple вынесли свою книгу «The Swift Programming Language» в опенсорс
- Вся книга собирается с помощью DocC – это крутой шаг для инструмента, изначально предполагавшегося только для генерации API reference
- Apple вынесли свою книгу «The Swift Programming Language» в опенсорс
- Вся книга собирается с помощью DocC – это крутой шаг для инструмента, изначально предполагавшегося только для генерации API reference
❤🔥93🔥7👍2❤1
Разбор рефакторингов Xcode для async/await
В Xcode есть три рефакторинга, которые помогают конвертить код в поддерживающий Swift Concurrency.
- Convert Function to Async
- Add Async Alternative
- Add Async Wrapper
В Xcode есть три рефакторинга, которые помогают конвертить код в поддерживающий Swift Concurrency.
- Convert Function to Async
- Add Async Alternative
- Add Async Wrapper
❤27👍1👎1🔥1
ViewInspector – библиотека для юнит-тестирования SwiftUI
ViewInspector проходится по графу вьюх и дает прямой доступ к их свойствам и стейту. Библиотека не использует приватный API, работает целиком с помощью рефлексии.
ViewInspector проходится по графу вьюх и дает прямой доступ к их свойствам и стейту. Библиотека не использует приватный API, работает целиком с помощью рефлексии.
👍15👎5🤩1