Разбор 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
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$
Планируете работать с Xcode Cloud?
Anonymous Poll
5%
Да, уже начали использовать
17%
Подумываем, пока присматриваемся к нему
25%
Нет, не видим смысла
7%
Нет, слишком дорого
1%
Нет, попробовали и не понравилось
45%
Посмотреть результаты
Maestro – новый фреймворк для автоматизации UI тестов
Ключевая особенность – тест описывается не в коде, а в yaml файле. Создатели говорят, что на уровне core концепций зашили следующие вещи:
- Обработку флакующих сценариев и элементов интерфейса
- Тестирование задач с асинхронными компонентами
- Супер-быстрый раундтрип за счет того, что тесты интерпретируемые
- Очень быстрый сетап
Пока выглядит как решение только для очень простых случаев. К тому же yaml – очень-очень спорный формат. Если кто-то попробует – расскажите в комментах про результаты!
Ключевая особенность – тест описывается не в коде, а в yaml файле. Создатели говорят, что на уровне core концепций зашили следующие вещи:
- Обработку флакующих сценариев и элементов интерфейса
- Тестирование задач с асинхронными компонентами
- Супер-быстрый раундтрип за счет того, что тесты интерпретируемые
- Очень быстрый сетап
Пока выглядит как решение только для очень простых случаев. К тому же yaml – очень-очень спорный формат. Если кто-то попробует – расскажите в комментах про результаты!
Навигация на стейт-машине
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.
Как реализовать поддержку 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
У 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, но очень хотите посмотреть все записи — можете купить любой из плейлистов.
This media is not supported in your browser
VIEW IN TELEGRAM
Красивая анимация для 3D текста
Она основана на variable font – стандарте шрифтов, все параметры которых можно динамически настраивать.
Она основана на variable font – стандарте шрифтов, все параметры которых можно динамически настраивать.
Особенности работы со SwiftUI на macOS
Автор приложения Pulse, про которое я рассказывал на прошлой неделе, рассказывает про свой опыт портирования приложения с iOS на macOS.
- Советы по работе с колоночным лэйаутом и навигацией
- Менеджмент окон
- Реализация поиска в списках
- Создание собственного TextView
- Диплинки
Автор приложения Pulse, про которое я рассказывал на прошлой неделе, рассказывает про свой опыт портирования приложения с iOS на macOS.
- Советы по работе с колоночным лэйаутом и навигацией
- Менеджмент окон
- Реализация поиска в списках
- Создание собственного TextView
- Диплинки
Официальная книга про Swift теперь в Open Source
- Apple вынесли свою книгу «The Swift Programming Language» в опенсорс
- Вся книга собирается с помощью DocC – это крутой шаг для инструмента, изначально предполагавшегося только для генерации API reference
- Apple вынесли свою книгу «The Swift Programming Language» в опенсорс
- Вся книга собирается с помощью DocC – это крутой шаг для инструмента, изначально предполагавшегося только для генерации API reference
Разбор рефакторингов 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
ViewInspector – библиотека для юнит-тестирования SwiftUI
ViewInspector проходится по графу вьюх и дает прямой доступ к их свойствам и стейту. Библиотека не использует приватный API, работает целиком с помощью рефлексии.
ViewInspector проходится по графу вьюх и дает прямой доступ к их свойствам и стейту. Библиотека не использует приватный API, работает целиком с помощью рефлексии.
Xcode Playground со всеми фичами Swift 5.7
К релизу iOS 16 Paul Hudson обновил свой обзорный пост по всем изменениям в Swift. А для тех, кто предпочитает все потрогать руками – подготовил Xcode плейграунд.
К релизу iOS 16 Paul Hudson обновил свой обзорный пост по всем изменениям в Swift. А для тех, кто предпочитает все потрогать руками – подготовил Xcode плейграунд.
This media is not supported in your browser
VIEW IN TELEGRAM
DeckUI – Swift DSL для создания презентаций
Простой DSl на Swift, с помощью которого собирается десктопное приложение, ведущее себя как слайды. Идеально для выступлений на митапах!
Простой DSl на Swift, с помощью которого собирается десктопное приложение, ведущее себя как слайды. Идеально для выступлений на митапах!
Новые Toolbar APIs в SwiftUI
- Модификаторы видимости, которые позволяют управлять отображением любых тулбаров: navigation, tab и bottom
- Модификаторы видимости бэкграунда тулбара, с помощью которых можно делать классные анимации
- Управление цветовой схемой каждого тулбара в отдельности
- Отображение контекстного меню по нажатию на заголовок
- Модификаторы видимости, которые позволяют управлять отображением любых тулбаров: navigation, tab и bottom
- Модификаторы видимости бэкграунда тулбара, с помощью которых можно делать классные анимации
- Управление цветовой схемой каждого тулбара в отдельности
- Отображение контекстного меню по нажатию на заголовок
Swift with Majid
Customizing toolbars in SwiftUI
Toolbars API is one of my favorite APIs in SwiftUI. It allows you to define the toolbar and its items in a very declarative way behaving differently on separate platforms. The next generation of the SwiftUI framework brings us more ways of customizing toolbars.…
История про то, как крупный опенсорсный проект переехал с лицензии Apache на BSL и стал платным
- Akka – микросервисный реактивный фреймворк, который распространялся по бесплатной лицензии Apache 2.0
- Им пользуется очень много людей, включая крупные корпорации вроде Disney
- На этой неделе его автор решил поменять лицензию на BSL 1.1, которая требует оплаты за коммерческое использование
- Лицензия применяется только к новым релизам фреймворка
- Такая ситуация может произойти и для любой мобильной зависимости. Поэтому, когда вы решаете построить все приложение поверх какого-то чужого опенсорс проекта, такой риск тоже стоит держать в уме
- Akka – микросервисный реактивный фреймворк, который распространялся по бесплатной лицензии Apache 2.0
- Им пользуется очень много людей, включая крупные корпорации вроде Disney
- На этой неделе его автор решил поменять лицензию на BSL 1.1, которая требует оплаты за коммерческое использование
- Лицензия применяется только к новым релизам фреймворка
- Такая ситуация может произойти и для любой мобильной зависимости. Поэтому, когда вы решаете построить все приложение поверх какого-то чужого опенсорс проекта, такой риск тоже стоит держать в уме
akka.io
Why we are changing the license for Akka
Today, we're announcing a change to Akka's license model so that Akka can be a thriving project for many decades.
Не используйте escaping closures в SwiftUI
Автор показывает, как использование escaping closures в SwiftUI, которое многим может показаться более эффективным, на самом деле ломает memoization.
Автор показывает, как использование escaping closures в SwiftUI, которое многим может показаться более эффективным, на самом деле ломает memoization.
MarkCodable – сериализация Swift структур в Markdown
- Markdown – менее гибкий формат, чем JSON, но его можно использовать для хранения структурных данных. Его главный плюс – хорошая читаемость из коробки
- Сверстанные в markdown таблицы могут выступать в роли простой базы данных. А если залить их на GitHub, то вы получите готовый бэкенд для приложения
- Другие примеры использования Markdown-структур – конфигурационные файлы, хранение моков для тестов
- Markdown – менее гибкий формат, чем JSON, но его можно использовать для хранения структурных данных. Его главный плюс – хорошая читаемость из коробки
- Сверстанные в markdown таблицы могут выступать в роли простой базы данных. А если залить их на GitHub, то вы получите готовый бэкенд для приложения
- Другие примеры использования Markdown-структур – конфигурационные файлы, хранение моков для тестов
Шаблон Figma для Dynamic Island
Забирайте готовый шаблон для создания виджета с анимированным переходом.
Забирайте готовый шаблон для создания виджета с анимированным переходом.