Luke Redpath Profile picture
Staff Engineer, iOS @ https://t.co/G5f1uwgI4k📱🏋🏻‍♀️🚴‍♂️🃏
Feb 8, 2022 5 tweets 2 min read
TIL - if you’re creating your own SwiftUI environment keys where the value is some kind of “action”, modelled as a closure (e.g. `() -> Void) you might see unexpected re-renderings of views that use that @environment property. In our case, we had a custom void closure environment value that we only set once in the whole app (and I confirmed it was only set once), yet a child view was re-rendering and using the new .printChanges() API it was because it thinks the custom environment value changed.
Oct 1, 2020 11 tweets 2 min read
With all due respect to Rowland, I think this tweet is an inaccurate representation of what the app is doing and I don’t think it’s a bug or that they “accidentally left test code” in the app. (Thread) The exposure notification framework has its own built in scoring system and prior to iOS 13.7 I believe there was very little way to customise that algorithm. However the NHSX app uses its own scoring system to minimise false alarms. 2/
Sep 17, 2020 4 tweets 1 min read
Hmm, it looks like the cause of System Preferences beach-balling when trying to manage iCloud settings is because my laptop cannot connect to iCloud at all - even fails in Safari with a connection error. Seemed fine on my iPhone. Anyone else unable to connect? Other devices on the network can connect, which would seem to rule out a router issue. I can also connect if I tunnel through a VPN - anybody got any ideas?
Sep 17, 2020 5 tweets 1 min read
Still baffled by the way billing works with Apple Family Sharing. If you want an individual member to pay for their own purchases they need to have an in credit Apple ID balance. But the only way to do that is buy a gift card. 🤷🏻‍♂️ The family owner account can just use “Add Funds to Apple ID” to add funds directly but this doesn’t work on child accounts.
Sep 13, 2020 7 tweets 2 min read
Starting to instantly recognise fake “brands” on Facebook/Instagram ads as obvious dropshippers with some regularity now. It doesn’t take long to find the stuff they are flogging on AliExpress for a third of the price. Typically they are Shopify shops with the same copypasta terms and conditions and questionable return policies (eg restocking fees). Some claim their products are “made to order” to get out of honouring returns.
Sep 11, 2020 6 tweets 1 min read
Job hunt update: I’ve found several interesting opportunities and have spoke to a number of people - thanks to all who have shown interest.

Currently have one or two promising roles that I’m exploring but still nothing concrete as yet. 1/ I’m still exploring Ruby and iOS roles, looking for lead dev or senior roles with a progression route to lead/principle. Open to both but particularly interested in greenfield iOS roles and building an iOS team. 2/
Aug 26, 2020 12 tweets 2 min read
The frustration of job adverts that spend a lot of time talking about perks and culture (great!) but nothing about salary (or just “competitive pay”) continues. I have seen some very cool sounding roles but I can’t keeping committing to an application process blindly. I honestly can’t get my head around why companies do this. What are they hiding? If you have a range based on experience, state it. If it’s a fixed, non-negotiable amount, that’s fine too. Just be clear and transparent.
Aug 22, 2020 4 tweets 1 min read
One thing I’m confused about with this Wordpress IAP situation: it’s almost identical to the Hey app situation. Apple’s argument was that Hey didn’t function without a paid account so Hey added a free tier to the app and it was accepted. Given that the Wordpress app already gives you a free account out of the box and is fully functional and doesn’t even try to sell their paid tiers to users, why is that rejected and not Hey? Are Hey going to get rejected again now?
Aug 18, 2020 4 tweets 1 min read
@AppleSupport more Find My problems. It’s currently reporting my wife as several miles away but correctly shows her phone as at home which is where she is. Both locations are recently updated. How is this possible? @AppleSupport had to stop sharing and start sharing location again to get it working. Find My is so unreliable we might need to use a third party app instead.
Aug 13, 2020 4 tweets 1 min read
I’m amazed this got passed app review to be honest so I highly suspect they toggled it with a server side feature flag, meaning they not only violated the App Store rules but may have also cheated the review system too. Also seeing people hot taking that Epic have done a deal with Apple and got permission for this. I’d say there’s close to zero chance that this is the case. The closest Apple have got to backing off is reducing their cut to 15% for select companies like Amazon.
Aug 5, 2020 4 tweets 1 min read
Nothing like a couple of job applications rejected at the application stage to trigger a bit of imposter syndrome. A complete lack of feedback leaving me clueless as to why certainly doesn’t help. 🤷🏻‍♂️ I’ve emailed and asked anyway. Don’t ask don’t get as they say.
Aug 4, 2020 4 tweets 1 min read
Let’s see if Apple have fixed AVFoundation in the simulator *again* in Xcode 12b4. If anyone has Xcode 12 beta 4 already, I’d really appreciate it if you could download this sample project and run it and see what happens: file.io/EOziKK7jNNvo
Aug 4, 2020 8 tweets 2 min read
Out of curiosity...a poll: if you were in the position of starting a brand new iOS app from scratch and only had to support iOS 13 and later, what approach would you take? Please RT. To further clarify the last two options:

SwiftUI first but using UIKit with the representable protocols to fill in SwiftUI gaps.

UIKit first, but incrementally adding SwiftUI components in hosting controllers over time.
Jul 31, 2020 5 tweets 2 min read
This is the latest bollocks being spread by the #KBF idiots - they think that tests are a generaly test for “coronavirus” and that positive cases include e.g. coronaviruses that cause colds. (They are of course specifically testing for Sars-CoV-2, the virus that causes COVID-19) Image Of course, things like these spread start with a simple misunderstanding. There's a chance that an antibody test can produce a false positive if you've had another coronavirus. These are not the same as tests for a current infection (antigen testing). reuters.com/article/uk-fac…
Jul 24, 2020 4 tweets 1 min read
There’s nothing wrong with a bit of healthy skepticism on the whole “are masks effective” thing. The science might be shifting but we have been told by the experts for months that they don’t help.

But being believing they are some massive infringement on your freedom is absurd. Even if you’re skeptical that they are useful, it’s no big hardship to obey the law and wear one in a shop. Get over it, stop being such a whiny snowflake about it.
Jul 22, 2020 8 tweets 4 min read
@AppleMusic every time I add “Permission to Land” by The Darkness (explicit version), it shows up like this, with track 1 (Black Shuck) in “Joe Perry’s Playlist” and greyed out. What’s going on? Image @AppleMusic It’s this kind of nonsense that’s making me think about cancelling Apple Music and switching back to Spotify.
Jul 18, 2020 5 tweets 3 min read
Some stuff I’ve been learning about recently to pass the time and found interesting...

@tailwindcss - coming from and old school early 2000s “web standards” background I was very skeptical of this approach but fuck it, life’s too short for handwritten style sheets. I’m sold. Vue.js, particularly Vuex. Ok it’s still JavaScript but my recent interest in functional reactive programming and unidirectional data flow meant I was finally able to grok this. I’m still not rushing to do front end web dev though.
Jul 17, 2020 5 tweets 3 min read
One thing that stands out to me after looking at quite a lot of company career pages and job specs is…they talk lots about culture, and perks and how great they are to work for, but nothing about salaries. Not even a range. It’s baffling. Saw this role advertised in @iOSDevWeekly from @doist - doist.com/jobs/#senior-i… - looks great, ticks a lot of boxes, especially on remote. But…”competitive salary”. That’s meaningless. It’s hard for me to invest in applying for a role without any idea of what they are paying.
Jul 17, 2020 5 tweets 1 min read
I’ve been thinking about a move back to a perm role for some time, on and off - everything that’s been happening this year has made me think harder. Contracting can be fun, and I have done very well financially from it, but I feel like I’ve been missing something… …I always used to enjoy being able to move from project to project, team to team. I’ve developed a wealth of experience, honed my skills and am very confident in my ability. But something that it lacks is feeling like you’re part of something.
Jul 14, 2020 6 tweets 2 min read
I find it baffling given how prevalent mobile apps that talk to APIs are these days, that so many APIs only support the web app flow which requires you to keep your client secret well…secret. As soon as you’ve embedded it in your app source, it’s no longer secret. This is not a new problem. blackhat.com/docs/us-16/mat…
Jul 11, 2020 4 tweets 2 min read
Not sure when I’ll use it, but figured I probably ought to get my head around one of the Javascript frameworks that all the cool kids are using, so I’m currently learning about Vue.js - having started using the @pointfreeco TCA framework has made this a lot easier to grok! @pointfreeco It’s interesting to see how both web app and native apps are converging around the unidirectional data-flow / reactive UI pattern. I used to be skeptical but having worked on enough MVC spaghetti in my time I’m now sold on it.