
iOS Engineer | 📖 Author of Yet Another #Swift Blog https://xitter.cf/t.co/Qb8Jl2i34E | 👨💻 I tweet on #iOSDev and #Programming
Riga, Latvia
Joined February 2013
- Tweets916
- Following99
- Followers5.5K
- Likes1.4K
Pinned Tweet
📝 New article: Code Generating Swift Mocks with Sourcery
💡 What are mocks?
⚙️ How to integrate Sourcery to an Xcode project?
🤖 How to automate mocks code generation?
👨💻 How to write unit tests using mocks?
👍 Complete project included.
vadimbulavin.com/mocking-in-…
Vadim Bulavin retweeted
iOS Ukraine #2 is coming!
Buy early bird tickets here: 2event.com/ru/events/1863065…
Fun and interactive formats - as always!
Speakers will be announced soon, meanwhile check our YouTube channel: youtube.com/iOSUkraine
Vadim Bulavin retweeted
Although Dark Mode has been introduced since iOS 13, I see there is still unclear on how it works, and how to use UITraitCollection properly. I hereby share what I learn with examples.
Thanks to @twostraws @tgrapperon who kindly explained it to me.
onmyway133.com/posts/how-to-…
I wonder why Android engineers are more open-minded with regards to cross-platforms technology (Flutter, KMM). Conversely, iOS engineers stay in the Apple ecosystem, and are typically reluctant to cross-platform.
Vadim Bulavin retweeted
Today I'm super excited to launch the Mobile Native Foundation! Its goal is to improve large scale mobile development. Learn more about it and how to get involved: eng.lyft.com/announcing-the-…
Vadim Bulavin retweeted
Learn how to build delightful macOS apps using only SwiftUI kean.blog/post/appkit-is-don…
📝 New article: Custom Popup in SwiftUI
💡 Learn how to implement a popup in SwiftUI including animations & transitions, and custom alignments.
👨💻 Complete project included.
vadimbulavin.com/swiftui-pop…
It’s a shame that Swift for TensorFlow shuts down github.com/tensorflow/swift
This quoted post is unavailable.
Vadim Bulavin retweeted
I model my AppState using dictionaries where the key is the ID and the value is a unique model. This approach allows me to have a single source of truth, but it adds the complexity of reading data for views. Let me introduce the Connector protocol.
swiftwithmajid.com/2021/02/0…
👨💻 Swift Code Review
❓Question: Which way of calculating separator line height (or width) will you approve in PR?
Options ⬇️:
// (A)
let separatorA: CGFloat = 1
// (B)
let separatorB: CGFloat = 0.5
// (C)
let separatorC: CGFloat = 1/UIScreen.main.scale
31%A
13%B
56%C
295 votes • Final results📝 New article: Callable Objects and callAsFunction() in Swift
💡 Explore what is callAsFunction(); why it's important; what can we get from it.
❓ Does callAsFunction() have any real use cases other than offering yet another syntactic sugar convention?
vadimbulavin.com/call-as-fun…
💡 #SwiftTip Debug Log Optionals without Warnings
Remember this problem when you debug log or display an optional value on UI, it prints 'Optional(...)' and gives a warning?
The solution is to provide a custom string interpolation for Optional<T>. See the attached screenshot.
Vadim Bulavin retweeted
Some time ago, we conducted many interviews with eng. managers from various orgs asking them "What exactly were you doing as a team leader in the last months?"
The key insight has become my favourite saying: "Team lead is a ❄️, and in each company they are unique."
[1/n]
📝 New article: Effective Auto Layout Programmatically
🎓 Layout in code vs storyboards
🛠 Auto Layout µDSL
🔌 UI components with reuse in mind
🎙 Communicating between components
💡 Stack views over constraints
📱 SwiftUI previews for fast feedback
vadimbulavin.com/effective-a…
I believe that massive SwiftUI documentation updates are a sign that SwiftUI will be production-ready with the release of iOS 15.
SwiftUI tutorials have been rewritten from the ground up and look amazing developer.apple.com/tutorial…









