I started my career as a mobile (iOS) developer. At that time it was not my preference but rather it was the matter of job availability. Well, no matter a web or mobile development job offer, I’d have had 100% accepted it because, of course, I was in need at that time.
Before that I had done some basic website development and also some Desktop programming using Visual Basic. Starting a career as a mobile/iOS dev was such an exceptional experience. Xcode was new (not only to me though!) and Interface Builder used to be a separate app at that time (later Apple merged Interface Builder into Xcode). Objective-C was a different (and more beautiful) coding style compared to the languages (C/C++, VB, Java, PHP etc) that I had used before.
By the way, I started iOS development not with native applications but with game applications (using OpenGL and Cocos2D) and you know game development is obviously more fun! A year later, I was into iOS and Android business application development.
What I enjoyed as a Mobile developer:
Over the time, my main focus remained on iOS application development while working in three different companies. In first three years as a mobile developer, I certainly enjoyed many things.
Mac
Before getting involved in iOS app development, I didn’t have seen a Mac. All I had used were Windows PCs. Mac machines and OSX is in itself a great user experience.
IDE
XCode is one of the greatest IDEs in my opinion. Although it can’t beat Microsoft Visual Studio, it is far better than other IDEs out there. So it is an obvious liking while working as a developer.
Language
Objective-C was the only language for iOS development at that time. I don’t know many people will agree with me or not but I liked the syntax of Objective-C more than any other language. The fully descriptive function names may be some more typing but the code looks beautiful and remains easy to understand.
Testing the apps on different iOS devices
This was another ‘interesting’ activity that apart from the simulators we had a range if iOS devices (iPhones and iPads) for the testing of our apps. This is normal thing in these days but when I started it was quite a fascinating thing to do! Some of the bosses only gave access to the devices only when direly needed π
Getting the apps on Apple’s app store!
Apple has maintained a standard in app quality since the very beginning. It was the first time (in 2010) we realised how important is user’s privacy when Apple rejected our game on the basis that we didn’t ask for user’s consent for sending their game scores to our server.
It was always exciting to get through the barriers of Apple’s app reviews and getting the apps launched in app store and amazing thing was that Apple had following in their Code Review guidelines.
We will reject apps for any content or behavior that we believe is over the line. What line, you ask? Well, as a Supreme Court Justice once said, βIβll know it when I see itβ.
Citation from https://developer.apple.com/app-store/review/guidelines/#introduction
Interestingly, Apple still has this in their guidelines!
What happened after three year as Mobile developer?
On a high level, we can categorise the jobs in two types. One: Challenging jobs, Two: Slow pace routine jobs.
With this categorisation of jobs, we can also categorise the people. One: Those who like challenging jobs, those who like to do something new every day and keep learning.
Second: Those people who want more stability, who are happy with a defined daily routine and just want to have reasonable earning.
I don’t belong to the second category. I belong to the first category, get bored with same kind of tasks and want to do something that really counts in my personal skillset as well as which in fact utilises my skillset appropriately for my team and my company.
This nature became a key reason in why I didn’t like to continue as a mobile developer after five years of experience and I shifted my career to being a web developer and I am happy with that decision after yet another 5 years!
An ocean (Web) verses a small lake (Mobile)
Before comparing the development for both platforms, let us compare the platforms themselves!
The web is vast and has endless possibilities, has endless use cases, has a huge number of technologies involved, there is no end-in-sight to it. Any new device that is introduced has to become part of web as if all rivers are finally joining together in an ocean.
On the other hand, mobile devices (smartphones, tablets etc) are definitely a great evolution of technology. They have made those things possible which were never before. They have introduced new possibilities. But the fact that mobile is a small device, it has not as many scenarios as web has. As it is like the rivers joining the ocean, you’ll notice that the mobile scenarios are usually a web scenario as well.
For example, you can take live news updates on the go using your smartphone but will it be possible without web? Your smartphone made it possible to store your memories (photos/videos etc) like never before but without web, would it be possible to share it with your friends and family members across the world?
Web Development vs Mobile Development
If I was developing the games (I did that only in the first six months of my career) or if I was engaged in development of some scientific/research-based apps, my opinion could have been different. However I mostly developed normal business applications like the most of the mobile devs do. Hence there are a few things that I did not like.
Similar app architecture
Usually the business mobile apps communicate with web services (APIs) so the logic work is mostly on the server. The mobile apps generally have following things to do:
- Implement network connectivity
- Fetch data using web APIs
- Parse the data
- Send the input data back to server
- Build a beautiful user interface
(Depending on the app nature there may be slightly different steps)
Doing these similar steps for every other app made things boring for me. Once you have built a few apps, you are able to create some reusable components for network and API communication which means the biggest thing that remains and is apparently different in each app is the UI.
Too much proportional effort in building interfaces
For me as a developer, creating UI is not really an engineering task. Its just putting same UI controls and putting effort in aligning them. If this takes too much time, for me it is not the right value for my time.
Working on mobile projects, I found myself spending proportionally too much time in UI design and pixel perfection rather than spending time on real brain work or real engineering work!
No big data, no big challenges
In mobile development, you definitely face some challenges like memory management, sleek performance on UI but I don’t see that as big as the challenges that one has to face as web developer.
While I was mobile dev, I used to see how my colleagues in web teams were working to solve large scale problems. Now I am myself involved in all that π
A lot of variety, no boredom!
In web development, there is a lot to do. I have to see the coding side of my projects definitely but also I have a lot of other things to take care of so constant learning! For example, I am mainly working as a backend developer but at times I get chance to assist my team members on frontend side. Although, I am not so good in devops yet but I have to deal with Docker, AWS, Jenkins and other tools on daily basis. There are a lot more other things, like the frameworks, data tools, analytics and so on and so forth.
On the other hand, in mobile development, I had a few possibilities. I could do new iOS projects following the same practices, same libraries (UIKit, CoreData, Mapkit etc etc). Or I could seldom see something in Android but almost same nature!
Conclusion:
Though I love web development, I have no regret having spent early five years of my career in mobile development. That is a valuable experience and I’d always proudly mention this diverse kind of experience. On the same note, I don’t discourage anybody to choose mobile development as their career. I personally want to build a few more mobile apps (may be using Flutter or other cross platform tools). Smartphones and other mobile devices are integral part of our lives now as well as of business strategies. It is therefore not worthless.
However, I would definitely suggest everyone to stay in touch with web development tools and keep working on some small projects.
The opinion and analysis is based on my experience!
All in all, this is my personal experience. This is not an analysis based on any study or survey. You might have different experience and different opinion. Please share your experience and thoughts in comments section!
I am 100% agree with your point of view. Right now I am also working on web development. My first 4 were also in Mobile app development specifically in iOS Apps.
RE: ocean of “web” development: Wait till you get into the “backend” side of things.