When the higher-ups dreamed up OutSystems 10, their golden goose was developing native mobile apps. And they wanted the publishing experience to remain instant.
Basically, their heads were filled with this:

Imagine this graphic, but drawn on a napkin. "This is how native app publishing should work," they said as they plopped it on my desk. Then, they asked me if I could make it happen. “And how do I do the magic-y, sprinkles star part?” No reply; shocking.
The panic was setting in. But a year and some change later, OutSystems 10 uses a complex series of technology to guarantee that users have native builds ready in minutes. This is the story of how we spent that year turning magic into reality. And in the end, reality looked like this:

To Get to Native App Publishing, We Had to Start From Scratch

OutSystems 10 was already in progress. The native app publishing user journey included the ability to generate a deploy-ready mobile app in one click. The first iteration of this feature was just a bunch of raw ideas thrown at a metaphoric dart board.

We should’ve color-coded

And the early mockups looked nothing like the final product.

Huge mouse cursor or super tiny interface elements?

We print mockups at OutSystems because long live paper!

The Wizards Deliver... a Baby?

Our tiny three-person team started hacking at the problem immediately. At speeds that shocked even us, we soon had an integrated experience inside ServiceStudio, our development environment, and ServiceCenter, our management console. And a few weeks later, we reached an incredible milestone: we generated our first iOS app. We had made it up and over a major native app publishing hurdle.
But a MacBook sitting on our desk and running a simulated queue had compiled it. That setup was so tenuous that at one point the cleaning lady disconnected that laptop and our whole pipeline screeched to a halt. But we made progress, and fast.
Just as we gained momentum, our lead mobile engineer published a little package of his own. We were hit with a tiny, crying, 6.3 pound gift named Francisco.

Yes, Luis became a father, and not in the Catholic way. We love babies at OutSystems and we were overjoyed for him, but we were hoping to backlog his son for a few sprints. We were already short on resources and treading unknown territory and now our most experienced mobile engineer was going MIA for several weeks. Expletive.

Now to Deliver that Native App Publishing Thing

We tried not to panic, and then immediately panicked. But our motivation never waned and the support from our organization kept us going. The iOS builder was stable, and, in most part, just missing infrastructure.

In the following weeks, we tried to show a live demo of the Android build process. Five times. Every attempt failed at the last moment due to some minor detail (for example, no network, missing assets, God’s anger). We would prepare a slide that read, “Android demo!” and at the last moment… crickets.

But all of the internal stakeholders of the native mobile app development project remained satisfied. They knew we were getting closer and it was just a matter of ironing out the kinks before we had everything going. And in a flash, that day arrived. We built the first Android app generated from within ServiceStudio. We could now generate iOS and Android apps with (practically) one click!

This was a double-edged sword: no free beer :(

Ramping Up Native App Publishing to Enterprise-Grade

It was time to ramp it up to enterprise grade. Before NextStep, our worldwide users conference, we had to scale everything and include staging and QA as well. Luis returned and we added another fire trooper to the team to accelerate our progress. Again, highly motivated people made it work. We had deadlines, and everyone cranked up their commitment. The challenge compelled us to get it done.

Too stuffed to work, huh?

The Roar of Success

But when our CEO flawlessly presented our feature during a live demo on the main stage, we heard a roar of applause. The feeling in that moment was indescribable. It justified all those long nights, stale pizza slices, bitter coffee, and untimely baby arrivals. We were proud.

César Afonso

César Afonso started programming when he was a child. When he's not enjoying a fine wine, running or spending time with his family, he's most likely telling everyone he loves technology almost as much as he loves OutSystems. César gets to exercise this passion on a daily basis as a mobile leader in R&D.