0

I am handing off an Android app to a non-technical client for long-term maintenance. Could anyone offer insight into how often the app might break due to OS updates such that they would have to bring in an external developer?

I'm guessing this would depend on the type of app, so let me offer a bit more info below:

  • Our app displays live bus information using the google maps SDK
  • We have few external dependencies - just joda-time, hockeyapp, and AppIntro

Thank you!

coder-don
  • 113
  • 7

1 Answers1

1

If you would solely depend on platform / SDK functionality, your app will not break unless Android / Google actually starts and removes deprecated functionality in newer SDK versions - which it has actually not done in the past a single time (well, except once, when they moved the old Apache HTTP library into an external dependency, but this really happened only one time so far). So, your app will continue to work, but will slightly degrade wrt integration and UI design over the upcoming SDK versions. See for example how "alien" Gingerbread or older apps look on modern Lollipop or Marshmallow devices - but also see how they continue to work.

If you depend on Google Maps, you depend on Google Play Services, and that is an entirely different area. Since Play Services are updated separately and constantly by Google, their API evolves differently and more often introduces breaking changes. These breaking changes are, however, long communicated before, like e.g. the abandonment of the old Maps v1 API that was IIRC around for more than two years after it was announced as deprecated.

HockeyApp is another candidate where you depend on external server functionality. If Microsoft decides to do whatever with this service (change APIs, abandon it altogether), you of course need to touch your implementation. But again, this should be communicated a long way before it will actually happen.

Thomas Keller
  • 5,933
  • 6
  • 48
  • 80
  • Thanks for your detailed and insightful answer, Thomas. For google play services, would we ever experience breaking API changes if we specify our version of GPS in our gradle build? (e.g. compile 'com.google.android.gms:play-services-maps:8.3.0') – coder-don Feb 28 '16 at 01:13
  • As a side note: Changes to implementation - see AsyncTask http://stackoverflow.com/questions/4068984/running-multiple-asynctasks-at-the-same-time-not-possible or vendor implementation - see Samsung Appcompat http://stackoverflow.com/questions/24809580/noclassdeffounderror-android-support-v7-internal-view-menu-menubuilder are things you have no control over. – Morrison Chang Feb 28 '16 at 01:15
  • The thing is, the GPS version you specify specifies only the "client" component of GPS and that talks via a binary protocol to the local "server" version that is deployed and auto-updated with the GPS apk on the user's device. This protocol is of course up to a certain point backwards compatible, but at some point your local version will be so outdated that you need to recompile (and possibly adapt) your app to a newer version. – Thomas Keller Feb 28 '16 at 01:16
  • @MorrisonChang ...and yes, Samsung is the Microsoft Internet Explorer of the Android world. And small glitches / breaks in functionality between different SDK versions exist, but these are really the minority. – Thomas Keller Feb 28 '16 at 01:18