Jacob Bartlett

13.1K posts

Jacob Bartlett banner
Jacob Bartlett

Jacob Bartlett

@jacobtechtavern

By day: iOS at @meetgranola By night: I write Jacob's Tech Tavern 🍺

London Katılım Aralık 2020
1.5K Takip Edilen4.9K Takipçiler
Sabitlenmiş Tweet
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
In case you forgot, Swift has 217 keywords now
Jacob Bartlett tweet media
English
22
42
467
75.1K
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
@evanyi_81 Thank you, my friend. I was like, "How can I make it as ridiculous as possible?" Lots of gifs. The hard part was extracting the ISO for the ancient collection.
English
0
0
1
22
evanyi
evanyi@evanyi_81·
@jacobtechtavern Using an infinite feed of interactive 90s GIFs as the test case is perfect lol. If a UI stack survives that, the scroll performance conversation gets a lot more honest.
English
1
0
1
27
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
I put SwiftUI vs UIKit scroll performance to the ultimate test: an infinite scrolling feed full of interactive 90s GIFs. The results? Well, see for yourself...
English
4
6
72
5.8K
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
@Dimillian 1. My current workflow involves letting an agent rip on my plan in a stacked set of diffs, and then I just do a detailed code review by commenting on the PR. 2. I've set up an agent skill that is trained on my own PR comments.
English
0
0
0
110
Thomas Ricouard
Thomas Ricouard@Dimillian·
What is your best /deslop /simplify skill? I want to ensure the current diff doesn’t duplicate code, is readable and simple and fit in the codebase overall.
English
13
4
80
17.9K
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
CPU and thermal performance in a SwiftUI list explains why we had so many hitches. Even at rest, no scrolling, the CPU screamed at 100% capacity to render every gif, and well past 100% (distributing work across CPU cores) when I scrolled. The “Very High” energy impact rapidly heated my device. The measured thermal trace crept up towards Serious. When I wasn’t paying attention, the app was even killed by the OS, presumably hitting a critical thermal spike. After giving a serious beating to my shiny new A19 chip, the same feed in UIKit produced comparatively nearly trivial CPU and energy usage. * At rest, UIKit dropped as low as 11% CPU utilisation, vs a consistent 100% for the SwiftUI version * Energy usage correspondingly held at High for UIKit, vs Very High for SwiftUI. I gave up waiting for the thermal profile to hit Fair after 3 minutes. Read my scientific performance comparison right here 🧪 blog.jacobstechtavern.com/p/swiftui-vs-u…
Jacob Bartlett tweet mediaJacob Bartlett tweet mediaJacob Bartlett tweet media
English
7
7
122
52.9K
Nikita
Nikita@nikitadrokin·
@jacobtechtavern Yep just found it, it’s in the dev settings 🤦‍♂️ 😂
English
1
0
2
12
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
Was wondering why my tweets weren’t posting, and then realised I had the network link conditioner still on.
Jacob Bartlett tweet media
English
2
0
31
4K
Bambang Tri Rahmat Doni
@jacobtechtavern One more addition, mate. Don’t forget to give your explanation of which the good and bad things from your perspective, because i need that to learn from someone like you. Cheers mate 🍻
English
1
0
1
25
Nikita
Nikita@nikitadrokin·
@jacobtechtavern How do you even install this on iOS? I only saw this on macOS before
English
1
0
0
23
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
Swift has more keywords than all those languages combined 🤯 Go: 25 keywords. Kotlin: 72 keywords. C++: an insane 95 keywords.
English
10
1
75
9.4K
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
@bengi_dev I don't, but that gives me a really good idea. I should absolutely start recording that shit, like when I do the instruments trace, the making of kinda thing
English
1
0
1
197
Bambang Tri Rahmat Doni
@jacobtechtavern Did you have any video when you still in process of debugging the performance or how to debug it? Thanks a lot to share your findings 🍻
English
1
0
1
225
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
System design interview masterclass: Non-functional requirements (NFRs) Based on the scope, how well do we need this to work? This isn’t just a cookie cutter set of questions to ask: solid candidates use these to shape the design. In our example, because we scoped that it’s going to be a high-DAUs feature in an existing large app, we can propose a few requirements that we can anticipate at scale: * What are the performance requirements on our UI for scrolling? 
Very high performance required → lean towards UIKit for the scrolling chat screen * Do we want to perform any offline inference in bad network conditions? 
No, don’t worry about that → this simplifies our data flow. * Do we have any latency requirements on media? 
Yes, media has to load very fast → suggests we should cache heavily. 
Consider caching strategy and time-to-live thoughtfully. * Do we want chats to be available offline? 
Yes, but assume it’s already built → nudged away from persistence layer design. In interview, I jot these down as 2-3-word bullet points on the whiteboard as we go, and I narrate over this. Now that you have your FRs and NFRs, you have negotiated your “win condition” with the interviewer. You need to create, and defend, a system design which meets all these requirements. Get practical battle-tested advice on getting through mobile system design interviews right here 🧠 blog.jacobstechtavern.com/p/system-desig…
Jacob Bartlett tweet media
English
0
0
3
309
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
Obviously they're on the council remit, but it's not what 99% of the budget is prioritised for I'm just saying it's a little disingenuous to couch your argument as “I'm spending £3,000 on having my bins collected. It must be corrupt.” There are lots of perfectly valid points to make around how social care is executed, though, which I think is a more interesting argument to have
English
2
1
2
553
The Sales Bull 🎯 Follow if you sell B2C or B2B
Britain specialises in charging premium prices for third world results £3500 council tax just to live in your own house and the streets are still full of potholes, bins are every two weeks and you can't get a GP appointment
English
130
588
6.3K
142.1K
dnu
dnu@DnuLkjkjh·
@jacobtechtavern and i still discover a new one every few months lol
English
1
0
1
114
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
Cargo-Culting the Creator of Claude Code: I replicated Boris Cherny’s workflow Claude Code workflow. Along with some of the new techniques we learned about earlier. Oh, and he actually tweeted again recently. Things do move fast. What's new this month? 1. Use worktrees (or just multiple git checkouts) to run agents in parallel 2. Always start with a plan, then get another agent to review the plan (personally I like to pit Claude Code against Codex!) 3. Ensure your AGENTS.md/CLAUDE.md is updated every time an agent makes a mistake 4. Create skills regularly and commit them to git, especially common daily tasks 5. Use Slack MCP to directly tell @Claude/@Codex to fix a bug and make a PR 6. Utilise these pro prompts: 1. Ask the agent to grill you on changes so you understand 2. After a mediocre fix, tell it to scrap the change and re-implement 3. Write detailed specs with minimal ambiguity before handing off work 7. Customise your terminal and utilise voice dictation (WisprFlow is best!) 8. Subagents can be useful to get more compute or preserve your context window 9. Agents can connect to analytics and databases to answer questions 10. You can have the agent explain the “why” behind the changes, and even present visual diagrams explaining your codebase. Check out my blog to learn what you’re missing at the cutting edge of agentic iOS engineering 🧨 blog.jacobstechtavern.com/p/agentic-ai-2…
Jacob Bartlett tweet media
English
0
1
5
415
Jacob Bartlett
Jacob Bartlett@jacobtechtavern·
@blk19_ That's a fair point. For what it's worth, the whole product is open source, so anyone can replicate or adjust my results! Really, what's happening is you're calling me out for being a little bit sloppy, and I know it, lol
English
0
0
0
16
Bryan Keller
Bryan Keller@blk19_·
@jacobtechtavern The UIViewRepresentable use case is valid and interesting - but I think it’s its own category of performance test. I’d love to see a follow-up that eliminates that from the comparison.
English
1
0
1
21