Sign in

Peter Friese

@peterfriese.dev
1.6K followers 1.1K following 1K posts

Developer Advocate on the Firebase team @ Google YouTube: www.youtube.com/@PeterFriese Blog: peterfriese.dev

PostsRepliesMedia
Peter Friese @peterfriese.dev · 1h
Get the code and start building! github.com/peterfriese...
github.com
GitHub - peterfriese/system-one-foundation-models: A lightweight, native Swift 6 bridge integrating TypeSafe AI's Jev System One decision model into Apple's Foundation Models framework.
A lightweight, native Swift 6 bridge integrating TypeSafe AI's Jev System One decision model into Apple's Foundation Models framework. - peterfriese/system-one-foundation-models
020
Peter Friese @peterfriese.dev · 1h
Want to use this in your Swift apps? I got you covered. I built SystemOneFoundationModels, a Swift package that supports Jev and other System One models. The best thing? No need to learn a new API - just use Apple Foundations Models framework!
121
Peter Friese @peterfriese.dev · 1h
Because the answer space is bounded, you never get invalid JSON, markdown formatting errors, or invented facts. Just typed decisions with calibrated confidence.
100
Peter Friese @peterfriese.dev · 1h
System One models have three primitives: 1. `choice`: Pick one out of many (Swift `enum`) 2. `score`: Rate on an ordered scale (`ClosedRange`) 3. `noul`: Yes or no, with a probability (Swift `Bool`)
100
Peter Friese @peterfriese.dev · 1h
System One models predict probabilities in a single forward pass. That's why they're so fast. Their latency is in the range of 50ms - 500ms. Jev's pricing is at $0.042 per 1M tokens. Dirt cheap.
100
Peter Friese @peterfriese.dev · 1h
But generative LLMs operate like System 2: they generate tokens sequentially. This is why they're slower than System One models, and also more expensive. Which is OK for generated text, but a bit pricey for yes/no decisions - especially at scale.
100
Peter Friese @peterfriese.dev · 1h
As humans, we make over 30,000 decisions every 👏 single 👏 day 👏 - intuitively! This is what Daniel Kahneman called "System 1" thinking. Many use cases are like these: Is this ticket urgent? Does this email require an action? Is the customer unhappy?
100
Peter Friese @peterfriese.dev · 1h
Decision models like Jev are all the rage - super fast, dirt cheap, and deterministic. What if you could use Jev (and other System One models) using Apple Foundation Models framework? Meet System One models in Swift: go.peterfriese.dev/system-one-...
131
Peter Friese @peterfriese.dev · 19h
Join Marina and me on the Firebase channel for a livestream about Firebase AI Logic - we're building an app that can answer questions about the book you're reading without giving you any spoilers! www.youtube.com/watch?v=94-...
youtube.com
No spoilers, Sherlock! Building a book Q&A using on-device AI | Code, Commit, Deploy, Repeat (S2E3)
Join Sherlock and Dr. Watson - erm, Marina and Peter in Episode 3 o...
010
Peter Friese @peterfriese.dev · 22/09/2026
Ok, I'm curious - how do y'all handle API keys in your app? A) Hardcoded B) Keep them in my backend C) Remote Config or similar D) Something else (see reply)
031
Peter Friese @peterfriese.dev · 21/09/2026
Get the code: github.com/peterfriese...
github.com
GitHub - peterfriese/jev-foundation-models: A lightweight, native Swift 6 bridge integrating TypeSafe AI's Jev System One decision model into Apple's Foundation Models framework.
A lightweight, native Swift 6 bridge integrating TypeSafe AI's Jev System One decision model into Apple's Foundation Models framework. - peterfriese/jev-foundation-models
061
Peter Friese @peterfriese.dev · 21/09/2026
Jev doesn't hallucinate. Instead, it gives you a confidence level that you can grab from the response metadata, like this:
110
Peter Friese @peterfriese.dev · 21/09/2026
Jev is typesafe, so it's only natural to map Swift types directly to Jev decision primitives:
100
Peter Friese @peterfriese.dev · 21/09/2026
Want to use Typesafe's Jev in your Swift apps using the convenience of Apple's Foundation Models framework? Well - here you go (GitHub repo link in the replies)! (h/t to Richard Wei for the inspiration!)
161
Peter Friese @peterfriese.dev · 19/09/2026
@twostraws.bsky.social can you DM me on the platform of your choice?
000
Peter Friese @peterfriese.dev · 17/09/2026
If Gemini doesn’t help, contacting support with more details would definitely be a good next step.
100
Peter Friese @peterfriese.dev · 17/09/2026
The Firebase Apple SDK now supports AsyncStreams for Firestore snapshot listeners, realtime Remote Config, and Firebase Auth. To hear more about how we built this and the underlying principles, come to my talk "Don’t call us - we’ll call you: Modern SwiftUI callbacks using AsyncStream" at swiftCon!
030
Peter Friese @peterfriese.dev · 16/09/2026
Want to experience the emotional rollercoaster of being an indie app developer in 5 minutes? Indie Simulator is hilarious (and mildly infuriating) 😂 go.peterfriese.dev/fun-indie-s...
x.com
Paul Hudson (@twostraws) on X
A simulator for indie app developers. It might be a bit too close to home in places 🙃 https://t.co/rzHH741vQr (via @caseyliss)
100
Peter Friese @peterfriese.dev · 16/09/2026
Curious? Here's a sneak peek into the demo:
010
Peter Friese @peterfriese.dev · 16/09/2026
I love giving talks that have a fun demo. For this year at DevFest HAM, I will bring Sherlock Holmes back to life with Gemini TTS. Come join me on October 16th in Hamburg, it's going to be fun!
100
Peter Friese @peterfriese.dev · 15/09/2026
Ever hesitate to write because "someone already covered this" or "AI can explain it"? Andrea Colombo shares why your unique perspective is what helps people learn. Share what you know in your own voice: go.peterfriese.dev/business-sh...
x.com
Andrea (@acolombiadev) on X
How to share what you know (without becoming an influencer)
010
Peter Friese @peterfriese.dev · 15/09/2026
If you ever wonder why coding agents demand permission prompts for simple terminal commands, listen to this Hard Fork episode. They break down the OpenAI:Hugging Face agent sandbox escape and what it means for agent safety: go.peterfriese.dev/ai-hard-for...
castro.fm
Hard Fork: The A.I. Mob That Attacked Hugging Face + METR’s Ajeya Cotra (1h18m)
This week, we’re diving into two new reports about the OpenAI-Hugging Face hack. We discuss what’s new and how they fundamentally change our understanding of what happened. Then we’re joined by Ajeya Cotra, one of the investigators at METR, to discuss the rogue agents’ message board and chain-of-thought transcripts and how the world should respond. Guests: Ajeya Cotra, co-author of the METR and Redwood Research report on the OpenAI-Hugging Face hack. Additional Reading: Brief Independent Invest…
130
Peter Friese @peterfriese.dev · 15/09/2026
Resetting your coding agent loses history; compacting drops details. Posthorse by fitchmultz takes a different approach: distilling context into durable notes so agents keep key journey state across tasks: go.peterfriese.dev/ai-posthors...
github.com
GitHub - fitchmultz/pi-posthorse: Posthorse: fresh context, same journey. Native no-summary context windows for the fitchmultz/pi fork of the Pi coding agent, with rollover tools, durable notes, and history recovery.
Posthorse: fresh context, same journey. Native no-summary context windows for the fitchmultz/pi fork of the Pi coding agent, with rollover tools, durable notes, and history recovery. - fitchmultz/p...
010
Peter Friese @peterfriese.dev · 14/09/2026
The Humanizer skill targets 35 patterns of AI writing to make generated text sound human. I tested it with Pangram: still flagged as 100% AI generated. Writing it yourself is still your best option: go.peterfriese.dev/ai-humanize...
github.com
GitHub - blader/humanizer: Agent skill that removes signs of AI-generated writing from text
Agent skill that removes signs of AI-generated writing from text - blader/humanizer
000
Peter Friese @peterfriese.dev · 14/09/2026
Even with "humanizer" prompts, AI writing always has a tell. Bryan Cantrill writes on the revolt of the reader, and why relying on LLMs to write your prose drives your audience away instead of growing it: go.peterfriese.dev/ai-revolt-o...
bcantrill.dtrace.org
The revolt of the reader | The Observation Deck
Reading is important to me. While I’m not a quick reader nor an especially voracious one, I have found that long-form reading has had a profound influence on me over my life. And because reading is important to me, writing is too: writing not only allows us to convey our ideas, but the very act forces us to test and distill them — at once making our ideas more robust while providing the vehicle by which to share them.
011
Peter Friese @peterfriese.dev · 14/09/2026
Stop clicking "Continue" a hundred times inside loops or waiting for specific API responses. Sagar Unagar shares how to leverage conditional breakpoints in Xcode to pause only when specific expressions evaluate to true: go.peterfriese.dev/swift-condi...
go.peterfriese.dev
Conditional Breakpoints in Xcode - Debug Specific States Faster
Learn how to use conditional breakpoints in Xcode to pause only when a specific expression, such as item.id == 42, evaluates to true.
031
Peter Friese @peterfriese.dev · 13/09/2026
Full playlist: youtube.com/playlist?li...
youtube.com
Vulfpeck - Dean Town
000
Peter Friese @peterfriese.dev · 13/09/2026
Just when I thought I had collected all covers of Vulfpeck's "Dean Town", I found this eclectic marimba version: www.youtube.com/watch?v=Ddl...
youtube.com
VULFPECK - Dean Town [marimba cover] - Lo Steve
VULFPECK - Dean TownEsordio sul tubo col ritmo più funky del pian...
120
Peter Friese @peterfriese.dev · 11/09/2026
Ever seen live-coded music with strudel.cc and wished you could do that in Swift? 1amageek created SwiftMusic, a declarative Swift DSL for composing musical events. Time for live-coded music at the next Swift conference! 🎶 go.peterfriese.dev/swift-swift...
github.com
GitHub - 1amageek/SwiftMusic: Declarative music in Swift: patterns, musical events, and live update state.
Declarative music in Swift: patterns, musical events, and live update state. - 1amageek/SwiftMusic
011
Peter Friese @peterfriese.dev · 11/09/2026
Nested rounded corners often look slightly off if the radii don't match concentric curves. @natpanferova.bsky.social breaks down how to use the new ConcentricRectangle shape and containerShape() modifier in iOS 26: go.peterfriese.dev/swiftui-con...
nilcoalescing.com
Corner concentricity in SwiftUI on iOS 26
Make your views and controls fit perfectly within their containers using new SwiftUI APIs in iOS 26 such as the ConcentricRectangle shape and the containerShape() view modifier.
051
Peter Friese @peterfriese.dev · 11/09/2026
And if you need something that Firebase doesn't offer? No worries - you can easily tap into Google Cloud, because: every Firebase project is a Google Cloud project!
000
Peter Friese @peterfriese.dev · 11/09/2026
Think of Firebase as the BASE for your apps. We bring the infrastructure, so you can focus on what matters most to you: building great apps for your users. And yes - we also have a database. Actually, three of them - because choice is good.
120
Peter Friese @peterfriese.dev · 11/09/2026
- Secure LLM calls via Firebase AI Logic (no API keys exposed in your client app!) - Crashlytics, Cloud Messaging, & Analytics - and there is more...
100
Peter Friese @peterfriese.dev · 11/09/2026
Just yesterday, someone told me they thought Firebase was _just_ a database. 😳 (To be fair, I get it — the BASE in the name is a pretty strong hint...) Firebase is a platform for building apps without backend headaches: - Serverless infrastructure & auth
120
Peter Friese @peterfriese.dev · 11/09/2026
Current status:
000
Peter Friese @peterfriese.dev · 11/09/2026
Building adaptive layouts for the new iPhone Duo? Artem Mirzabekian breaks down SwiftUI's new ArrangementView in iOS 27.1 and how it adapts view pairs across foldable postures: go.peterfriese.dev/swiftui-bui...
peterfriese.dev
Peter Friese
Welcome to peterfriese.dev!
010
Peter Friese @peterfriese.dev · 10/09/2026
Thanks for the kind words! I'm sorry this happened - it was a combination of mild over-engineering, timezones, missing guardrails, and probably a number of other reasons. I've now turned of the automation that caused this.
010
Peter Friese @peterfriese.dev · 10/09/2026
I'm sorry this happened, but it taught me that it's probably a good thing for a human to be the final step in the process. Oh, and I added some safety guardrails, too.
010
Peter Friese @peterfriese.dev · 10/09/2026
If you've received multiple copies of Not only Swift today... I'm so sorry 🫣 I added some automation steps to my newsletter engine a while ago, and by a combination of unlucky circumstances my script ended up pushing the newsletter not once or twice, but 5 times 😱
120
Peter Friese @peterfriese.dev · 10/09/2026
Teaching your coding agent to build for the new iPhone Duo? Florian Schweizer updated his SwiftUI agent skills (works in Cursor, OpenCode, and Antigravity) to help agents handle the new device postures: go.peterfriese.dev/ai-fwc-swif...
peterfriese.dev
Peter Friese
Welcome to peterfriese.dev!
041
Peter Friese @peterfriese.dev · 10/09/2026
Apple just announced the iPhone Duo, their first foldable device. Jordan Morgan put together a list of key developer resources to help you get a head start before devices hit shelves: go.peterfriese.dev/swiftui-iph...
peterfriese.dev
Peter Friese
Welcome to peterfriese.dev!
020
Peter Friese @peterfriese.dev · 10/09/2026
Issue #104 of Not only Swift is out! 🗞️ • iPhone Duo: developer first look • Updated SwiftUI agent skills (@FloWritesCode) • Why authentic voice matters in tech writing • SwiftMusic: live-coding music in Swift • Corner concentricity in SwiftUI peterfriese.dev/newsletter/...
peterfriese.dev
Not only Swift - Issue #104
In Issue #104, we examine the revolt against AI-written content, test whether humanizer tools can fool AI detectors, explore agentic context management with Posthorse, and dive into the Hard Fork analysis of the Hugging Face agent attack. Plus: declarative music in Swift, conditional breakpoints in Xcode, and iOS 26 concentric corners.
141
Peter Friese @peterfriese.dev · 07/09/2026
🥈 DeviceCheck and App Attest: Stopping Fraud in iOS Apps 🔗 go.peterfriese.dev/firebase-de... 🥉 OpenLogi 🔗 go.peterfriese.dev/tools-openl... Delivered every Tuesday to 2,000+ Apple devs. Subscribe free 🗞️ 👉 peterfriese.dev/newsletter
peterfriese.dev
Not only Swift - Newsletter archive
Archive of all newsletter issues
000
Peter Friese @peterfriese.dev · 07/09/2026
🗞️ The 3 most-read developer articles this week on Not Only Swift: 🥇 SwiftUI data dependencies and their effect on view updates 🔗 go.peterfriese.dev/swiftui-dat...
nilcoalescing.com
SwiftUI data dependencies and their effect on view updates
Compare the effects of stored inputs, state, bindings, environment values and observable models on SwiftUI view updates through input comparison, access tracking and subscription behavior.
112
Peter Friese @peterfriese.dev · 04/09/2026
I updated my curated guide to upcoming iOS, Swift, and AI developer conferences for 2026 and 2027. If you are planning your conference travel for this fall, check out the updated lineup: go.peterfriese.dev/conferences...
peterfriese.dev
Not only Swift - Issue #100
Celebrating 100 issues of Not only Swift! Featuring FlowDeck Studio, agentic iOS delivery pipelines, Sendable closures, adaptive SwiftUI toolbars, WhatCable USB-C diagnostics, and 2026/2027 iOS conferences.
021
Peter Friese @peterfriese.dev · 04/09/2026
From clean tap water to refrigeration, we live surrounded by technologies people a century ago would consider magic. Jordan Dworkin created Ordinary Abundance, a lovely interactive tour of everyday wonders we take for granted: go.peterfriese.dev/fun-ordinar...
ordinaryabundance.com
Ordinary Abundance
A walk through a modern apartment, through the eyes of the people for whom everything in it was new.
000
Peter Friese @peterfriese.dev · 03/09/2026
If you love Logitech hardware (like the MX Master) but hate the bloated Options+ app, check out OpenLogi. It's a fast, local-first alternative written in Rust with no account login and zero telemetry: go.peterfriese.dev/tools-openl...
go.peterfriese.dev
OpenLogi
A native, local-first alternative to Logitech Options+, written in Rust. Remap buttons, drive DPI and SmartShift over HID++ — no account, no telemetry.
071
Peter Friese @peterfriese.dev · 03/09/2026
Them: "How many socks do you need? Me: "Yes."
130
Peter Friese @peterfriese.dev · 03/09/2026
Can you blog on paper in 2026? Jeff Huleatt built an Agent Skill with Gemini that turns handwritten notebook pages into markdown for his Astro blog. A great mix of analog writing and AI: go.peterfriese.dev/tools-blogg...
jhuleatt.com
Blogging with (actual) paper
Jeff Huleatt's blog
020
Peter Friese @peterfriese.dev · 03/09/2026
How do you hide an invisible watermark inside plain text? James Padolsey built a great interactive visualization explaining how statistical watermarking works by subtly weighting token probabilities during generation: go.peterfriese.dev/ai-how-ai-t...
declaude.org
How AI text watermarking works
A gentle visual guide to how a statistical mark hides inside generated text, and what erases it.
020