🧩 AnyLanguageModel: подключаем любую LLM к Apple Foundation Models API
Apple добавила Foundation Models в iOS 26 и macOS 26. Теперь можно напрямую вызывать on-device LLM через Swift с помощью LanguageModelSession, Tool, @Generable, Guided Generation и других инструментов.
Проблема в том, что API работает только с системной моделью Apple SLM примерно на 3 миллиарда параметров. Если хочешь использовать GPT-4, Claude или локальную Llama 3.2, то стандартный API не поможет.
AnyLanguageModel повторяет API Foundation Models и позволяет выбрать любой бэкенд: Core ML, MLX, llama.cpp, Ollama, OpenAI, Anthropic.
Достаточно заменить
⚙️ Под капотом
• Полностью совместим с FoundationModels
• OS 17.0+ / macOS 14.0+ (В отличии от FoundationModels)
• Использует Swift 6.1 traits для подключения только нужных движков
• Поддерживает Tools, Guided Generation и Streaming
• Гибкий: работает локально, в облаке или в гибридной схеме
🧠 Apple Foundation Models
• Доступны на iOS, macOS и visionOS 26+
• Встроенная on-device модель (~3B), работает оффлайн
• Поддерживают Tool-вызовы, Guided Generation и адаптеры LoRA
• Адаптеры можно устанавливать как Background Assets
Apple SLM уступает моделям уровня GPT по мощности, но выигрывает в приватности и скорости отклика. Guided Generation делает модель точной при типизированных задачах, например со структурами или enum.
🧩 Примеры
• Локально через Ollama: llama3.2, phi4, gemma2
• Через MLX на M-чипах: mlx-community/Qwen3-0.6B
• В облаке: OpenAI, Anthropic
🔗 Полезное
• GitHub: mattt/AnyLanguageModel
• Apple Docs: Foundation Models Guide
Apple добавила Foundation Models в iOS 26 и macOS 26. Теперь можно напрямую вызывать on-device LLM через Swift с помощью LanguageModelSession, Tool, @Generable, Guided Generation и других инструментов.
Проблема в том, что API работает только с системной моделью Apple SLM примерно на 3 миллиарда параметров. Если хочешь использовать GPT-4, Claude или локальную Llama 3.2, то стандартный API не поможет.
AnyLanguageModel повторяет API Foundation Models и позволяет выбрать любой бэкенд: Core ML, MLX, llama.cpp, Ollama, OpenAI, Anthropic.
Достаточно заменить
import FoundationModels на import AnyLanguageModel, и код продолжит работать.⚙️ Под капотом
• Полностью совместим с FoundationModels
• OS 17.0+ / macOS 14.0+ (В отличии от FoundationModels)
• Использует Swift 6.1 traits для подключения только нужных движков
• Поддерживает Tools, Guided Generation и Streaming
• Гибкий: работает локально, в облаке или в гибридной схеме
🧠 Apple Foundation Models
• Доступны на iOS, macOS и visionOS 26+
• Встроенная on-device модель (~3B), работает оффлайн
• Поддерживают Tool-вызовы, Guided Generation и адаптеры LoRA
• Адаптеры можно устанавливать как Background Assets
Apple SLM уступает моделям уровня GPT по мощности, но выигрывает в приватности и скорости отклика. Guided Generation делает модель точной при типизированных задачах, например со структурами или enum.
🧩 Примеры
• Локально через Ollama: llama3.2, phi4, gemma2
• Через MLX на M-чипах: mlx-community/Qwen3-0.6B
• В облаке: OpenAI, Anthropic
🔗 Полезное
• GitHub: mattt/AnyLanguageModel
• Apple Docs: Foundation Models Guide
🔥9👍4 3❤2
TOON вместо JSON: когда стоит, а когда нет
Token-Oriented Object Notation (TOON) - новый формат сериализации, который придумали в Duolingo, чтобы тратить меньше токенов при работе с LLM.
Грубо говоря - JSON на диете: без кавычек, без повторяющихся ключей, но со структурой.
Обычный JSON:
А вот TOON:
Ключи не повторяются, кавычек меньше, выглядит почти как CSV, только с мозгами.
Результат тот же, а токенов уходит в два-три раза меньше.
Когда TOON реально помогает
• Когда вы шлёте модели большие массивы однотипных данных
• Когда важно влезть в контекст или сократить стоимость
• Когда структура простая и не меняется
Когда лучше остаться на JSON
• В REST API и между сервисами - JSON всё ещё стандарт
• Когда данные сложные и вложенные
• Когда важна совместимость и схема
Что по цифрам
На плоских структурах экономия 30–60% токенов.
На вложенных почти нулевая экономия, иногда даже наоборот.
Итог
TOON - не замена JSON, а инструмент для LLM.
Если часто кормите модель большими таблицами - TOON даст экономию.
Если нет - JSON вас и дальше не подведёт.
PS:Бибилиотеки на swift еще нет, самое время залететь в open source и сделать Свифтун (SwiftToon)
Token-Oriented Object Notation (TOON) - новый формат сериализации, который придумали в Duolingo, чтобы тратить меньше токенов при работе с LLM.
Грубо говоря - JSON на диете: без кавычек, без повторяющихся ключей, но со структурой.
Обычный JSON:
{
"users": [
{"id": 1, "name": "Alice", "role": "admin"},
{"id": 2, "name": "Bob", "role": "user"}
]
}А вот TOON:
users[2]{id,name,role}:
1,Alice,admin
2,Bob,userКлючи не повторяются, кавычек меньше, выглядит почти как CSV, только с мозгами.
Результат тот же, а токенов уходит в два-три раза меньше.
Когда TOON реально помогает
• Когда вы шлёте модели большие массивы однотипных данных
• Когда важно влезть в контекст или сократить стоимость
• Когда структура простая и не меняется
Когда лучше остаться на JSON
• В REST API и между сервисами - JSON всё ещё стандарт
• Когда данные сложные и вложенные
• Когда важна совместимость и схема
Что по цифрам
На плоских структурах экономия 30–60% токенов.
На вложенных почти нулевая экономия, иногда даже наоборот.
Итог
TOON - не замена JSON, а инструмент для LLM.
Если часто кормите модель большими таблицами - TOON даст экономию.
Если нет - JSON вас и дальше не подведёт.
PS:
1👍15🔥8🤝1
Наткнулся на статью “The Year SwiftUI Died”.
Заголовок громкий, но мысль внутри любопытная.
Автор говорит, что
Причины: Apple внезапно оживила UIKit, завезла удобный @Observable и другие фишки, причём они работают даже на старых iOS. Плюс ИИ теперь легко генерирует болванки под UIKit, снимая главный барьер входа.
Основные тейки:
• UIKit снова выглядит современно
• ИИ убирает боль шаблонного кода
• В основе SwiftUI слишком много магии, что бьёт по производительности
• Для крупных проектов UIKit может быть практичнее
Частично согласен, но “SwiftUI умер” звучит как драма. Он никуда не делся, просто перестал быть самым очевидным путём. Сейчас это вопрос выбора, а не похорон 💀
А что вы думаете? Используете ещё UIKit?
Заголовок громкий, но мысль внутри любопытная.
Автор говорит, что
2025 стал моментом, когда SwiftUI перестал быть очевидным выбором. Причины: Apple внезапно оживила UIKit, завезла удобный @Observable и другие фишки, причём они работают даже на старых iOS. Плюс ИИ теперь легко генерирует болванки под UIKit, снимая главный барьер входа.
Основные тейки:
• UIKit снова выглядит современно
• ИИ убирает боль шаблонного кода
• В основе SwiftUI слишком много магии, что бьёт по производительности
• Для крупных проектов UIKit может быть практичнее
Частично согласен, но “SwiftUI умер” звучит как драма. Он никуда не делся, просто перестал быть самым очевидным путём. Сейчас это вопрос выбора, а не похорон 💀
А что вы думаете? Используете ещё UIKit?
Jacobstechtavern
2025: The year SwiftUI died
Rediscovering my love for the Classic UIKit Stack™
1👍14🔥6❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Snowflakes Desktop ❄️
На днях откопал свой старый проект на Metal - снегопад для рабочего стола. Запустил, посмотрел в профайлер и схватился за голову.
Раньше я не смог освоить просчет логики на GPU😬 : вся математика считалась на CPU. Процессор в каждом кадре пересчитывал координаты тысяч частиц, удалял упавшие, создавал новые (привет, сборщик мусора) и каждый раз перегонял этот массив данных на видеокарту. Естественно, на большом количестве снежинок всё начинало захлебываться.
😊 Решил сегодня переписать.
Самое главное - убрал все просчеты с CPU. Перенес всю физику в Compute Shaders. Теперь процессор вообще не трогает частицы, он просто говорит видеокарте:
Как это работает внутри:
- Один буфер на старте. Вместо того чтобы постоянно создавать и убивать объекты, я один раз выделяю память под массив снежинок.
- Ресайкл. Когда снежинка улетает за нижнюю границу экрана, шейдер просто телепортирует её наверх с новыми параметрами. Никаких аллокаций памяти в рантайме.
- Параллелизм. Тысячи ядер GPU обновляют позиции снежинок одновременно, а не по очереди, как это делал CPU.
Результат забавный: ради интереса выкрутил счетчик до миллиона снежинок. Экран стал просто белым, но 60 FPS держатся стабильно.
В коде еще перенес на GPU мелочи вроде огибания курсора мыши и таяния снега на границах окон.
👉 Приложение open source и его код можно посмотреть в репозитории а скачать приложение прямо по ссылке
PS: Прямо сейчас приложение в ревью у Apple.
На днях откопал свой старый проект на Metal - снегопад для рабочего стола. Запустил, посмотрел в профайлер и схватился за голову.
Раньше я не смог освоить просчет логики на GPU
Самое главное - убрал все просчеты с CPU. Перенес всю физику в Compute Shaders. Теперь процессор вообще не трогает частицы, он просто говорит видеокарте:
Прошло 0.016 секунды, обнови кадр
Как это работает внутри:
- Один буфер на старте. Вместо того чтобы постоянно создавать и убивать объекты, я один раз выделяю память под массив снежинок.
- Ресайкл. Когда снежинка улетает за нижнюю границу экрана, шейдер просто телепортирует её наверх с новыми параметрами. Никаких аллокаций памяти в рантайме.
- Параллелизм. Тысячи ядер GPU обновляют позиции снежинок одновременно, а не по очереди, как это делал CPU.
Результат забавный: ради интереса выкрутил счетчик до миллиона снежинок. Экран стал просто белым, но 60 FPS держатся стабильно.
В коде еще перенес на GPU мелочи вроде огибания курсора мыши и таяния снега на границах окон.
👉 Приложение open source и его код можно посмотреть в репозитории а скачать приложение прямо по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥32❤12☃4🎄3👏2
This media is not supported in your browser
VIEW IN TELEGRAM
❄️ Snowflakes Desktop - снегопад на твоем Mac
Создай новогоднюю атмосферу на рабочем столе одним кликом. Легкое, нативное приложение, которое не нагружает систему.
Что умеет:
✨ Реалистичная физика: Снежинки плавно падают поверх всех окон (или только на обоях).
🎨 Кастомизация: Настраивай количество снега, скорость и размер хлопьев под свое настроение.
🚀 Performance-friendly: Написано с использованием Metal. Ноль лагов, минимальное влияние на батарею.
🖥 Multi-display: Поддержка нескольких мониторов.
Это отличный способ добавить уюта во время работы или вечернего просмотра фильмов.
🌐 Скачать с сайта: Snowfall Desktop
🍏 Скачать с App Store: Snowfall Desktop
🐙 Скачать с GitHub: ZIP
Создай новогоднюю атмосферу на рабочем столе одним кликом. Легкое, нативное приложение, которое не нагружает систему.
Что умеет:
✨ Реалистичная физика: Снежинки плавно падают поверх всех окон (или только на обоях).
🎨 Кастомизация: Настраивай количество снега, скорость и размер хлопьев под свое настроение.
🚀 Performance-friendly: Написано с использованием Metal. Ноль лагов, минимальное влияние на батарею.
🖥 Multi-display: Поддержка нескольких мониторов.
Это отличный способ добавить уюта во время работы или вечернего просмотра фильмов.
🌐 Скачать с сайта: Snowfall Desktop
🍏 Скачать с App Store: Snowfall Desktop
🐙 Скачать с GitHub: ZIP
2🔥16 5 5🤨1
This media is not supported in your browser
VIEW IN TELEGRAM
Snowflakes Desktop наконец-то в App Store! ❄️
Без долгих предысторий: просто захотелось снега на рабочий стол, написал, залил.
Но самое интересное было на этапе ревью.
Первый билд Apple реджекнули.
Причина убила🍴
Ревьювер решил, что скриншоты и описание вводят пользователей в заблуждение. По их мнению, оформление выглядело так, будто это официальное приложение от самой Apple.
Пришлось немного поправить описание, чтобы не смущать Купертино своей “нативностью”. Считаю, это успех 😂
Пока ждал аппрув, навайбкодил еще и лендинг - там тоже идет снег, можно зайти просто залипнуть (рекомендую заглянуть туда).
PS:Зацените какую анимацию apple делает, когда выкладываешь новое приложение в AppStore
Все ссылки и инфо - в предыдущем посте 👆
Без долгих предысторий: просто захотелось снега на рабочий стол, написал, залил.
Но самое интересное было на этапе ревью.
Первый билд Apple реджекнули.
Причина убила
Ревьювер решил, что скриншоты и описание вводят пользователей в заблуждение. По их мнению, оформление выглядело так, будто это официальное приложение от самой Apple.
Пришлось немного поправить описание, чтобы не смущать Купертино своей “нативностью”. Считаю, это успех 😂
Пока ждал аппрув, навайбкодил еще и лендинг - там тоже идет снег, можно зайти просто залипнуть (рекомендую заглянуть туда).
PS:
Все ссылки и инфо - в предыдущем посте 👆
Please open Telegram to view this post
VIEW IN TELEGRAM
51🔥19❤🔥5❤2🎄2👍1
Захотел сделать «жидкое стекло» как в iOS 26, но для iOS 14
Ожидание: Напишу шейдер, всё заработает
Реальность: Шейдер работает, но iOS не даёт нормально захватить фон
Оказалось, что Apple использует приватный
Результат: визуально 1-в-1 как нативный эффект, но производительность страдает.
Разобрал все проблемы в статье на Хабре 👇
👉 Статья
💻 Open-source библиотека
Ожидание: Напишу шейдер, всё заработает
Реальность: Шейдер работает, но iOS не даёт нормально захватить фон
Оказалось, что Apple использует приватный
CABackdropLayer с прямым доступом к буферу композитора. А нам приходится гонять данные по кругу GPU → CPU → GPU 🔄Результат: визуально 1-в-1 как нативный эффект, но производительность страдает.
Разобрал все проблемы в статье на Хабре 👇
👉 Статья
💻 Open-source библиотека
Хабр
«Liquid Glass» на iOS 16: шейдеры — легко, а скриншоты — боль
С выходом iOS 26 Apple наконец-то обновила UI. Интерфейсы стали «стеклянными»: физически корректное преломление, жирная хроматическая аберрация, глубокий объем. Мне очень нравится как это выглядит,...
🔥30👍10🎄3 1
Итоги 2025 года в разработке и Prefire
В целом ничего кардинально не поменялось. LLM все еще далеки от prod-ready решений. Swift развивается со стороны многопоточности.
Из моих проектов - Prefire почти набрал 500 звездочек и обзавелся поддержкой многих новых функций за счет вас (именно вы делали PullRequests 🔥).
Наверное самое необычное для меня - моя статья про Max мессенджер, которая разошлась прям очень сильно. Делал упор на фреймворки, технологии и тд. А в комментах все равно все обсуждали только то, как мессенджеры якобы там за всеми следит (ну что ж 😂).
Под конец года погрузился в Metal - вышла статья про LiquidGlass и еще вышло милое приложение с интерактивными снежинками ❄️.
Про ScreenCat тоже не забыл, но все еще не могу сделать так, чтобы он мне самому понравился. Иногда залетаю туда на пару часов - недавно обновил на новую версию llama.cpp с новым API, и котик стал быстрее отвечать 💪.
В целом ничего кардинально не поменялось. LLM все еще далеки от prod-ready решений. Swift развивается со стороны многопоточности.
Из моих проектов - Prefire почти набрал 500 звездочек и обзавелся поддержкой многих новых функций за счет вас (именно вы делали PullRequests 🔥).
Наверное самое необычное для меня - моя статья про Max мессенджер, которая разошлась прям очень сильно. Делал упор на фреймворки, технологии и тд. А в комментах все равно все обсуждали только то, как мессенджеры якобы там за всеми следит (ну что ж 😂).
Под конец года погрузился в Metal - вышла статья про LiquidGlass и еще вышло милое приложение с интерактивными снежинками ❄️.
Про ScreenCat тоже не забыл, но все еще не могу сделать так, чтобы он мне самому понравился. Иногда залетаю туда на пару часов - недавно обновил на новую версию llama.cpp с новым API, и котик стал быстрее отвечать 💪.
Всех с наступающим или наступившим Новым годом! Желаю стабильности в работе, хорошей зарплаты, классных проектов и больше времени на себя. Не забывайте про отличное от разработки хобби (мне очень зашли силовые тренировки).
🔥13☃6🎄6
IT индустрия Всё? 😮
Я часто смотрю рынок вакансий (как лиду, по работе): iOS, Android, frontend, backend.
И в целом это дало мне понять, где мы находимся как индустрия.
Наблюдение простое: по зарплатам в классической разработке рынок встал.
Если смотреть на цифры, а не ощущения:
- Хабр Карьера (2024–2025): senior - в среднем 220–320к, лиды - 350–500к, выше - уже редкость; рост год к году ~5–7%, ниже инфляции
- Selecty прямо пишет о замедлении роста компенсаций и фокусе компаний на оптимизацию, а не на расширение штата
- Работа.ру + Сбераналитика: средняя зарплата IT-специалиста - около 146к, что хорошо показывает реальную «середину» рынка
Как это выглядит из найма
• senior в обычном продукте - 250–400к,
• lead / tech lead - 400–600к+, и это скорее потолок,
• по сравнению с 2021–2022 реального роста почти нет, если учитывать инфляцию.
На этом фоне зацепил один приземлённый факт.
Во «Вкусно и точка» - указывают доходы ~170к в месяц.
Без IT, без продакшена и архитектурной ответственности.
Разрыв между сложной инженерной работой и не-IT профессиями по доходу стал заметно меньше.
Другая часть рынка - AI
• LLM, ML-infra, Prompts
• CUDA / Triton / inference optimization
Там совсем другие цифры.
По реальным вакансиям и офферам AI-лиды - это 1 млн+, иногда существенно выше. И судя по всему это из-за дефицита и прямого влияния на деньги бизнеса.
Международные данные это подтверждают: AI-лиды и staff-инженеры получают кратно больше обычных software engineers
Вывод
- классическая разработка стала массовой и предсказуемой
- потолок по зарплатам там хорошо читается
- деньги сместились туда, где выше порог входа и ценность для бизнеса: AI и оптимизация
Как вы это видите?
Временная пауза или новая реальность для IT?
Я часто смотрю рынок вакансий (как лиду, по работе): iOS, Android, frontend, backend.
И в целом это дало мне понять, где мы находимся как индустрия.
Наблюдение простое: по зарплатам в классической разработке рынок встал.
Если смотреть на цифры, а не ощущения:
- Хабр Карьера (2024–2025): senior - в среднем 220–320к, лиды - 350–500к, выше - уже редкость; рост год к году ~5–7%, ниже инфляции
- Selecty прямо пишет о замедлении роста компенсаций и фокусе компаний на оптимизацию, а не на расширение штата
- Работа.ру + Сбераналитика: средняя зарплата IT-специалиста - около 146к, что хорошо показывает реальную «середину» рынка
Как это выглядит из найма
• senior в обычном продукте - 250–400к,
• lead / tech lead - 400–600к+, и это скорее потолок,
• по сравнению с 2021–2022 реального роста почти нет, если учитывать инфляцию.
На этом фоне зацепил один приземлённый факт.
Во «Вкусно и точка» - указывают доходы ~170к в месяц.
Без IT, без продакшена и архитектурной ответственности.
Разрыв между сложной инженерной работой и не-IT профессиями по доходу стал заметно меньше.
Другая часть рынка - AI
• LLM, ML-infra, Prompts
• CUDA / Triton / inference optimization
Там совсем другие цифры.
По реальным вакансиям и офферам AI-лиды - это 1 млн+, иногда существенно выше. И судя по всему это из-за дефицита и прямого влияния на деньги бизнеса.
Международные данные это подтверждают: AI-лиды и staff-инженеры получают кратно больше обычных software engineers
Вывод
- классическая разработка стала массовой и предсказуемой
- потолок по зарплатам там хорошо читается
- деньги сместились туда, где выше порог входа и ценность для бизнеса: AI и оптимизация
Как вы это видите?
Временная пауза или новая реальность для IT?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🤔5👍3🤡2
This media is not supported in your browser
VIEW IN TELEGRAM
Попробовал Opencode
После Codex, Claude, Gemini и Continue ощущается как шаг вперёд — именно по качеству взаимодействия.
(Хотя, кажется, сейчас Claude Code уже умеет всё то же, но в момент моего тестирования - не умел)
Самое классное, это как он начинает диалог. Пишешь простой, даже ленивый запрос, а модель сама раскладывает его на точные параметры: что именно ты хочешь, какие ограничения есть, какие варианты возможны. А дальше просто выбираешь из предложенного. Честно, ощущается как RPG-игра: выбираешь реплику в диалоге 😎
Это сильно экономит токены/нервы. Меньше итераций «нет, не так», меньше переписывания, больше контроля над результатом.
Из минусов - пока слабовато с локальными моделями. Пробовал Ollama с Qwen 3 coder и GLM 4.7: ответы иногда обрываются, туллинг работает нестабильно, видно, что модель хочет вызвать инструмент, но система это не ловит. Тут явно ещё нужно дорабатывать.
В остальном впечатление очень сильное. Подход взрослый, архитектура — продуманная. И главное — это open source. А ещё работает локально. Всё это делает Opencode отличным кандидатом для корпоративного использования: подключаешь локальную модель - и спокойно работаешь, без лишних вопросов про безопасность и утечки.
Короче, инструмент реально крутой. Если подтянут поддержку локальных моделей и доработают туллинг, Opencode может стать одним из самых удобных решений для ежедневной разработки. Пока использую его как основной.
После Codex, Claude, Gemini и Continue ощущается как шаг вперёд — именно по качеству взаимодействия.
(Хотя, кажется, сейчас Claude Code уже умеет всё то же, но в момент моего тестирования - не умел)
Самое классное, это как он начинает диалог. Пишешь простой, даже ленивый запрос, а модель сама раскладывает его на точные параметры: что именно ты хочешь, какие ограничения есть, какие варианты возможны. А дальше просто выбираешь из предложенного. Честно, ощущается как RPG-игра: выбираешь реплику в диалоге 😎
Это сильно экономит токены/нервы. Меньше итераций «нет, не так», меньше переписывания, больше контроля над результатом.
Из минусов - пока слабовато с локальными моделями. Пробовал Ollama с Qwen 3 coder и GLM 4.7: ответы иногда обрываются, туллинг работает нестабильно, видно, что модель хочет вызвать инструмент, но система это не ловит. Тут явно ещё нужно дорабатывать.
В остальном впечатление очень сильное. Подход взрослый, архитектура — продуманная. И главное — это open source. А ещё работает локально. Всё это делает Opencode отличным кандидатом для корпоративного использования: подключаешь локальную модель - и спокойно работаешь, без лишних вопросов про безопасность и утечки.
Небольшая вставка про Apple Intelligence: вообще не понял, как они выкатили настолько «сырое» решение. В Xcode нет тулинга, нет понимания проекта — бесполезная вещь на данный момент.
Короче, инструмент реально крутой. Если подтянут поддержку локальных моделей и доработают туллинг, Opencode может стать одним из самых удобных решений для ежедневной разработки. Пока использую его как основной.
1🔥20❤3 3