Как экспортировать все скиллы из Xcode 27
Хотя в Apple добавили поддержку многих сторонних интеграций, они все прекрасно понимают, в частности то, чем сейчас пользуются многие разработчики.
Поэтому для тех, кто использует альтернативные решения, появилась новая опция:
На сегодняшний день можно перенести следующее:
😃 iOS Dev
Хотя в Apple добавили поддержку многих сторонних интеграций, они все прекрасно понимают, в частности то, чем сейчас пользуются многие разработчики.
Поэтому для тех, кто использует альтернативные решения, появилась новая опция:
xcrun agent skills exportНа сегодняшний день можно перенести следующее:
✓ swiftui-whats-new-27
✓ test-modernizer
✓ device-interaction
✓ swiftui-specialist
✓ c-bounds-safety
✓ audit-xcode-security-settings
✓ uikit-app-modernization
Please open Telegram to view this post
VIEW IN TELEGRAM
6 29🔥5✍4❤🔥1😨1
Три обязательных требования в iOS 27, о которых нужно не забыть к осени
1️⃣ Приложения будут обязаны внедрить жизненный цикл на основе сцен. Как мигрировать - писал здесь.
2️⃣ Флаг игнора диза жидкого стекла больше не сработает. Многое может сломаться, поэтому если не начинали адоптить, давно пора.
3️⃣ Новое обязательное требование для лончскрина (чтобы не словить реджект ITMS-90870). Начиная с версий iOS 27 и iPadOS 27 в файле Info.plist вашего приложения должен быть указан конфиг лончскрина. Если в вашем приложении уже есть экран запуска, вам не нужно вносить никаких изменений.
📜 Сохраните себе, чтобы не забыть.
😃 iOS Dev
1️⃣ Приложения будут обязаны внедрить жизненный цикл на основе сцен. Как мигрировать - писал здесь.
2️⃣ Флаг игнора диза жидкого стекла больше не сработает. Многое может сломаться, поэтому если не начинали адоптить, давно пора.
3️⃣ Новое обязательное требование для лончскрина (чтобы не словить реджект ITMS-90870). Начиная с версий iOS 27 и iPadOS 27 в файле Info.plist вашего приложения должен быть указан конфиг лончскрина. Если в вашем приложении уже есть экран запуска, вам не нужно вносить никаких изменений.
Please open Telegram to view this post
VIEW IN TELEGRAM
6✍31🔥5👏4 3😢1🫡1
Зона интересов
Печально, когда мобильные разработчики с ненулевой аудиторией оправдывают блокировки приложений. Когда верят что отсутствие конкуренции - это логичный шаг к цифровому суверенитету.
Когда призывают к тому, что отключение оплаты в App Store - это путь к светлому и синтезированному, стерильному и такому радостному интернету.
Когда костыли из сервисов для открытия заблокированных приложений считаются нормой.
Когда мы должны объяснять старшему поколению что такое прокси, и почему внезапно они до нас не могут дозвониться.
2026 год за окном, интернет это буквально базовая необходимость.
Но я понимаю, какая зона интересов у таких псевдоблогеров. Да и все мы понимаем.
😃 iOS Dev
Печально, когда мобильные разработчики с ненулевой аудиторией оправдывают блокировки приложений. Когда верят что отсутствие конкуренции - это логичный шаг к цифровому суверенитету.
Когда призывают к тому, что отключение оплаты в App Store - это путь к светлому и синтезированному, стерильному и такому радостному интернету.
Когда костыли из сервисов для открытия заблокированных приложений считаются нормой.
Когда мы должны объяснять старшему поколению что такое прокси, и почему внезапно они до нас не могут дозвониться.
2026 год за окном, интернет это буквально базовая необходимость.
Но я понимаю, какая зона интересов у таких псевдоблогеров. Да и все мы понимаем.
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤🔥110💯47🔥11👍9😴5👏4🫡2 2😍1🍾1
This media is not supported in your browser
VIEW IN TELEGRAM
Review Buddy - добавил полноценную мак-версию, ускорил краулер и кое-что ещё
Топ-фича с переключением аппстора для того, чтобы узнать есть ли приложение где-то, кроме России, всё также доступна, даже если вы видите алерт - так нужно)
Более того, она не теряет актуальности в связи с удалением приложений.
Наконец перешёл на платную версию клаудфлейра и вместо 14 часов теперь полноценный снэпшот чартов делается примерно за три с половиной часа (может это не так быстро, но вообще-то не так и плохо!).
Ещё докрутил скраппер, чтобы полноценно срезать оценки по кастомным сторам (с разбивкой не только по среднему, но и по конкретному количеству оценок).
Как и прежде, из коробки доступно вообще всё, кроме пушей для одного избранного приложения.
В расширенной версии есть пуши с новыми отзывами и смещением позиций (и бонусом ещё сравнение с компетиторами).
🏠 Скачать можно в App Store
😃 iOS Dev
Топ-фича с переключением аппстора для того, чтобы узнать есть ли приложение где-то, кроме России, всё также доступна, даже если вы видите алерт - так нужно)
Более того, она не теряет актуальности в связи с удалением приложений.
Наконец перешёл на платную версию клаудфлейра и вместо 14 часов теперь полноценный снэпшот чартов делается примерно за три с половиной часа (может это не так быстро, но вообще-то не так и плохо!).
Ещё докрутил скраппер, чтобы полноценно срезать оценки по кастомным сторам (с разбивкой не только по среднему, но и по конкретному количеству оценок).
Как и прежде, из коробки доступно вообще всё, кроме пушей для одного избранного приложения.
В расширенной версии есть пуши с новыми отзывами и смещением позиций (и бонусом ещё сравнение с компетиторами).
Please open Telegram to view this post
VIEW IN TELEGRAM
10 19👾3👍1😍1😨1
🙆 В iOS 27 появился Recovery Mode
Если при включении iPhone продолжить удерживать кнопку питания, появятся опции восстановления:
🔘 Recovery Assistant
🔘 Software Update
🔘 Diagnostics Mode
🔘 Erase All Content and Settings
🔘 Recovery Mode via Mac
Один из сценариев, когда нам может пригодиться эта фича, если в процессе обновления в девайсе разрядится аккумулятор, например.
😃 iOS Dev
Если при включении iPhone продолжить удерживать кнопку питания, появятся опции восстановления:
🔘 Recovery Assistant
🔘 Software Update
🔘 Diagnostics Mode
🔘 Erase All Content and Settings
🔘 Recovery Mode via Mac
Один из сценариев, когда нам может пригодиться эта фича, если в процессе обновления в девайсе разрядится аккумулятор, например.
Please open Telegram to view this post
VIEW IN TELEGRAM
4 32✍11💯5😨3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftOS - экспериментальный проект по созданию настоящей операционной системы с помощью embedded Swift
Её автор, Андрей Сапунов, вместо того чтобы изучать концепции операционных систем только по книгам, решил, почему бы не создать собственную систему, чтобы разобраться, как взаимодействуют ядро, память и процессы.
🛠 Необычная история как минимум, код можно посмотреть на GitHub, а доки вот тут.
😃 iOS Dev
Её автор, Андрей Сапунов, вместо того чтобы изучать концепции операционных систем только по книгам, решил, почему бы не создать собственную систему, чтобы разобраться, как взаимодействуют ядро, память и процессы.
🛠 Необычная история как минимум, код можно посмотреть на GitHub, а доки вот тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
8😨37👍18👾8 4🏆3😎1
😆 Компании стали внедрять стиль речи неандертальцев в чат-боты для экономии токенов
Автор Caveman заметил, что значительная часть бюджета расходуется на болтовню языковых моделей.
Его инструмент удаляет слова-связки, приветствия и просто вводный текст, сохраняя при этом сам код. Кстати, в репу кейвмана коммитил и техдир Open AI.
Мне кажется, что это безумно смешно. Пока все ждут возвращения Fable для всех, настоящий изумруд не за горами в виде какой-нибудь модели AI «Питекантроп».
И тогда надо делать опрос, не в какой компании быстрее деградирует iOS-разработчик, а и использованием какого ИИ.
Так и представляю общение через этот чат-бот в стиле бунга-вунга.
😃 iOS Dev
Автор Caveman заметил, что значительная часть бюджета расходуется на болтовню языковых моделей.
Его инструмент удаляет слова-связки, приветствия и просто вводный текст, сохраняя при этом сам код. Кстати, в репу кейвмана коммитил и техдир Open AI.
Мне кажется, что это безумно смешно. Пока все ждут возвращения Fable для всех, настоящий изумруд не за горами в виде какой-нибудь модели AI «Питекантроп».
И тогда надо делать опрос, не в какой компании быстрее деградирует iOS-разработчик, а и использованием какого ИИ.
Так и представляю общение через этот чат-бот в стиле бунга-вунга.
Please open Telegram to view this post
VIEW IN TELEGRAM
6😁38🔥8🤣7👍2😢1
Memberwise Initializer в Swift 6.4 на примерах
В отличие от дефолтного, структура получает покомпонентный инициализатор, даже если она имеет свойства, не имеющие значений по умолчанию.
Но До Swift 6.4 приватные хранимые свойства со значениями по умолчанию мягко говоря были неудобными, так как вот такая история была бы невалидна:
📖 В этой статье разбирается, что изменилось в Swift 6.4 благодаря SE-0502.
А множество других подводных камней разбиралось в статье из вот этого поста.
😃 iOS Dev
В отличие от дефолтного, структура получает покомпонентный инициализатор, даже если она имеет свойства, не имеющие значений по умолчанию.
Но До Swift 6.4 приватные хранимые свойства со значениями по умолчанию мягко говоря были неудобными, так как вот такая история была бы невалидна:
struct Article {
let title: String
let url: URL
private var readCount: Int = 0
}
// You would expect this to work, but it does not before Swift 6.4:
let article = Article(
title: "Memberwise Initializers in Swift",
url: URL(string: "https://www.avanderlee.com")!
)📖 В этой статье разбирается, что изменилось в Swift 6.4 благодаря SE-0502.
А множество других подводных камней разбиралось в статье из вот этого поста.
Please open Telegram to view this post
VIEW IN TELEGRAM
6 12👏3👍2🔥1
Акторы в Swift - примеры использования и подводные камни
Акторы обеспечивают выполнение кода в определенном потоке.
Введенные в Swift 5.5, акторы помогают нам писать потокобезопасный, и что не менее важно, предсказуемый код при работе с асинхронными задачами.
Про ряд экспериментов с акторами и ловушки, которые могут предостерегать даже опытных разработчиков, можно почитать в этом посте.
А в развёрнутой статье на бусти аккумулировал огромное количество тонкостей, в частности: что такое actor, как работает изоляция, почему await внутри актора может быть опаснее, чем кажется, да и вообще что изменилось в Swift 6.x и Swift 6.4.
Весь код, все примеры и многое другое:💰 На бусти и ⭐️ в телеграме.
В трибьюте и бусти действует шикарное вводное предложение.
😃 iOS Dev
Акторы обеспечивают выполнение кода в определенном потоке.
Введенные в Swift 5.5, акторы помогают нам писать потокобезопасный, и что не менее важно, предсказуемый код при работе с асинхронными задачами.
Про ряд экспериментов с акторами и ловушки, которые могут предостерегать даже опытных разработчиков, можно почитать в этом посте.
А в развёрнутой статье на бусти аккумулировал огромное количество тонкостей, в частности: что такое actor, как работает изоляция, почему await внутри актора может быть опаснее, чем кажется, да и вообще что изменилось в Swift 6.x и Swift 6.4.
Весь код, все примеры и многое другое:
🧠 Что вы получите ещё, подписавшись:➡️ Карта изучения Swift Concurrency (примеры, разбор каждого уровня, полезные советы)➡️ Вопросы на чтение кода (несколько уровней: простых, посложнее)➡️ Многопоточность➡️ DispatchQueue: практические вопросы➡️ Swift Concurrency➡️ Алгоритмы: терминология и примеры + путь Яндекс Coderun (разбор нескольких десятков задач)➡️ Память: ARC, side table, флаги, утечки➡️ Результаты зарплатного опроса в нашем канале + сравнение с европейскими реальными зарплатами в iOS➡️ Разбор подходов к анимациям и лучшие паттерны (классические способы, Metal, комбинации - все подкреплено кодом)➡️ Утечки памяти в Swift: что с ними делать, как предотвратить?➡️ Навигация в SwiftUI: типы, отличия, разбор неочевидных моментов
В трибьюте и бусти действует шикарное вводное предложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
6 15👍6🤩4✍3😨1
Master of puppets
В детстве у моих одноклассников частенько можно было встретить рюкзаки с металликой, а у части были с надписью ГрОб (но это другая история).
Так вот, тогда металлика казалась чем-то с другой планеты, ну как супергерои, которых не существует или звезды, которых никогда не достичь.
Но пару десятков лет спустя я рад, что появляются возможности оказаться где-то рядом.
Вчера посетил первый из двух закрывающих концертов M72. И черт возьми, всем бы столько сил, как у Хэтфилда в его 60+.
Интересно, что на одну из песен со всей этой движухой с ии можно взглянуть и по-другому.
Можно ли назвать человека, который использует десятки агентов, master of puppets?
Думаем.
😃 iOS Dev
В детстве у моих одноклассников частенько можно было встретить рюкзаки с металликой, а у части были с надписью ГрОб (но это другая история).
Так вот, тогда металлика казалась чем-то с другой планеты, ну как супергерои, которых не существует или звезды, которых никогда не достичь.
Но пару десятков лет спустя я рад, что появляются возможности оказаться где-то рядом.
Вчера посетил первый из двух закрывающих концертов M72. И черт возьми, всем бы столько сил, как у Хэтфилда в его 60+.
Интересно, что на одну из песен со всей этой движухой с ии можно взглянуть и по-другому.
Можно ли назвать человека, который использует десятки агентов, master of puppets?
Думаем.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥33🤩6⚡5 2😡1
Собираем краши в iOS 27 c помощью CrashReportExtension
С помощью нового фреймворка можно анализировать и безопасно отправлять отчеты прямиком на свой бэкенд, не привязываясь к сторонним SDK.
Для этого нужно создать отдельное расширение
Когда приложение упадёт, система автоматически вызовет наше расширение и передаст ему метод processCrashReport.
В коде это выглядит так:
Через
Хотя подавляющее большинство юзает Firebase или Sentry, ещё одна альтернатива нам не помешает.
➡️ Список всех новых фреймворков iOS 27.
😃 iOS Dev
С помощью нового фреймворка можно анализировать и безопасно отправлять отчеты прямиком на свой бэкенд, не привязываясь к сторонним SDK.
Для этого нужно создать отдельное расширение
CrashReporterExtension. Кстати, его особенность в том, что оно запускается в отдельном изолированном процессе, полностью независимо от нашей крашнутой приложухи.Когда приложение упадёт, система автоматически вызовет наше расширение и передаст ему метод processCrashReport.
В коде это выглядит так:
@main
struct MyCrashExtension: CrashReporterExtension {
func processCrashReport(process: CrashedProcess) {
// Получаем доступ к данным упавшего процесса
let corpsePort = process.corpsePort
let images = process.binaryImages
// 1. Формируем свой краш-репорт
// 2. Сохраняем на диск или шлем на сервер
}
}Через
CrashedProcess можно получить corpsePort и доступ к загруженным бинарникам, на основе чего уже можно сформировать дамп для отладки.Хотя подавляющее большинство юзает Firebase или Sentry, ещё одна альтернатива нам не помешает.
Please open Telegram to view this post
VIEW IN TELEGRAM
6 19🎉6🤓3👍1💯1👾1
Изменение порядка для List и Grid с сохранением в SwiftData
Стюарт Линч выпустил урок по работе со SwiftData. В нём он рассказывает, как реализовать перетаскивание в LazyVGrid с помощью onDrag, onDrop и специального DropDelegate.
📺 А ещё в этом видео можно узнать, как:
😃 iOS Dev
Стюарт Линч выпустил урок по работе со SwiftData. В нём он рассказывает, как реализовать перетаскивание в LazyVGrid с помощью onDrag, onDrop и специального DropDelegate.
📺 А ещё в этом видео можно узнать, как:
• Перейти от локального состояния к@Queryв SwiftData
• Сохранять изменения пользовательского порядка сортировки при перезапуске приложухи
• Добавлять элементы управления для редактирования (и добавления элементов)
• Обрабатывать удаление строк с сохранением порядка сортировки
• Создавать плавные анимации в сетке с помощью перетаскивания
Please open Telegram to view this post
VIEW IN TELEGRAM
4 14🔥4✍2👾1