Prefire iOS – Telegram
Prefire iOS
968 subscribers
81 photos
6 videos
91 links
Чат/блог о современной 🍏iOS разработке

Пробустить канал → https://news.1rj.ru/str/prefire_ios?boost

Автор: @barredewe
Download Telegram
Live stream finished (17 seconds)
Live stream started
Live stream finished (3 hours)
🐾 Кот vs SwiftUI

Вчера на стриме решили переписать меню кота на SwiftUI.
Через пару минут я уже сказал, что SwiftUI - говно. Ну на самом деле все не так плохо 😁

👉 В SwiftUI нельзя получить frame кнопки в статусбаре.
А без него котик не понимает, куда идти. Он же не экстрасенс 😿

📺 Вот момент, где всё пошло не так: https://youtube.com/shorts/mFTWzB6P0lI?si=tvnhh-61-r2cx8U5
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8😁6😭4
Channel photo updated
🎬 Стрим начался!

Сегодня экспериментируем по полной:

🐾 Пробуем новую LLM от Tencent - посмотрим, как она справится с ролями для кота и комментариями в реальном времени
🎨 Лезем в анимации кота - может, получится оживить хвост или добавить новые эмоции
🧑‍💻 Погружаемся в код - будет немного рефакторинга и, возможно, баги прямо в прямом эфире

Залетай, понаблюдай, как рождается магия - и не забудь подписаться на @prefire_iOS, если ещё не с нами!

👉 Стрим идет прямо сейчас:
- Twitch: https://twitch.tv/barredy
- Telegram: https://news.1rj.ru/str/prefire_ios (будут анонсы + иногда прямой эфир)
- YouTube: https://www.youtube.com/@prefire-barredy/streams

PS: Держите шортс про кота: https://youtube.com/shorts/bXsV8HX7v6o?feature=share
7🔥22
Live stream started
Live stream finished (1 hour)
🚨 OpenAI выпустили gpt-oss-120b и gpt-oss-20b - это лучшие reasoning-модели с открытым кодом на сегодня.

📦 Это буквально o3 у вас дома.
Можно скачать, собрать и запустить - всё как в старые-добрые.

🤯 Последний раз OpenAI делали open-source в 2019 с GPT-2. С тех пор - тишина.
Так что это прям исторический момент.

🛠 GitHub: https://github.com/openai/gpt-oss
🧠 GGUF-модель: unsloth/gpt-oss-20b-GGUF
💾 Самый сжатый вес - 11.8 GB. Запускаем на маке.

🎥 Стримим запуск сегодня вечером в 18:30 - приходите смотреть, как o3 оживает локально.
- Twitch: https://twitch.tv/barredy
- YouTube: https://www.youtube.com/@prefire-barredy/streams

👀 Еще потестили Hunian от Tencent
Новая архитектура, реально быстрая.
Но с русским / всё плохо: путает рода и окончания 😅

🔥 Лето под знаком опенсорса. Кто бы мог подумать, что OpenAI снова Open?
1👍13❤‍🔥3🔥33
GPT-5: ожидания vs реальность 🤔

Потестил новую модель - честно говоря, разочарован. В реальных задачах по программированию и логическим рассуждениям GPT-5 ощущается максимум как o3, а местами даже слабее.

Что пошло не так с релизом:
- Сам запуск OpenAI назвала "bumpy" (неровным)
- Альтман признал "mega chart screwup" с диаграммами на презентации
- Противоречивые отзывы в прессе

Цифры vs практика:
На бумаге прогресс есть - SWE-bench Verified показывает 74.9% против 69.1% у o3. Но в реальной работе этого не чувствуется. Более того, в некоторых задачах результат хуже.

Мое решение:
Переключаюсь на Claude. Последние тесты показывают его превосходство, да и бенчмарки это подтверждают. Пора дать ему шанс в продуктивных задачах.

А какой ваш опыт с новыми моделями?
👍8🔥3😭2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Как MCP в Cursor допилил мне CatShop в Xcode

Решил проверить MCP для Xcode на реальном проекте. Взял старый CatShop - магазин был чистой заглушкой.

💻 Как шёл процесс:

1️⃣ MCP начал с разведки - сам открыл ClickerState, CatShopScenario, CatItem, просмотрел, как всё связано.
“Теперь давайте посмотрим на связанные модели и состояния”


2️⃣ Нашёл, чего не хватает - в состоянии нет данных о покупках и экипировке.
“Давайте доработаем ClickerState, добавив поддержку покупки и экипировки предметов”

