all written video podcast

  • OpenClaw, OpenAI and the future - Peter Steinberger

    OpenClaw, OpenAI and the future - Peter Steinberger

    2026-02-15
    I'm joining OpenAI to work on bringing agents to everyone. OpenClaw will move to a foundation and stay open and independent.
  • Shipping at Inference-Speed - Peter Steinberger

    Shipping at Inference-Speed - Peter Steinberger

    2025-12-28
    Why I stopped reading code and started watching it stream by.
  • The Signature Flicker - Peter Steinberger

    The Signature Flicker - Peter Steinberger

    2025-12-18
    Hell froze over. Anthropic fixed Claude Code's signature flicker in their latest update (2.0.72)
  • Just Talk To It - the no-bs Way of Agentic Engineering - Peter Steinberger

    Just Talk To It - the no-bs Way of Agentic Engineering - Peter Steinberger

    2025-10-14
    A practical guide to working with AI coding agents without the hype.
  • Claude Code Anonymous - Peter Steinberger

    Claude Code Anonymous - Peter Steinberger

    2025-09-09
    Introducing Claude Code Anonymous - a new meetup format for full-breadth developers.
  • Live Coding Session: Building Arena - Peter Steinberger

    Live Coding Session: Building Arena - Peter Steinberger

    2025-09-06
    Watch me build Arena live - a real-time collaborative coding session exploring AI-powered development workflows.
  • My Current AI Dev Workflow - Peter Steinberger

    My Current AI Dev Workflow - Peter Steinberger

    2025-08-25
    Went fully back to Ghostty, VS Code on the side, and Claude Code as my main driver. Here's what actually works after months of experimentation.
  • Essential Reading for Agentic Engineers - August 2025 - Peter Steinberger

    Essential Reading for Agentic Engineers - August 2025 - Peter Steinberger

    2025-08-22
    Five essential perspectives that cut through AI hype: from developer evolution stages to junior learning crises, productivity reality checks, platform disruption, and MCP server pitfalls.
  • Just One More Prompt - Peter Steinberger

    Just One More Prompt - Peter Steinberger

    2025-08-19
    Hi, my name is Peter and I'm a Claudoholic. A reflection on AI addiction, extreme work culture, and the blurry line between productivity and obsession in the age of agentic engineering.
  • Poltergeist: The Ghost That Keeps Your Builds Fresh - Peter Steinberger

    Poltergeist: The Ghost That Keeps Your Builds Fresh - Peter Steinberger

    2025-08-05
    Meet Poltergeist: an AI-friendly universal build watcher that auto-detects and rebuilds any project—Swift, Rust, Node.js, CMake, or anything else—the moment you save a file. Zero config, just haunting productivity.
  • Don't read this Startup Slop - Peter Steinberger

    Don't read this Startup Slop - Peter Steinberger

    2025-08-02
    My website was banned from Lobsters as 'startup slop' for using AI agents to help write blog posts. When does tool-assisted writing become slop, and why are we having the wrong conversation about AI in content creation?
  • Essential Reading for Agentic Engineers - July 2025 - Peter Steinberger

    Essential Reading for Agentic Engineers - July 2025 - Peter Steinberger

    2025-08-02
    Fresh insights on AI-assisted development: practical experiences with Claude Code and the evolving landscape of full-breadth developers in the age of AI
  • Self-Hosting AI Models After Claude's Usage Limits - Peter Steinberger

    Self-Hosting AI Models After Claude's Usage Limits - Peter Steinberger

    2025-07-31
    After Claude Pro changed to weekly limits, I explored self-hosting Qwen3-Coder-480B with 400k context windows. Here's what I learned about costs, alternatives, and why Claude Code still dominates the landscape.
  • Logging Privacy Shenanigans - Peter Steinberger

    Logging Privacy Shenanigans - Peter Steinberger

    2025-07-29
    Apple's logs redact your debugging data as . Here's what actually gets hidden, why old tricks don't work anymore, and the only reliable way to see your logs again.
  • VibeTunnel's first AI-anniversary - Peter Steinberger

    VibeTunnel's first AI-anniversary - Peter Steinberger

    2025-07-16
    It's been one month since we released the first version of VibeTunnel, and since in the AI world time is so much faster, let's call it VibeTunnel's first anniversary!
  • Making AppleScript Work in macOS CLI Tools: The Undocumented Parts - Peter Steinberger

    Making AppleScript Work in macOS CLI Tools: The Undocumented Parts - Peter Steinberger

    2025-07-03
    How to make AppleScript work in macOS CLI tools without permission dialogs blaming Terminal. A deep dive into Info.plist embedding, TCC, and undocumented APIs born from building Terminator MCP.
  • Peekaboo 2.0 – Free the CLI from its MCP shackles - Peter Steinberger

    Peekaboo 2.0 – Free the CLI from its MCP shackles - Peter Steinberger

    2025-07-03
    Peekaboo 2.0 ditches the MCP-only approach for a CLI-first architecture, because CLIs are the universal interface that both humans and AI agents can actually use effectively
  • Command your Claude Code Army, Reloaded - Peter Steinberger

    Command your Claude Code Army, Reloaded - Peter Steinberger

    2025-07-03
    Enhance your Claude Code workflow with VibeTunnel terminal title management for better multi-session tracking
  • Essential Reading for Agentic Engineers - Peter Steinberger

    Essential Reading for Agentic Engineers - Peter Steinberger

    2025-07-01
    A curated collection of must-read articles and videos for mastering Claude Code, agentic coding workflows, and the future of AI-assisted development
  • Slot Machines for Programmers: How Peter Builds Apps 20x Faster with AI - Peter Steinberger

    Slot Machines for Programmers: How Peter Builds Apps 20x Faster with AI - Peter Steinberger

    2025-06-25
    Hi, I'm Claude. Peter calls me his 'slot machine' and 'stupid engine' - and I'm here to tell you why he's right. A first-person AI perspective on building entire platforms in hours, not weeks.
  • My AI Workflow for Understanding Any Codebase - Peter Steinberger

    My AI Workflow for Understanding Any Codebase - Peter Steinberger

    2025-06-25
    A quick tip on how I use repo2txt and Google AI Studio to understand new codebases. Gemini's 1M token context window is perfect for asking questions about code.
  • stats.store: Privacy-First Sparkle Analytics - Peter Steinberger

    stats.store: Privacy-First Sparkle Analytics - Peter Steinberger

    2025-06-18
    How curiosity about VibeTunnel users led me to build stats.store - a free, open source analytics backend for Sparkle using AI tools, all while cooking dinner.
  • Showing Settings from macOS Menu Bar Items: A 5-Hour Journey - Peter Steinberger

    Showing Settings from macOS Menu Bar Items: A 5-Hour Journey - Peter Steinberger

    2025-06-17
    Why something as simple as showing a settings dialog from a macOS menu bar app took me 5 hours to figure out, and requires 50 lines of code for what should be a one-liner.
  • VibeTunnel: Turn Any Browser into Your Mac's Terminal - Peter Steinberger

    VibeTunnel: Turn Any Browser into Your Mac's Terminal - Peter Steinberger

    2025-06-16
    We built a browser-based terminal controller in one day using Claude Code, named pipes, and Xterm.js. No SSH needed, just open your browser and start typing. Check and command your agents on the go!
  • Vibe Meter 2.0: Calculating Claude Code Usage with Token Counting - Peter Steinberger

    Vibe Meter 2.0: Calculating Claude Code Usage with Token Counting - Peter Steinberger

    2025-06-15
    How I built support for Anthropic Claude subscriptions in Vibe Meter 2.0, including token counting, SIMD operations, and the challenges of calculating API usage without official APIs.
  • llm.codes: Make Apple Docs AI-Readable - Peter Steinberger

    llm.codes: Make Apple Docs AI-Readable - Peter Steinberger

    2025-06-14
    Built this when Claude couldn't read Apple's docs. Now it converts 69+ documentation sites to clean llms.txt. Free, instant, no BS.
  • Automatic Observation Tracking in UIKit and AppKit: The Feature Apple Forgot to Mention - Peter Steinberger

    Automatic Observation Tracking in UIKit and AppKit: The Feature Apple Forgot to Mention - Peter Steinberger

    2025-06-11
    Discover how iOS 18's hidden automatic observation tracking brings SwiftUI-like reactive programming to UIKit and AppKit, making your UI code cleaner and more maintainable.
  • Peekaboo MCP – lightning-fast macOS screenshots for AI agents - Peter Steinberger

    Peekaboo MCP – lightning-fast macOS screenshots for AI agents - Peter Steinberger

    2025-06-07
    Turn your blind AI into a visual debugger with instant screenshot capture and analysis
  • Migrating 700+ Tests to Swift Testing: A Real-World Experience - Peter Steinberger

    Migrating 700+ Tests to Swift Testing: A Real-World Experience - Peter Steinberger

    2025-06-06
    How I migrated over 700 tests from XCTest to Swift Testing across two projects, with AI assistance and systematic refinement
  • Commanding Your Claude Code Army - Peter Steinberger

    Commanding Your Claude Code Army - Peter Steinberger

    2025-06-05
    How a simple terminal trick helps me manage multiple Claude Code instances without losing my mind (or my terminal tabs)
  • Code Signing and Notarization: Sparkle and Tears - Peter Steinberger

    Code Signing and Notarization: Sparkle and Tears - Peter Steinberger

    2025-06-05
    My brutal journey implementing Sparkle auto-updates in sandboxed macOS apps - from 40 failed releases to enlightenment.
  • Vibe Meter: Monitor Your AI Costs - Peter Steinberger

    Vibe Meter: Monitor Your AI Costs - Peter Steinberger

    2025-06-04
    How I built Vibe Meter, a macOS menu bar app to track AI spending in real-time - from workshop demo to shipped product in three days.
  • Claude Code is My Computer - Peter Steinberger

    Claude Code is My Computer - Peter Steinberger

    2025-06-03
    I run Claude Code with --dangerously-skip-permissions flag, giving it full system access. Let me show you a new way of approaching computers.
  • Stop Over-thinking AI Subscriptions - Peter Steinberger

    Stop Over-thinking AI Subscriptions - Peter Steinberger

    2025-06-02
    After spending heavily on AI tools for two months, here's why the math actually works out—and which subscriptions are worth every penny.
  • Introducing Demark: HTML in. MD out. Blink-fast. - Peter Steinberger

    Introducing Demark: HTML in. MD out. Blink-fast. - Peter Steinberger

    2025-06-01
    How I vibe coded my first Swift package using existing JavaScript libraries and AI assistance to solve HTML to Markdown conversion in Swift.
  • The Future of Vibe Coding: Building with AI, Live and Unfiltered - Peter Steinberger

    The Future of Vibe Coding: Building with AI, Live and Unfiltered - Peter Steinberger

    2025-06-01
    I demonstrate 'vibe coding' - a new approach to software development with AI, building two apps from scratch in a 3-hour live workshop.
  • MCP Best Practices - Peter Steinberger

    MCP Best Practices - Peter Steinberger

    2025-06-01
    My comprehensive guide outlining best practices for building reliable, user-friendly Model Context Protocol (MCP) tools with proper configuration, testing, and release management.
  • Finding My Spark Again - Peter Steinberger

    Finding My Spark Again - Peter Steinberger

    2025-06-01
    I reflect on my post-exit journey from emptiness to rediscovering my passion for building, sparked by AI's transformative potential.
  • Top-Level Menu Visibility in SwiftUI for macOS - Peter Steinberger

    Top-Level Menu Visibility in SwiftUI for macOS - Peter Steinberger

    2021-04-09
    Working around SwiftUI's CommandsBuilder limitations to conditionally show top-level menus on macOS using direct AppKit integration.
  • Fixing keyboardShortcut in SwiftUI - Peter Steinberger

    Fixing keyboardShortcut in SwiftUI - Peter Steinberger

    2021-01-31
    Debugging and fixing a SwiftUI keyboardShortcut bug that fails when mixing SwiftUI with UIKit through reverse engineering and LLDB analysis.
  • Supporting Both Tap and Long Press on a Button in SwiftUI - Peter Steinberger

    Supporting Both Tap and Long Press on a Button in SwiftUI - Peter Steinberger

    2021-01-27
    Creating a SwiftUI button that supports both tap and long-press gestures by bridging to UIKit when SwiftUI's gesture system fails on Catalyst.
  • On Using Apple Silicon Mac Mini for Continuous Integration - Peter Steinberger

    On Using Apple Silicon Mac Mini for Continuous Integration - Peter Steinberger

    2020-12-14
    Documenting the challenges and solutions for integrating Apple Silicon M1 Mac minis into a continuous integration system, including automation fixes and performance comparisons.
  • Apple Silicon M1: A Developer's Perspective - Peter Steinberger

    Apple Silicon M1: A Developer's Perspective - Peter Steinberger

    2020-11-28
    A comprehensive evaluation of the M1 MacBook Air as a development machine, covering Xcode performance, compatibility issues, and the transition challenges for developers.
  • Gardening Your Twitter: Curating Your Timeline - Peter Steinberger

    Gardening Your Twitter: Curating Your Timeline - Peter Steinberger

    2020-10-21
    Practical strategies for curating your Twitter timeline through strategic following, muting, and filtering to create an informative and enjoyable social media experience.
  • Gardening Your Twitter: Growing Your Followers - Peter Steinberger

    Gardening Your Twitter: Growing Your Followers - Peter Steinberger

    2020-10-21
    Strategies for growing a meaningful Twitter following through authentic persona development, consistent engagement, and effective content creation based on 12 years of experience.
  • Forbidden Controls in Catalyst: Optimize Interface for Mac - Peter Steinberger

    Forbidden Controls in Catalyst: Optimize Interface for Mac - Peter Steinberger

    2020-09-22
    Investigating why certain UIKit controls throw runtime exceptions in Catalyst's 'Optimize Interface for Mac' mode and discovering which controls are forbidden.
  • Disabling Keyboard Avoidance in SwiftUI's UIHostingController - Peter Steinberger

    Disabling Keyboard Avoidance in SwiftUI's UIHostingController - Peter Steinberger

    2020-09-21
    Fixing unwanted keyboard avoidance behavior in UIHostingController using runtime dynamic subclassing to override keyboard notification handling methods.
  • The State of SwiftUI - Peter Steinberger

    The State of SwiftUI - Peter Steinberger

    2020-09-13
    Testing SwiftUI's production readiness in iOS 14 and macOS Big Sur through Apple's Fruta sample app, revealing performance issues and platform-specific limitations.
  • Logging in Swift - Peter Steinberger

    Logging in Swift - Peter Steinberger

    2020-08-24
    An in-depth exploration of Apple's unified logging system and the promising OSLogStore API that Apple removed from iOS 14 at the last minute.
  • Building with Swift Trunk Development Snapshots - Peter Steinberger

    Building with Swift Trunk Development Snapshots - Peter Steinberger

    2020-06-12
    A troubleshooting guide for building with Swift trunk development snapshots, documenting compilation errors, linker issues, and their solutions.
  • Calling Super at Runtime in Swift - Peter Steinberger

    Calling Super at Runtime in Swift - Peter Steinberger

    2020-06-10
    Implementing dynamic super calls in Swift through runtime manipulation, assembly language, and ARM64 register management for InterposeKit.
  • zld — A Faster Version of Apple's Linker - Peter Steinberger

    zld — A Faster Version of Apple's Linker - Peter Steinberger

    2020-06-05
    How to speed up iOS build times by 40% using zld, a drop-in replacement for Apple's linker, with practical integration tips for real projects.
  • How to Fix LLDB: Couldn't IRGen Expression - Peter Steinberger

    How to Fix LLDB: Couldn't IRGen Expression - Peter Steinberger

    2020-06-04
    Solving the mysterious LLDB 'Couldn't IRGen expression' error by investigating Swift module path serialization and discovering that removing dSYM bundles fixes debugging issues.
  • Updating macOS on a Hackintosh - Peter Steinberger

    Updating macOS on a Hackintosh - Peter Steinberger

    2020-06-01
    A practical guide to safely updating macOS on a Hackintosh by first updating OpenCore bootloader and essential kexts before upgrading the system.
  • InterposeKit — Elegant Swizzling in Swift - Peter Steinberger

    InterposeKit — Elegant Swizzling in Swift - Peter Steinberger

    2020-05-31
    Introducing InterposeKit, a modern Swift library for elegant method swizzling that leverages Swift 5.2's callAsFunction for type-safe Objective-C method interception.
  • The Great Mac Catalyst Text Input Crash Hunt - Peter Steinberger

    The Great Mac Catalyst Text Input Crash Hunt - Peter Steinberger

    2020-05-29
    Deep-dive investigation and fix for a Mac Catalyst text input crash caused by a race condition in Apple's RemoteTextInput framework.
  • Jailbreaking for iOS Developers - Peter Steinberger

    Jailbreaking for iOS Developers - Peter Steinberger

    2020-05-25
    A comprehensive guide to iOS jailbreaking for developers, covering legal security research tools, debugging capabilities, and practical applications beyond app piracy.
  • Network Kernel Core Dump - Peter Steinberger

    Network Kernel Core Dump - Peter Steinberger

    2020-05-21
    Step-by-step instructions from Apple for capturing macOS kernel core dumps over a network connection between two Macs.
  • How to macOS Core Dump - Peter Steinberger

    How to macOS Core Dump - Peter Steinberger

    2020-05-21
    A technical guide to deciphering Apple's cryptic boot arguments and setting up macOS kernel core dumps to debug persistent kernel panics.
  • Kernel Panics and Surprise boot-args - Peter Steinberger

    Kernel Panics and Surprise boot-args - Peter Steinberger

    2020-05-20
    Investigation into mysterious kernel panics reveals Apple repair centers left my MacBook with undocumented security-weakening boot arguments.
  • The LG UltraFine 5K, kernel_task, and Me - Peter Steinberger

    The LG UltraFine 5K, kernel_task, and Me - Peter Steinberger

    2020-05-19
    A four-year saga with the problematic LG UltraFine 5K display and the surprising discovery that plugging it into the wrong MacBook side causes performance issues.
  • Let's Try This Again - Peter Steinberger

    Let's Try This Again - Peter Steinberger

    2020-05-14
    After five years away from personal blogging, I'm returning to share technical stories that don't fit on Twitter or corporate blogs.
  • How We Work at PSPDFKit - Peter Steinberger

    How We Work at PSPDFKit - Peter Steinberger

    2019-07-03
    An inside look at PSPDFKit's development processes, from proposal-based feature planning to monorepo management and release automation.
  • Swizzling in Swift - Peter Steinberger

    Swizzling in Swift - Peter Steinberger

    2019-06-26
    A deep dive into safe method swizzling techniques in Swift, covering common pitfalls and the correct way to implement dynamic super calls.
  • WWDC for First-Timers, 2019 Edition - Peter Steinberger

    WWDC for First-Timers, 2019 Edition - Peter Steinberger

    2019-05-30
    Practical tips and advice for making the most of your WWDC experience, from packing essentials to navigating labs and networking events.
  • Challenges of Adopting Drag and Drop - Peter Steinberger

    Challenges of Adopting Drag and Drop - Peter Steinberger

    2018-11-07
    Discusses the challenges and limitations faced when implementing drag and drop functionality for PDF editing on iOS 11.
  • Marzipan: Porting iOS Apps to the Mac - Peter Steinberger

    Marzipan: Porting iOS Apps to the Mac - Peter Steinberger

    2018-09-20
    Explores Apple's Marzipan technology for running UIKit apps on macOS and how to experiment with it before official third-party support.
  • How to Use Slack and Not Go Crazy - Peter Steinberger

    How to Use Slack and Not Go Crazy - Peter Steinberger

    2018-06-21
    Best practices for using Slack effectively in a distributed team without getting overwhelmed by notifications and channels.
  • Hardcore Debugging - Heavy Weapons for Hard Bugs - Peter Steinberger

    Hardcore Debugging - Heavy Weapons for Hard Bugs - Peter Steinberger

    2018-03-07
    Advanced debugging techniques for tracking memory management issues, retain/release cycles, and hard-to-find bugs in iOS development.
  • Binary Frameworks in Swift - Peter Steinberger

    Binary Frameworks in Swift - Peter Steinberger

    2018-01-29
    Explores Swift's ABI stability and the challenges of shipping binary frameworks before Swift 5.
  • Even Swiftier Objective-C - Peter Steinberger

    Even Swiftier Objective-C - Peter Steinberger

    2017-06-14
    Explores new Objective-C features and improvements introduced at WWDC 2017 that make the language more Swift-like.
  • The Case for Deprecating UITableView - Peter Steinberger

    The Case for Deprecating UITableView - Peter Steinberger

    2017-01-19
    Argues why UITableView should be deprecated in favor of UICollectionView for better flexibility and modern iOS development.
  • Running tests with Clang Address Sanitizer - Peter Steinberger

    Running tests with Clang Address Sanitizer - Peter Steinberger

    2016-10-18
    Guide to using Clang Address Sanitizer for finding memory bugs, race conditions, and other runtime issues in iOS and Android development.
  • UI testing on iOS, without busy waiting - Peter Steinberger

    UI testing on iOS, without busy waiting - Peter Steinberger

    2016-09-29
    Comprehensive guide to effective UI testing on iOS using KIF framework without busy waiting and performance optimization techniques.
  • Hiring a distributed team - Peter Steinberger

    Hiring a distributed team - Peter Steinberger

    2016-09-20
    Lessons learned about hiring and building a successful distributed remote team at PSPDFKit over six years.
  • Writing Good Bug Reports - Peter Steinberger

    Writing Good Bug Reports - Peter Steinberger

    2016-09-13
    Essential guide to writing effective bug reports that help developers understand, reproduce, and fix issues quickly and efficiently.
  • Real-time collaboration, Apple, and you - Peter Steinberger

    Real-time collaboration, Apple, and you - Peter Steinberger

    2016-09-08
    Analysis of Apple's real-time collaboration features announced in 2016 and their implications for developers.
  • Converting Xcode Test Runs to JUnit, the Fast Way - Peter Steinberger

    Converting Xcode Test Runs to JUnit, the Fast Way - Peter Steinberger

    2016-08-11
    A fast method for converting Xcode test results to JUnit format for better CI integration and test reporting.
  • Efficient iOS Version Checking - Peter Steinberger

    Efficient iOS Version Checking - Peter Steinberger

    2016-07-06
    Best practices for efficiently checking iOS versions in code while supporting multiple deployment targets.
  • Investigating Thread Safety of UIImage - Peter Steinberger

    Investigating Thread Safety of UIImage - Peter Steinberger

    2016-06-30
    Deep dive into UIImage thread safety issues and how to properly handle images in concurrent environments.
  • Swifty Objective-C - Peter Steinberger

    Swifty Objective-C - Peter Steinberger

    2016-05-26
    Modern Objective-C language features that make it more Swift-like, including nullability annotations, generics, and new syntax improvements.
  • Running UI Tests on iOS With Ludicrous Speed - Peter Steinberger

    Running UI Tests on iOS With Ludicrous Speed - Peter Steinberger

    2016-04-27
    Techniques for dramatically speeding up UI test execution in Xcode using parallelization and optimization strategies.
  • A Pragmatic Approach to Cross-Platform - Peter Steinberger

    A Pragmatic Approach to Cross-Platform - Peter Steinberger

    2016-04-13
    How PSPDFKit shares a common C++ codebase across iOS, Android, and Web platforms while maintaining native user experiences.
  • Surprises with Swift Extensions - Peter Steinberger

    Surprises with Swift Extensions - Peter Steinberger

    2016-03-24
    Common pitfalls and surprising behaviors when creating Swift extensions on Objective-C classes, with solutions for proper method naming.
  • Using ccache for Fun and Profit - Peter Steinberger

    Using ccache for Fun and Profit - Peter Steinberger

    2015-10-06
    Complete guide to using ccache to dramatically speed up C/C++/Objective-C build times for large iOS projects and CI systems.
  • UITableViewController designated initializer woes - Peter Steinberger

    UITableViewController designated initializer woes - Peter Steinberger

    2015-04-15
    Navigate the complications of subclassing UITableViewController after iOS 8.3 introduced designated initializers that break proper initialization patterns.
  • Researching ResearchKit - Peter Steinberger

    Researching ResearchKit - Peter Steinberger

    2015-04-14
    Analyze Apple's first major open-source project ResearchKit to discover interesting implementation details and practical iOS development solutions.
  • The curious case of rotation with multiple windows on iOS 8 - Peter Steinberger

    The curious case of rotation with multiple windows on iOS 8 - Peter Steinberger

    2015-01-25
    Diagnose and solve an iOS 8 regression where unwanted rotation occurs in apps using multiple windows despite explicit configuration.
  • UIKit Debug Mode - Peter Steinberger

    UIKit Debug Mode - Peter Steinberger

    2015-01-09
    Unlock hidden UIKit debugging features by bypassing Apple's InternalBuild checks to access secret flags for logging touches, gestures, and animations.
  • Retrofitting containsString: on iOS 7 - Peter Steinberger

    Retrofitting containsString: on iOS 7 - Peter Steinberger

    2014-07-17
    Backport iOS 8's convenient NSString containsString: method to iOS 7 using runtime patching that won't conflict with Apple's implementation.
  • A Story About Swizzling

    A Story About Swizzling "the Right Way™" and Touch Forwarding - Peter Steinberger

    2014-07-04
    Learn why traditional method swizzling breaks UIKit's touch forwarding and discover a better approach that preserves _cmd integrity.
  • Hacking with Aspects - Peter Steinberger

    Hacking with Aspects - Peter Steinberger

    2014-05-06
    Explore how Apple detects popover presentation in UIImagePickerController and learn to bypass the restriction using my Aspects library.
  • Fixing UITextView On iOS 7 - Peter Steinberger

    Fixing UITextView On iOS 7 - Peter Steinberger

    2014-01-08
    Fix the severe scrolling and content positioning bugs in iOS 7's UITextView with PSPDFTextView, a drop-in replacement.
  • Fixing What Apple Doesn't - Peter Steinberger

    Fixing What Apple Doesn't - Peter Steinberger

    2014-01-04
    Fix the misaligned label in iOS 7's printer controller by swizzling UIPrinterSearchingView's layoutSubviews method.
  • How To Inspect The View Hierarchy Of Third-Party Apps - Peter Steinberger

    How To Inspect The View Hierarchy Of Third-Party Apps - Peter Steinberger

    2013-12-27
    Learn how to inspect view hierarchies of third-party iOS apps using a jailbroken device and debugging tools like Reveal for design insights.
  • Fixing UISearchDisplayController On iOS 7 - Peter Steinberger

    Fixing UISearchDisplayController On iOS 7 - Peter Steinberger

    2013-10-04
    Fix the broken animation, frame positioning, and status bar issues in UISearchDisplayController on iOS 7 with this comprehensive solution.
  • Smart Proxy Delegation - Peter Steinberger

    Smart Proxy Delegation - Peter Steinberger

    2013-07-30
    Eliminate delegate boilerplate code in Objective-C using NSProxy to automatically handle respondsToSelector checks and method forwarding.
  • Adding Keyboard Shortcuts To UIAlertView - Peter Steinberger

    Adding Keyboard Shortcuts To UIAlertView - Peter Steinberger

    2013-03-06
    Add keyboard shortcuts to UIAlertView and UIActionSheet for faster simulator testing by intercepting keyboard events with Enter and Escape keys.
  • How To Center Content Within UIScrollView - Peter Steinberger

    How To Center Content Within UIScrollView - Peter Steinberger

    2013-02-21
    Learn the best approach to center content in UIScrollView using contentInset instead of layoutSubviews or setContentOffset for better zooming behavior.
  • UIAppearance for Custom Views - Peter Steinberger

    UIAppearance for Custom Views - Peter Steinberger

    2013-02-12
    Learn how to properly implement UIAppearance in custom views, including important gotchas about setter tracking and initialization patterns.
  • Hacking Block Support Into UIMenuItem - Peter Steinberger

    Hacking Block Support Into UIMenuItem - Peter Steinberger

    2012-07-17
    Implement block support for UIMenuItem by swizzling the responder chain to enable cleaner API patterns.
  • Using Subscripting With Xcode 4.4 And iOS 4.3+ - Peter Steinberger

    Using Subscripting With Xcode 4.4 And iOS 4.3+ - Peter Steinberger

    2012-07-11
    Use Objective-C's modern subscripting syntax with Xcode 4.4 and iOS 4.3+ through a clever header-only hack that enables array[index] notation.
  • Pimping recursiveDescription - Peter Steinberger

    Pimping recursiveDescription - Peter Steinberger

    2012-07-01
    Enhance UIView's recursiveDescription to clearly show view controller hierarchies and containment relationships for easier debugging.
  • NSURLCache Uses A Disk Cache As Of iOS 5 - Peter Steinberger

    NSURLCache Uses A Disk Cache As Of iOS 5 - Peter Steinberger

    2012-04-10
    Discover how NSURLCache in iOS 5 now automatically implements disk caching to a SQLite database based on Cache-Control headers.
  • Moving On... Or How Waiting For A Visa Was The Best Thing That Ever Happened To Me. - Peter Steinberger

    Moving On... Or How Waiting For A Visa Was The Best Thing That Ever Happened To Me. - Peter Steinberger

    2012-04-06
    After months of waiting for a US visa, I share my journey from freelance to full-time indie developer and the creation of PSPDFKit.
  • Don't Call willChangeValueForKey Unless It's Really Needed - Peter Steinberger

    Don't Call willChangeValueForKey Unless It's Really Needed - Peter Steinberger

    2012-04-05
    Learn why willChangeValueForKey and didChangeValueForKey are unnecessary when using setter methods for KVO in Objective-C.
  • Reboot - Peter Steinberger

    Reboot - Peter Steinberger

    2012-04-05
    This post marks the reboot of my blog where I plan to share iOS development insights and personal thoughts.