В январе проскакивала новость, что Apple добавили в App Store новый тип распространения приложений – Unlisted. При его использовании приложение недоступно в каталоге и через поиск, и открыть его можно только по ссылке. В статье детально разбирается процесс публикации приложения в таком статусе, формы, которые надо заполнять, и проблемы, к котором могут придраться на ревью.
Bendodson
Unlisted App Distribution on the App Store
The somewhat uninituitive steps to get a private app distribution link on the App Store
В Swift 5.6 в SPM завезли поддержку плагинов:
📌Build Tools, которые запускаются до и во время сборки
📌Commands, которые запускаются с помощью CLI
В гайде разбирается, как созлавать простые Command-плагины, как со своей собственной логикой, так и обертки над другими инструментами вроде swift-format.
📌Build Tools, которые запускаются до и во время сборки
📌Commands, которые запускаются с помощью CLI
В гайде разбирается, как созлавать простые Command-плагины, как со своей собственной логикой, так и обертки над другими инструментами вроде swift-format.
Theswiftdev
Beginner's guide to Swift package manager command plugins - The.Swift.Dev.
Learn how to create command plugins for the Swift Package Manager to execute custom actions using SPM and other tools.
Уже через неделю начнется WWDC! Помогите подготовить гайд для сообщества:
1. Если вы организуете совместный просмотр кейноута в своем городе, напишите мне в личку (@etolstoy)
3. Если вы знаете кого-то, кто будет на WWDC вживую, и готов вести текстовую трансляцию с места событий, сведите его со мной!
4. Если есть идеи, что еще крутого можно сделать вокруг WWDC – тоже пишите!
1. Если вы организуете совместный просмотр кейноута в своем городе, напишите мне в личку (@etolstoy)
3. Если вы знаете кого-то, кто будет на WWDC вживую, и готов вести текстовую трансляцию с места событий, сведите его со мной!
4. Если есть идеи, что еще крутого можно сделать вокруг WWDC – тоже пишите!
Apple Developer
WWDC24
Join the worldwide developer community online for a week of technology and creativity.
Галерея iPod’ов с рентгеновскими снимками каждой модели и разбором каждого слоя получившихся изображений 😍
Scanofthemonth
iPods put 1,000 songs in your pocket, Neptune CT by Lumafield shows you how.
Tony Fadell sat down with Lumafield to look inside his iPod using our Neptune CT scanner. 'I wish we'd had CT scanning like this back when I was at Apple'
У Apple есть специальная программа Swift Mentorship Program, цель которой помогать разработчикам контрибьютить в свифтовый open source. В 2021 году кто-то контрибьютил в документацию, кто-то – в Vapor, а кто-то – в компилятор.
В этом году программа запускается снова. Участвовать может любой желающий, так что, если вы давно хотели ворваться в мир большого опенсорса, это ваш шанс!
📆Таймлайн:
1-15 июня – подача заявок
27 июня – анонс участников
4 июля-23 сентября – работа над проектом
30 сентября – сбор фидбэка и окончание
В этом году программа запускается снова. Участвовать может любой желающий, так что, если вы давно хотели ворваться в мир большого опенсорса, это ваш шанс!
📆Таймлайн:
1-15 июня – подача заявок
27 июня – анонс участников
4 июля-23 сентября – работа над проектом
30 сентября – сбор фидбэка и окончание
Swift.org
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
До 30 июня все приложения, в которых есть регистрация пользователей, должны реализовать возможность удаления профиля.
🔎Ее нельзя прятать куда-то очень далеко, она должна быть хорошо заметна
🍏Те, кто использует Sign in with Apple должны не забыть ревоукнуть токены
🤷🏻♂️Недостаточно просто блокировать аккаунт, надо удалить все связанные с ним данные
🔎Ее нельзя прятать куда-то очень далеко, она должна быть хорошо заметна
🍏Те, кто использует Sign in with Apple должны не забыть ревоукнуть токены
🤷🏻♂️Недостаточно просто блокировать аккаунт, надо удалить все связанные с ним данные
Apple
Account deletion requirement starts June 30 - Latest News - Apple Developer
As a reminder, apps that support account creation must let users initiate deletion of their account within the app starting June 30, 2022, as described in App Store Review Guideline 5.1.1(v). This deadline was extended to provide additional time for implementation…
В Swift 5.6 (Xcode 13.3) завезли флаг компиляции
Судя по бенчмаркам стоит ожидать уменьшение размера бинаря +- в 3 раза.
Будем ждать упоминания на WWDC и включения осенью по дефолту!
за новость спасибо @petropavel
-experimental-hermetic-seal-at-link
который позволяет вырезать неиспользуемый код на этапе полной линковки.Судя по бенчмаркам стоит ожидать уменьшение размера бинаря +- в 3 раза.
Будем ждать упоминания на WWDC и включения осенью по дефолту!
за новость спасибо @petropavel
GitHub
Add a -experimental-hermetic-seal-at-link flag that triggers aggressive LTO-based dead-stripping (VFE, WME, conditional runtime…
In essence, -experimental-hermetic-seal-at-link is just a wrapper flag that turns on all the LTO-based dead-stripping features, and it provides nice diagnostics in the driver (errors out if LTO is ...
Разработчики Юлы (проекта VK) запустили свой канал в Телеграме, где делятся ценными материалами о разработке, интересными проектами и активностями, которые можно посетить, и выступлениями сотрудников. Полезный канал для iOS-разработчиков, подписывайтесь!
Telegram
Разработка Юлы
Технологии Юлы. Разработка сервиса. Конференции.
Огромная подборка отзывов про работу со SwiftUI в его текущем состоянии от известных айосеров. В основном все жалуются на то, насколько фреймворк и тулинг вокруг него сырой, на скорость Apple в исправлении проблем и на отсутствие обратной совместимости. Но есть и позитивные отзывы.
Mjtsai
Michael Tsai - Blog - SwiftUI in 2022
Отличный тред на Swift Forums про то, как подходить к unit-тестированию кода, под капотом у которого async/await.
Swift Forums
Reliably testing code that adopts Swift Concurrency?
I’m having a hard time figuring out how to test application code as it adopts async-await and begins to be scheduled concurrently. I’ll try to show a simple example. Here’s a basic SwiftUI application that tracks how many times a user has taken a screen…
Каждое переключение между git ветками ведет к тому, что проект начинает переиндексироваться, скорость билда уменьшается, появляется раздражающий ворнинг про «The file has been modified by another application». В статье разбирается, как использование
git worktrees
помогает справляться с этой проблемой за счет создания копий проекта.Самый прямолинейный способ заинжектить какой-то код в момент вызова Objective-C метода – это method swizzling. Но есть случаи, когда его использовать не получится – например, если нужная вам функция написана на C++. В статье разбирается, как использовать переменную окружения
DYLD_INSERT_LIBRARIES,
чтобы заинжектить в приложение фреймворк, перехватывающий все вызовы нативного кода к кейчейну. Это может быть полезно в тех случаях, когда вы хотите обложить перфоманс-метриками или логами. какую-то стороннюю нативную библиотеку в своем проекте.Emergetools
Emerge Tools Blog | Code Injection with Dyld Interposing
Swizzling C functions in compiled iOS apps with dyld interposing.
Смотрите, какой классный пропозал – поддержать в SwiftPM сниппеты с примерами использования API библиотеки. SwiftPM сниппеты – это отдельные небольшие swift файлы, которые билдятся и запускаются как отдельные таргеты.
Такой подход гораздо более простой и гибкий, чем написание полноценных семпловых приложений, и более интерактивный, чем обычные примеры кода в документации.
Такой подход гораздо более простой и гибкий, чем написание полноценных семпловых приложений, и более интерактивный, чем обычные примеры кода в документации.
GitHub
swift-evolution/proposals/0356-swift-snippets.md at main · swiftlang/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swiftlang/swift-evolution
Если вы разрабатываете приложения под macOS, вам будет полезна эта статья. Автор рассуждает, по каким критериям отличить действительно круто реализованное приложение от всех остальных.
Swiftjective-C
What's A Best-in-Class macOS App Look Like?
I've long been a fan of best-in-class iOS apps, and I've attempted to definine what they look like. So, what about macOS?
В понедельник начинается WWDC. Чтобы провести его с максимальной пользой, держите пост-шпаргалку!
📆Основные даты (GMT +3)
6 июня (пн), 20:00 – Apple Keynote
6 июня (пн), 23:00 – Platforms State of the Union
7 июня (вт), 03:00 – Apple Design Awards
7-10 июня (вт-пт) – Сессии, лабы, конкурсы
🤔Чем заняться в удаленном режиме
1. Найти тусовку для совместного просмотра WWDC в своем городе. А на худой конец – подписаться на твиттер Олега Годовых, в котором он каждый год делает лучшие текстовые трансляции происходящего.
2. Подписаться на канал нашего подписчика, который поехал на WWDC вживую, и обещал вести прямую трансляцию происходящего с фотоками!
3. Скачать обновленное приложение Apple Developer Lab, с помощью которого можно смотреть ежедневные сессии и участвовать в конкурсах
4. Записаться в 1/1 лабы, на которых вы можете задать вопросы про проблемы с технологиями, процессом ревью или дизайном.
5. Подключиться к текстовым Q&A сессиям с инженерами Apple.
6. Каждый день заглядывать в @iosgr за новостями по мотивам новых анонсов и в @iosgt за горячими обсуждениями того, что все пропало, и лучше бы ничего не обновляли.
✅Что не забыть сделать до WWDC
1. Заранее подумать о том, сессии на какие темы вам интересны, и запланировать пару часов в день на их просмотр.
2. Поставить себе XcodesApp, чтобы было проще устанавливать бетку.
📆Основные даты (GMT +3)
6 июня (пн), 20:00 – Apple Keynote
6 июня (пн), 23:00 – Platforms State of the Union
7 июня (вт), 03:00 – Apple Design Awards
7-10 июня (вт-пт) – Сессии, лабы, конкурсы
🤔Чем заняться в удаленном режиме
1. Найти тусовку для совместного просмотра WWDC в своем городе. А на худой конец – подписаться на твиттер Олега Годовых, в котором он каждый год делает лучшие текстовые трансляции происходящего.
2. Подписаться на канал нашего подписчика, который поехал на WWDC вживую, и обещал вести прямую трансляцию происходящего с фотоками!
3. Скачать обновленное приложение Apple Developer Lab, с помощью которого можно смотреть ежедневные сессии и участвовать в конкурсах
4. Записаться в 1/1 лабы, на которых вы можете задать вопросы про проблемы с технологиями, процессом ревью или дизайном.
5. Подключиться к текстовым Q&A сессиям с инженерами Apple.
6. Каждый день заглядывать в @iosgr за новостями по мотивам новых анонсов и в @iosgt за горячими обсуждениями того, что все пропало, и лучше бы ничего не обновляли.
✅Что не забыть сделать до WWDC
1. Заранее подумать о том, сессии на какие темы вам интересны, и запланировать пару часов в день на их просмотр.
2. Поставить себе XcodesApp, чтобы было проще устанавливать бетку.
etolstoy on Notion
Где посмотреть WWDC
Хотите добавить свое событие? Пишите мне в Telegram!
Кому интересен WWDC, когда на пороге действительно главное событие этого лета – новый сезон Podlodka iOS Crew: Modern iOS Coding!
Основной фокус сезона в том, чтобы разобраться, как затаскивать в свои проекты актуальный стек технологий: async/await, SwiftUI, Tuist, SPM и разные API из iOS 15. Все сессии – максимально прикладные, спикеры – огонь. Вот несколько крутых сессий из расписания:
💻Лайв-кодинг «Struct oriented programming»
🧱Доклад «SPM (Super Package Manager)»
🤡Лайв-кодинг «API, которые ваш тимлид не даст вам встроить в проект»
🛠Доклад «Туистифицируем проект»
Сезон пройдет 20-24 июня. Влетаем, пока билеты по ценам раннего доступа!
Основной фокус сезона в том, чтобы разобраться, как затаскивать в свои проекты актуальный стек технологий: async/await, SwiftUI, Tuist, SPM и разные API из iOS 15. Все сессии – максимально прикладные, спикеры – огонь. Вот несколько крутых сессий из расписания:
💻Лайв-кодинг «Struct oriented programming»
🧱Доклад «SPM (Super Package Manager)»
🤡Лайв-кодинг «API, которые ваш тимлид не даст вам встроить в проект»
🛠Доклад «Туистифицируем проект»
Сезон пройдет 20-24 июня. Влетаем, пока билеты по ценам раннего доступа!
podlodka.io
Онлайн-конференция Podlodka iOS Crew, сезон #15
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам iOS-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Reveal зарелизили новую большую фичу – Accessibility Workspace. С ее помощью можно быстро проверять все связанные с доступностью свойства элементов интерфейса – VoiceOver, voice control, contrast checks и другие.
Reveal
Introducing the Accessibility Workspace - Reveal
Version 36 introduces Reveal's Accessibility Workspace. Our desire to build better apps, faster has driven us to develop a brand new, defining feature of Reveal.
Большое исследование экосистемы iOS разработки в России
⛑Какие архитектурные подходы сейчас самые модные
🍒Какой dependency manager выбрать для нового проекта
🧱Как организуют модульность в других командах
🛒Какие библиотеки можно затащить в свой проект, и не бояться, что это помешает найму
🛠Какие новые полезные инструменты попробовать
Спасибо всем подписчикам, кто участвовал в наших опросах. Я планирую собирать такой срез каждый год и следить за тем, как будет меняться стек инструментов со временем!
⛑Какие архитектурные подходы сейчас самые модные
🍒Какой dependency manager выбрать для нового проекта
🧱Как организуют модульность в других командах
🛒Какие библиотеки можно затащить в свой проект, и не бояться, что это помешает найму
🛠Какие новые полезные инструменты попробовать
Спасибо всем подписчикам, кто участвовал в наших опросах. Я планирую собирать такой срез каждый год и следить за тем, как будет меняться стек инструментов со временем!
DevCrowd
Недушные рисерчи российского IT. Мы опросили уже 10000 айтишников
Effective Power – инструмент, который позволяет проанализировать метрики энергопотребления всех приложений на вашем устройстве, включая различных системных демонов.
Обзор различных атрибутов AttributedString и особенностей работ с ними
🧱Foundation Attributes: ссылки и маркдаун
👵UIKit/AppKit Attributes: цвета, шрифты, подложка
👶SwiftUI Attributes: специфичные для фреймворка стили
👨🦯Accessibility Attributes: подкручивание свойств доступности на уровне отдельных рейнджей в строке
🛠Custom Attributes, которые вы можете определить сами и переиспользовать в будущем
🧱Foundation Attributes: ссылки и маркдаун
👵UIKit/AppKit Attributes: цвета, шрифты, подложка
👶SwiftUI Attributes: специфичные для фреймворка стили
👨🦯Accessibility Attributes: подкручивание свойств доступности на уровне отдельных рейнджей в строке
🛠Custom Attributes, которые вы можете определить сами и переиспользовать в будущем
Nil Coalescing
AttributedString attribute scopes
Take a closer look at AttributedString type and different attribute scopes it can contain. Explore how Apple system frameworks interpret available attributes and how to create your own.