Sign in

Ryan Ashcraft

@ryanashcraft.com
2.4K followers 356 following 431 posts

Indie iOS dev building a nutrition tracking app called @foodnoms.com. Living in SF Bay Area with @tannersmith.me. 🏳️‍🌈

PostsRepliesMedia
Ryan Ashcraft @ryanashcraft.com · 12/06/2025
Working on my first experiment with AFM: picking an initial icon when saving a food, recipe or meal as a favorite. Works quite well!
4171
Ryan Ashcraft @ryanashcraft.com · 10/06/2025
o3 is now cheaper than GPT-4o!
060
Ryan Ashcraft @ryanashcraft.com · 09/06/2025
Lovely
3140
Ryan Ashcraft @ryanashcraft.com · 02/06/2025
170
Ryan Ashcraft @ryanashcraft.com · 18/05/2025
TIL @foodnoms.com supports importing recipes from Instagram reels
Coconut lime crusted tofu recipe on InstagramFoodnoms AI loading results screen
180
Ryan Ashcraft @ryanashcraft.com · 13/05/2025
today i did marketing
3281
Ryan Ashcraft @ryanashcraft.com · 24/04/2025
Refreshed for over 40 minutes and finally got through to a confirmation page!
2190
Ryan Ashcraft @ryanashcraft.com · 22/04/2025
I did try a compromised variation that performed a bit better than the previous test, but still not quite as well as the original.
140
Ryan Ashcraft @ryanashcraft.com · 07/04/2025
SwiftUI help needed! My app has a crash in its widgets extension, related to a ForEach. Can't figure out what's causing it and I'm not sure how to repro. No user reports of any issues, but there's a large volume of crashes. Stack trace isn't the most helpful. Anyone dealt with something similar?

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x000000026000219c
Termination Reason: SIGNAL 5 Trace/BPT trap: 5
Terminating Process: exc handler [97155]

Triggered by Thread:  0


Thread 0 name:
Thread 0 Crashed:
0   SwiftUICore                   	0x000000026000219c protocol witness for Collection.formIndex(after:) in conformance SubviewsCollection + 188 (<compiler-generated>:0)
1   libswiftCore.dylib            	0x000000019b25cb38 Slice.formIndex(after:) + 48 (Slice.swift:191)
2   SwiftUICore                   	0x000000026005cbf4 ForEachState.update(view:) + 3484 (ForEach.swift:679)
3   SwiftUICore                   	0x000000026005bd70 ForEachState.Info.Init.value.getter + 244 (ForEach.swift:1309)
4   SwiftUICore                   	0x000000025ff166e8 protocol witness for Rule.value.getter in conformance ForEachState<A, B, C>.Info.Init + 48 (<compiler-generated>:0)
5   SwiftUICore                   	0x000000025ff10280 implicit closure #1 in closure #1 in closure #1 in Attribute.init<A>(_:) + 324 (<compiler-generated>:0)
6   AttributeGraph                	0x00000001c9890cac AG::Graph::UpdateStack::update() + 540 (ag-graph-update.cc:583)
7   AttributeGraph                	0x00000001c9890870 AG::Graph::update_attribute(AG::data::ptr<AG::Node>, unsigned int) + 424 (ag-graph-update.cc:712)
8   AttributeGraph                	0x00000001c9887bf4 AG::Graph::input_value_ref_slow(AG::data::ptr<AG::Node>, AG::AttributeID, unsigned int, unsigned int, AGSwiftMetadata const*, unsigned char&, long) + 720 (ag-graph.cc:1510)
9   AttributeGraph                	0x00000001c9887794 AGGraphGetValue + 228 (AGGraph.mm:734)
441
Ryan Ashcraft @ryanashcraft.com · 01/04/2025
lol ChatGPT cracks me up sometimes
010
Ryan Ashcraft @ryanashcraft.com · 28/03/2025
Does anyone else call charging a Magic Mouse "spearing the whale", or is it just me?
Charging Magic Mouse
370
Ryan Ashcraft @ryanashcraft.com · 26/03/2025
You know a launch went well when you get an anomaly alert from @revenuecat.com about an increase in revenue
RevenueCat email

Revenue increase detected in Foodnoms

