Seb Vidal Profile
Seb Vidal

@SebJVidal

Followers
5K
Following
6K
Media
1K
Statuses
6K

iOS Developer πŸ‘¨πŸ½β€πŸ’» Working on Duet, a journal for couples πŸ“– Maker of Snippet, a code sharing tool for macOS πŸ“Έ

Manchester, England
Joined June 2012
Don't wanna be here? Send us removal request.
@SebJVidal
Seb Vidal
2 months
Dropped a new article over on my blog. This time, exploring how you can fill the gaps in Mac Catalyst by using native AppKit components, right in your iOS codebase, with UIKit's private _UINSView class.
7
5
102
@SebJVidal
Seb Vidal
4 months
New GitHub feature just dropped. 😍
Tweet media one
95
1K
18K
@SebJVidal
Seb Vidal
1 year
Dynamic Island is literally unusable 🀬
Tweet media one
54
49
1K
@SebJVidal
Seb Vidal
7 months
Apple use real life UIVisualEffectViews in their stores 😌 Looks like UIBlurEffectStyleSystemMaterial to me…
Tweet media one
9
40
1K
@SebJVidal
Seb Vidal
6 months
Spent some time reverse engineering Apple Music and Podcast's search chips UI πŸ‘€. Interestingly, there's no public or private API to achieve this, _and_ both Music and Podcasts have different implementations of the identical interface 🫠. Anyone interested in an article on this?
37
18
946
@SebJVidal
Seb Vidal
7 months
Visual effects on iOS are actually pretty complicated!. Most visual effects comprise of *at least* 4 compositing filters. Some simple ones like gaussian blur, saturation and brightness. But also some more complex stuff like colour/vibrance matrix multiplication, and luminance.
@1000kilobytes
kilobyte
7 months
why is it so hard to recreate iOS UI materials???
Tweet media one
8
33
832
@SebJVidal
Seb Vidal
4 months
Custom view controller transition I built at work this week. A few interesting engineering challenges…. 1) Presenting the half sheet during the custom transition. 2) Animating the frame/transform of an MKMapView!.3) Ensuring continuity of the activity indicator before/after the
22
34
838
@SebJVidal
Seb Vidal
9 months
Alright, after much demand, here it is! πŸ˜ƒ The Apple Music/Podcasts UI complete with a custom view controller transition. Sadly, a couple of private APIs are required for variable blur and display corner radius. Built with Swift and UIKit. Link to the GitHub project πŸ‘‡πŸ½
19
49
779
@SebJVidal
Seb Vidal
8 months
πŸ‘€
Tweet media one
@SebJVidal
Seb Vidal
8 months
Would anyone be interested in a blog post about reverse engineering the new Photos app UI in iOS 18? πŸ‘€.
15
18
744
@SebJVidal
Seb Vidal
2 years
Just updated this transition to use the cheeky `UIScreen._displayCornerRadius` API πŸ€“ Will anyone ever notice this? No. But I will 😌
18
18
650
@SebJVidal
Seb Vidal
22 days
I promised you a zinger, so here's your private API of the day. Meet _UIContextMenuAccessoryView and UIContextMenuInteractionDelegate_Private's _contextMenuInteraction(_:accessoriesForMenuWithConfiguration:) method. This enables iMessage-like accessory views to be displayed
20
28
664
@SebJVidal
Seb Vidal
8 months
SF Symbols 6 beta has dropped but they seem kinda cranky about this new symbol. 🫣
Tweet media one
3
28
611
@SebJVidal
Seb Vidal
8 months
Looks like someone at Apple forgot that SwiftUI's ToolbarPlacement.largeNavigationTitleAccessory API is private πŸ’€
Tweet media one
11
9
583
@SebJVidal
Seb Vidal
1 year
Interesting. looks like Apple has an internal onboarding framework that they use to build these "What's New" screens across many of their apps. πŸ‘€. OnBoardingKit (yes, with a capital B) πŸ˜„ Worth having a poke around the runtime headers:
Tweet media one
Tweet media two
16
28
567
@SebJVidal
Seb Vidal
9 months
⚠️ Private API of the day:. UIAlertController's _setHeaderContentViewController(_:) method lets you set any UIViewController as a custom header for your alert. Apple use this in the new Journal app's UI to present a date picker in an action sheet, as pointed out in
13
32
562
@SebJVidal
Seb Vidal
11 months
@ParkerOrtolani It's giving such CloudKit x Craig Federighi "and it's Free! . (with limits)" vibes πŸ˜„
Tweet media one
1
6
548
@SebJVidal
Seb Vidal
2 years
β€œMenus have been rewritten to fully use Cocoa, this reduces AppKit’s _Carbon_ footprint. ” πŸ’€
Tweet media one
6
22
534
@SebJVidal
Seb Vidal
3 months
This is, in my opinion, what the iOS 18 Mail redesign should have looked like. Fully gesture driven, fluid and interruptible animations for the new category view. The category view is also contained inside a navigation bar palette for easier access. Built with Swift and UIKit.
24
19
540
@SebJVidal
Seb Vidal
27 days
Been a while, but here's your private API of the day. UIKit's fluid slider, as seen in Apple Music, Podcasts, SpringBoard and more. UISlider has private `_sliderStyle` and `sliderConfiguration` properties. Here, the slider has a style of 110, and the configuration is an
14
17
530
@SebJVidal
Seb Vidal
1 year
⚠️ Private API of the day:. UINavigationBar’s _UINavigationBarLargeTitleView subview has an _accessoryView property that acts as a sort of bar button item that aligns with the large title label. This is used in all sorts of system apps like Health, Music, and Podcasts. Enjoy! πŸ₯³
14
34
506
@SebJVidal
Seb Vidal
10 months
⚠️ Private API of the day. Cracked the case of Apple's custom share sheet in MobileSlideShow (Photos). UIActivityViewController has a private `setCustomViewController:` method that lets you add a custom view as a header. I combined this with a custom view controller
13
27
463
@SebJVidal
Seb Vidal
3 months
For anyone wondering what's going on with this funky-looking UIMenu. it turns out, it's not a UIMenu. The whole modal view is a WKWebView. Not sure what's worse, this Temu UIMenu or the current election results displayed underneath it. 🫠
Tweet media one
Tweet media two
17
24
455
@SebJVidal
Seb Vidal
9 months
⚠️ Private API of the day. and it's a good one πŸ€“. UICustomViewMenuElement is a class that inherits from UIMenuElement and lets you initialise a menu item with a custom content view. It's used in frameworks like ChatKit for the Messages app. Gist belowπŸ‘‡πŸ½
Tweet media one
Tweet media two
15
26
432
@SebJVidal
Seb Vidal
6 months
Fun detail in light mode… The selected chip doesn’t just change its text colour, there’s actually a second label masked to the chip resulting in this cool transition. Exact behaviour of the Music app. Was an interesting challenge to recreate using UIKit πŸ‘πŸ½
@SebJVidal
Seb Vidal
6 months
Spent some time reverse engineering Apple Music and Podcast's search chips UI πŸ‘€. Interestingly, there's no public or private API to achieve this, _and_ both Music and Podcasts have different implementations of the identical interface 🫠. Anyone interested in an article on this?
8
12
429
@SebJVidal
Seb Vidal
5 months
Watching people use their phones and realising they have no idea -[UIActivityViewController setCustomViewController:] isn’t API and is behind a private entitlement πŸ₯²
Tweet media one
3
11
426
@SebJVidal
Seb Vidal
8 months
Would anyone be interested in a blog post about reverse engineering the new Photos app UI in iOS 18? πŸ‘€.
27
5
413
@SebJVidal
Seb Vidal
1 year
⚠️ Private API of the Day: _UINavigationBarPalette. This let's you add a "palette" below a UINavigationBar as per Calendar and Fitness. I'm by no means the first to discover this, but here's a fully Swift implementation, no Obj-C and bridging header. Probably App Store safe with
14
14
367
@SebJVidal
Seb Vidal
2 months
#​import <UIKit/UICake.h> πŸŽ‚
Tweet media one
22
15
358
@SebJVidal
Seb Vidal
1 year
Private UIKit API of the day… πŸ‘€. UIAlertController has a `_setHeaderContentViewController(_:)` method that lets you assign an instance of UIViewController as the alert’s header. This works across alert styles, platforms, and doesn’t interfere with accessibility! πŸ₯³
9
19
346
@SebJVidal
Seb Vidal
7 months
Just found out UITextField/UITextView has a private UIKeyboardType, specifically for picking Emojis πŸ‘€. Super easy to use as well, you just need to create an instance of UIKeyboardType with a value of 124 using the `init(rawValue:)` initialiser.
Tweet media one
14
15
345
@SebJVidal
Seb Vidal
3 years
Looove this animation in Control Centre! 😍 Haven’t noticed this before, anyone know if it’s new in iOS 16?
10
21
322
@SebJVidal
Seb Vidal
1 year
Another month, another private UINavigationBar API πŸ™ƒ. This time (and perhaps implemented by a developer of Scottish descent) UINavigationItem's `_weeTitle` property. Adds that "Thursday, 1 Feb" text above the "Summary" large title.
Tweet media one
Tweet media two
10
27
334
@SebJVidal
Seb Vidal
4 months
Subtle change… I switched to using easing gradients from linear ones here. There no longer appears to be a harsh line where the gradient ends. I had to use a CSS gradient generator and convert it manually to stops/colours of a CAGradientLayer as neither UIKit or SwiftUI support
Tweet media one
Tweet media two
8
9
323
@SebJVidal
Seb Vidal
2 years
One of the coolest additions to UIKit is the new dynamic behaviour of the `.default` UIStatusBarStyle. There’s been an entire class part of the SpringBoard app since iOS 7 that does this for wallpapers - great that it’s been exposed to developers πŸ‘πŸΌ
1
22
314
@SebJVidal
Seb Vidal
10 months
I guess when Apple created this video for the SF Symbols page they forgot that "laugh.svg" was a private symbol. πŸ™ƒ. Shoutout to @zats for finding these πŸ™πŸ½
Tweet media one
Tweet media two
6
4
304
@SebJVidal
Seb Vidal
11 months
Finally implemented the reverse transition of this App Store hero effect in Duet πŸ˜…. Always get a few questions about these so, this is built with Swift and UIKit with the UIViewControllerAnimatedTransitioning protocol and friends. Feedback always appreciated! πŸ™πŸ½
14
9
289
@SebJVidal
Seb Vidal
10 months
1 like and I’ll waste my weekend recreating the Apple Music/Podcasts now playing toolbar and hero transition…. 2 likes and I’ll open source it.
Tweet media one
14
1
282
@SebJVidal
Seb Vidal
2 years
Fun animation for an upcoming app I’m working on πŸ“–πŸ‘€. Using UIViewPropertyAnimator’s `fractionComplete` API to control what is essentially a `layoutSubviews()` call on the two avatar views.
10
8
276
@SebJVidal
Seb Vidal
2 years
Not visionOS content but more fun with custom UIViewController transitions 😎. A lot going on here, from simple alpha animations, to interpolating frames, transforms, shadows and custom blur effects πŸ™‚
10
11
278
@SebJVidal
Seb Vidal
6 months
Is this sped-up navigation animation new? You’d think that after laying off ~80% of staff, Twitter wouldn’t have the bandwidth to re-implement the whole native iOS navigation system πŸ™ƒ
5
5
268
@SebJVidal
Seb Vidal
5 months
Almost a month later 🫣 but here it is! Recreating Apple Music’s Search Chips UI. Quite an in-depth article, detailing how we can manipulate view hierarchies that we don’t own. A couple of private APIs in there… App Store safe though!. Enjoy πŸ€“.
13
25
279
@SebJVidal
Seb Vidal
8 months
This got a _lot_ more support than I anticipated, so thank you to everyone who liked, left kind comments, and RT’ed πŸ™πŸ½. You’ve waited long enough, so here it is, a dive into reverse engineering iOS 18’s new Photos app UI! Enjoy ❀️.
@SebJVidal
Seb Vidal
8 months
πŸ‘€
Tweet media one
13
24
276
@SebJVidal
Seb Vidal
11 months
Apple really calling `tableView.reloadData()` every time they want to update the UIProgressView value? Smh. 😀😁
6
7
274
@SebJVidal
Seb Vidal
2 years
Love to see this previously private API opened up to 3rd party developers πŸ’ͺ🏼
Tweet media one
Tweet media two
3
15
269
@SebJVidal
Seb Vidal
10 months
Am I a SwiftUI developer now? πŸ‘€
16
4
274
@SebJVidal
Seb Vidal
8 months
Another cheeky UIMenu private API πŸ‘€ `setHeaderViewProvider(_:)` lets you supply a custom view as a global header for your menu. It's quite similar to UICustomViewMenuElement, but the difference here is that the item can't be selected. But you _can_ add interactive UI elements.
Tweet media one
Tweet media two
Tweet media three
7
15
279
@SebJVidal
Seb Vidal
1 year
This got more interested that I anticipated, so I've put together a demo of how to use Apple's internal OnBoardingKit framework. Goes without saying that, because you have to link against a private framework, this should never go anywhere near production code πŸ˜„ GitHub linkπŸ‘‡πŸ½
Tweet media one
@SebJVidal
Seb Vidal
1 year
Interesting. looks like Apple has an internal onboarding framework that they use to build these "What's New" screens across many of their apps. πŸ‘€. OnBoardingKit (yes, with a capital B) πŸ˜„ Worth having a poke around the runtime headers:
Tweet media one
Tweet media two
7
11
274
@SebJVidal
Seb Vidal
11 months
Updated this custom view controller transition in Duet, inspired by Apple's App Store app. Added some subtle scale, translation and rotation effects to the comment bubbles during the animation. Built with Swift and UIKit 😊
18
6
270
@SebJVidal
Seb Vidal
5 months
Does this scare anyone? 20 minute read. I'm not even done yet. Somehow, this is my longest, most complicated article yet. You're in for a banger. or a snooze fest, idk
Tweet media one
11
4
269
@SebJVidal
Seb Vidal
3 months
Dropped a new article over on my blog πŸ‘€. If you’re interested in how Apple creates menu elements with custom views or headers, then this one’s for you!. Explore two private UIMenu APIs….
3
16
266
@SebJVidal
Seb Vidal
2 years
TIL that UIScreen has a private `_displayCornerRadius ` property that returns…well…just that! Cool for doing stuff like this:
1
10
259
@SebJVidal
Seb Vidal
4 months
Article on custom menu elements using private UIMenu APIs anyone…? πŸ‘€
Tweet media one
6
4
257
@SebJVidal
Seb Vidal
1 year
Finally cracked the curious case of custom UINavigationBar heights. for real this time πŸ˜…. Turns out it's as easy as setting the `titleView` to an instance of the (private) `_UINavigationBarTitleView` class. Call the `setHeight:` method, add your subviews and, voila!. This is
10
13
258
@SebJVidal
Seb Vidal
2 years
Took some time, but here’s a Tint Colour settings screen for an upcoming app I’m working on πŸŒˆπŸ‘€. The animation comprises of _actual_ UIKit components, so dark mode, dynamic type, etc. are fully supported. Also, couldn’t resists using the private variableBlur CAFilter! 😁
10
11
245
@SebJVidal
Seb Vidal
3 years
Starting my first iOS job in two weeks from today! πŸ₯³πŸŽ‰. Genuinely couldn’t think of anything I’d rather do 9-5 than writing Swift/SwiftUI code! πŸ˜„
Tweet media one
17
0
243
@SebJVidal
Seb Vidal
3 years
Starting my first job as an iOS Developer tomorrow πŸ₯³πŸŽ‰ . Mixed emotions, really excited but equally terrified I’ll forget ~3 years of iOS knowledge the moment I step foot in the office πŸ˜‚.
24
3
238
@SebJVidal
Seb Vidal
1 year
Had a couple of folks ask me how to recreate the left-aligned title in the new Journal app's UINavigationBar πŸ€”. Turns out this can be done with entirely public UIKit APIs. Just set the horizontal `titlePositionAdjustment` property of UINavigationBarAppearance to some extreme
6
17
239
@SebJVidal
Seb Vidal
4 months
Quick Swift/UIKit tip. πŸ’‘. If you're wrapping a UIKit class, like UIScrollView, in a UIView subclass but still want the public interface of your subclass to include that of a scroll view, @dynamicMemeberLookup is your friend!
Tweet media one
Tweet media two
3
17
222
@SebJVidal
Seb Vidal
11 months
Shoutout to the engineers keeping Twitter for Mac working behind El*n’s back πŸ˜… Kind of a miracle this still works as well as it does…
Tweet media one
11
0
213
@SebJVidal
Seb Vidal
1 year
Any excuse to create a custom UIViewController transition… πŸ€·πŸ½β€β™‚οΈ
11
5
207
@SebJVidal
Seb Vidal
2 years
So this got a lot more interest than I anticipated… BUT! We have a solution 😱. Big thanks to @zats for doing most of the heavy lifting. Our combined solution allows you to replicate (almost?) exactly the behaviour you see in apps like iMessage. Gist:
9
6
213
@SebJVidal
Seb Vidal
3 months
Can we argue about SwiftUI vs UIKit today instead? πŸ₯΅. SwiftUI performance bad, UIKit verbose, am I right??.
20
5
205
@SebJVidal
Seb Vidal
5 months
Progress update. it works! πŸ€ͺ. Couple of edge cases to handle to avoid array index out of bounds crashes etc., but all that should be pretty easy compared to syncing the scrubber/page view animations πŸ₯²
8
7
207
@SebJVidal
Seb Vidal
1 year
Private API of the day I guess? You can achieve this two line large title in your navigation bar very easily with this extension of UINavigationItem…
Tweet media one
@DylanMcD8
Dylan
1 year
I wonder how many private versions of UINavigationBar Apple has… there’s also this multi-line one that I don’t understand how it’s NOT public.
Tweet media one
7
14
203
@SebJVidal
Seb Vidal
3 months
Aaand here it is! Nice, smooth navigation bar transition 😍 Also animated the position and alpha of the page control. Overall, the effect is subtle, but definitely makes the transition seem more natural. Gearing up to release version 1.2 of Duet and it's an update that I'll be
6
2
202
@SebJVidal
Seb Vidal
2 years
Today, in my endless pursuit of doing things I absolutely shouldn’t…. I found out you can import the private ChatKit framework and initialise an instance of CKInvisibleInkImageEffectView using NSClassFromString! πŸ˜„
8
9
196
@SebJVidal
Seb Vidal
1 year
πŸ‘¨πŸ½β€πŸ’» Source Code: couldn't find this documented well anywhere, so put this project up on GitHub demoing how to create collapsible list sections. The project uses Swift and UIKit, with UICollectionView and NSDiffableDataSourceSectionSnapshot APIs. Enjoy!
8
9
198
@SebJVidal
Seb Vidal
8 months
This. Whenever people ask why I haven’t made the switch yet, this is the *first* thing that comes to mind. Performance. I don’t care about Metal shaders, scroll view visual effects, or matched geometry if a *simple* List can’t perform like it’s actually running on modern.
@DylanMcD8
Dylan
8 months
My biggest problem with SwiftUI right now is how terribly under-performant it is. Apple’s most powerful iOS device ever, powered by the cutting-edge M4 chip, can’t do this layout animation without horrible choppiness and hangs.
13
7
193
@SebJVidal
Seb Vidal
8 months
Bad news for anyone hoping to recreate this UI in the new Mail app. MobileCal is using a similar design and has done away the navigation bar's standard large title, replacing it with a custom _UINavigationBarPalette. Too late for this release cycle, but if you'd like to see
Tweet media one
Tweet media two
6
10
194
@SebJVidal
Seb Vidal
1 year
Another day, another private API. πŸ₯±. This time, adding a placeholder string to a UITextView. Has been possible for a long time with UITextField, but for some reason not (publicly) with the text view counterpart πŸ€·πŸ½β€β™‚οΈ. No more subclassing UITextView and manually showing/hiding a
10
13
196
@SebJVidal
Seb Vidal
2 years
I recreated the new iOS 17 Messages drawer, known internally as the CKSendMenuViewController πŸ₯΅. As always, there’s a lot going on here - various transforms, custom transitions, blurs, visual effects, one or two private APIs 🀫😁. Built with Swift and UIKit.
10
5
191
@SebJVidal
Seb Vidal
7 months
πŸ₯³
Tweet media one
8
3
184
@SebJVidal
Seb Vidal
8 months
To celebrate the end of WWDC, here's your cheeky private API of the day. This is LTUITranslationViewController, part of the TranslationUIServices framework. Super easy to set up, just call init, then setText: passing in an attributed string, and voila! All there is to it 😊
3
11
186
@SebJVidal
Seb Vidal
2 years
iOS friends: is there a way of increasing the navigationBar height as per iMessage, Contacts, etc…?. I’ve tried subclassing UINavigationController and overriding viewDidLayoutSubviews(), but this falls apart when pushing/popping viewControllers πŸ€•. #iOS #Swift #UIKit
Tweet media one
Tweet media two
18
3
184
@SebJVidal
Seb Vidal
11 months
Had a stab at rebuilding the custom sheets in Apple's new Sports app UI with Swift and UIKit ⚽️. Was a little tricky as Sports isn't available on the Xcode simulator, so no inspecting the view hierarchy. That said, it was easier to achieve than I anticipated, GitHub below πŸ‘‡πŸ½
8
13
186
@SebJVidal
Seb Vidal
2 years
Just launched by first open-source Swift Package, SettingsKit πŸ₯³. SettingsKit lets you build those tedious Settings screens with just a few lines of code, and recreates the look you’ll find in Apple’s own Settings app with pixel-perfect precision! βš™οΈ.
6
21
176
@SebJVidal
Seb Vidal
4 months
Was even simpler than that. Just a single _UICustomViewMenuElement - no palette menu required. If you don't specify a primaryActionHandler, the custom view menu element isn't selected on tap down, so the menu isn't dismissed.
@SebJVidal
Seb Vidal
4 months
Looks like a _UICustomViewMenuElement using the new (in iOS 17) palette style menu? Gonna have to have a crack at recreating this….
3
11
179
@SebJVidal
Seb Vidal
11 months
Quick tip to dramatically improve UITable/CollectionView performance when loading images:. Use UIImage's `prepareThumbnail(of:completionHandler:)` method to decode and resize the image on a background thread. Also, don't do what I did and multiply the target size by the
Tweet media one
Tweet media two
3
7
175
@SebJVidal
Seb Vidal
4 months
Updated my blog last night with authentic iOS visual effects. Almost a 1:1 recreation of UIKit's UIBlurEffect.systemMaterial. Cheated by pre-rendering the effect into an image using AppKit and CoreAnimation as CSS doesn't have an alternative to CAFilter's luminanceCurveMap 🫠
Tweet media one
Tweet media two
4
6
172
@SebJVidal
Seb Vidal
2 years
Thought I’d share this small app I’m working on because I’m super proud of this App Store-like hero animation, complete with bouncy cells on scroll and all. Lots of subtle things going on with this transition, I learnt a _lot_ making this and I’m really happy with the outcome 🀩
16
4
168
@SebJVidal
Seb Vidal
4 months
@samhenrigold yuuuuuzz darling πŸ’€.
1
0
164
@SebJVidal
Seb Vidal
2 months
Had to jump on the bandwagon…. Sorry mum 😭
Tweet media one
5
2
166
@SebJVidal
Seb Vidal
6 months
Making a start on this today πŸ€“ Spent a couple of hours tidying up the code during the week and actually found a much better way of doing it. Stay tuned!
Tweet media one
@SebJVidal
Seb Vidal
6 months
Spent some time reverse engineering Apple Music and Podcast's search chips UI πŸ‘€. Interestingly, there's no public or private API to achieve this, _and_ both Music and Podcasts have different implementations of the identical interface 🫠. Anyone interested in an article on this?
6
2
163
@SebJVidal
Seb Vidal
4 months
Here's a fun one if you're providing metadata to a UIActivityViewController using the LPLinkMetadata class (which you should be πŸ˜‰). LPLinkMetadata has a private `summary` property that you can use to provide detail text underneath the `title`. Subtle, but helpful in this
Tweet media one
Tweet media two
4
6
163
@SebJVidal
Seb Vidal
8 months
Do you think they’d approve my request? πŸ˜…
Tweet media one
3
0
160
@SebJVidal
Seb Vidal
1 year
Something I’ve had to put together for work, and continuing on from my last post, is a Find My style UI with sheets that appear below the tab bar πŸ—ΊοΈ. Here’s a proof of concept of my β€œUITabBarSheetController”. Takes 3 lines of code to setup and works with UIKit view controllers
6
7
159
@SebJVidal
Seb Vidal
2 years
This was the only natural evolution of this interaction πŸ˜΅β€πŸ’«πŸ€€
@SebJVidal
Seb Vidal
2 years
Took some time, but here’s a Tint Colour settings screen for an upcoming app I’m working on πŸŒˆπŸ‘€. The animation comprises of _actual_ UIKit components, so dark mode, dynamic type, etc. are fully supported. Also, couldn’t resists using the private variableBlur CAFilter! 😁
7
8
149
@SebJVidal
Seb Vidal
11 months
Quick UICollectionView appreciate post. πŸ₯Ή. Didn't realise how easy it was to create these UICollectionViewListCells with `popUpMenu(_:)` accessories. I've been rolling my own UITableViewCell subclasses with custom UIButton configurations for years 😭
Tweet media one
Tweet media two
2
6
153
@SebJVidal
Seb Vidal
4 months
Thumbnail for an upcoming article I'm working on πŸ‘€
Tweet media one
9
3
149
@SebJVidal
Seb Vidal
1 year
Working on onboarding for Duet. What do people think? Feels like something is missing to me. Feedback would be appreciated 🫣
8
3
147
@SebJVidal
Seb Vidal
11 months
Cheeky extension for converting any UIColor into its disabled counterpart. See "Change Passcode" label. Seems to be used quite often by UIKit for UIBarButtonItems etc. Yes, private API, obfuscate, probably fine. you know the deal πŸ₯±
Tweet media one
Tweet media two
6
8
141
@SebJVidal
Seb Vidal
8 months
Ending the week on a high with a UIKit lab πŸ₯³ I will absolutely be dumping every FB I’ve submitted relating to private navigation bar APIs on these poor engineers 😁
Tweet media one
5
4
140
@SebJVidal
Seb Vidal
4 months
challenge accepted… 😌
Tweet media one
8
1
137
@SebJVidal
Seb Vidal
3 years
🚨 SwiftUI hot take 🚨. It’s been about a month since we all saw this slide. And, having had time to think about it, my thoughts are:. I agree, the best way to build an app is with SwiftUI…. But the way to build the *best* app, is still with UIKit or AppKit. 😳
Tweet media one
6
13
132
@SebJVidal
Seb Vidal
1 year
Idk how long this has been working, but we can finally get a look at how Apple built the iPhone 15's Action Button UI in Settings on iOS 17. Not sure what I was expecting, but it's pretty simple? Just a SCNView rendering the 3D SceneKit content and standard UIKit controls πŸ€·πŸ½β€β™‚οΈ
Tweet media one
Tweet media two
5
8
135
@SebJVidal
Seb Vidal
8 months
Yesterday was not the day we got variable blur APIs in the iOS SDK… 😁
Tweet media one
@SebJVidal
Seb Vidal
8 months
Today could be the day we get variable blur APIs in the iOS SDK… #WWDC24 πŸ‘€.
4
3
136
@SebJVidal
Seb Vidal
7 months
Custom view controller transitions are great, but you have to account for *everything*. Here, I did not account for everything πŸ˜…
3
3
134
@SebJVidal
Seb Vidal
7 months
Just published a new article on my blog, exploring how to create custom navigation bar content like Apple's Messages app using UIKit's private _UINavigationBarTitleView API. πŸ€“.
7
13
129
@SebJVidal
Seb Vidal
11 months
How is it 2024 and self-sizing UITable/CollectionViewCells are still the bane of my existence πŸ™ƒ
Tweet media one
3
4
127
@SebJVidal
Seb Vidal
10 months
UIKit folks, any guesses what caused this rendering glitch in this UIAlertController. ?. Anyone? Nope? Well, it was setting "Renders with edge antialiasing" to YES in the Info.plist πŸ˜„ I lost a _lot_ of time to this πŸ₯²
5
3
121
@SebJVidal
Seb Vidal
2 years
Ok it’s my last tweet about it I promise 🀫
Tweet media one
2
4
123