Trying to get used to iOS, feels weird and good at the same time

Developing native Android apps for enterprise customers the last year has been fun and challenging, most definitely. I got such a huge motivational boost, urging to learn all new techniques and best practices.

Implementing a MVP pattern, with a mix of RxJava in the data/sync-layer and regular Java in the view-layer. The hardest part of it all was for sure, RxJava and Bi-directional synchronization.

What tools I've learned to use

Dagger2 - Static dependency injection
RxJava - A library to compose asynchronous and event-based programs
GreenDao - Sqlite ORM
Nucleus - A lightweight library which utilizes MVP-pattern
ButterKnife - Bind Android views and callbacks to fields and methods
Retrofit - A type-safe HTTP client for Android and Java
Icepick - Helping with Android Instance State
Picasso - A powerful image downloading and caching library for Android
FCM - Firebase Cloud Messaging service
Guava - Google library with helpful methods
ProviGen - Helps generating ContentProviders
LeakyCanary - A memory leak detection library for Android and Java
Stetho - Stetho is a debug bridge for Android applications


I'm currently only touching base with XCode, it feels odd but pretty straight forward so far. Sometimes I catch myself overthinking solutions, it feels like iOS development is easier. Simply because there isn't as much overhead as in Android development.

I'll give a more in-depth explanation when I feel a bit more comfortable with the environment. I read somewhere that iOS development produces 30% less code than Android development, comparing the same feature. 🤔