Case Study: 40 TOP Android Apps Have Locked Orientation!
The Need
Last month, I started working on a semi-developed app. I convinced the stakeholders to allow me to implement MVP architecture for the app. It was very relaxing to have a separate Model aka Data layer because it helped me to implement API, Image loading helper, DB helper, etc via interfaces. Hence if needed, tomorrow I can easily switch to a different/ better library on the fly!
There are quite a few reasons why Presenter and View (Activity) layer needed to be separated. But I found in my case I was chiefly separating them because Activity can go through configuration changes (majorly orientation change) and Presenter is needed to restore the Activity’s state.
In daily life, while using some Android apps by top developers of Play Store, I noticed they ship their apps with orientation locked in Portrait mode! While this is the norm in games, I was surprised to see other apps doing this as well. I was curious to know more. Hence I installed over 40 top apps and here are the results:
List Of 40 Apps By Top Developers Who Have Locked Orientation Of Their Android Apps To Portrait Mode
Tez
Duo
Files Go
Google Go
Payment Apps
Paytm
Freecharge
Mobikwik
PhonePe
Facebook Lite
Moments by Facebook
Msqrd
Cab Apps
Uber
Ola
Grab
Lyft
Jio
My Jio
Jio Music
Jio Cinema
Jio Money
Ajio
Jio TV
Shopping Apps
Flipkart
Snapdeal
Paytm Mall
Myntra
Jabong
ShopClues
Music Apps
Gaana
Saavn
Airtel Wynk Music
Musical.ly
Other Popular Apps
Snapchat
Inshorts
My Airtel
My Vodafone
My Idea
Oxygen Wallet
Chillr
The Take Aways
The official android documentation recommends allowing orientation change. But the company behind android (Google) itself has some apps not honouring this recommendation. If you notice, most of the apps in the above list have got Editor’s Choice Award by Google Play Store (represented by a blue badge on their Play Store listing)!
IMHO, a change in thinking is required. As android developers, we start any app with allowing orientation change in mind. Later we cherry pick activities that require orientation lock. But, with so many apps as example, we should start apps with locked orientation, and later selectively allow some activities to change orientation.
Allowing orientation change requires extra code. It requires more efforts, and time. If not done properly, it may result in leaks or improper states. It may result in bugs sometimes. And this is a continuous process. Whenever you implement something new, you need to take orientation change into consideration.
My entire experience is in startups. And I can say that as developers in startups, the only thing that we need to do for our companies is to implement new/ modify old features faster. Most of the times, startups don’t even know what would click with the end customer. Hence, the faster we iterate, the more closer to success we’d reach. In this sprint, allowing orientation change just isn’t worth it!