Prefire iOS
979 subscribers
101 photos
7 videos
103 links
Чат/блог о современной 🍏iOS разработке

Пробустить канал → https://t.me/prefire_ios?boost

Автор: @barredewe
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🥃 LiquidGlass — open-source реализация нового «живого стекла», только что показанного Apple

Apple показала свежий дизайн-язык с жидкими рефракциями — я сел и повторил его в SwiftUI. Снаружи это всего одна строчка модификатора, но под капотом серьёзная кухня: Metal-шейдеры, off-screen snapshot в MTLTexture, ленивый redraw без мерцания, защита от рекурсий и никаких скриншотов руками.

Button("Click Me 🔥") { … }
.liquidGlassBackground()


Что делает
• ⚡️ Захватывает фон в реальном времени, но только когда он реально меняется
• 💤 MTKView спит — батарея не горит
• 🛠 Режимы: .continuous, .once, .manual
• 🎨 Шейдер открыт: меняйте blur, refraction, tint как хотите
• 🍏 Чистый SwiftUI, iOS 14+, MIT

Подключить:
https://github.com/BarredEwe/LiquidGlass

Скрины + GIF примера — в README. Забирайте, форкайте, кидайте идеи! 🚀
1❤23👍6🔥6💅2🍓1
🇯🇵 Зашёл в книжный в Токио

Куча книг по iOS: SwiftUI, Xcode 16, iOS 18, Swift 6. Всё в духе «освой за 2 дня», «сделай 6 приложений», «начни с нуля».
Каждая — как отдельный мини-курс, с кучей скриншотов, пошаговыми инструкциями и объяснениями, почему вот тут .padding() не работает.

🔍 А теперь внимание — книга про iOS на Python. Да, серьёзно.
Pythonista 3, NumPy, GUI, игры, расширение iOS‑функционала. Всё это — прямо на айфоне.
Похоже на гайд для школьника, который хочет сделать свою первую игру и параллельно — калькулятор с графиком.

📚 В целом — в Японии дико много литературы по iOS.
Не абстрактные философские книги, а прям пошаговые гайды, как будто для внутреннего дзена:
«Нажми здесь, запусти вот это, а теперь обратись к SwiftData через ObservableObject и помолись».
❤32🔥98❤‍🔥2
Я запустил prefire.ru! 🚀

Давно хотел запустить сайт и в целом поэкспериментировать с этим и вот наконец‑то сайт в продакшене. В целом, получился простенький лендинг.

Постарался описать там процесс работы c Prefire:
👉 Как установить
👉 Как запустить
👉 Как Prefire работает внутри
👉 Архитектура Prefire

Параллельно я готовлю PrefireCore - новый вычислительный движок для генерации Snapshot и кеширования.
👏19🔥14👍33❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🐾 ScrrenКот возвращается

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

🧠 За это время перепробовал кучу LLM-моделей для локального запуска — искал ту, что даст максимум качества на русском.

Что выяснилось:
- Qwen3 8B — даёт стабильные, “вдумчивые” ответы
- Llama 3.2 3B — уходит на английский
- DeepSeek, Gemini — шикарные, но очень тяжёлые

Всё сравнивал через unit-тесты на коротких промптах

📦 Модели загружаются с HuggingFace — всё кастомизируется на лету.
🤖 Пока фокус на простых реакциях, как у питомца. Но возможно - позже добавлю агентский режим (накидывайте что добавить).

📒 А вот что котик уже умеет говорить — реальные фразы из логов:
- Мяу, я котик, я пиксельный, я в Telegram!
- Мрр, мне бы шаурмы, а не чат с тобой.
- Мрр, я уже смеялся, как узник в бочке.


😿 Честно? Мотивации добивать проект - почти нет. Поэтому, возможно, скоро выложу как есть. Просто чтобы он был живым и я его окончательно не забросил. А ваши отзывы дадут мне мотивации)
🔥21❤7👍44
🚀 Как обновлять macOS-приложение без App Store — на примере ScreenCat

App Store - это удобно, но не всегда подходит. Например, когда ты делаешь экспериментальное приложение (а еще санкции), как мой ScreenCat - пиксельного кота, который живет на экране. В таком случае тебе нужен свой способ доставки обновлений.

Вот как я это реализовал:

🧩 Использую Sparkle - это нативный фреймворк для автообновлений на macOS. Он встроен в .app и сам проверяет наличие новых версий. Работает по принципу: приложение → скачивает XML-фид → если есть обновление → скачивает .dmg и ставит.

🌐 Фид и обновления лежат на GitHub Pages. Это удобно: репозиторий + GitHub Actions + статический хостинг — и всё готово. Например, фид доступен по адресу:
https://github.com/barredewe/screencat-updates/releases/latest/download/appcast.xml

