Как дебажить приложения, использующие несколько процессов
С такой задачей вы можете столкнуться, например, когда вы разрабатываете экстеншны для iOS, или macOS приложения, состоящие из нескольких XPC сервисов.
Дефолтное поведение Xcode в этом сценарии не самое очевидное – например, дебаггер не подключается к сервисам, которые написали не вы. Как справиться с этой и другими проблемами как раз и рассказывается в статье.
С такой задачей вы можете столкнуться, например, когда вы разрабатываете экстеншны для iOS, или macOS приложения, состоящие из нескольких XPC сервисов.
Дефолтное поведение Xcode в этом сценарии не самое очевидное – например, дебаггер не подключается к сервисам, которые написали не вы. Как справиться с этой и другими проблемами как раз и рассказывается в статье.
Indie Stack
Attach to Multiple Processes
For the vast majority of developers of software for Apple products, the process (har, har) of debugging involves attaching to and inspecting only one process: the main application binary. This is particularly true on iOS-based systems, where spawning subprocesses…
👍13❤1
Как устроено приложение Vercel для iOS
Шикарная история о том, с каким уровнем продумывания разработчики Vercel подошли к разработке первой версии своего приложения. Их целью было сделать UI/UX, достойный получить Apple Award – и в статье они разбирают, как реализованы основные дизайнерские решения. Сразу предупреждаю, что технический стек – не натив, а React Native с Expo.
Шикарная история о том, с каким уровнем продумывания разработчики Vercel подошли к разработке первой версии своего приложения. Их целью было сделать UI/UX, достойный получить Apple Award – и в статье они разбирают, как реализованы основные дизайнерские решения. Сразу предупреждаю, что технический стек – не натив, а React Native с Expo.
Vercel
How we built the v0 iOS app - Vercel
The v0 engineering team breaks down the challenges and decisions behind building the v0 app for iOS.
👎41👍5❤3
Tuist Registry теперь отвязан от их аккаунта
В начале этого года Tuist зарелизили Tuist Registry – реестр Swift пакетов, соответствующий стандарту, который вы можете поднимать для своего собственного проекта. Основной плюс – скачиваются только те версии пакетов, которые вы реально используете, и это помогает экономить время и место на диске.
Основной проблемой с адопшном было то, что реестр был привязан к необходимости заведения аккаунта в Tuist. Так вот, теперь реестры полностью отвязали от этого, и вы можете интегрировать их вообще бесшовно.
В начале этого года Tuist зарелизили Tuist Registry – реестр Swift пакетов, соответствующий стандарту, который вы можете поднимать для своего собственного проекта. Основной плюс – скачиваются только те версии пакетов, которые вы реально используете, и это помогает экономить время и место на диске.
Основной проблемой с адопшном было то, что реестр был привязан к необходимости заведения аккаунта в Tuist. Так вот, теперь реестры полностью отвязали от этого, и вы можете интегрировать их вообще бесшовно.
tuist.dev
Tuist Registry: an open Swift Package Registry
Tuist Registry is an open Swift Package Registry for fast SwiftPM resolution—no authentication required.
👎8❤4👍4
Swift 10 лет
Стукнуло ровно 10 лет тому, как Swift впервые появился в опенсорсе! Если захотите вспомнить, как это было, можете перечитать старый пост.
Стукнуло ровно 10 лет тому, как Swift впервые появился в опенсорсе! Если захотите вспомнить, как это было, можете перечитать старый пост.
❤66👎1
Обзор AnyLanguageModel
Я уже рассказывал про новую библиотеку AnyLanguageModel от HuggingFace, которая позволяет заменить локальные модели от Apple вообще на любые другие опенсорсные варианты.
Держите статью с более подробным ее разбором и планами на будущее.
Я уже рассказывал про новую библиотеку AnyLanguageModel от HuggingFace, которая позволяет заменить локальные модели от Apple вообще на любые другие опенсорсные варианты.
Держите статью с более подробным ее разбором и планами на будущее.
huggingface.co
Introducing AnyLanguageModel: One API for Local and Remote LLMs on Apple Platforms
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
❤18👍2
Частые проблемы AI-generated Swift
Уже, кажется, все знают о том, что большинство LLM справляются с задачей по генерации Swift кода существенно хуже, чем с Python, Java, или другими популярными языками. Держите подборку самых частых проблем, которые встречаются в AI коде (можете вообще куда-то в гайдлайны своему агенту закинуть).
Уже, кажется, все знают о том, что большинство LLM справляются с задачей по генерации Swift кода существенно хуже, чем с Python, Java, или другими популярными языками. Держите подборку самых частых проблем, которые встречаются в AI коде (можете вообще куда-то в гайдлайны своему агенту закинуть).
Hacking with Swift
What to fix in AI-generated Swift code
As AI-assisted coding increases in popularity, here are a handful of things I would suggest you look out for – and what to replace them with instead.
❤17👍4
Что спрашивают на интервью в команду Swift
Инди-разработчика пригласили пройти интервью в команду, которая занимается SwiftUI для macOS. Работу он не получил, но зато принес задачу, которые ему задавали на техническом собесе.
Инди-разработчика пригласили пройти интервью в команду, которая занимается SwiftUI для macOS. Работу он не получил, но зато принес задачу, которые ему задавали на техническом собесе.
Oskargroth
Lessons from a Swift Interview
I interviewed for a SwiftUI frameworks role and didn't get the job. Here's what I learned about Swift algorithm design and the key insight I missed.
❤19👍10🔥1
Как заточить билд систему Xcode под агентов
Tuist выпустили великолепный материал с исследованием того, как работает билд-система в Xcode, что из результатов ее работы может быть полезно агентам, а что, наоборот, только мешает.
Tuist выпустили великолепный материал с исследованием того, как работает билд-система в Xcode, что из результатов ее работы может быть полезно агентам, а что, наоборот, только мешает.
👍19👎2
Penpot – open source аналог Figma
Penpot, конечно, гораздо более простой, чем Figma, но основные фичи там есть:
👉Коллаборативная работа
👉Поддержка дизайн-систем
👉Поддержка плагинов
👉Inspect mode, упрощающий жизнь разработчикам
Penpot, конечно, гораздо более простой, чем Figma, но основные фичи там есть:
👉Коллаборативная работа
👉Поддержка дизайн-систем
👉Поддержка плагинов
👉Inspect mode, упрощающий жизнь разработчикам
👍15
Swift Configuration 1.0
Swift Configuration, библиотеку для удобного управления конфигами и секретами, представили только в октябре – и уже выкатили первую стабильную версию! Помимо использования в серверных приложениях, библиотеку уже начали затаскивать во фреймворки вроде Vapor и Hummingbird.
Детально познакомиться с ней можно в этом докладе.
Swift Configuration, библиотеку для удобного управления конфигами и секретами, представили только в октябре – и уже выкатили первую стабильную версию! Помимо использования в серверных приложениях, библиотеку уже начали затаскивать во фреймворки вроде Vapor и Hummingbird.
Детально познакомиться с ней можно в этом докладе.
Swift.org
Swift Configuration 1.0 released
Every application has configuration: in environment variables, configuration files, values from remote services, command-line flags, or repositories for stored secrets like API keys. But until now, Swift developers have had to wire up each source individually…
👍10❤1
Видео Swift Server Side Meetup
Раз начали неделю с серверного Swift, давайте им и продолжим. Держите запись докладов с последнего митапа:
👉Как настроить деплой одной кнопкой
👉Serverless с библиотекой Breeze
Раз начали неделю с серверного Swift, давайте им и продолжим. Держите запись докладов с последнего митапа:
👉Как настроить деплой одной кнопкой
👉Serverless с библиотекой Breeze
YouTube
Swift Server Side Meetup #7
Swift Server-Side Meetup: Deployment Pipelines & Serverless Backends
Join us for two incredible talks exploring the server-side of Swift! Learn how to deploy Swift servers to production and build serverless backends entirely in Swift.
🎯 TIMESTAMPS
00:00…
Join us for two incredible talks exploring the server-side of Swift! Learn how to deploy Swift servers to production and build serverless backends entirely in Swift.
🎯 TIMESTAMPS
00:00…
🔥11👍1
SQLiteData – тур по библиотеке
Pointfree выпустили бесплатный урок по основам работы со своей библиотекой SQLiteData – API-совместимой заменой SwiftData, под капотом которой, как можно догадаться по названию, наш любимый SQLite.
Pointfree выпустили бесплатный урок по основам работы со своей библиотекой SQLiteData – API-совместимой заменой SwiftData, под капотом которой, как можно догадаться по названию, наш любимый SQLite.
www.pointfree.co
Video #347: Tour of SQLiteData: Basics
We give a tour of our SQLiteData library, a fast and lightweight alternative to SwiftData. We’ll set up a fresh project with the package, define models and configure the database, and even write SQL migrations with the help of Xcode’s Coding Assistant.
💅12👎6
Почему уведомления на macOS отображаются вверх ногами
Отличное исследование случайно воспроизводящегося бага, при котором уведомления от macOS приложения ChatGPT отображались вверх ногами, по ходу которого вы узнаете много интересных особенностей CoreAnimation.
Отличное исследование случайно воспроизводящегося бага, при котором уведомления от macOS приложения ChatGPT отображались вверх ногами, по ходу которого вы узнаете много интересных особенностей CoreAnimation.
💅18👍8🔥2
Observable классы внутри иерархии SwiftUI
Разбираемся с примерами того, как работать с @Observable классами, как их инициализировать, хранить в стейте, и что вообще может пойти не так.
Разбираемся с примерами того, как работать с @Observable классами, как их инициализировать, хранить в стейте, и что вообще может пойти не так.
Nil Coalescing
Initializing @Observable classes within the SwiftUI hierarchy
Learn the recommended ways to initialize and store @Observable classes in SwiftUI views, and see what can go wrong when observable state is managed incorrectly.
💅6👍2👎2❤1
Non-exhaustive enums в Swift 6.2.3
В Swift 6.2.3 появится улучшение enum'ов, которое особенно важно авторам библиотек – теперь в них можно добавлять новые значения, не ломая при этом обратную совместимость.
В Swift 6.2.3 появится улучшение enum'ов, которое особенно важно авторам библиотек – теперь в них можно добавлять новые значения, не ломая при этом обратную совместимость.
GitHub
swift-evolution/proposals/0487-extensible-enums.md at main · swiftlang/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swiftlang/swift-evolution
🔥24👎4❤1💅1
FAQ про Swift на Android
Разбор самых частых вопросов, которые появились после анонса Swift для Android:
👉Swift компилируется в машинный код, бандлит нативный рантайм со стандартной библиотекой, а для взаимодействия с платформенными фичами Android через java interop дергает Android Runtime.
👉Android приложения на Swift уже есть в продакшне: email-клиент Spark, тренер игры на пианино, маркетплейс продуктов.
👉Все важные направления будущего развития есть на этой борде. Среди них поддержка нормальной работы в VS Code и Android Studio.
👉Рабочая группа не планирует заниматься UI, только шарингом бизнес-логики. Вот тут можно посмотреть проекты от коммьюнити.
Разбор самых частых вопросов, которые появились после анонса Swift для Android:
👉Swift компилируется в машинный код, бандлит нативный рантайм со стандартной библиотекой, а для взаимодействия с платформенными фичами Android через java interop дергает Android Runtime.
👉Android приложения на Swift уже есть в продакшне: email-клиент Spark, тренер игры на пианино, маркетплейс продуктов.
👉Все важные направления будущего развития есть на этой борде. Среди них поддержка нормальной работы в VS Code и Android Studio.
👉Рабочая группа не планирует заниматься UI, только шарингом бизнес-логики. Вот тут можно посмотреть проекты от коммьюнити.
Swift.org
Exploring the Swift SDK for Android
Since the announcement of the preview Swift SDK for Android,
the Android workgroup has seen a lot of interest in how it works and what’s next.
Please read on for some answers to common questions about the technology and its
future, and try out the new Swift…
the Android workgroup has seen a lot of interest in how it works and what’s next.
Please read on for some answers to common questions about the technology and its
future, and try out the new Swift…
👍22💅5❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Как ваше приложение влияет на батарею
Если вы не знали, то в последней версии iOS в Control Center появилась возможность прямо на телефоне запускать профилирование вашего приложения и оценивать то, как оно влияет на батарею.
Если вы не знали, то в последней версии iOS в Control Center появилась возможность прямо на телефоне запускать профилирование вашего приложения и оценивать то, как оно влияет на батарею.
👍33❤6🔥6
Если у вас есть свободный час времени, подключайтесь на традиционный новогодний стрим подкаста Подлодка – будем подводить итоги года, рассказывать про наши главные открытия, самые полезные книги и всякое такое. А главное – разыграем среди зрителей Switch 2!
👉Начинаем через 10 минут
👉Начинаем через 10 минут
👎17❤3👍2
Дайджест лучших постов за 2025 год
Писать посты в канал – просто, а вот успевать читать их все – та еще боль. Так что всем спаисбо за то, что были с каналом весь этот год ❤️
Держите дайджест самых заплюсованных постов, чтобы было что почитать, подъедая остатки оливье.
🦅Swift
Правильный поиск вхождения строки
Выпуск Подлодки про Swift
Typed Throws в Swift 6
🎨UI и покраска кнопок
Как рисовать карты на Swift Charts
Находим SwiftUI View, которые обновляются чаще всего
Dragula – drag'n'drop движок для SwiftUI
Что нового в UIKit
🛠️Инструменты
Нет ничего хуже Xcode
Как скрывать логи от библиотек в Xcode
Создание файлов через Copy-Paste в Xcode 16
Apple заопенсорсили Swift Build
🤖AI
AnyLanguageModel – используем любые LLM в приложениях
Документация Xcode Intelligence для AI-агентов
🕸️Swift Everywhere
Как бэкенд Things переехал на Swift
Android на пути к официальной поддержке в Swift
Как завести CarPlay в McLarens
Писать посты в канал – просто, а вот успевать читать их все – та еще боль. Так что всем спаисбо за то, что были с каналом весь этот год ❤️
Держите дайджест самых заплюсованных постов, чтобы было что почитать, подъедая остатки оливье.
🦅Swift
Правильный поиск вхождения строки
Выпуск Подлодки про Swift
Typed Throws в Swift 6
🎨UI и покраска кнопок
Как рисовать карты на Swift Charts
Находим SwiftUI View, которые обновляются чаще всего
Dragula – drag'n'drop движок для SwiftUI
Что нового в UIKit
🛠️Инструменты
Нет ничего хуже Xcode
Как скрывать логи от библиотек в Xcode
Создание файлов через Copy-Paste в Xcode 16
Apple заопенсорсили Swift Build
🤖AI
AnyLanguageModel – используем любые LLM в приложениях
Документация Xcode Intelligence для AI-агентов
🕸️Swift Everywhere
Как бэкенд Things переехал на Swift
Android на пути к официальной поддержке в Swift
Как завести CarPlay в McLarens
Telegram
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
Правильный поиск вхождения строки
❌ name.lowercased().contains(searchText.lowercased())
✅ name.localizedStandardContains(searchText)
Чем второй вариант лучше:
👉По умолчанию case insensitive
👉Игнорирует диакритические знаки (cafe vs café)
👉Нормально справляется…
❌ name.lowercased().contains(searchText.lowercased())
✅ name.localizedStandardContains(searchText)
Чем второй вариант лучше:
👉По умолчанию case insensitive
👉Игнорирует диакритические знаки (cafe vs café)
👉Нормально справляется…
👍12👎5🔥3❤2
Как устроен NSVisualEffectView
Автор статьи хотел повторить внешний вид панелей в macOS Control Center в своем собственном приложении. Чтобы это сделать, ему пришлось реверс-инжинирить нативный NSVisualEffectView и создать его полную кастомизируемую копию, которую можно изучить на GitHub.
Автор статьи хотел повторить внешний вид панелей в macOS Control Center в своем собственном приложении. Чтобы это сделать, ему пришлось реверс-инжинирить нативный NSVisualEffectView и создать его полную кастомизируемую копию, которую можно изучить на GitHub.
❤43🔥2