There have been a lot of articles on the internet answering the most popular question these days
“Develop first for iOS or Android?”
Approximately all of these articles compare both the platforms based on factors affecting app development (writing code, UI/UX) or revenue generation, but they totally forget about two of the most important parts of software development – testing and maintenance.
For an individual or a company with limited resources, the most important part of publishing an app is how easily they can iterate on it based on user feedback. Sadly, no one actually cares about this while choosing the platform to develop on and no successful app developers have put enough emphasis on the importance of a developer console in the initial success of an app.
Note: if more than 75% of your users are on a specific platform then develop for that platform, nothing else matters.
Developer console is a place where you can submit your apps to be published in app store, so that it is available publicly for people to download. Apple’s developer console is known as iTunesconnect and Google’s is known as Google Play Developer Console. These look something like this-
Although I am an android app developer, I have released one of my app (http://internetusage.in) on all three major smartphone platforms. Here’s what I learned after publishing on both iOS and Android.
With TestFlight in iOS8, Apple is trying to solve one of the biggest problem with iOS development; beta testing, but it is still far away from being as helpful and easy to use as the Alpha/beta testing features in Google Play developer console.
The process of beta testing in both the developer consoles is somewhat similar
- create a group of people (testers)
- Upload your test build
- Testers install the app and provide feedback via email
TestFlight by Apple is less helpful because of the number of restrictions it has. Here are a few restrictions with TestFlight:-
- An app is available only for 30 days from the day it is put for beta testing iTunesConnect (not 30 days from when the testers install the app).
- TestFlight works only on devices with iOS8 and at the time of this writing, iOS8 has been struggling with a lot of issues, causing a halt in upgrades by users
- The tester must be added in iTunesConnect using their Apple ID and they must have a role of either admin or technical which means they have access to “My Apps” and “Catalog Reports”. Not sure if you’d want your beta testers to have permissions to edit/delete all your app data.
Although, Alpha/beta testing using Google Play developer console does not have these issues, they have one restriction that many developers don’t like, which is that the tester should be a part of a Google Plus community or Google group made for testers of this app and needs to be specified in Google Play developer console. You cannot specify a tester’s email address to send her a link to beta build.
User reviews and interaction
As is with all products, a happy user may or may not give a good public feedback (unless you amaze her with what you’ve built), but an unhappy user will always find ways loudly tell everyone how useless your product is.
Both the App store and Google Play store provide more than one way for a user to give feedback to the developer, either via email or by writing public reviews on the App/play store, but only Google Play developer console provides you a way to reply to public reviews (you’d be very lucky if more than 1% of all unhappy users write you an email about their problem rather than taking it out on you with public reviews). Rarely will you find such nice sympathetic users-
This single feature of being able to reply to public reviews makes Google Play way more powerful and useful than iTunesConnect, especially for an early stage app/startup. There were instances where both my apps had a few bugs for specific users causing them to give 1star ratings, but I could only help my android users by replying to them and getting more data out of them. Believe me, there are a few thing which can make you as happy as converting a 1star rating to 5 star by just proper communication with the user.
Although there are a lot of libraries for both android and iOS to log crash data and send it to the developer but both the developer consoles also provide a facility for you to view crash logs for the crashes reported by the user. With the increasing number of devices and different OS versions (even in iOS), these crash reports come in very handy as it is just impossible to test on each and every device/OS combination (specially for android).
iTunesConnect has a very simple page for crash reports, it has tabbed pages for different OS versions and a list of crashes for that version on each page.
Recently updated my app and thus iTunesConnect is not showing any crash reports (there’s no way to see crash reports for previous app versions). Borrowing this screenshot from http://www.raywenderlich.com/23704/demystifying-ios-application-crash-logs
While in itunesconnect, you need to download the crash report for each crash and each OS version, Google Play developer console shows all this (and more) information conveniently in the browser itself.
Play developer console makes it very easy to read and analyze crash reports. Like itunesconnect, it gives the complete stack trace for each crash but it also gives a lot of other data like pie charts for number of crashes per app version/OS version/device.
Android also provides users with an option to send a message with each crash report which might be helpful for the developer, but my experience with these user messages hasn’t been very good as they usually are unclear/generic “it’s not working!” and you can’t reply to them!
Apart from being a place to upload your app for publishing, purpose of the developer console is also to show the app statistics like how many people have downloaded your app, from which country, on which devices, etc. This also helps you do some app store search optimization. Try to change a few keywords in app name, description, etc. and then see if it affects number of installs then make changes based on learning.
I had high hopes with Apple while publishing my first app on Apple App store. I thought their developer console must be much better than Google Play developer console as Apple is the pioneer of app stores and they already had a lot of developers making iOS apps, but I was highly disappointed to see that App store shows only app downloads and nothing else. Below screenshot shows the sales and trends page for internetusage (Just reached 10K download :D, ice cream anyone?)
Although, number of downloads can tell you if your app is going viral or not, it is the most incorrect statistics to determine an app’s success. Number of downloads doesn’t tell you how many users are actually using the app. It is very important to know how many active users you have, how many people are actually upgrading to the latest version of your app, how many are uninstalling your app daily (are they from a specific country/on a specific device/on a particular operator?). These app stats are the best part of Google play developer console.
Both the companies have totally different approaches towards the app store. While Google tries to encourage and help developers, users are the most important part for Apple. Although with TestFlight and a few recent changes in iTunesConnect, Apple is slowly trying to solve developer issues, but it is still a long way from competing with Google in this field.
So, if you are an individual developer or a company with limited means wondering which platform to choose, I’d suggest to go Android first because of the smaller iteration cycle with user feedback/good crash reporting, easier beta testing and variety of app statistics. Specially because of the time it takes for Apple to approve an app (someone actually built a webpage to show average app review times http://appreviewtimes.com/). Apple took around 18 days to review and approve internetusage on iOS (meanwhile it was downloaded ~7000 times on android).
These app stores have their own set of vast features, but I have tried to concentrate only on the ones I think are important for a new app trying to improve rapidly with user feedback and help from the platform. Let me know if I missed something.