Elektrine lite

← Feed

Paul Hudson

twostraws@mastodon.social

<p>I write Swift and write about Swift, but most people prefer my dogs.</p>

Posts

  • Post #4433220

    Want to customize the way links are opened? Tapping a link in SwiftUI opens Safari by default, but a custom OpenURLAction lets you intercept, redirect, or handle the URL yourself. https://www.hackingwithswift.com/quick-start/swiftui/how-to-customize-the-way-links-are-opened

  • Post #4144001

    New on the Kickstart blog: What kills apps, and why it *isn’t* being Sherlocked. Apple added Dark Noise’s core job to iOS, and the app still earns over $4,700 a month. Sherlocking is a real risk, but it isn’t an automatic death sentence! https://www.kickstart.tools/blog/what-kills-apps-and-why-it-isnt-being-sherlocked

  • Post #4078409

    New on the Kickstart blog: How to make an app press kit journalists actually open. The exact anatomy of a press kit that gets your app covered – the fact sheet, the images journalists use, and a complete template to copy! https://www.kickstart.tools/blog/how-to-make-an-app-press-kit-journalists-actually-open

  • Post #3964554

    New on the Kickstart blog: When to call requestReview() – Apple’s rules and the timing that works. Apple limits how often review prompts appear and now gives clear guidance for using them, so here’s how to ask respectfully after a meaningful success. https://www.kickstart.tools/blog/when-to-call-requestreview-apples-rules-and-the-timing-that-works

  • Post #3793059

    Kickstart had almost 3,000 downloads in week one, reached #2 in the Mac App Store Developer chart, and I’ve shipped three updates since. The mistake? I still haven’t contacted the press about it 🫠 Here’s my launch retrospective – learn from my mistakes! https://www.kickstart.tools/blog/kickstart-launch-retrospective

  • Post #3537326

    Replacing Bool parameters with two-case enums turns cryptic calls like stopAnimation(false) into self-documenting code like stopAnimation(.performingFinalActions). It&#39;s a small change that makes a surprising difference to readability. https://www.hackingwithswift.com/articles/172/using-two-cased-enums-in-place-of-a-boolean

  • Post #2152602

    @gruber Random, but: Thank you for Markdown. I&amp;#39;ve never thought to say that before, which is odd in retrospect, but Markdown is such a delightful way to express text, and it has been really transformative for all computer users.

  • Post #2152599

    There&amp;#39;s an open-source SwiftUI agent skill that catches the mistakes AI tools keep making: deprecated modifiers, accessibility gaps, performance pitfalls. One command to install, and your AI-generated SwiftUI gets a serious quality boost. https://www.hackingwithswift.com/articles/282/swiftui-agent-skill-claude-codex-ai

  • Post #1742378

    Catch the error, *then* what? #expect(throws:) and #require(throws:) in Swift Testing return the error directly, so you can inspect it separately from the throw check itself. https://www.hackingwithswift.com/swift/6.1/swift-testing-errors-expect

  • Post #1716714

    Today&amp;#39;s Hacking with Swift+ live stream starts in four hours – come and build a complete app from scratch! https://www.hackingwithswift.com/plus

  • Post #1716713

    Sunday Build with HWS+: I mean who *doesn&amp;#39;t* love Regex? Create a SwiftUI app that lets you experiment with regular expressions in real time, with pattern matching, group highlighting, and Swift code generation. #SundayBuild https://www.hackingwithswift.com/plus/live-streams/regexcoach

  • Post #1669771

    First ice cream of the year - living the good life!

  • Post #1648529

    For HWS+ subscribers: Building a fully scalable, animated clock face with Canvas and TimelineView is a satisfying exercise in precise, relative drawing - and it looks great at any size. 🕰️ https://www.hackingwithswift.com/plus/recreating-ui/remaking-the-clock

  • Post #1648528

    What if you could build websites the same way you build SwiftUI apps, declaratively in pure Swift with no HTML required? That&amp;#39;s the idea behind Ignite, and it works surprisingly well. 🔥 https://www.hackingwithswift.com/articles/266/build-your-next-website-in-swift

  • Post #1648527

    @rmondello I saw this and thought of you. https://apple.news/AOMs_ZOZTSLuHxkeLRBWq4A

  • Post #1648525

    I picked up a lovely piece of 3D printing for Apple fans! 🤩

  • Post #1648524

    RE: https://mastodon.social/@twostraws/116455657942809795 I appreciate all the replies and reposts 🙇‍♂️ Kickstart will be released in exactly three weeks, but you can preorder today here: https://apps.apple.com/app/kickstart-app-accelerator/id6758355178

  • Post #1648523

    Use scrollTargetLayout() with .viewAligned to snap between individual child views, or .paging to move exactly one screen at a time. https://www.hackingwithswift.com/quick-start/swiftui/how-to-make-a-scrollview-snap-with-paging-or-between-child-views

  • Post #1645329

    After months of work, my new app is finally available to preorder on the Mac App Store. It&amp;#39;s called Kickstart, and it has just one job: to help indie app developers make more money on the App Store. How does it do that? Let me explain…

  • Post #1365270

    Tomorrow I&amp;#39;m releasing four (4!) new GitHub repositories, a new YouTube video, and an article to bring it all together. Set your alarms for 10am EST to hear it all first 😎

  • Post #1260254

    @superbetsy@mastodon.social One for your collection, if you don&#39;t already have it!

  • Post #1093869

    Today I&amp;#39;m launching my new app, Hacktivate. It teaches real-world computer science skills through 240 &amp;quot;capture the flag&amp;quot; challenges, and works on iPhone, iPad, and Mac with one purchase. I&amp;#39;ve poured a ton of love into it, and I&amp;#39;d love to hear what you think 🙌 https://apps.apple.com/gb/app/hacktivate-capture-the-flag/id6748286602

  • Post #1016303

    Last week I released SwiftUI Pro, a free and open-source agent skill to help everyone write better SwiftUI code using agents such as Codex and Claude. It&amp;#39;s already at 1800 stars on GitHub and rising, but it was just the beginning. https://github.com/twostraws/SwiftUI-Agent-Skill

  • Post #984818

    Recently I launched four agent skills for Swift developers, but I left the best power up for last. Today I&amp;#39;m finally revealing exactly how to teach your AI to write Swift the Hacking with Swift way! #Boom https://www.hackingwithswift.com/articles/284/teach-your-ai-to-write-swift-the-hacking-with-swift-way

  • Post #984817

    Agent skills are lightweight Markdown files that teach AI coding assistants things they don&amp;#39;t already know, like deprecated APIs and platform-specific edge cases. They load into context on demand, so nothing gets wasted. https://www.hackingwithswift.com/articles/283/how-to-install-and-use-ai-agent-skills-in-xcode

  • Post #984816

    See you in Cupertino! #WWDC26 (If you also won a ticket, you *must* confirm your place!)

  • Post #984815

    Did you know you can build static websites using Swift code and SwiftUI-like syntax, with no HTML or CSS required? Ignite comes with built-in components like accordions, carousels, and syntax highlighting, plus a local preview server for testing. https://github.com/twostraws/Ignite

  • Post #984814

    Today is my monthly &amp;quot;reply to all the emails that have been silently judging me,&amp;quot; day. If you&amp;#39;ve been waiting for a reply from me, it will hopefully arrive today! (Sorry for the delay – I&amp;#39;ve been going all out with preparing my try! Swift talk and workshop; my brain is more than usually overloaded!)

  • Post #984813

    Hacktivate v1.11 is out! This is my most ambitious app update yet – 10 new cybersecurity challenges that are gigantic, challenging, and lots of fun. I can&amp;#39;t wait to hear what you all think 😎 https://apps.apple.com/gb/app/hacktivate-capture-the-flag/id6748286602

  • Post #984811

    Sunday Build with HWS+: Build a live Markdown previewer for macOS using test-driven development from start to finish. #SundayBuild https://www.hackingwithswift.com/plus/live-streams/livescribe