var ownedItems: Set<String> = []
var equippedItems: [CatItem.Slot: String] = [:]


3️⃣ Починил заглушки в логике:
“В isEquipped и isOwned используются заглушки, заменим их на реальные проверки”


4️⃣ Обновил UI - в CatShopView появились кнопки «Купить» и «Экипировать» с условиями, показ цены и бонусов:
“Показываем бонус предмета”

case .tapPower(let power):
Text("💪 +\(power) к силе удара")


5️⃣ Добавил реакцию кота - после экипировки предметы сразу отображаются на модели:
“Уведомляем CatViewModel об обновлении предметов”


6️⃣ Поймал мелкую ошибку - CatItem.Slot не Hashable, из-за чего не работали словари. MCP тут же сделал фикс.

🪄 Всё это было в одной сессии в Cursor: я пишу «добавь поддержку экипировки», он идёт по проекту, проверяет зависимости, сам правит импорты и обновляет логику так, чтобы всё стыковалось.

📦 Как подключить MCP к Cursor для Xcode:
brew install mise


В mcpServers:
"XcodeBuildMCP": {
"command": "mise",
"args": [
"x",
"npm:xcodebuildmcp@1.11.2",
"--",
"xcodebuildmcp"
]
}


⚡️ Ощущение, что MCP реально действует как разработчик - идёт по коду, понимает контекст и аккуратно встраивает изменения, пока ты просто ставишь задачи.
🔥9💅52👍1
🚀 Запускаем GPT-oss 20B у себя локально

На последнем стриме проверяли - можно ли без облаков и серверов гонять огромную 20B модель прямо на Mac.
Ответ: да - и это очень быстро ⚡️

🛠 Использовали Ollama - ставится за минуту, тянет вес модели локально и сразу готов к работе.
Прогнали несколько нейросетей:
🧠 GPT-oss 20B (open-source)
🦅 DeepSeek
🤖 GPT o3

Сравнили их в реальном времени: по скорости, качеству и “вдумчивости” ответов.
И знаете что? Mac справился без проблем, даже с 20B на борту - ответы летят почти мгновенно.

📺 Видео со стрима - в канале, там же разбор, кто кого уделал: DeepSeek, GPT-oss или GPT-o3:
🔥10❤‍🔥22👍1🙏1
🎥 Сегодня в 18:00 стрим

Будем смотреть на Gemma 3 - супер маленькую и умную модель, которая удивляет несмотря на размер.

Сделаю мини-гайд:
⚡️ как запустить нейросеть на Mac
📱 как оживить её прямо на iPhone
🤔 и зачем это вообще может пригодиться разработчику - от оффлайн-ассистентов до быстрых прототипов.

Залетайте - будет и практика, и обсуждение 🚀

👉 Подписывайтесь, чтобы не пропустить стримы и новые разборы:
YouTube, Twitch и мой телеграм [Prefire]
🔥9👍33❤‍🔥211
🚨 В Xcode нашли интеграцию Claude

В последней бете Xcode 26 засветилась поддержка моделей от Anthropic - Claude Sonnet 4.0 и Claude Opus 4.
До этого в Xcode можно было нативно использовать только ChatGPT, а теперь похоже будет выбор.

Что это значит:
👉 Можно будет работать с Claude прямо в IDE, без ручных API-ключей.
👉 Apple начинает движение Xcode к мульти-LLM среде: свои модели + ChatGPT + теперь Claude.
👉 Разработчики уже пишут, что Claude даёт более чистый код и круто помогает с багами.

🤯 Apple прямо встраивает конкурентов в экосистему, и это довольно смело.
Посмотрим, кто следующий - Gemini? DeepSeek?
👍15🔥7531
😏Мой новый разбор MAX на Хабре

Взял свежий APK мессенджера Max и посмотрел, что у него внутри.
Нашёл много интересного:
- WebRTC для звонков
- ExoPlayer и TensorFlow Lite
- следы Odnoklassniki/TamTam (VK Group)
- и самое важное: никакого E2EE

🔎 Полный технический разбор - со скринами, кодом и выводами - я выложил на Хабр:
👉 Технический разбор Max: что внутри APK
👍27🔥85👏2🤡21
💭 SwiftUI - боль?

Я недавно говорил, что SwiftUI - говно, но, чёрт возьми, я его люблю.

