Back in 2012, during the early days of KeepSafe, we sought to implement an encryption scheme for our Android App. Through many iterations and prototypes, we found a sweet spot of sorts by leveraging the power of the JNI (Java Native Interface.) We decided to write our interface into the encryption library we utilized in Java, calling into the library via the JNI solely for the purpose of encryption and decryption. We opted for an on-the-fly solution, minimizing the impact on user experience as much as possible. Once we were happy with our solution, we decided to deploy it into our production app. We rigorously tested our code and were confident that everything would go smoothly; that is, until things beyond our control broke.
As we anxiously refreshed our crash reports following our release, we started to notice a recurring error. Users were running into an “UnsatisfiedLinkError”, which means that either A) the native library we were calling into did not exist or B) the native method we were calling did not exist. Since B) would almost always be caught via compiling and basic testing, we were immediately perplexed at the fact that users’ installations did not have the native libraries we shipped within the APK.
That's the agony and ecstasy of software development right there, pal.
(Score: 0) by Anonymous Coward on Monday November 09 2015, @06:16AM
The XML seems like a lot of overkill until you release that you would have to manually code the layout for well over 40 separate resolutions, while you can make a universal layout XML that covers every single one of those resolutions relatively gracefully, and specific layouts for troublesome aspect ratios or extremely high DPI devices. I am not a fan but the fact that today's devices work with apps that had no idea you can even have a 1440p or 4K screen is pretty impressive.
(Score: 2, Insightful) by Anonymous Coward on Monday November 09 2015, @07:44AM
It's not impressive, it's sad. The fact that a change in DPI could screw up a GUI is a failure that should have never happened in the first place. Anything based on exact pixels is bad design. We should have always been using percentages and the entire GUI should scale instead of stretch.
(Score: 5, Funny) by davester666 on Monday November 09 2015, @08:02AM
Yes. The UI is equally poor across a wide variety of resolutions. Kudos to Android for solving this problem.