MCP для iOS симулятора
Model-Context Protocol – это дико хайпующий сейчас стандарт для общения LLM с внешними инструментами. Так вот, его прикрутили и к iOS симулятору для взаимодействия с его UI, а значит, ваш AI теперь может самостоятельно взаимодействовать с запущенным приложением – например, заменяя собой QA.
Model-Context Protocol – это дико хайпующий сейчас стандарт для общения LLM с внешними инструментами. Так вот, его прикрутили и к iOS симулятору для взаимодействия с его UI, а значит, ваш AI теперь может самостоятельно взаимодействовать с запущенным приложением – например, заменяя собой QA.
GitHub
GitHub - joshuayoes/ios-simulator-mcp: MCP server for interacting with the iOS simulator
MCP server for interacting with the iOS simulator. Contribute to joshuayoes/ios-simulator-mcp development by creating an account on GitHub.
Как писать git hooks на Swift
На Swift можно писать не только консольные тулы, но и скрипты, которые будут автоматически вызываться либо до, либо после коммита в Git. В статье разбирается пример хука, который не даст коммитить в мастер код, содержащий принты.
На Swift можно писать не только консольные тулы, но и скрипты, которые будут автоматически вызываться либо до, либо после коммита в Git. В статье разбирается пример хука, который не даст коммитить в мастер код, содержащий принты.
swifttoolkit.dev
Git Hooks 🤝 Swift
Use Git hooks in your Git repos to ensure standards and catch issues
Новый релиз Alex – альтернативы Cursor для Xcode
Вышел новый релиз Alex, про которого я уже рассказывал в канале несколько раз. Новых фичей вагон, так что, если вы еще не попробовали, сейчас самое время!
Вышел новый релиз Alex, про которого я уже рассказывал в канале несколько раз. Новых фичей вагон, так что, если вы еще не попробовали, сейчас самое время!
Релиз Swift 6.1
👉
👉Методы из хедеров ObjC классов теперь можно реализовывать в Swift, используя новое ключевое слово
👉Trailing commas теперь поддерживаются не только в коллекциях, но и в кортежах, списках параметров и аргументов, строковых интерполяциях и в других местах.
👉С помощью package traits часть API теперь можно объявлять доступными только для конкретных платформ – например, Embedded или Wasm.
👉
nonisolated
теперь можно применять не только к пропертям и функциям, но и к типам и расширениям.👉Методы из хедеров ObjC классов теперь можно реализовывать в Swift, используя новое ключевое слово
@implementation
.👉Trailing commas теперь поддерживаются не только в коллекциях, но и в кортежах, списках параметров и аргументов, строковых интерполяциях и в других местах.
👉С помощью package traits часть API теперь можно объявлять доступными только для конкретных платформ – например, Embedded или Wasm.
Swift.org
Swift 6.1 Released
Swift 6.1 is now available!
Релиз Swiftly 1.0
Swiftly – это CLI-тул, который позволяет удобно менеджерить версии Swift тулчейна. Он может пригодиться, когда вы хотите установить версию Swift, отличную от той, которая шиппится вместе с Xcode, или установить Swift на не-macOS систему.
Swiftly – это CLI-тул, который позволяет удобно менеджерить версии Swift тулчейна. Он может пригодиться, когда вы хотите установить версию Swift, отличную от той, которая шиппится вместе с Xcode, или установить Swift на не-macOS систему.
Swift.org
Introducing swiftly 1.0
Today we’re delighted to introduce the first stable release of swiftly, a Swift version manager that takes the pain out of installing, managing and updating your Swift toolchain.
Интеграция SwiftUI с Rust-библиотекой egui
Держите дикую историю про то, как общая структура приложения была реализована на SwiftUI, а вот рендеринг конкретных таблиц, требовательных к перфомансу, на Rust-либе egui.
👉Исходники
👉Видео результата
Держите дикую историю про то, как общая структура приложения была реализована на SwiftUI, а вот рендеринг конкретных таблиц, требовательных к перфомансу, на Rust-либе egui.
👉Исходники
👉Видео результата
Medium
Fast & Fluid: Integrating Rust egui into SwiftUI
Let’s be honest: the path we’re about to take in this article isn’t a simple one. If you’re considering this approach for your app, you…
Выпуск Подлодки про Swift
Восемь лет назад мы начинали Подлодку как подкаст про iOS разработку. Со временем проект эволюционировал, мы все больше и больше расширяли список тем. Но когда-то нужно вернуться и к корням – и спустя 400 выпусков мы все-таки записали офигенный подробный эпизод про Swift. Глеб Лукьянец, которого знают все посетители нашего чата, рассказал про историю развития, ключевые фичи и необычные технические концепции в языке. Ну и, конечно же, похоливарили про растущую сложность, запутанный дизайн и макросы!
Восемь лет назад мы начинали Подлодку как подкаст про iOS разработку. Со временем проект эволюционировал, мы все больше и больше расширяли список тем. Но когда-то нужно вернуться и к корням – и спустя 400 выпусков мы все-таки записали офигенный подробный эпизод про Swift. Глеб Лукьянец, которого знают все посетители нашего чата, рассказал про историю развития, ключевые фичи и необычные технические концепции в языке. Ну и, конечно же, похоливарили про растущую сложность, запутанный дизайн и макросы!
YouTube
Swift – больше, чем язык для iOS | Для чего нужен язык Свифт | Podlodka Podcast #417
Большинство из вас знает Swift как нишевый язык для iOS разработки. Но на самом деле – это очень круто задизайненный язык программирования общего назначения, который по многим параметрам выигрывает у C++ или Rust. Swift избегает крайностей и находит качественный…
Избегаем Optionals при работе с URL
Санделл вышел из долгой спячки, и сразу же с прекрасной статьей про разные техники работы с URL, которые помогают избежать работы с ним как с Optional типом. Одна из них – макросы, которые позволяют удобно работать с URL, известными в компайл-тайме, а вторая – сравнительно новый API для динамической сборки URL в рантайме.
Санделл вышел из долгой спячки, и сразу же с прекрасной статьей про разные техники работы с URL, которые помогают избежать работы с ним как с Optional типом. Одна из них – макросы, которые позволяют удобно работать с URL, известными в компайл-тайме, а вторая – сравнительно новый API для динамической сборки URL в рантайме.
Swift by Sundell
Modern URL construction in Swift | Swift by Sundell
How to combine Foundation’s latest URL APIs with Swift features like macros, to be able to work with both static and dynamic URLs in simpler and more predictable ways.
Поддержка Swift в Copilot Code Review
Copilot Code Review – это AI агент от GitHub, который автоматически реаьюит ваш код: ищет баги, проблемы с перфомансом, и даже предлагает фиксы. Так вот, он вышел из Beta, и вместе с этим анонсировали поддержку Swift. Затаскивайте в ваши проекты и расскажите, как работает!
Copilot Code Review – это AI агент от GitHub, который автоматически реаьюит ваш код: ищет баги, проблемы с перфомансом, и даже предлагает фиксы. Так вот, он вышел из Beta, и вместе с этим анонсировали поддержку Swift. Затаскивайте в ваши проекты и расскажите, как работает!
Продвинутая работа с превью в Xcode
👉Макрос
👉Протокол
👉Макрос
@Previewable
позволяет избежать создания дополнительнвх SwiftUI структур, нужных только для работы превью. Благодаря ему можно и создать превью, и задать для него стейт в одну строчку.👉Протокол
PreviewModifier
помогает с созданием переиспользуемых наборов данных, которые можно использовать в разных превью.Swift with Majid
The power of previews in Xcode
Previews in Xcode become more powerful every year. Previews in Xcode are not about SwiftUI; you can use them even with UIKit. This week, we will talk about enhancing Previewable and PreviewModifier types, allowing us to build reusable preview environments.
Подборка семплов TextRenderer
TextRenderer
– новый протокол в SwiftUI, с помощью которого можно реализовывать кучу классных эффектов с текстом. По ссылке – подборка семплов как на чистом Swift, так и с использованием Metal.В чем сложность сделать калькулятор
Для многих из нас калькулятор был чуть ли не первым приложением, которое мы написали еще на Basic или Pascal. Казалось бы, в чем сложность, когда все математические операции уже определены. Так вот, держите историю про то, что математика – это сложно, и почему калькулятор на Android работает корректнее, чем на iOS.
Для многих из нас калькулятор был чуть ли не первым приложением, которое мы написали еще на Basic или Pascal. Казалось бы, в чем сложность, когда все математические операции уже определены. Так вот, держите историю про то, что математика – это сложно, и почему калькулятор на Android работает корректнее, чем на iOS.
Как банки обходят блокировку в App Store
Большой разбор от Surf способов, какими банки появляются в App Store, несмотря на запреты. И если в самой идее выдавать себя на ревью за другое приложение нет ничего нового, самое интересное в деталях:
👉Код обфусцируется, а все имена переменных и функий, связанных с финансами, переименовываются
👉Чтобы пройти проверки permissions, нужно придумывать правдоподобные кейсы использования нужных вам API
👉Приложение публикуется только в одной стране, и первое время недоступно в других, чтобы избежать подозрительного взрывного роста инсталлов
Большой разбор от Surf способов, какими банки появляются в App Store, несмотря на запреты. И если в самой идее выдавать себя на ревью за другое приложение нет ничего нового, самое интересное в деталях:
👉Код обфусцируется, а все имена переменных и функий, связанных с финансами, переименовываются
👉Чтобы пройти проверки permissions, нужно придумывать правдоподобные кейсы использования нужных вам API
👉Приложение публикуется только в одной стране, и первое время недоступно в других, чтобы избежать подозрительного взрывного роста инсталлов
Хабр
App Store блокирует аккаунты разработчиков, а банки всё равно в сторах. Рассказываем, как они это делают
С февраля 2024 года Apple блокирует не только российские финтех-приложения и аккаунты разработчиков, но и закрывает доступ для разработки корпоративных сервисов. Это всё новый пакет санкций, который...
Бесплатные OpenAI модели в Cursor и Windsurf
Если у вас пока так и не добрались руки попробовать новую волну AI code editor'ов, то эта неделя идеально подходит. OpenAI выпустил сразу несколько новых моделей, хорошо заточенных под разработку, а Cursor и Windsurf дали к ним бесплатный доступ.
Если у вас пока так и не добрались руки попробовать новую волну AI code editor'ов, то эта неделя идеально подходит. OpenAI выпустил сразу несколько новых моделей, хорошо заточенных под разработку, а Cursor и Windsurf дали к ним бесплатный доступ.
Cursor
Cursor - The AI Code Editor
Built to make you extraordinarily productive, Cursor is the best way to code with AI.
Что нового в SwiftWasm
Поддержка WebAssembly в Swift движется очень быстро. Начиная со Swift 6.1 для сборки Wasm больше не нужен кастомный пропатченный тулчейн, достаточно официального! Короче говоря, если вы еще не пробовали собирать веб-приложения на Swift, сейчас самое время попробовать.
Поддержка WebAssembly в Swift движется очень быстро. Начиная со Swift 6.1 для сборки Wasm больше не нужен кастомный пропатченный тулчейн, достаточно официального! Короче говоря, если вы еще не пробовали собирать веб-приложения на Swift, сейчас самое время попробовать.
fatbobman.com
Building WASM Applications with Swift
Swift 6.1 now supports official WebAssembly builds via SwiftWasm—no patches needed. Use JavaScriptKit for seamless Swift–JavaScript interaction in WASM apps.
Про цифровую гигиену
Так, ну не только же посты про iOS разработку выкладывать. Держите замечательный гайд по базовой цифровой гигиене от Андрея Карпатого – про то, как минимальными усилиями существенно поднять уровень своей безопасности и приватности.
Так, ну не только же посты про iOS разработку выкладывать. Держите замечательный гайд по базовой цифровой гигиене от Андрея Карпатого – про то, как минимальными усилиями существенно поднять уровень своей безопасности и приватности.
karpathy
Digital hygiene
A guide to basic digital hygiene.
Коллекция полезных макросов
Два года назад я уже делился этой ссылкой, но с тех пор каталог существенно пополнился. Из интересного:
👉CloakedString – обфускация строк
👉MemoizMacro – мемоизация функций
👉SwiftNet – сетевые запросы со встроенным пиннингом, коллбэками и кучей других фичей
Два года назад я уже делился этой ссылкой, но с тех пор каталог существенно пополнился. Из интересного:
👉CloakedString – обфускация строк
👉MemoizMacro – мемоизация функций
👉SwiftNet – сетевые запросы со встроенным пиннингом, коллбэками и кучей других фичей
GitHub
GitHub - krzysztofzablocki/Swift-Macros: A curated list of awesome Swift Macros
A curated list of awesome Swift Macros. Contribute to krzysztofzablocki/Swift-Macros development by creating an account on GitHub.
Переезд на Bazel и ускорение сборок в 3 раза
Еще одна история переезда на Bazel с приятным улучшением перфоманса сборок как на CI, так и на девелоперских машинах. В статье проходятся по всем аспектам миграции:
👉Обеспечение feature parity с Xcode через rules_xcodeproj
👉Сложности с code coverage, наборами рулов, и увеличенным размером бинаря
👉Пошаговый план переезда
Еще одна история переезда на Bazel с приятным улучшением перфоманса сборок как на CI, так и на девелоперских машинах. В статье проходятся по всем аспектам миграции:
👉Обеспечение feature parity с Xcode через rules_xcodeproj
👉Сложности с code coverage, наборами рулов, и увеличенным размером бинаря
👉Пошаговый план переезда
Видео try! Swift Tokyo
В открытый доступ выложили все видео недавно прошедшей конференции try! Swift Tokyo. Вот несколько интересных:
👉Graph Art with Charts API
👉Special Effects with SwiftUI Text
👉Understanding HDR
В открытый доступ выложили все видео недавно прошедшей конференции try! Swift Tokyo. Вот несколько интересных:
👉Graph Art with Charts API
👉Special Effects with SwiftUI Text
👉Understanding HDR
YouTube
try! Swift Tokyo 2025
Share your videos with friends, family, and the world
Как работать с Measurements
Для того, чтобы удобно работать с различными единицами измерений, в Swift есть специальный тип Measurements. В нем хорошо вообще все – можно удобно конвертировать различные величины друг в друга, тип измерения меняется автоматически в зависимости от выбранной локализации, а NumberFormatter умеет корректно форматировать название измерения.
Для того, чтобы удобно работать с различными единицами измерений, в Swift есть специальный тип Measurements. В нем хорошо вообще все – можно удобно конвертировать различные величины друг в друга, тип измерения меняется автоматически в зависимости от выбранной локализации, а NumberFormatter умеет корректно форматировать название измерения.