Published inBetter Programming·Sep 18, 2022Explore the Dynamic Island — ActivityKit TutorialHow to conquer the Dynamic Island in iPhone 14 Pro and add support to your app! — Apple wowed us with the iPhone 14 Pro presentation in a way no one expected. The team from Cupertino took a hardware constraint and made it a feature, which is something I think needs to be taught in schools. But, what is unique when talking about Dynamic Island, is that…IOS6 min readIOS6 min read
Published inMelio’s R&D blog·Sep 15, 2022What It’s Like to Be a Mobile Team in a Desktop-First CompanyIn the entirety of my short mobile development career (around 10 years), I worked in mobile-first companies, where mobile is king of the show. Everything was mobile friendly — the APIs, documentation, support, and product. …IOS5 min readIOS5 min read
Published inBetter Programming·Jun 4, 2022Hey App Developer: Where Is My Logic?Rich Data Model vs. Anemic Data Model — “Describe to me your app architecture”. “Oh, it’s easy. I use MVVM.” I always say that app creation is more straightforward on its edges but very complex in its internals. I mean, not only that we know how to create fantastic UI, but we also speak about it all the…IOS5 min readIOS5 min read
Published inBetter Programming·May 10, 2022Write Beautiful Code With Swift Result BuilderMake your UIKit codebases look as clean as SwiftUI — The most noticeable thing about SwiftUI is that it looks incredible. It takes a relatively big chunk of code and squeezes it into something beautiful and straightforward so that even non-programmers can understand what’s going on. But did you know that starting Swift 5.4, …Programming4 min readProgramming4 min read
Published inBetter Programming·Apr 8, 2022Swift 5.7’s Optional Unwrapping SyntaxUnwrapping optionals is getting shorter in Swift 5.7 — Introduction Unwrapping optional variables in Swift is one of the most common development tasks iOS developers perform hourly. It’s so common that unwrapping is one of the most popular questions asked in interviews. And in the context of unwrapping, I’m going to show a small “syntactic sugar” that comes to Swift…IOS3 min readIOS3 min read
Published inBetter Programming·Mar 22, 2022Core Data — Building a Custom StoreDiving into Core Data with Incremental and Atomic Store — I think this tutorial is probably one of the most fascinated tutorials I’ve ever written. Its primary goal is to unleash how Core Data works under the hood, not to solve you a problem. A great way to do that is by writing your own custom store. Custom Store — What Exactly Does It Mean? Ok, so a…IOS18 min readIOS18 min read
Published inBetter Programming·Jan 24, 2022How Apple Screwed Up SwiftUI and Core Data TogetherAnd how we can rebuild it — Introduction A few months ago, I decided that my third iOS development book will focus on Core Data, which is Apple’s old (but great) object graph and persistent framework. How old is Core Data? I think I was in high school when the first seeds were sown (and I’m not a…IOS4 min readIOS4 min read
Sep 5, 2021My Personal Takes from Using CombineConfession I have a confession I want to begin with — before adopting any new technology or design pattern, I need to understand its benefits and problems. While it may sound reasonable, this behavior was holding me back in some important areas over the years. For example, it took me almost…IOS3 min readIOS3 min read
Jul 10, 2021Reorder Items in SwiftUI LazyVStackReplicate UIKit Drag and Drop in SwiftUI — Those of you who are familiar with UIKit iOS 11 Drag and Drop API probably know that it dramatically improves UITableView and UICollectionView reordering user experience. “Drag and Drop” become super straightforward, and the API handles most of the cases itself. But what happens with SwiftUI? Do we have the…Swiftui5 min readSwiftui5 min read
Published inBetter Programming·Jul 1, 2021Member-onlyUIKit Animations Are Messy — Here’s Why SwiftUI Can Fix ThatAnimations in UIKit are doable, but SwiftUI can make the process a lot more convenient — Not only do iOS animations feel and look great, but they are also very easy to create. So how do I have the nerve to say that they are “messy”? To understand that, let’s go back to the early days of iOS development — when we wrote code in Objective…Programming5 min readProgramming5 min read