И одна из самых больших проблем - невозможность добавлять новые фичи на старых версиях iOS. Каждый апдейт - это тонны #available, которые захламляют код.

Недавно в канале «Мобильный трудоголик» наткнулся на классное решение - SwiftUI-Adapter.

Теперь вместо:
if #available(iOS 15.0, *) {
view.badge(5)
} else {
view
}

Можно просто:
view.adapter.badge(5)


Под капотом всё те же проверки версий, но код остаётся чистым и читабельным.
Проект открыт - можно посмотреть реализацию или предложить свои улучшения.

Подробная информация и ссылка на GitHub доступны в исходном посте.
🔥23❤‍🔥7👍65🤡5👎3🤮3🥱3🤩1
🤖 Claude Pro vs ChatGPT Plus - заметки разработчика (и лида)

Попробовал платные версии обоих - впечатления очень разные.

💬 Claude
SwiftUI: пишет на супер-примитиве (GPT-5 заметно лучше).
Стиль кода: любит всё усложнять - тесты на всё подряд, даже на мелочи.
⚡️ Оптимизация: почти всегда выдаёт код, эффективный по производительности и памяти.
Языки: проблема скорее в Swift, в других — результат лучше.
MCP: есть интеграция, но реализовано странно:
• приложение на Mac виснет примерно раз в час;
• при правке файла перегенерирует его целиком → токены улетают, лимит съедается даже на Pro-тарифе.

🧠 ChatGPT (GPT-5)
Повседневное использование: лучший выбор —
• аккуратно меняет куски кода без полной перегенерации;
🎨 встроенная генерация картинок
• стабильнее в работе.
Код: пишет чище и удобнее, но не всегда максимально оптимально по ресурсам, масштабируемости и скорости.
MCP: отсутствует (есть только через Cursor, и то за отдельную подписку).

⚖️ Вывод
• Для каждодневных задач - GPT выигрывает без вариантов.
• Для кода - зависит от задачи: Claude чаще даёт более оптимальные решения, но в Swift (особенно UI) он слаб.

👉 Про то, как модели справляются именно со Swift-бенчмарками, я сделаю отдельный пост.
👍15🔥5🤡5🤔21
This media is not supported in your browser
VIEW IN TELEGRAM
🍏 FastVLM: Apple наконец-то врывается в AI?

На CVPR 2025 показали FastVLM - мультимодальную модель с акцентом на скорость и компактность. И это реально первый серьёзный шаг Apple в сторону открытых моделей.

- ⚡️ 85× быстрее по TTFT, чем аналоги, и 3.4× компактнее благодаря гибридному визуальному энкодеру FastViTHD.
- 🧠 Версия на базе Qwen2-7B обгоняет Cambrian-1-8B, выдавая 7.9× более быстрый ответ.
- 📦 Уже на HuggingFace - модели 0.5B, 1.5B, 7B (fp16 / int8 / int4). Есть экспериментальные Stage2/3 для видео и структурированного вывода.
- 🛠 Поддержка прямо в transformers - импортнул и поехали.
- 🍎 Некоторые версии уже работают через mlx-vlm на macOS/iOS.
- 💬 Пользователи отмечают: на Mac летает, а вот iPhone 14 пока не тянет. Но в WebGPU-демо выглядит бодро.

📌 Вывод
FastVLM = компактность + скорость + мультимодальность. Кажется, Apple реально начала собирать свой AI-стек - посмотрим, как это отразится на экосистеме iPhone/iPad/Mac. Очень надеюсь что увидим от Apple еще больше моделей.

👉 Модели на HuggingFace
👉 Официальный Github
7🔥5👍1👏1
🤖 Кто такой DimaTorzok?
(или как OpenAI не фильтрует данные обучения)

Делаю пет-проект с распознаванием речи на видео через whisper.cpp. Всё шло нормально… пока вместо музыки модель не стала писать:

👉 «Субтитры добавил DimaTorzok»

Я же распознаю голос, а не ищу какого-то Диму 😅


Оказалось, что в обучающих данных с YouTube полно видео, где при музыке так и было написано в субтитрах. Whisper это честно выучил и теперь считает: музыка = DimaTorzok.

⚡️ Фикс элементарный: заменяем эту фразу на music прямо в коде.

Два дня бился, но теперь знаю:
🎶 любая музыка для OpenAI - это DimaTorzok.

PS: Работет только по распознавании русского языка

📎 Обсуждение на GitHub: Who is DimaTorzok?
😁228👍2🫡2🤣1
🚀 Swift Subprocess - новый способ запускать процессы из Swift

