“Throughout my career, I've had the privilege of encountering remarkable engineers, thought leaders, and passionate problem solvers. However, Michael stands out as someone truly unforgettable. He ranks among the top three brightest individuals I've ever worked with in my entire career, possessing an unparalleled ability to delve into the minutest technical intricacies. Michael helped the iOS practice grow and was not only a great mentor but also the go-to person for solutions and brain storming ideas. His passion for sharing knowledge extends beyond mentoring sessions, as he excels in articulating complex concepts in a clear and accessible manner. During a workshop with a client, the company's consulting excellence was reflected through Michael's expertise. He effortlessly addressed every question and impressing not just one but two interested clients with his thoroughness and innovative solutions. In the face of complexity, Michael's enthusiasm for problem solving comes out and he can see the excitement in his eyes. His commitment to tackling challenges head on is truly inspiring. Moreover, Michael's contributions extend beyond his just his work colleagues, as he actively shares insights through articles and thoughtful comments, enriching not only his colleagues but the entire LinkedIn and Medium community.”
About
Experience & Education
Publications
-
Environmental Issues In SwiftUI
The Swift Cooperative
When is a descendant view not a descendent view?
-
The Definitive Guide to ViewState in SwiftUI
The Swift Cooperative
Even if you’re doing it, you’re probably doing it wrong….
-
Recreating Navigation Destination (item:destination:) For iOS 16
The Swift Cooperative
Getting around iOS 17-only limitations with custom bindings.
-
SwiftUI: Why You Need AnyView
The Swift Cooperative
AnyView’s “performance problems”… and solutions.
-
Swift High Performance: Dictionary Keys
The Swift Cooperative
I improved Factory’s dictionary lookup performance by over 500%! Can you do the same in your app?
-
SwiftUI: Ready For Prime Time?
Better Programming
The pros and cons of using SwiftUI in a production environment.
-
Kotlin Multiplatform, Compose Multiplatform: Apple's Strategic Failure
Better Programming
If Apple will not lead, then someone else will do so.
-
Apple Has Done It Again
Better Programming
And no, I’m NOT talking about Vision Pro.
-
Async/Await and MainActor Strategies
Better Programming
Deciding where and how to update the main thread.
-
SwiftUI: The UnsafeObservedObject Quiz
Better Programming
Do you know when it’s safe to use ObservedObject? Are you sure?
-
SwiftUI Binding Extensions
Better Programming
Making binding in SwiftUI views and previews as easy as ABC
-
Thoughts on Software Architecture
Better Programming
Why there will never be one “pure” architecture to rule them all…
-
Factory and Functional Dependency Injection
Better Programming
An alternative to Protocol-Oriented-Programming.
-
SwiftUI Lists Are Broken And Can’t Be Fixed
Better Programming
How an age-old problem has surfaced once more.
-
SwiftUI Managed Views
Better Programming
How to overcome some of the limitations with Environment, EnvironmentObject, and other property wrappers.
-
VIPER For SwiftUI? Please. No.
Better Programming
VIPER is a great software architecture. But it’s not the best architecture for SwiftUI. Nor the second best. In fact, it’s one of the worst and in this article I hope to show why.
-
Living With The Apple Studio Display
Mac O’Clock on Medium
The price was high; was it worth it?
-
Is Quiet the New Thin?
Mac O’Clock on Medium
Apple seems to have replaced one rather unhealthy obsession with another.
-
SwiftUI: We’re Loading, We’re Loading…
Better Programming
How to get your API calls to load once… and only once.
-
SwiftUI: Choosing an Application Architecture
Better Programming
It’s hard to decide if you don’t know what you need.
-
SwiftUI View Models Are NOT Protocols
Medium
Love SwiftUI, MVVM and Protocol-Oriented-Programming? Learn how to do it right.
-
Write Better Swift Code Using With()
Better Programming
Write Better Swift Code Using With()
-
SwiftUI vs. Jetpack Compose: Why Android Wins Hands Down
The Startup
SwiftUI is a powerful tool, but Android’s version is better. Here’s why.
-
I Hate Swift. I Love Swift.
Geek Culture
Don’t get me wrong. I’ve used quite a few languages in my career, and I wouldn’t want to go back to any of them. Swift in 2021 is modern, type-safe, highly-functional, and with new features like actors and async/await it keeps getting better and better.
I love Swift. But… there are days. -
Why You Can’t Use Async/Await
Medium
It’s a powerful new feature in Swift 5.5… but you‘ll have to await for it...
-
Apple Just Lost $1,999.00
Mac O'Clock / Medium
WWDC 21, iPadOS 15, the M1 chip, mismanaged expectations, and cancelled orders.
-
Why We Shouldn’t Use Data Transfer Objects In Swift
Geek Culture / Medium
A case for and against (mostly against) using classic DTO’s.
-
SwiftUI and the Intermittent EditMode
Geek Culture
An object lesson in fixing another common environment issue in SwiftUI.
-
RxSwift: Deep Inside FlatMap
Better Programming
A in-depth guide to understanding one of the most powerful (and confusing) operators for Combine and RxSwift
-
Styling In SwiftUI
Better Programming
Code your apps with style in three easy lessons
-
Did SwiftUI Just Kill Protocol-Oriented Programming?
The Startup on Medium
SwiftUI’s state management is amazing… but it comes with a steep price.
-
Using withUnretained in RxSwift 6.0
Better Programming
RxSwift 6.0 brings quite a few new features and changes to the table, but the one I want to discuss today is withUnretained and how it both solves — and fails to solve — one of the most common problems in our RxSwift code.
-
Deep Inside Views, State and Performance in SwiftUI
Medium
An extensive look at Views, State and Performance in SwiftUI. And especially on why those words may not mean what you think they mean.
-
Just How Fast Is Apple Silicon?
The Startup on Medium
Can you say, “Ludicrous Speed”?
-
Apple: The King is Dead. Long Live the King!
Better Programming
And no, I'm not talking about Intel and Apple Silicon.
-
Writing Testable Views in SwiftUI
Better Programming
SwiftUI encourages us to break our application down into small, easily digestible components and views. But we can do more. We can, at the same time, and for very little extra work, also create components that are easy to test and validate. This article shows how.
-
Modern Dependency Injection in Swift
Medium
Tips, techniques, and strategies for getting the most from your dependency injection system in iOS applications.
-
SwiftUI Microservices
Better Programming / Medium
A modern approach to application architecture in SwiftUI.
-
Sinks and Completion Handlers in Swift Combine
Medium
A case of good design or just a happy accident?
-
SwiftUI and the Missing Environment Object
The Startup on Medium
Using ViewModifiers to fix another major issue in SwiftUI development.
-
View Composition in SwiftUI
The Startup on Medium
Or how to avoid MVB (Massive-View-Bodies) in one easy lesson.
-
RxSwiftWidgets: Declarative Development for UIKit
Better Programming
Why wait for SwiftUI when you can get the benefits of declarative development in your app today?
-
How Mac on ARM Will Power Future AI/ML Development
Heartbeat: The latest on mobile machine learning
Conventional wisdom holds that we’ll see ARM-based Macs first on the low end… but what happens if high-end Macs running advanced Neural Engine chips are the real target?
-
Taking Swift Dependency Injection to the Next Level
Better Programming
How to use Swift 5.1 property wrappers to cut your dependency injection code in half
-
SwiftUI: Deep Inside NavigationView
Medium
Or answering the real question: Why is that navigationBarTitle modifier in the wrong place?
-
SwiftUI: Understanding Declarative Programming
Better Programming
Confused by declarative programming? Don’t worry, I’ve got you covered.
-
Best Practices in SwiftUI Composition
Medium
Some thoughts on SwiftUI view composition, code readability and application performance.
-
SwiftUI and the UIStackView Problem
Better Programming
How history seems destined to repeat itself, again and again…
-
SwiftUI 101: How NOT to Initialize Bindable Objects
Better Programming
Or just one of those times when init() is NOT your friend.
-
Swift 5.1 and Combine Memory Management: A Problem?
BetterProgramming
Does Combine need a CancelBag after all?
-
Are You an iOS Ex-Expert?
The Startup
How Apple announced SwiftUI and took professional developers from Hero-to-Zero in a single keynote session.
-
RxSwift and Production-Level Code
Hacker Noon
What I wish someone had told me when I started using RxSwift.
-
RxSwift: Better Error Handling With CompactMap
Medium
How to use one of RxSwift 5’s newest features to streamline your error handling code.
Projects
-
Factory: Swift Dependency Injection
A new approach to container-based Dependency Injection for Swift and SwiftUI. Factory is fast, flexible, and compile-time safe.
-
Resolver: Swift Dependency Injection Framework
- Present
Resolver is an ultralight Dependency Injection / Service Locator framework for Swift 4 and iOS.
Resolver is implemented in just over 300 lines of actual code, but it packs a ton of features into those 300 lines, including: Automatic Type Inference, Scopes, Protocols, Optionals, Named Instances, Argument Passing, Custom Containers & Nested Containers, and Storyboard Support.
Resolver is thread safe, well-documented, and has a complete set of unit tests.
Resolver is…Resolver is an ultralight Dependency Injection / Service Locator framework for Swift 4 and iOS.
Resolver is implemented in just over 300 lines of actual code, but it packs a ton of features into those 300 lines, including: Automatic Type Inference, Scopes, Protocols, Optionals, Named Instances, Argument Passing, Custom Containers & Nested Containers, and Storyboard Support.
Resolver is thread safe, well-documented, and has a complete set of unit tests.
Resolver is open-source and available under the MIT license
Honors & Awards
-
Google Open Source Peer Award Winner
Google
Proud to receive an Open Souce Peer award from Google for my work creating and maintaining Resolver, my Swift Dependency Injection system.
https://opensource.googleblog.com/2021/09/announcing-latest-open-source-peer-bonus-winners.html
Recommendations received
4 people have recommended Michael
Join now to viewOther similar profiles
Explore collaborative articles
We’re unlocking community knowledge in a new way. Experts add insights directly into each article, started with the help of AI.
Explore MoreOthers named Michael Long in United States
2596 others named Michael Long in United States are on LinkedIn
See others named Michael Long