Top 10 open source iOS libraries every developer should replace in 2024
Transform Your Apps by Embracing SwiftUI and Modern Development Practices Today
In myprevious article, I wrote about the Top 10 open source iOS libraries that every developer should have known before 2024
The technology evolves, so must we. Let me share with you the journey of replacing these 10 legacy libraries with cutting-edge solutions that have revitalized my development process.
1. Alamofire ➡️ URLSession with async/await
Letting Go of Alamofire
I used to swear by Alamofire for all my networking needs. It simplified HTTP requests and made handling responses a breeze. But with the introduction of Swift’s async/await
and the powerful capabilities of URLSession
, I've found that I can achieve the same results with cleaner, more efficient code. Embracing URLSession
has reduced dependencies and made my networking layer feel more native and integrated.
2. RxSwift (UIKit) ➡️ Combine
Moving Beyond RxSwift to Combine
RxSwift opened my eyes to the possibilities of reactive programming. However, integrating it with SwiftUI felt like forcing two puzzle pieces that didn’t quite fit. Transitioning to Combine, Apple’s native reactive framework, has been a revelation. The seamless integration with SwiftUI has made my codebase more cohesive and has significantly reduced complexity.
3. Realm ➡️ Core Data with SwiftUI
Replacing Realm with Core Data and SwiftUI
Realm was my trusted companion for data persistence. Its simplicity and performance were unmatched — until SwiftUI enhanced its integration with Core Data. With features like @FetchRequest
and better managedObjectContext
support, Core Data has become more approachable and efficient. Making the switch has unified my data management and improved app stability.
4. SDWebImage ➡️ AsyncImage or Nuke
Evolving from SDWebImage to AsyncImage and Nuke
Loading images asynchronously was a challenge that SDWebImage elegantly solved. But with SwiftUI’s AsyncImage
component introduced in iOS 15, I've found a native solution that fits perfectly into my apps. For those times when I need more advanced image processing, Nuke has been a fantastic library that offers SwiftUI support and powerful features.
5. Kingfisher ➡️ Kingfisher for SwiftUI
Upgrading Kingfisher for SwiftUI
Kingfisher has been a staple for image downloading and caching. The good news is that it’s kept up with the times. Its latest versions fully support SwiftUI, making the integration smoother than ever. Continuing with Kingfisher feels like working with an old friend who’s learned new tricks — it’s familiar yet refreshingly modern.
6. Lottie ➡️ Lottie for SwiftUI
Enhancing Animations with Lottie in SwiftUI
Animations add that magical touch to our apps, and Lottie has been instrumental in bringing animations to life. Now that Lottie supports SwiftUI, incorporating those delightful animations has become even more seamless. It’s reignited my passion for creating engaging user experiences.
7. SwiftyJSON ➡️ Codable
Embracing Codable over SwiftyJSON
SwiftyJSON was once my go-to for parsing JSON data. It simplified a complex process and saved me countless hours. But with Swift’s native Codable
protocol, I've discovered a more streamlined and type-safe way to handle JSON. This shift has made my networking code cleaner and more reliable.
8. Charts ➡️ Apple Charts Framework
Utilizing Apple’s Native Charts Framework
Creating visually appealing charts was a daunting task that often required bulky third-party libraries. With Apple’s introduction of the native Charts framework, building data visualizations has become an integrated and enjoyable part of development. It’s allowed me to present data in engaging ways without the overhead of external dependencies.
9. SnapKit ➡️ SwiftUI’s Layout System
Transitioning from SnapKit to SwiftUI’s Layout System
SnapKit made Auto Layout less of a headache, and I was grateful for it. However, SwiftUI’s declarative layout approach has revolutionized how I design interfaces. Using stacks and alignment guides, I’ve been able to create complex layouts with less code and greater flexibility. It’s made UI development a joy again.
10. MBProgressHUD ➡️ ProgressView
Modernizing with ProgressView over MBProgressHUD
MBProgressHUD was the standard for indicating progress and loading states. But SwiftUI’s ProgressView
has provided a native, customizable alternative that fits naturally within my apps. It's simplified my code and enhanced the user experience by providing smooth and responsive feedback.
Looking Ahead: The Future of iOS Development
Making these changes hasn’t just updated my projects — it’s revitalized my passion for development. Here’s what I see on the horizon:
SwiftUI Becoming the Norm: By the end of 2025, I anticipate that SwiftUI will be the foundation of most new iOS projects.
Reduced Reliance on External Libraries: As native solutions continue to improve, the need for third-party libraries will diminish, leading to more stable and maintainable codebases.
Adoption of Native Reactive Programming: Combine will likely become the standard for reactive programming in Swift, offering seamless integration and performance benefits.
What about you? Have you started transitioning away from these legacy libraries? I’d love to hear your experiences, challenges, or any tips you might have. Let’s start a conversation and help each other grow in this ever-evolving field!
If you’ve enjoyed this article, subscribe and get an email as soon as I publish!
Subscribe to my newsletter
Read articles from Herlandro Hermogenes directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Herlandro Hermogenes
Herlandro Hermogenes
As a graphic designer, I merged creativity and technology. After two years volunteering and experiencing people’s needs firsthand, I returned to technology with renewed purpose. During my Information Systems degree, I realized software engineering addresses societal needs. I actively contribute to the developer community and I believing in using skills for the greater good, my mission is to harness technology to improve quality of life and foster an inclusive, connected future.