В Swift появилась библиотека, которая закроет старую боль Foundation.Process.
swift-subprocess - свежий пакет от Foundation Workgroup, уже принят как proposal SF-0007 v0.1.

Зачем это нужно:
Swift Subprocess - это единый и безопасный способ дергать внешние утилиты.
И это не что-то нишевое: почти все наши любимые Swift-тулы делают это под капотом:

Tuist - дергает xcodebuild, swift build и десятки CLI команд
Sourcery - запускает генераторы, линтеры и скрипты
• и любые pet-проекты, где надо позвать git, ffmpeg, convert, jq

Сегодня они используют старый Foundation.Process.
Завтра почти наверняка перейдут на swift-subprocess.

Примеры

Простой вызов:
let r = try await run(.name("git"),
arguments: ["--version"],
output: .string())
print(r.standardOutput)


Логи «на лету»:
try await run(.name("bash"),
arguments: ["-lc", "ping -c 3 apple.com"]) { p in
for try await line in p.standardOutput.lines {
print("[OUT]", line)
}
}


Параллельные процессы:
async let a = run(.name("echo"), arguments:["A"])
async let b = run(.name("echo"), arguments:["B"])
let (ra, rb) = try await (a, b)
print(ra.standardOutput, rb.standardOutput) // A B


📱 На iOS запуск внешних бинарников запрещён.
Но код можно шарить с macOS/Linux-утилитами, а внутри iOS использовать те же async-паттерны для встроенных фреймворков.

Статус проекта
• Proposal SF-0007 принят (март 2025)
• Версия 0.1 уже доступна на GitHub
• Планируется 1.0 в ближайшие месяцы

💡 Итог: Swift Subprocess - новый стандарт для инструментов на Swift.
Очень скоро Tuist, Sourcery и многие другие утилиты переедут на него.

👉 Репо: github.com/swiftlang/swift-subprocess
🔥14👍332🙏1
🚀 Релиз Swift 6.2

В этом обновлении добавили новые возможности для параллельного кода, безопасного системного программирования и удобства в работе.

Concurrency

👉 MainActor по умолчанию (как режим)
Раньше нужно было вручную ставить аннотацию @MainActor, чтобы не было ошибок при обновлении интерфейса. Теперь можно включить режим, где всё работает на MainActor автоматически - меньше лишнего кода.

👉 @concurrent для тяжёлых задач
Данные и состояние остаются на главном акторе, а ресурсоёмкие операции можно пометить как конкурентные - они выполняются параллельно и не мешают остальному коду.

struct ImageStore {
static var cache: [URL: Image] = [:]

static func image(for url: URL) async throws -> Image {
if let cached = cache[url] { return cached }
let img = try await fetchAndDecode(url)
cache[url] = img
return img
}

@concurrent
static func fetchAndDecode(_ url: URL) async throws -> Image {
let (data, _) = try await URLSession.shared.data(from: url)
return await decode(data)
}
}


Safe Systems Programming

👉 InlineArray - фиксированный массив, который хранится компактно (например, прямо внутри структуры), без дополнительных аллокаций.

struct Level {
var bricks: [40 of Brick] = .init(repeating: .init())
}


👉 Span - безопасный срез массива без копирования

let numbers = [1, 2, 3, 4, 5]
let part = Span(numbers, start: 1, count: 3)
print(part) // [2, 3, 4]


👉 Строгий режим memory-safety.
Можно включить проверку, которая подсветит небезопасные места и предложит заменить их на безопасные аналоги.

Workflows

👉 Официальное расширение Swift для VS Code: индексинг, LLDB, предпросмотр DocC.
👉 Настройка предупреждений компилятора (-warn-concurrency, -warn-unreachable).
👉 Быстрее работает сборка макросов.
👉 Удобнее отлаживать async-код: стек-трейсы стали понятнее, задачи теперь имеют имена.

Библиотеки

👉 Foundation: типизированные нотификации с явной моделью доставки.
👉 Observation: новый тип Observations - async-последовательность изменений.
👉 Swift Testing: тестирование выхода процесса, вложения (логи, скриншоты), новый формат имён.
👉 WebAssembly: расширенная поддержка Wasm-таргета.

Swift 6.2 помогает сократить ручную работу с потоками, добавляет безопасные инструменты для системного кода и делает разработку удобнее.

📌 Полный обзор
👍13🔥53🍾2