I gave up iOS development in the middle of 2015.
I run away from there like a witch with an aftertaste of the dark medieval ages. Probably many of you have already forgotten these times, but I’ll remind you about the state of things in iOS in the middle of 2015.
The Smell of iOS Development in 2015
Objective-C and Swift
I was not crying anymore because of Objective-C syntax and its “features” simply because my eyes had just run out of tears.
Swift was about a one-year-old baby that crashed Xcode every 5 minutes (every 20 minutes with turned-off autocomplete). I was thinking that nothing can be worse (until I tasted writing C++ in Vim, but that’s another story).
I remember that cold December of 2014, 100% Swifty app in the Appstore, and that funny guy, who was the head of our mobile department and pushed forward the idea of writing Swift in production with swift-zero-experience of the whole team. If you don't remember, I'll tell you. Swift was not even close to something production ready those days.
Codebases We All Had to Deal With
Every second project was written according to best practices of Apple MVC misunderstood as massive view controllers. That was embarrassing.
Before iOS I had a C# background in development for desktops - the world of WinForms and Windows Presentation Foundation.
I got used to starting with interfaces (protocols) and only then code implementation. You can imagine how I was discouraged by singletons everywhere like zombies getting inside my house from every hole.
By the way, I still cannot understand how could this disgusting "Windows-world" co-exist with such amazing technologies, as C# and MS Visual Studio.
C# was already incredible back in 2010. It had a wonderful IDE, functional LINQ extensions, generics, closures, and some kind of reactive data binding with a popular MVVM architecture.
Things, that have been becoming popular in iOS development only for the last couple of years.
What has Changed in iOS Development For Just 1,5 Years
While I was smoking out, I tried to keep in touch with my mates iOS developers, not to miss what was going on there.
One day I told my homie: “Hey, Victor, that’s the renaissance of iOS development! I’m coming back!”
It was not just the technology stack but also the market itself that tremendous uprise during the last decade and was not going to slow down in the following years.
- Swift became more or less stable and mainstream.
- Thank God, Obj-C was going to disappear.
- Core data was finally overshadowed by Realm which appeared to be pretty cool.
- I'm pretty sure it was some of the Java old fags who showed iOS developers what the heck was SOLID and suggested using VIPER.
- Reactive fashion has spread all over UIKit, Network layer, and other layers, encouraging the use of MVVM.
- Offline capabilities of applications are not as vital as before, thanks to LTE everywhere.
- Swift backend frameworks are being developed and soon may significantly influence the iOS apps development lifecycle and the life of iOS devs, turning them into legit full stack devs.
I Decided to Come Back
At the beginning of 2017, I made up a detailed plan for my resurrection as an iOS developer. It was including a lot of things to recollect, learn, and do. Starting from plain theory and ending with a live app.
At first, it seemed challenging as I was going to catch up 1,5 years of the whole industry. I was as hungry for knowledge as never before and was biting like a starving shark.
Finally, I came back.