In this post I’ll be writing about the struggles and learnings I got while implementing an SDK provided by Adobe in one of our projects.
In my overall experience as an Android App Developer, I’ve implemented my fair share of third-party libraries and SDKs for numerous functionalities. But this one stood out (And not because it was a great learning experience or stuff like that) because of pure mind-numbing and avoidable process Adobe makes you go through for just integrating an SDK to open just a PDF file?
The first thing that went through my head was, of course, it may be because of their security protocols, that they want to keep their source of income secure. But the more I explored the SDK they provided(after paying them a big sum), the more I learned that there was not much security or anything they can do If one wants to pirate the SDK and generate their keys (required to open PDFs and EPUB files).
Let me first explain the process of integrating the SDK in your application:
- First, you need a Mac or Windows system because apparently the Linux platform was not supported for this.
- Then there’s are around 6-7 script files that you need to run in a particular order, so their output can produce more files that then will be used in the SDK later.
- Then you’ll have to download the OpenSSL library file and one XML library file because they couldn’t include these files in SDK for some reason.
- Then you’ll have to download NDK v 15-RC because this SDK only supports that particular old version of NDK (and because Adobe doesn’t want to update the SDK for new versions because they’ve done such a “good” job).
- After following all this, now we have to very obviously set all the Environment variables properly.
- Then as the documentation said just set the SDK to the directory name (That, of course, has to be set to a particular name) and run the build and lo and behold! It runs.
Now the thing is that they provide a developer certificate that’s attached to the SDK (And it works for only 30 days from the day the SDK package is created and you have to guess when the certificate expires, so you can ask their support to generate a new certificate, or you can just wait for the day when suddenly your app is not opening PDF files that it was opening the day before and you’re wondering if you pushed some wrong code)
Although when your development part is completed and you’re going live with your app, they’ll provide you a different certificate according to the subscription plan (so that’s pretty sweet of them).
And with saying all of that I’d really like to appreciate the support team that helped through all the excruciatingly long process of integrating the SDK (they wouldn’t have to if only they knew how to create a proper and secure library as other companies do).
What I learned from going through all that is if you are working in a multibillion-dollar company after going through a long process of interviews and accomplishing yourself as a good programmer, please at least work like that.
To conclude, It was actually a good learning experience for me personally because for one I got to see the coding practices used in Adobe and second now I’ll just go for some open source project/library in future that I can customize according to the requirements of projects and not waste my time and money on these type of SDKs.
“If you want to suggest some pointers related to this, please feel free to contact us or share your opinion in the below comment section.”