Почему xcodebuild работает быстрее в GUI Xcode
Если вы собираете iOS приложение на CI или из консоли, не открывая Xcode, вы напрямую используете xcodebuild. И с ним есть концептуальная проблема – инкрементальные билды работают существенно медленнее, чем при сборке сразу из Xcode. В основном это вызвано тем, что Xcode использует набор приватных API для того, чтобы держать сервис все время прогретым, а в CLI его приходится каждый раз запускать вручную. Но есть несколько способов чуть улучшить ситуацию, которые и рассмотрены в статье.
Если вы собираете iOS приложение на CI или из консоли, не открывая Xcode, вы напрямую используете xcodebuild. И с ним есть концептуальная проблема – инкрементальные билды работают существенно медленнее, чем при сборке сразу из Xcode. В основном это вызвано тем, что Xcode использует набор приватных API для того, чтобы держать сервис все время прогретым, а в CLI его приходится каждый раз запускать вручную. Но есть несколько способов чуть улучшить ситуацию, которые и рассмотрены в статье.
Medium
Why is xcodebuild slower than the Xcode GUI?
There is a bug, but also it’s designed to be that way
Лучший способ искать вхождение строки по пользовательскому запросу
В различных языках часто встречаются разные написания для одного и того же термина. Поэтому, если вы реализуете поиск вхождений подстроки, взятой из пользовательского запроса, лучше всего использовать функцию
В различных языках часто встречаются разные написания для одного и того же термина. Поэтому, если вы реализуете поиск вхождений подстроки, взятой из пользовательского запроса, лучше всего использовать функцию
localizedStandardRange(of:)
, так как она повторяет поведение стандартного поиска в iOS, игнорируя особенности написания и диакритические знаки.Nil Coalescing
User-level string search in Swift
Use localizedStandardRange(of:) in Swift for flexible, locale-aware, case and accent-insensitive string searches, providing a user experience similar to system-wide searches.
Traits в Swift Testing
Traits в swift-testing – дополнительные параметры, которые передаются в макросах тестов. С их помощью можно отключать тесты по какому-то условию, устанавливать лимиты на время их исполнения, помечать тегами и аннотировать дополнительным контекстом.
Traits в swift-testing – дополнительные параметры, которые передаются в макросах тестов. С их помощью можно отключать тесты по какому-то условию, устанавливать лимиты на время их исполнения, помечать тегами и аннотировать дополнительным контекстом.
Swift with Majid
Introducing Swift Testing. Traits.
The most powerful feature of the Swift Testing framework is the trait system. Traits allow us to annotate a test or test suite to customize its behavior. This week, we will learn how to use built-in trait types to modify tests.
Swift Pathway – официальный гайд по языку
Apple выпустили отличный вводный гайд по Swift, который можно скидывать всем, кто интересуется языком: разбор базовых концепций и фичей, совместимость с различными платформами, и куча ссылок на подробные материалы по каждой теме.
Apple выпустили отличный вводный гайд по Swift, который можно скидывать всем, кто интересуется языком: разбор базовых концепций и фичей, совместимость с различными платформами, и куча ссылок на подробные материалы по каждой теме.
Локальные LLM для iOS разработки
На прошлой неделе я рассказывал про Alex Sidebar, что-то вроде Cursor, хорошо интегрированное с Xcode. Один из его плюсов в том, что его можно использовать не только с платными LLM провайдерами, но и с локальными бесплатными моделями. В статье разбирается, как такую локальную модель скачать, поднять, и интегрировать с Alex Sidebar.
На прошлой неделе я рассказывал про Alex Sidebar, что-то вроде Cursor, хорошо интегрированное с Xcode. Один из его плюсов в том, что его можно использовать не только с платными LLM провайдерами, но и с локальными бесплатными моделями. В статье разбирается, как такую локальную модель скачать, поднять, и интегрировать с Alex Sidebar.
Daniel's Journal
How to Set Up a Local AI Model with Xcode, Ollama, Qwen2.5-Coder & Alex Sidebar
I wanted to test out Alex Sidebar (eg a desktop client that aims to enable Cursor like features in Xcode) to explore how well a local custom model could perform during development.
Параметризованные тесты в swift-testing
Параметризованные тесты – удобный способ запустить сразу много похожих тестов с одинаковой логикой, но с разными входными данными. Swift Testing позволяет вам задать эти параметры в специалтном макросе, вместо того чтобы определять вручную в теле теста. Благодаря этому репорты становятся гораздо более читаемыми.
В статье помимо прочего разбирается, как можно управлять логикой комбинации параметров, когда их на вход подается сразу несколько.
Параметризованные тесты – удобный способ запустить сразу много похожих тестов с одинаковой логикой, но с разными входными данными. Swift Testing позволяет вам задать эти параметры в специалтном макросе, вместо того чтобы определять вручную в теле теста. Благодаря этому репорты становятся гораздо более читаемыми.
В статье помимо прочего разбирается, как можно управлять логикой комбинации параметров, когда их на вход подается сразу несколько.
Как Sketch адаптировал иконку для темной темы
С tinted icons получилось, в целом, как и ожидалось – идея хорошая, но большинство адаптированных иконок выглядят довольно отвратительно. На фоне этого пример Sketch выглядит отлично – они не просто перекрасили иконку, а вообще пересмотрели ее концепцию.
С tinted icons получилось, в целом, как и ожидалось – идея хорошая, но большинство адаптированных иконок выглядят довольно отвратительно. На фоне этого пример Sketch выглядит отлично – они не просто перекрасили иконку, а вообще пересмотрели ее концепцию.
Sketch
Oh no, I need to design a tinted iOS 18 app icon — how to do it right
Tinted app icons in iOS 18 were met concerns over visual hierarchy and brand identity. Here are a few tricks we used to make ours work and feel at home.
Writing Tools в Apple Intelligence
Совсем скоро Apple раскатит на всех свой AI. Помимо прочего, во всех полях ввода текста появятся новые фичи связанные с преобразованием текста. Сейчас – самое подходящее время, чтобы проверить, правильно ли ваше приложение работает с writing tools, и не хотите ли вы где-то их отключить.
Совсем скоро Apple раскатит на всех свой AI. Помимо прочего, во всех полях ввода текста появятся новые фичи связанные с преобразованием текста. Сейчас – самое подходящее время, чтобы проверить, правильно ли ваше приложение работает с writing tools, и не хотите ли вы где-то их отключить.
Create with Swift
Exploring Apple Intelligence: Writing Tools
Understand Writing Tools, powered by Apple Intelligence.
Редактор Godot на iPad
Miguel de Icaza, один из ключевых авторов Xamarin, последний год занимался новым проектом – портировал редактор Godot на iPad. Так вот, вышло его первое превью. Если у вас есть планшет, и вы давно хотели попробовать вкатиться в геймдев – отличная возможность!
Miguel de Icaza, один из ключевых авторов Xamarin, последний год занимался новым проектом – портировал редактор Godot на iPad. Так вот, вышло его первое превью. Если у вас есть планшет, и вы давно хотели попробовать вкатиться в геймдев – отличная возможность!
La Terminal Blog
Xogot: Godot on iPad Preview
We are now ready for folks to take Xogot for a spin and help identify where we fall short of iPad user expectations
Apple хочет упростить data-race safety
Кажется, в команде Swift услышали жалобы сообщества про то, что новые механизмы data race safety в Swift 6 получились слишком недружелюбными. На днях опубликовали вижн того, как ситуацию можно улучшить.
Кажется, в команде Swift услышали жалобы сообщества про то, что новые механизмы data race safety в Swift 6 получились слишком недружелюбными. На днях опубликовали вижн того, как ситуацию можно улучшить.
GitHub
swift-evolution/visions/approachable-concurrency.md at approachable-concurrency-vision · hborla/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - hborla/swift-evolution
Дайджест Swift Evolution: май-ноябрь
Ну и раз заговорили про обновления в Swift, держите дайджест с кратким разбором всех последних важных принятых пропозалов:
👉SE-0436: Objective-C implementations in Swift
👉SE-0438: Metatype Keypaths
👉SE-0439: Allow trailing comma in comma-separated lists
👉SE-0443: Precise Control Flags over Compiler Warnings
👉SE-0444: Member import visibility
👉SE-0445: Improving String.Index's printed descriptions
Ну и раз заговорили про обновления в Swift, держите дайджест с кратким разбором всех последних важных принятых пропозалов:
👉SE-0436: Objective-C implementations in Swift
👉SE-0438: Metatype Keypaths
👉SE-0439: Allow trailing comma in comma-separated lists
👉SE-0443: Precise Control Flags over Compiler Warnings
👉SE-0444: Member import visibility
👉SE-0445: Improving String.Index's printed descriptions
Substack
Swift Evolution Monthly: May-November 2024
Discover the latest Swift updates, from Objective-C compatibility improvements to metatype keypaths, trailing commas, and new compiler controls—plus a must-have app for tracking proposals!
This media is not supported in your browser
VIEW IN TELEGRAM
Визуальные эксперименты со SwiftUI
Пара десятков экспериментов с UI/UX на SwiftUI, среди которых попадаются довольно необычные.
Пара десятков экспериментов с UI/UX на SwiftUI, среди которых попадаются довольно необычные.
Скидки на софт
А вот и черная пятница. Держите репозиторий с самой большой подборкой различных скидок. Среди них, например, замечательные Proxyman, Reveal, RocketSim, Dash и Kaleidoscope.
А вот и черная пятница. Держите репозиторий с самой большой подборкой различных скидок. Среди них, например, замечательные Proxyman, Reveal, RocketSim, Dash и Kaleidoscope.
GitHub
GitHub - mRs-/Black-Friday-Deals: Black Friday Deals for macOS / iOS Software & Books
Black Friday Deals for macOS / iOS Software & Books - mRs-/Black-Friday-Deals
SwiftUI анимации в UIKit
Начиная с iOS 18 появилась возможность использовать SwiftUI Animation API для того, чтобы анимировать UIKit вьюшки. Для этого достаточно просто создать объект анимации и передать его в метод
Начиная с iOS 18 появилась возможность использовать SwiftUI Animation API для того, чтобы анимировать UIKit вьюшки. Для этого достаточно просто создать объект анимации и передать его в метод
UIView.animate()
.Nil Coalescing
Animate UIKit views with SwiftUI animations in iOS 18
With iOS 18, we can now use SwiftUI animations to animate UIKit views, making it easier to bring SwiftUI’s expressive and flexible animations into UIKit projects.
В какой день сабмиттить приложение, чтобы быстрее пройти ревью
Команда Runway, через продукт которых релизится куча приложений, проанализировали корреляцию дней недели, в которые приложение отправлялось на ревью, и его продолжительность. Из заметных трендов:
👉Быстрее всего реаью проходит по четвергам, в среднем 4-5 часов
👉На втором месте по скорости среды и субботы, 5-6 часов
👉Ожидаемо хуже всего по пятницам и субботам, 12-16 часов
У них же, кстати, есть классный сервис с анализом текущей скорости работы команды ревью.
Команда Runway, через продукт которых релизится куча приложений, проанализировали корреляцию дней недели, в которые приложение отправлялось на ревью, и его продолжительность. Из заметных трендов:
👉Быстрее всего реаью проходит по четвергам, в среднем 4-5 часов
👉На втором месте по скорости среды и субботы, 5-6 часов
👉Ожидаемо хуже всего по пятницам и субботам, 12-16 часов
У них же, кстати, есть классный сервис с анализом текущей скорости работы команды ревью.
Linkedin
Gabriel Savit on LinkedIn: Which day of the week should you submit your app to Apple to get reviewed… | 14 comments
Which day of the week should you submit your app to Apple to get reviewed most quickly?
A team asked me this the other day, so I've been digging into Runway's… | 14 comments on LinkedIn
A team asked me this the other day, so I've been digging into Runway's… | 14 comments on LinkedIn
Бесплатный курс Стратоплана про переговоры
Одна из фирменных тем Стратоплана – менеджерские коммуникации. Саша Орлов даже офигенную книгу про них написал, которую я уже как-то рекомендовал в канале. Так вот, ребята открывают набор в пятый Открытый университет, в рамках которого вам дадут кучу рабочих переговорных инструментов и дадут отточить их на практике. Расписание такое:
👉9.12 Основы эффективных переговоров
👉10.12 Типы переговоров и стратегии
👉11.12 Конфликты: решение и предотвращение
👉12.12 Манипуляции: как распознать и противостоять
👉13.12 QA-сессия с разбором кейсов студентов
🔗Регистрация бесплатная, командами друзей или коллег от 5 человек
Можно организоваться группами в комментариях.
Одна из фирменных тем Стратоплана – менеджерские коммуникации. Саша Орлов даже офигенную книгу про них написал, которую я уже как-то рекомендовал в канале. Так вот, ребята открывают набор в пятый Открытый университет, в рамках которого вам дадут кучу рабочих переговорных инструментов и дадут отточить их на практике. Расписание такое:
👉9.12 Основы эффективных переговоров
👉10.12 Типы переговоров и стратегии
👉11.12 Конфликты: решение и предотвращение
👉12.12 Манипуляции: как распознать и противостоять
👉13.12 QA-сессия с разбором кейсов студентов
🔗Регистрация бесплатная, командами друзей или коллег от 5 человек
Можно организоваться группами в комментариях.
Подсветка кода в SwiftUI
Разбор того, как реализовать подсветку Swift кода в виджете Text в SwiftUI с помощью пакета swift-syntax.
Разбор того, как реализовать подсветку Swift кода в виджете Text в SwiftUI с помощью пакета swift-syntax.
ChatGPT и Xcode
Не проходит и недели, чтобы еще кто-то не попытался принести нормальный AI тулинг в Xcode. В этот раз – решение общего характера. Десктопное приложение ChatGPT теперь научилось интегрироваться с популярными редакторами кода, чтобы получать более точный контекст о происходящем на экране.
Не проходит и недели, чтобы еще кто-то не попытался принести нормальный AI тулинг в Xcode. В этот раз – решение общего характера. Десктопное приложение ChatGPT теперь научилось интегрироваться с популярными редакторами кода, чтобы получать более точный контекст о происходящем на экране.
Medium
ChatGPT for macOS can now work with Xcode
And it’s great to start a quick chat about your current code!
Все про устройство крешей
Офигенная статья про то, как на iOS работает механизм крешей – от нюансов доступов к процессору и памяти до типов исключений и кодов ошибок.
Офигенная статья про то, как на iOS работает механизм крешей – от нюансов доступов к процессору и памяти до типов исключений и кодов ошибок.
Хабр
Об анатомии крэшей на iOS «по-взрослому»
Привет, Хабр. Меня зовут Давид Чупреев, я разработчик мобильных приложений в команде Core iOS ОК. В работе любого ПО как на iOS, так и на других ОС, важна стабильность и отказоустойчивость....
Запускаем Swift под Android
Skip Tools, которые раньше транспилировали Swift в Kotlin, попробовали пойти дальше, и теперь научились компилировать его таким образом, чтобы бинарник можно было запускать под Android, интеропиться с Kotlin и интегрироваться с Xcode.
Skip Tools, которые раньше транспилировали Swift в Kotlin, попробовали пойти дальше, и теперь научились компилировать его таким образом, чтобы бинарник можно было запускать под Android, интеропиться с Kotlin и интегрироваться с Xcode.