Бесплатная альтернатива App Center Distribution
Emerge сделали свой сервис по распространению iOS и Android билдов бесплатным. Лимиты довольно неплохие для большинства команд:
👉5000 билдов в месяц
👉Неограниченное количество пользователей
👉SSO
👉SDK для автоматического уведомления пользователей о новых сборках
Детали вот тут.
Emerge сделали свой сервис по распространению iOS и Android билдов бесплатным. Лимиты довольно неплохие для большинства команд:
👉5000 билдов в месяц
👉Неограниченное количество пользователей
👉SSO
👉SDK для автоматического уведомления пользователей о новых сборках
Детали вот тут.
Emerge Tools
Overview
Emerge's Build Distribution platform simplifies the distribution of iOS and Android app builds with features like QR code scanning, SSO authentication, and CI/CD pipeline integration, making it easy for developers and teams to manage app updates.
Рабочая группа вокруг Swift on Android
История вокруг использования Swift для Android разработки продолжается! Сообщество собрало вокруг этого движа рабочую группу, в которую входят как разработчики Skip, так и другие люди. Пока их план – встречаться и обсуждать проблемы, но в будущем надеются стать официальной частью проекта Swift.
История вокруг использования Swift для Android разработки продолжается! Сообщество собрало вокруг этого движа рабочую группу, в которую входят как разработчики Skip, так и другие люди. Пока их план – встречаться и обсуждать проблемы, но в будущем надеются стать официальной частью проекта Swift.
Как воспроизводить state restoration
В SwiftUI state restoration реализуется через SceneStorage. При этом протестировать его работу вручную – задача не очень тривиальная, так как при закрытии приложения через app switcher он сбросится. Вместо этого нужно сделать следующие шаги:
👉Запустите приложение в симуляторе
👉Измените стейт (например, пробегитесь по навигации)
👉Нажмите Home, отправьте приложение в бэкграунд
👉Нажмите Stop в Xcode
👉Запустите приложение из Xcode еще раз и проверьте, что стейт восстановился
В SwiftUI state restoration реализуется через SceneStorage. При этом протестировать его работу вручную – задача не очень тривиальная, так как при закрытии приложения через app switcher он сбросится. Вместо этого нужно сделать следующие шаги:
👉Запустите приложение в симуляторе
👉Измените стейт (например, пробегитесь по навигации)
👉Нажмите Home, отправьте приложение в бэкграунд
👉Нажмите Stop в Xcode
👉Запустите приложение из Xcode еще раз и проверьте, что стейт восстановился
Nil Coalescing
Testing SceneStorage state persistence in Xcode
Verify SwiftUI app state restoration using the Xcode simulator by following the correct steps, including backgrounding the app and relaunching it.
This media is not supported in your browser
VIEW IN TELEGRAM
Noora – UI компоненты для CLI
Писать консольные утилиты на своем родном языке намного веселее, чем на каком-нибудь Python или Ruby. Noora – Swift-пакет, который дает вам удобные графические примитивы для крутых консольных интерфейсов. Из примеров компонентов: алерты, yes/no вопросы, индикатор прогресса.
Писать консольные утилиты на своем родном языке намного веселее, чем на каком-нибудь Python или Ruby. Noora – Swift-пакет, который дает вам удобные графические примитивы для крутых консольных интерфейсов. Из примеров компонентов: алерты, yes/no вопросы, индикатор прогресса.
NSHipster про Ollama
Mattt продолжает писать в свой казалось бы уже давно забытый блог. Новые статьи теперь не совсем про iOS разработку, а скорее про различный тулинг вокруг, который может быть релевантен и мобильщикам. В этот раз рассказывает про Ollama – CLI инструмент для установки и менеджмента локальных LLM.
Mattt продолжает писать в свой казалось бы уже давно забытый блог. Новые статьи теперь не совсем про iOS разработку, а скорее про различный тулинг вокруг, который может быть релевантен и мобильщикам. В этот раз рассказывает про Ollama – CLI инструмент для установки и менеджмента локальных LLM.
NSHipster
Ollama
While we wait for Apple Intelligence to arrive on our devices, something remarkable is already running on our Macs. Think of it as a locavore approach to artificial intelligence: homegrown, sustainable, and available year-round.
Cooperative Cancellation в Swift Concurrency
Отмена и остановка задач в Swift Concurrency – разные концепции. Задача никогда не останавливается автоматически, но рантайм сообщает о том, что она помечена как отмененная. Как обрабатывать эту информацию – решать вам. Например, можно вернуть пустой результат или частичный.
Отмена и остановка задач в Swift Concurrency – разные концепции. Задача никогда не останавливается автоматически, но рантайм сообщает о том, что она помечена как отмененная. Как обрабатывать эту информацию – решать вам. Например, можно вернуть пустой результат или частичный.
Swift with Majid
Task Cancellation in Swift Concurrency
Swift Concurrency provides a cooperative cancellation model to handle task cancellation. This week, we will learn what a cooperative cancellation model is, how to use it, and how to be a good citizen and handle it correctly.
Toolbar и NavigationView
Модификатор .toolbar в SwiftUI добавляет вьюшке тулбар, но делает он это только тогда, когда она находится в навигационном стеке. Для того, чтобы тулбар отображался вне зависимости от наличия NavigationView, автор статьи перепробовал несколько подходов и поделился довольно костыльным, но при этом рабочим решением.
Модификатор .toolbar в SwiftUI добавляет вьюшке тулбар, но делает он это только тогда, когда она находится в навигационном стеке. Для того, чтобы тулбар отображался вне зависимости от наличия NavigationView, автор статьи перепробовал несколько подходов и поделился довольно костыльным, но при этом рабочим решением.
Josh Holtz
SwiftUI - Navigation View If Needed
I needed a way to add a toolbar in a view in SwiftUI without knowing if that view came from a navigation stack or not.
Полезный тулинг для терминала
👉Atuin – история вызванных команд с fuzzy поиском по ним
👉Starship – простой способ раскрасить терминал
👉fzf – простой fuzzy поиск по файлам
👉Secure Shellfish – iOS приложение для ssh доступа к вашей машине
👉Atuin – история вызванных команд с fuzzy поиском по ним
👉Starship – простой способ раскрасить терминал
👉fzf – простой fuzzy поиск по файлам
👉Secure Shellfish – iOS приложение для ssh доступа к вашей машине
SharingGRDB – альтернатива SwiftData
Pointfree выпустили новую библиотеку SharingGRDB. API практически такой же, как у SwiftData, но под капотом крутится полноценная SQLite база, к содержимому которой можно получить прямой доступ.
Примеры использования можно посмотреть тут.
Pointfree выпустили новую библиотеку SharingGRDB. API практически такой же, как у SwiftData, но под капотом крутится полноценная SQLite база, к содержимому которой можно получить прямой доступ.
Примеры использования можно посмотреть тут.
www.pointfree.co
SharingGRDB: A SwiftData Alternative
We are excited to announce a new open source library that can serve as a SwiftData alternative for many types of apps out there today. It provides tools that work in SwiftUI views, @Observable models, UIKit view controllers, and gives direct access to SQLite.
Что нового в concurrency в Swift 6.1
Как и обещалось в пропозале светлого будущего, Swift Concurrency постепенно становится более дружелюбной к разработчикам. Недавно вышел бета-релиз Swift 6.1, в котором появилось несколько новых фичей, которые с этим помогают.
Как и обещалось в пропозале светлого будущего, Swift Concurrency постепенно становится более дружелюбной к разработчикам. Недавно вышел бета-релиз Swift 6.1, в котором появилось несколько новых фичей, которые с этим помогают.
massicotte.org
New Concurrency Stuff with 6.1
At long last, there is now a beta release of Swift 6.1! There are a few interesting things in here for those concurrency enthusiasts out there, and I wanted to go over them quickly.
Воркфлоу работы с LLM
AI довольно сильно меняет процесс разработки как для новых проектов, так и при работе в существующих кодовых базах. Я сам использую похожий на описанный в статье подход:
👉В чате совместо с AI брейнштормятся требования к задаче, на выходе получается подробная спека
👉На базе спеки ассистент пишет план атомарных задач
👉Эти задачи одна за одной скармливаются агенту либо LLM, хорошо работающей с кодом
AI довольно сильно меняет процесс разработки как для новых проектов, так и при работе в существующих кодовых базах. Я сам использую похожий на описанный в статье подход:
👉В чате совместо с AI брейнштормятся требования к задаче, на выходе получается подробная спека
👉На базе спеки ассистент пишет план атомарных задач
👉Эти задачи одна за одной скармливаются агенту либо LLM, хорошо работающей с кодом
Harper Reed's Blog
My LLM codegen workflow atm
A detailed walkthrough of my current workflow for using LLms to build software, from brainstorming through planning and execution.
Как обходить защиту от дебага и джейлбрейка
Некоторые приложения, чаще всего банковские, встраивают дополнительные средства защиты, которые не дают подключиться к ним в рантайме, а на джейлбрейкнутых телефонах вообще не работают. В статье разбирается, как обойти все эти проверки, успешно подключиться дебаггером и выполнить в рантайме произвольный код.
Некоторые приложения, чаще всего банковские, встраивают дополнительные средства защиты, которые не дают подключиться к ним в рантайме, а на джейлбрейкнутых телефонах вообще не работают. В статье разбирается, как обойти все эти проверки, успешно подключиться дебаггером и выполнить в рантайме произвольный код.
bryce.co
Debugging An Undebuggable App
This app has a surprising number of anti-debugging protections. Let's figure out how to bypass them.
Serverless Swift
Пример того, как на Swift написать AWS Lambda, которая будет управлять умными лампочками. Помимо особенностей реализации, автор подсчитывает стоимость такого бэкенда и его перфоманс.
Пример того, как на Swift написать AWS Lambda, которая будет управлять умными лампочками. Помимо особенностей реализации, автор подсчитывает стоимость такого бэкенда и его перфоманс.
Ryantoken
Ryan Token – Serverless Swift
Controlling Philips Hue bulbs by running Swift on AWS Lambda.
Доклады про Swift с FOSDEM 2025
Если вы хотите послушать неконвенциональные доклады про Swift, то FOSDEM – самое оно! Ничего про iOS разработку, вместо этого – серверсайд, эмбеддед и технические кишки. Вот несколько интересных записей:
👉Swift/Java Interoperability
👉Ferrofluidic Music Visualiser with Embedded Swift
👉Distributed Tracing
Если вы хотите послушать неконвенциональные доклады про Swift, то FOSDEM – самое оно! Ничего про iOS разработку, вместо этого – серверсайд, эмбеддед и технические кишки. Вот несколько интересных записей:
👉Swift/Java Interoperability
👉Ferrofluidic Music Visualiser with Embedded Swift
👉Distributed Tracing
fosdem.org
FOSDEM 2025 - Foreign Function and Memory APIs and Swift/Java interoperability
Какие версии iOS сейчас используются
1️⃣iOS 18 – 79.5%
2️⃣iOS 17 – 13.7%
3️⃣iOS 16 – 5%
А распределение по минорным версиям можно посмотреть здесь.
1️⃣iOS 18 – 79.5%
2️⃣iOS 17 – 13.7%
3️⃣iOS 16 – 5%
А распределение по минорным версиям можно посмотреть здесь.
Model Context Protocol
Новая статья в блоге NSHipster, в этот раз с разбором MCP – протокола для общения LLM и внешних инструментов. А помимо статьи, ребята заопенсорсили и Swift SDK для MCP.
Новая статья в блоге NSHipster, в этот раз с разбором MCP – протокола для общения LLM и внешних инструментов. А помимо статьи, ребята заопенсорсили и Swift SDK для MCP.
NSHipster
Model Context Protocol (MCP)
Language Server Protocol (LSP) revolutionized how programming languages integrate with developer tools. Model Context Protocol (MCP) aims to do the same for a new generation of AI tools.
Lynx – новый кроссплатформенный фреймворк
TikTok выпустили новый кроссплатформенный UI фреймворк. Концептуально он ближе всего к React Native – используются веб-технологии, но UI рендерится в нативные платформенные компоненты. Обещают классный перфоманс за счет использования двух рантаймов, одного для высокоприоритетных UI операций, а другого для большей части пользовательского кода.
TikTok выпустили новый кроссплатформенный UI фреймворк. Концептуально он ближе всего к React Native – используются веб-технологии, но UI рендерится в нативные платформенные компоненты. Обещают классный перфоманс за счет использования двух рантаймов, одного для высокоприоритетных UI операций, а другого для большей части пользовательского кода.
Ускоряем таблицы в SwiftUI с помощью UIKit
Если производительности списков в SwiftUI вам в каких-то кейсах недостаточно, вы можете продолжить его использовать только для лэйаута ячеек, но для менеджмента всей табличной логики переключиться на UICollectionView. Это стало возможным благодаря новому типу конфигурации UIKit ячеек, который позволяет встраивать SwiftUI.
Если производительности списков в SwiftUI вам в каких-то кейсах недостаточно, вы можете продолжить его использовать только для лэйаута ячеек, но для менеджмента всей табличной логики переключиться на UICollectionView. Это стало возможным благодаря новому типу конфигурации UIKit ячеек, который позволяет встраивать SwiftUI.
Swift with Majid
SwiftUI Performance - How to use UIKit
Nowadays, Apple platform development has undergone significant changes. Previously, we believed that building the core of an app around UIKit and using SwiftUI for certain screens was a good idea. This week, we’ll delve into the foundation of app development…
Как сократить большой JSON
Огромные JSON'ы, загружаемые с сервера, один из частых недостатков backend-driven UI. Ребята из Альфы рассказывают, как они свели дублирующиеся конструкции к минимуму, реализовав кастомную логику шаблонизации. В итоге на списках со 100 элементами получается ~74% экономии.
Огромные JSON'ы, загружаемые с сервера, один из частых недостатков backend-driven UI. Ребята из Альфы рассказывают, как они свели дублирующиеся конструкции к минимуму, реализовав кастомную логику шаблонизации. В итоге на списках со 100 элементами получается ~74% экономии.
Хабр
Как мы сокращали размер JSONʼа в SDUI
Проблема большого объёма JSON Представим, что мы отображаем на экране несколько однотипных элементов, например, список акций. Представим SDUI-разметка для данного экрана. Акции отображаются с помощью...
Новый релиз Copilot for Xcode
Вышла новая версия плагина Copilot, вместе с которой он перешел из статуса беты в GA. Самое важное – теперь можно выбирать, какая LLM будет использоваться в чате: Claude Sonnet, o1 или o3-mini.
Вышла новая версия плагина Copilot, вместе с которой он перешел из статуса беты в GA. Самое важное – теперь можно выбирать, какая LLM будет использоваться в чате: Claude Sonnet, o1 или o3-mini.