Our overall vision for ShinobiCharts for Android is that it should eventually be 1:1 feature compatible with the iOS versions. Obviously the APIs will never be identical, as the 2 products exist in different platforms and are presented in different languages. So as we add features are to the Android version, the API will evolve…
The iOS version is very feature rich, and some way ahead of its Android cousin, so we are releasing Android incrementally, adding features as we go, at a rate of roughly 1 release per month. This allows us to get the Android version out to those customers who only need the basics, without waiting for features that they do not need. Our roadmap for the product is still flexible, and we’d like to produce the features in order of greatest need first, so please tell us what you want! (We can’t promise specific features, but we’ll take your requests into account.)
With a flexible road map it is probably inevitable that sometimes we will want to change existing API, in ways that may impact existing customer code. Obviously we try to avoid this as far as possible, but I think it’s worth having a clear policy to deal with it, and sharing that with our customers. Here’s what we’re aiming for:
In general we will prioritise having a clear, simple API over rigorous backward compatibility. So in the (hopefully rare) cases where the existing API is unclear, we’ll change it.
When we make an API change, we’ll try to do it in two releases:
- In the first release we’ll deprecate (using @deprecated) the old API and add the new API
- In the next release we’ll remove the old API.
This should give you the ability to drop in new release versions with enough warning to make changes.
- If it’s not possible to take that approach (e.g. if having both old and new API present at the same time would just cause confusion and inconsistency), then we would simply make the change immediately.
- Any API changes will be noted in the ChangeLog.txt file which is part of the product download, indicating what changes have been made, why they have been made, and how you should change your code. IMPORTANT! Always read the ChangeLog.txt file when you download a new version, either as a trial or a licensed update.
What do you think? We’d love to find out your views, and maybe start a debate on the subject.
ShinobiCharts for Android