Android's APIs are like something out of a horror movie, they are just freaking nasty.
GPS: A Developers Nightmare
Consider the tale of The GPS API That Ate Christmas (as in ate up all your time off). GPS is just a few basic fields: timestamp, latitude, longitude, altitude, heading and speed.
Hard to imagine anything simpler. Should take about 15 minutes to add to your app right? Wrong! Instead, this is your life:
- Read thousands of words of documentation to understand the nuances of the Location API
- Write dozens or even hundreds of lines of code, annotations and declarations
- Spend hours, days, or even weeks wrestling with the API to get it working nicely
- Put a massive amount of effort into permissions, something the OS should take care of completely transparently
If you use high accuracy Android will bombard your app with location updates as frequently as every 100 milliseconds, even when the values haven’t even changed. The code behind the API is completely brainless, the developers did the absolute bare minimum.
And then there is the special hell of getting your app approved for the Play Store. Any app that wants to use GPS is treated as malware.
The Forgotten Standard of APIs
The Android people, like pretty much everyone else, seem to have forgotten that APIs are supposed to provide a service. One of the top goals of all APIs should be to help the API caller be successful. If you have done any Android development you probably wondered if the goal of Android APIs is to get developers to quit Android development. It is almost as if they want to waste as much of your time as they possibly can.
It is pretty clear Google wants it all for themselves. We know they rig search results (fact) and they rigged ad words to keep costs up (fact). It would not be a stretch that they are intentionally making app development less than ideal for everyone else in order to give their own apps an advantage.
Access to GPS data and accurate timers are two examples of permissions that are notoriously difficult for non-Google developers to obtain. While Google's own apps seem to have unfettered access to these resources, third-party developers are forced to jump through hoops to achieve similar functionality, if it is even possible.
The Play Store
Deploying an app is like an episode of the Twilight Zone. There are many hops to jump through, but when they have a problem with your app, the problem is often incredibly vaguely communicated, almost like they are trying to prevent you from publishing. One example: your app may be rejected because of one of the countries you have selected to publish to. Which country? They won’t tell you!!!
Even when Google may have a very specific reason for rejecting your app, all they will do is point you to a huge web page (or pages) of documentation that covers many different topics and scenarios. At times their own support people appear to be embarrassed by the hidden rule that they are not allowed to tell you why your app is rejected.
Sure AI can develop apps, but that is no excuse for bad API design. Google/Android fix your shit APIs. And stop withholding information from app developers.
My Android Apps
Google often changes things then demands developers update their apps. Comply or your app is removed from the app store.
Pink Calendar Appointments
A “wall calendar” style calendar and day planner. The best feature is the criteria for repeating reminders is simple yet powerful, custom tailored to fix the selected date/time. Available here.
This app is shadow banned by Google: despite its unique name the last few times I have searched for it have all come up empty.
GPSOwl
This app is part of a larger system used for tracking mobile assets. For example a shuttle bus company can use it to know where all their buses are at all times. Available here.