DEV Community

Cover image for Developer Horror Story
Sharique Afzal
Sharique Afzal

Posted on

Developer Horror Story

Story by Paul Taykalo, Lead iOS Engineer at Stanfy.

Situation

Let’s say you used Facebook SDK in the application. There are a lot of things going on in Facebook SDK. A lot. Sessions, Facebook Login, native Facebook support, Stories, Open Graph API, Sharing. Facebook guys are doing good job and there’s good documentation for all those things, but still — there are a lot of things, and those things are evolving. The main principles remains the same, but sometimes APIs are being deprecated, and sometimes the logic behind those APIs changes.

And this happens with everything we’re working with. When we’re writing an application for iOS, we know that application behavior depends on

  • iOS SDK version (provided by the Apple)
  • iOS Guidelines
  • Your Libraries
  • Third party libraries
  • Devices specifics (Screens, architecture, GPU etc). So, at the moment of the change request next things had happened:

iOS SDK got updated, new devices becomes available, ALL Third-party libraries got updated, some of them switched to next major version, which means that they changed radically, so you cannot just say ‘please, use latest available version’. Old workarounds (hacks) won’t work anymore, since Apple have new requirements, and SDK itself have changed. Because all of those, Xcode won’t compile your old project until you fix all warnings and errors.

So first thing you need to do is just to build that project again. This can take a while.

Later you need to check all project features, and then recheck those and then recheck those again on latest devices. This can take even more time. In complex cases you need to discuss application logic changes, because of some major libraries updates.

After you’ve done with this, you need to check if your updated application is correctly working with previously generated user data. Especially if this data is not stored on the server side. Users are really unhappy, when they’re loosing their previous photos/smiles/pictures those they’ve taken last ten months.

And only after you fix those, you’ll be able “Change some texts”.

P.S. Funny thing is that sometimes it’s not end here. As submission process also changes, and you can got reject, because you’re trying to use old API.

Please update texts in the application and make sure that all logic wasn’t changed, and it will look and work the same on the newer devices, it applies to the new all third party libraries requirements those we’re using in the application. After you do this, publish application in the App Store

Afterword

Mobile world is evolving blazingly fast. Changing application that was written a year ago is feels like you trying to find some parts for old steam-powered car. Even if you’ll be successful with finding all needed parts, there’s a high probability that you’ll never be allowed to drive it again due to security/emissions… whatever regulations.

Stanfy is an agile software development company. We help others evaluate technology, develop and deploy software systems that tuned to work in mobile and wearable world. Drop us a line if you need a collaboration on your lean technology product or startup.

If you like the post, please recommend it.

Top comments (0)