Tuesday, October 18, 2016

Recently, we had to publish an app to both the Apple Store and Google Play. At first sight, this seems an easy task right? Well, wrong. Assuring that your app will be available on date "x" on both stores is tricky. Here's some advice:

Apple

– Plan carefully: Apple's approval process is unpredictable. And when I say this I'm not saying that it's random, but it's not fully predictable. If you comply with all the guidelines you should be fine, but even in that case you cannot be sure how much time it will take them to approve the app. It might take 1 day or 6. Although recent reports claim that Apple were speeding up the approval process to one day only, it's still not predictable. We recently had one that took 3 days, other that took just one. So, plan carefully and leave a good amount of slack to account for this;

– Expect the best, be prepared for the worse: again, if you comply with all the Apple guidelines, you can have considerable amount of confidence that the app will be approved. However, if it's not, then you have a "tennis game" of messages to play with Apple, fixing issues and resubmitting. It might take time. Again, plan and leave a buffer.

– Small mistakes, big impact: A simple thing like "not stating the countries where your app sells" will automatically remove it from the store. No problem. The problem is that the e-mail you receive says no information at all (it's generic stating your app has been removed) and it's hard to troubleshoot what's wrong. So, be very focused when going through this process;

– No updates before it's live: This was a big WTF. Submit your app for the first time. It's approved. You find a bug. No, you cannot release an update. You have to cancel and resubmit the app or make it live and then submit an update.

Google

– Protect your keystore: Apple's Certificates and Provisioning profiles can be easily retrieved from the developer's site. And you can even create new ones for the same app. With Google, you cannot download your keystore. You can't even submit an app to Google Play with the same id but different keystore. So, if you have an app in the store and you lose the keystore, that's it: no more updates. It will be a new app for your users. (Quick Reference: Secure your private key).

– Be careful with the devices you say you support: there's probably 2153543534534 possible screen resolutions on the Android world. So, stating that you support Android 4.4+ is a bold claim. Be prepared for the "rooted Xiaomi" and "super-crazy car-device".

– "Weird test flight": Apple's test flight works fairly good. Google's Beta is a bit weird. If it's an update, you must have the original app installed and then you go to Google Play and hit update and... It's not a seamless process.

Having said all this, I'm not saying the Apple process is better or worse. It's just different and more bureaucratic. If the advantages of all the bureaucracy compensate the risk or not that's a matter of opinion. I do like the way Apple is trying to improve (Example: 6 months ago they required screenshots for all flavors! Nowadays, just give screenshots for iOS 6 and a big iPad and that's it!)

Sunday, October 9, 2016

I admit. I was skeptical when I first saw OutSystems. I was a recent graduate and I was a code freak. Looking at that "low code", drag-a-ball kind of doing things was weird for me. So, I ran away from it in those days. I wanted to code and code and code. I'm now the complete opposite. As you get more and more real world experience, there's one sentence that gets really tattooed all over your brain:

"Technology is just a means to an end."

It truly is. It's fun to code, I love it. But, nowadays, I just want to give life to my ideas. I'm not interested in how the CLR manages memory and uses the heap or stack depending on the underlying type of...! I want my idea to become real. I want people to use my apps! And this is the part where I became an OutSystems fan. I just love it. It is the ultimate best low-code platform ever if your focus is results! With OutSystems, your ideas don't stay just on your dreams! And it's still fun to code.