Welcome to the second edition of Mobile Dev weekly, hope you are enjoying your Monday!
In today's newsletter, we will be covering the following:
- Is native development dying? 😱
- DoMobile - my app for learning iOS and Android development📱
- Using SwiftUI Views as cells with UICollectionView in iOS 14.0 is now possible 🏋🏻
- MV architecture in SwiftUI - MVVM successor or a bust? 🤔
Is native development dying? 😱
Over the past couple of months, I keep seeing a bunch of people on the LinkedIn saying the native development is slowly dying because of the following two reasons:
- It's cheaper because clients are paying one developer instead of two to get the job done
- It also reduces the time consumption because of the above
While I understand from where those people are coming from, here are two reasons why I don't think native apps development is going anywhere anytime soon:
- Many large scale iOS and Android apps are built natively and they will definitely stay in the native code in the long run
- Many startups right now are exploring things like AI, AR/VR and those kind of things can surely be built easier natively than in any of the cross-platform frameworks
In the link in the headline, you can find my opinion on this topic in more details.
DoMobile - my app for learning iOS and Android development📱
In the last month, I started to work on the app with the mission to make iOS and Android development accessible to everybody 🥳
Main features of the current version of the app are:
1. Weekly quiz where you answer to iOS or Android development related questions and compete for a number of prizes 🏆
2. Access to a 1v1 chat with me where you can ask me anything 24/7 with the maximum of 8h response time 💬
3. Access to a feed where mentors from the app will share their opinions on various topics 👨🏻💻
4. 30% discount to all of my digital products 📉
And I am currently looking for some beta testers before the 1.0 app launch.
If you want to be the early adopter and help me out to test out the app, please respond to this e-mail with your e-mail and I will add you to Testflight (I am still waiting for Apple's approval to get the Testflight link which I could share 😂)
Using SwiftUI Views as cells with UICollectionView in iOS 14.0 is now possible 🏋🏻
About a month ago, I had a chance to help one startup from Germany to optimize their iOS app performance.
Core of the optimization was around the feed functionality they had which was, at that point, written using UICollectionView and SwiftUI cells with UIHostingConfiguration.
What caused the most performance improvements:
- Stopped using UIHostingConfiguration
- Use UIKit UICollectionViewCell
That's the reason why I believe using UIHostingConfiguration and SwiftUI is not the best solution when you want to achieve 100% performance which iOS app can give.
However, in many of the scenarios, you can safely rely on UIHostingConfiguration to port your cells to SwiftUI and Simon has even back-ported it so it's available for iOS 14.0 also.
MV architecture in SwiftUI - MVVM successor or a bust? 🤔
MV architecture became quite popular in the recent days around the iOS community because it tackles the two things which MVVM struggled with:
- Simplicity - in MVVM you have a view model for every screen/view
- SwiftUI view is already a view model because it can use @State to trigger screen re-renders
At the beginning of this year, we had a change to work on an iOS application for a startup from scratch. Since the clients wanted to support iOS 17.0 as the minimum deployment version, we thought it would be a good time to try out MV pattern because we could use @Observable macro.
After just 1 month of development where 4 iOS engineers were included in the development process, we had to revert back to MVVM.
You can check out the full story and more about MV pattern in my latest blog post linked in the title of this section above.