Swift OpenAPI Generator 1.0
Вышла первая стабильная версия генератора OpenAPI, про который я уже много раз писал в канале. Путь до стабильного релиза занял всего 6 месяцев.
Что еще почитать:
👉Пошаговые туториалы по работе с генератором
👉Проект для ознакомления
👉Сессия с WWDC
Бесплатные M1 раннеры на GitHub
Ну наконец-то! Раннеры на М1 стали доступными бесплатно для всех публичных репозиториев, и с ограниченным количеством бесплатных минут для приватных. Все выполняется на виртуалках с 3 vCPU, 7 GB RAM, and 14 GB памяти под macOS 14.
MacPaw будут запускать альтстор в EU
Кажется, это первый случай, в котором кто-то официально заявил, что будет делать свой альтстор, причем с запуском в 2024. Если вы не в курсе, MacPaw – ребята, которые делают Setapp, классную подписку на самые лучшие macOS приложения в своих категориях.
Как приучить себя к клавиатурным шорткатам
Каждый раз, когда я добавляю в свою жизнь регулярное использование каких-то новых шорткатов, уровень комфорта от работы значительно повышается. Особенно это касается стандартных шорткатов для редактирования текста, которые позволяют быстро перемещаться между словами или строками.
Держите статью с подборкой самых критичных шорткатов и советами по тому, как приучить себя к ним. От себя посоветую растягивать привыкание к каждому на долгое время, и пытаться начать использовать новые только после того, как предыдущий перешел на уровень автоматизма.
SwiftUI для visionOS
Небольшая вводная в основные возможности, которые дает SwiftUI для разработки приложений под visionOS: Windows, Volumes, Immersive spaces.
Изменения работы App Store
Главная тема прошлой недели – куча изменений того, как работает App Store. В основном касаются Европы, но некоторые распространяются на весь мир.
👉Во всех странах можно размещать приложения для облачного гейминга, например, GeForce Now.
👉В EU появляются альтернативные магазины приложений. Правда, приложения все равно проверяются Apple. Вне EU вносить изменения пока не собираются, так как называют их опасными для пользователей.
👉В EU можно распространять браузеры со своим движком. Opera уже подсуетилась и обещает релиз в марте.
👉Для разработчиков в EU есть два стула – оставаться на текущих условиях, либо принять новые, распространяться и через App Store, и через альсторы, но платить 0.5 евро комиссии за каждую установку, начиная со второго миллиона. При этом комиссия App Store падает до 10%, плюс 3% за обработку платежей.
👉Apple будет проверять приложения из любых источников по модели, похожей на macOS. В исходниках 17.4 уже есть мемный текст "%APP_NAME% contains malware and cannot be opened. You should delete it from your device"
👉Просто так сделать свой альтстор нельзя. Нужно иметь на счету компании больше 1 миллиона евро, предоставлять отчетность Apple, и платить за каждую установку магазина 0.5 евро.
👉Можно будет менять стандартные магазин приложений, способ оплаты и браузер.
👉Нельзя ставить одинаковые приложения из двух разных сторов.
Все приложения на visionOS выглядят одинаково
В последнюю неделю в Твиттере куча людей делится скриншотами своих visionOS приложений. И проблема в том, что все они выглядят максимально одинаково и скучно. Может быть, в динамике все будет выглядеть по-другому, но пока все странно.
Анимированное удаление бэкграунда
Реализация превращения фотографии в стикер путем удаления бэкграунда объекта. И все это с анимацией.
Новые правила покупок в обход App Store
Apple недавно была вынуждена разрешить приложениям из US App Store отправлять пользователя на совершение покупки через браузер. Но получился типичный Apple.
Разбор StoreKitTest
Разбор того, как новый системный фреймворк StoreKitTest помогает тестировать внутренние покупки, их восстановление и рефанд.
daviddvd19/xcodegen-getting-deeper-2932474a5b59">Xcodegen для сложных проектных сетапов
Инструкция по настройке Xcodegen для генерации проектов с поддержкой различных окружений (dev/staging), в каждом из которых свои настройки и сертификаты.
uliwitness/111727882552827926">Вызов Swift из C++ кода
В последний Xcode завезли поддержку C++ -> Swift интеропа. По ссылке – инструкция, как его потестить.
Как сделать иконку для Vision Pro
Раз кто-то из вас уже начинает готовить свои приложения для очков для сабмита в App Store, держите гайд про то, как адаптировать существующую иконку под стандарты новой операционной системы.
Как AnyView влияет на перфоманс
Автор статьи проводит несколько замеров того, как использование AnyView вместо конкретных типов ухудшает производительность в SwiftUI.
Godot для iPad
Miguel de Icaza, известный в том числе тем, что разработал Xamarin, начал в качестве хобби проекта портировать редактор игрового движка Godot для разработки под iPad. Ну как портировать – скомпилировать его уже и сейчас можно, но он заточен под работу с мышью. План – перевести необходимую часть интерфейса на компоненты SwiftUI. Короче говоря, интересный проект, за которым точно стоит наблюдать!
Создание интерактивного виджета с использованием MusicKit
На WWDC 2023 Apple представили новые интерактивные виджеты. Они теперь не только красивые, но и действительно полезные!
Если вы еще не добрались до того, чтобы поиграться с виджетами, то подключайтесь к клевому вебинару – Анна Жаркова покажет, как создать музыкальное приложение на базе MusicKit, и сделать для него интерактивный виджет.
📅Дата: 15 февраля в 20:00 по Москве
👉Регистрация: https://otus.pw/V2yn/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как iOS-разработчику прокачать скиллы?
Прийти на бесплатный практический урок «Пишем сетевой слой в iOS-приложении» от OTUS и Антона Марунько – iOS Team Lead’а в Kupibilet.ru.
Что ждёт вас после вебинара:
1. Повышение навыков разработки сетевого слоя в iOS-приложении
2. Понимание основных концепций и инструментов для разработки сетевого слоя
3. Получение практических советов и лучших практик для эффективной разработки
📢Встречаемся 8 февраля в 20:00 мск в рамках курса «Специализация iOS Developer». Понравится вебинар — продолжите обучение на курсе по специальной цене и даже в рассрочку!
➡️Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: регистрация
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Pkl – новый язык от Apple
Apple заопенсорсили новый язык описания конфигураций – Pkl. Основной юзкейс – конфигурации для чего угодно, которые потом могут сериализоваться в JSON, Yaml, Toml, plist и другие форматы. Кажется, что Apple целятся с ним в первую очередь в около-серверные юзкейсы. Завезут ли для конфигов SwiftPM – большой вопрос.
Несколько интересных фактов:
👉Название читается как "Pickle", огурчик.
👉Язык уже какое-то время использовался в Apple как внутренний инструмент, и все им были очень довольны.
👉Нет поддержки в Xcode, но зато есть плагин для IntelliJ IDE.
👉Моя персональная радость, 25% репозитория на GitHub написаны на Kotlin.
Держите ссылки почитать подробнее:
🔗Блог-пост про запуск
🔗Обсуждение на HackerNews
Простой watchdog для мейн треда
Если вам надо проследить за тем, когда главный поток зависает на значительное время, держите простую таску, которая напишет об этом в логи. В продакшн этот код использовать не стоит, потому что он регулярно обращается к мейн треду и таким образом влияет на потребление батареи.
Клиент к App Store Connect API с помощью OpenAPI генератора
Я уже рассказывал про сравнительно новый пакет от Apple, который позволяет генерировать клиенты по OpenAPI спецификации. Один из способов поиграться с ним – сгенерировать клиент к App Store API, который поможет управлять релизами приложений, генерировать отчеты по доходам и делать другие интересные штуки.
Держите продолжение к прошлому материалу, в котором действительно не хватает скриншотов. Тред с подборкой приложений.
Читать полностью…Навигация на SwiftUI
Поддержка полнофункциональной навигации в SwiftUI появилась только с iOS 16, поэтому большинство приложений смогут пересесть на ее еще не скоро. Затаскивать UIKit-навигацию – тоже спорное решение.
Если вы хотите разобраться, как реализовывать нативную навигацию на SwiftUI, которая будет работать уже с iOS 14, приходите на открытый вебинар. На нем разберут существующие open source решения, окунут вас в мир бэкпортов и расскажут, как сделать навигацию ультимативно классной!
📅Дата: 30 января в 20:00
👉Регистрация: https://otus.pw/1Crf/
Вебинар приурочен к старту продвинутого онлайн-курса «iOS Developer. Professional» от Отус.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как написать свой iOS симулятор
Самая интересная статья прошлой недели – с чем пришлрсь столкнуться разработчику, который решил написать свой собственный симулятор.
Spatial video и AVFoundation
Небольшой гайд по тому, как добавить в ваше visionOS приложение поддержку чтения и записи видео.
Как реализована приватность в протоколе AirDrop
Классный обзор устройства протокола, поверх которого работает AirDrop, обеспечения его приватности, и причин появления уязвимости, которую сейчас активно эксплуатирует китайское правительство.
Perception – бэкпорт Observability
Pointfree выпустили библиотеку Perception, которая бэкпортит Observability framework на все версии iOS, начиная с 13. API аналогичен, но сами макросы и функции называются немного по-другому. Миграция в будущем, кажется, будет несложной.
Swift биндинги для WinRT
Если вы пропустили, то в октябре ребята из Browser Company, которые делают Arc на чистом Swift, и портируют его на Windows, заопенсорсили биндинги к WinRT. Теперь, если вы хотите написать нативное приложение для Windows, можете и сами делать это на Swift.
Новый выпуск рассылки Hello Developer от Apple
В этот раз основная тема рассылки – разработка под Vision Pro.
👉Открыта возможность отправлять на ревью свои приложения для Vision App Store
👉Кейс-стади от компании, которая делает приложение с виртуальным диджейским пультом
👉Статья с Q&A про разработку под очки
👉Открыта запись на Developer Labs про Vision Pro
danielsaidi/111668104636849607">Кастомизация Strings Catalog в зависимости от типа девайса
Оказывается, с помощью Strings Catalog можно настраивать разный перевод строки в зависимости от типа девайса, на котором будет запущен проект. Идеально для кроссплатформенных проектов для iOS и macOS.
Self-hosted CI в Додо
Ребята из Додо рассказывают, как эволюционировал CI в их команде.
👉Тимсити с единственным раннером на старом Mac Mini
👉Облачные раннеры в Bitrise
👉Self-hosted GitHub раннеры на М1
👉Виртуализация с помощью Cilicon