In comparison, I've noticed Android has FANTASTIC developer documentation. I've found full guides for everything. Even esoteric classes that are rarely used have at least a little bit of documentation.
In comparison, I've noticed Android has FANTASTIC developer documentation. I've found full guides for everything. Even esoteric classes that are rarely used have at least a little bit of documentation.
My coworker and me are already starting to feel the pain on various core APIs, the latest being notifications, which according to my coworker had 3 full revision, and finding documentation for the last one is hard. Storage (with Android 11 modifications) is another place where the documentation is starting to get stale. Those are not the only APIs were the documentation was poor.
In my opinion, Android documentation is at the same place iOS documentation was about 5 years ago (before they started removing entire pages from the documentation) : overall very good, but a few places were it's not up-to-par or downright horrible. I don't expect the quality to improve in the future.
I wonder if there is a good way to measure documentation quality...I suspect such measures will require techniques borrowed from user experience research.
I would start with a checklist:
- is it complete and consistent
- is there a description to every important piece
- working examples
... and if this is complete, you can measure all you want, but I would start with the basics.
For Google Cloud Platform, they partner with other companies (like the one I work for) to help with GCP setup. This partner program was started in the last few years, so I don't think they were doing this for Android back when Android development was new.
Also, the company I work for spent a lot of time building Android apps for Fortune 500 companies, so I feel like I would have heard about it. Our clients would have benefitted from having Googlers build Android apps and train people!
Because of all the junk they've added re: battery optimization, "Adaptive AI" notifications. Even after disabling much of that, it takes a 3rd party app to get notifications reliably.
I suspect someone took "hiding implementation details" too seriously, and now Apple never talks about how anything works (it's all magic). You only get function's signature, and "documentation" that is basically just the function name with added spaces between words.
That said, a couple of example code snippets on using the interface wouldn’t hurt.
That's NOT a "good" reason in any sense.
That's a terrible reason, which no-one in a team leader or above position should ever sign off on.
Wolfram Documentation on Mathematica is excellent in my humble opinion. Here is a function I use very often, convolve.
https://reference.wolfram.com/language/ref/Convolve.html
Notice how the interface is very well described, there are examples on how to use it, but there are no implementation details.
That's not an "easier to keep documentation up to date" type of thing ;), but is definitely an example of good documentation.
Unlike the Apple approach mentioned above. :( :( :(
https://developer.apple.com/forums/thread/663858
Why in the world is this a random undiscoverable post in the (terribly designed) developer discussion forums rather than a Technical Note in the documentation? It would have been a TN in the past. In fact that same engineer wrote a number of old Apple TNs.
It's clear even to some within Apple that there's a need for more and better documentation, but some pointy haired boss in upper management seems to think the current situation is fine.
But writing quality apps requires quality API documentation. I don't know how developers fumbling around in the dark can result in quality apps.
Being "dedicated" to Apple platforms is not the same as being dedicated to quality.
I agree about the Android docs.
However, in defense of companies that don't like to have too much documentation around, I can tell you, from personal experience, that writing developer docs is hard, as is doing developer support.
Keeping them up to date is also a challenge.
I call it "concrete galoshes": https://littlegreenviper.com/miscellany/concrete-galoshes/
I got my first Mac in '86 (a Mac Plus).
My first copy of Inside Macintosh was the hardcover. I think it was two volumes, back then.
Sadly, they seem to have stopped writing these at around 2015...
[1] https://developer.apple.com/library/archive/documentation/Co...
I so often need to do a simple thing, find a function that looks about right, and the documentation for it says literally nothing about how to use it.
It was one of things that I found unbelievable when switching from Android to iOS development. The developer experience is just so much WORSE on iOS. Sometimes, it's as if Apple is actively trying to annoy developers.
It's a tiny cost center, in the grand scheme of things. As it is they probably spend less than they spend cleaning the glass at Apple Park.
No such luck for iOS. Best you can do is poke at binaries with a disassembler.
On the other hand, it's been a great opportunity to learn how ARM works!
But on top of that, Google also produces high-quality long-form guides. Those are first-party guides, found at https://developer.android.com/. (Google maintains the Android developer site.)
Add then padding that with the long-form guides with concepts and examples.
Now I feel some of that information is hidden in WWDC videos but it's not the same.
I also had good experience with the Android documentation, same (as the article stated) for PHP and most of Microsoft.
The documentation has lots of outdated stuff that only gets updated across Medium, StackOverflow, bug tracking comments, twitter posts, /r/androiddev.