Your revenue in project Foodnoms has changed significantly in the last 24 hours…
1270
Ryan Ashcraft @ryanashcraft.com · 25/03/2025
First product page optimization A/B test in over a year. Hoping for positive results! 🤞
New treatment App Store screenshots for Foodnoms compared to current set
3250
Ryan Ashcraft @ryanashcraft.com · 25/03/2025
Very satisfying commit
Commit message: "Remove Foodnoms legacy migration package" with 29 files changed, 4850 lines removed, 46 added
4191
Ryan Ashcraft @ryanashcraft.com · 25/03/2025
Will this be the year I get in? 🤞
080
Ryan Ashcraft @ryanashcraft.com · 21/03/2025
Thanks @johnvoorhees.macstories.net and @macstories.net team for including the latest Foodnoms update in today's MacStories Weekly!
Summary of this wek's Foodnoms update
0100
Ryan Ashcraft @ryanashcraft.com · 14/03/2025
Me and my new t-shirt 😄
Mirror selfie with tshirt that says “Calories and Carbs and Fat and Protein”
6440
Ryan Ashcraft @ryanashcraft.com · 21/02/2025
Curious log message on iOS 18.4 Beta 1
040
Ryan Ashcraft @ryanashcraft.com · 10/02/2025
Omg is it George Lucas
280
Ryan Ashcraft @ryanashcraft.com · 06/02/2025
Proposed a new API to the App Intents team: EnumerableEntityQuery with a required date range filter. This would make Find actions much easier to implement for any sort of app that has unbounded number of items that are associated with dates (Calendar events, messages, journal entries, etc.)
160
Ryan Ashcraft @ryanashcraft.com · 04/02/2025
iOS dev friends – anyone use EnumerableEntityQuery? I just get this error when trying to run the associated Find action in Shortcuts app: "Unable to parse query request."
111
Ryan Ashcraft @ryanashcraft.com · 23/01/2025
SwiftUI question: should I have to re-declare SwiftUI @.Environment variables through `.environment()` inside a NavigationLink destination? I feel like I shouldn't have to, but in this case I do?
310
Ryan Ashcraft @ryanashcraft.com · 15/01/2025
The lack of the ability to actually factor code with AppIntents goes beyond frustrating. Emasculating even?
010
Ryan Ashcraft @ryanashcraft.com · 13/01/2025
😒
3144
Ryan Ashcraft @ryanashcraft.com · 09/01/2025
1Password on iOS 18.3 is maddening #iykyk
540
Ryan Ashcraft @ryanashcraft.com · 08/01/2025
*plays Jurassic Park theme on harmonica*
030
Ryan Ashcraft @ryanashcraft.com · 08/01/2025
Is there a trick to getting custom images from an asset catalog to render properly for AppEnums in Shortcuts app? No matter what I try they are scaled up, clipped, and pixelated. See Sodium and Saturated Fat here:
321
Ryan Ashcraft @ryanashcraft.com · 01/01/2025
Starting out 2025 right (with a big breakfast)
281
Ryan Ashcraft @ryanashcraft.com · 29/12/2024
Doing some very important analysis
Line chart showing an inverse trend between ‘Foodnoms Usage’ (blue) and ‘Google Interest’ for ‘All I Want For Christmas’ (green) from late September to December 2024. The blue line declines as the green line rises sharply in December.
0210
Ryan Ashcraft @ryanashcraft.com · 18/12/2024
Foodnoms 2024 Year In Review is live! Here’s mine:
2182
Ryan Ashcraft @ryanashcraft.com · 14/12/2024
Working on something fun
2170
Ryan Ashcraft @ryanashcraft.com · 11/12/2024
Really digging the new Ugmonk Discbound Analog.
3280
Ryan Ashcraft @ryanashcraft.com · 04/12/2024
Yeah I did! I think it worked well. I want to do a quick blog post about it.
210
Ryan Ashcraft @ryanashcraft.com · 02/12/2024
Wow—Foodnoms blew past 10K subscribers today. Incredible.
10,045 active subscriptions
16720
Ryan Ashcraft @ryanashcraft.com · 28/11/2024
Not too bad actually. But probably not super accurate portions, and I know stuffing has a lot more in it. But I’m not actually logging today anyways :P
020
Ryan Ashcraft @ryanashcraft.com · 28/11/2024
Happy Thanksgiving 🍽
Foodnoms AI results for thanksgiving dinner
1230
Ryan Ashcraft @ryanashcraft.com · 28/11/2024
A late addition to this update 🦋
Bluesky link in Settings tab
2330
Ryan Ashcraft @ryanashcraft.com · 28/11/2024
Scrambled today to pull this together. We’ll see how it goes.
2182
Ryan Ashcraft @ryanashcraft.com · 23/11/2024
Am I the only one that didn't get the memo that as of iOS 16.4, you can disable UIHostingController's safe area insets without any swizzling or private APIs?
code: self.safeAreaRegions.remove(.keyboard)
2241
Ryan Ashcraft @ryanashcraft.com · 21/11/2024
Really seems like they are suddenly listening to what their users have been telling them for over a year. Gee I wonder why?
3315
Ryan Ashcraft @ryanashcraft.com · 21/11/2024
More sweat
Threads CTA to “Review your political content settings”
2100
Ryan Ashcraft @ryanashcraft.com · 14/11/2024
Happy 5th Birthday, Foodnoms! 🥳 Thanks to everyone who has been a part of this journey with me. Cheers to many more!
A homemade birthday cake with the Foodnoms logo
1272
Ryan Ashcraft @ryanashcraft.com · 12/11/2024
Unsurprisingly still Twitter branded
030
Ryan Ashcraft @ryanashcraft.com · 12/11/2024
All set up with my new M4 16" MacBook Pro. Coming from a 14" M1, this thing is a monster.
M1 14" silver MacBook Pro next to new M4 16" black MacBook Pro
2120
Ryan Ashcraft @ryanashcraft.com · 09/11/2024
Twitter is dead and it’s never coming back 🫡
4160
Ryan Ashcraft @ryanashcraft.com · 10/10/2024
Blue sky
A literal blue sky
020
Ryan Ashcraft @ryanashcraft.com · 23/06/2023
Me right now
Sue Sylvester meme with text: “I am going to IMPLEMENT A SOLUTION that is so OVERENGINEERED”
000