🛠 Процесс автоматизирован. Я собрал Makefile, который:
1. Создает .dmg
2. Подписывает и нотаризует билд
3. Выкладывает в релиз на GitHub
4. Обновляет appcast.xml
5. Пушит его в GitHub Pages
6. Выкладывает .app в itch.io

⚠️ Главное — правильно подписывать .app и .dmg, иначе Gatekeeper не даст установить. Sparkle тоже проверяет подписи.

🔐 И да, всё это работает без App Store, обновления скачиваются и ставятся прямо внутри приложения.
🔥26👍85
🧾 Как я заменил Supabase на свой сервер с FastAPI + Docker

В ScreenCat можно покупать скины, и раньше это работало через Supabase Edge Functions. Но теперь у нас свой сервер: FastAPI + PostgreSQL внутри Docker, и это стало огромным апгрейдом.


🐣 Немного контекста
Supabase - альтернатива Firebase:
- PostgreSQL + генерация API
- Storage, Auth
- Edge Functions на Deno

Работало, но были проблемы:
- 💤 Функции «засыпали» -> первый запрос после простоя - 3+ сек
- 🔌 Иногда Robokassa не могла достучаться (cold start)
- 🤯 Невозможно нормально логировать
- 🧱 Всё чёрным ящиком


🐳 Почему я перешёл на Docker + FastAPI
Решил развернуть свой backend (GPT мне подсказала что нужно выбирать 😀):
• FastAPI - простой и быстрый Python-сервер
• PostgreSQL - та же база, но у себя
• Docker - магия! Поднял всё одним docker-compose up
• Robokassa бьёт в /result endpoint


⚙️ Пример кода: проверка подписи и UPSERT
signature = md5_upper(f"{OutSum}:{InvId}:{password2}:Shp_email={Shp_email}:Shp_skin={Shp_skin}")
if SignatureValue.upper() != signature:
raise HTTPException(403, detail="Invalid signature")

stmt = insert(Purchase).values(
invoice_id=InvId,
skin=Shp_skin,
status="paid",
email=Shp_email,
).on_conflict_do_update(
index_elements=["invoice_id"],
set_={"skin": Shp_skin, "status": "paid", "email": Shp_email}
)
await db.execute(stmt)
await db.commit()



✨ Что работает сейчас
✅ POST /payment/robokassa/result — принимает оплату
✅ GET /payment/robokassa/status — проверка покупки по email и скину
✅ 🔐 Проверка MD5-подписи от Robokassa
✅ 📬 Уведомление в Telegram о каждой оплате
✅ 🧠 Вся база под контролем — можно смотреть, фильтровать, восстанавливать покупки


📚 Документация API (Swagger, пж не дудосьте)
👉 https://pay.prefire.ru/docs

(Работает сразу из коробки благодаря FastAPI ❤️)

PS: Такой простой сервер оказалось написать проще чем простое приложение)
PS2: Docker вообще супер простая и удобная штука, теперь использую во всех своих скриптах)
🔥10❤6👍322
🚨 Первый стрим: код, баги, коты

Запускаю стримы по разработке. Без монтажа и сценариев - просто живой процесс:

🧠 Пишу код
🪲 Ловлю баги
🧩 Думаю вслух, туплю, пробую - как есть

Темы будут разные:
• Swift / macOS / геймдев
• AI и локальные LLM
• UI, архитектура, backend, всё подряд

📺 Стримим на всех фронтах:
• Twitch: https://twitch.tv/barredy
• Telegram: https://t.me/prefire_ios (будут анонсы + иногда прямой эфир)

Если давно хотел спросить что-то по Swift, LLM, Prefire или просто понаблюдать за «настоящим» разработчиком - присоединяйся.

👉 Пиши в комменты, что хотел бы увидеть в первом эфире
🕓 Старт — сегодня (1 августа) в 18:30.

Подписывайся, чтобы не пропустить
👍13🔥53❤2
Live stream started
Live stream finished (8 seconds)
Live stream started
Live stream finished (2 hours)
🚀 Стрим стартует уже почти сейчас (18:00)

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

https://youtube.com/shorts/I1kv-Wyv4tI?feature=share

Сегодня ещё посидим с котом; если всё пойдёт гладко, возможно заглянем в Prefire разбирать свежие issues (но без обещаний).

📺 Стримим на всех фронтах:
• YouTube: https://www.youtube.com/@prefire-barredy
• Twitch: https://twitch.tv/barredy
• Telegram: https://t.me/prefire_ios (будут анонсы + иногда прямой эфир)

Подключайтесь, будет лампово! 🎥✨
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍2
Live stream started
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://t.me/prefire_ios (будут анонсы + иногда прямой эфир)
- YouTube: https://www.youtube.com/@prefire-barredy/streams

PS: Держите шортс про кота: https://youtube.com/shorts/bXsV8HX7v6o?feature=share
❤7🔥22