It’s the Platform that matters, not the App.

J. P. Solano
4 min readJan 10, 2018

When we are planning the architecture for a new app, one of the most common questions to discuss is: What technology to use? As a Software Engineer is very reasonable to ask yourself, What is the best technique to embrace?, Is it a determined new technology worthy to try? Nobody wants to be putting time and effort riding a dead horse. That is especially relevant when we talk about Mobile App technologies. In the last ten years, we passed from a closed development ecosystem controlled by RIM (Blackberry), Microsoft (Window Phone, Nokia) and Apple (iPhone) to a more dynamic community where Google (Android) and open source has a huge role. However, with one downside, if it can be called in that way, the abundance of tools, frameworks, practices, and technologies available to achieve the same task: create a mobile app.

We can say that many of the mobile development improvements came from the advances in the Web development tools. Ten years ago, the lack of modern tools for web developers and the flourishing open source community made the perfect match for the arrival of jQuery, Backbone, Node.js, Ember, Angular, SaSS, Ruby and so on. A modern Web Development stack was born and with it, more robust and versatile Web apps.

Mobile web was still taking their first baby steps, with more processing power on the devices and a modern mobile browser (Safari) available. However, for many years, mobile web apps could not even be compared with native apps. When the iPhone was the only valid option for a Mobile App, anybody bothers about fragmentation and code reuse; a native app was the single logical decision. That changed when Google introduced Android and made it open source.

Samsum moves to Android, and the rest is history. When Android start to take-off in the market, developers, and companies see the problems to maintain more than one native platform (iOS and Java) in a fragmented mobile ecosystem. Then the hybrid approach comes to saves the day. Apache Cordova (Open Source) was created to hide the native complexity on the device side and opens the WebView door for a serious mobile web stack with HTML, Javascript, and CSS (see Ionic Framework)

However, even with the rise of Web 2.0 and its technologies, WebView Hybrid Apps are still prohibitive slow for some intensive-cpu mobile apps, without mention the new fragmented ecosystem of Smart TVs, Watches, Consoles and Streamers.

Moreover, when we thought that WebView Hybrid App was the only option versus Native App, the web developer’s community (again) came with a new and exciting proposal: What if we can develop using HTML, Javascript, and CSS but instead to wrap it into a single-threaded native layer, use it to compile and generate a native app? Well, that is precisely what React Native does. If that does not sound exciting enough, Compiled Apps comes with the bonus that on top of mobile apps, you could also generate Web / Desktops (Win/Macs) / Smart TV / Console / Streamers apps.

I made this flowchart to help with our decision:

We need to decide between going with a Native App, WebView Hybrid App or Compiled App, but is that the most critical question to be responded? Maybe not.

I like the vision of Jeff Bezos about changes:

I very frequently get the question: “What’s going to change in the next 10 years?” And that is a very interesting question; it’s a very common one. I almost never get the question: “What’s not going to change in the next 10 years?” And I submit to you that that second question is actually the more important of the two — because you can build a business strategy around the things that are stable in time

Now when we ask, What’s not going to change in mobile Apps in the coming years? We get interesting answers:

  • Business needs manageable app projects from idea to deploy.
  • Business need apps beyond phones (SmartTV, Console, Watch)
  • Business needs to collect metrics and see analytics for the apps.
  • Business needs federated identity management.
  • Business needs app updates and version control.
  • Business needs to push messages to users.
  • Business needs a scalable backend in the cloud.
  • Business needs a getaway to connect micro-services with apps.
  • Business needs public/private API management.
  • Business needs Chatbots and AI services.
  • Business needs works with local and remote teams.
  • Business needs to collect payments from users.
  • Business needs big data reports.
  • Business needs to A/B Test new features.
  • Business does not necessarily care about what technology you choose for the app if you provide the platform to maintain it.

As you can see, choose a mobile platform is may be the most critical question you have to respond. If you are right, you will have the foundation to create many apps during the coming years.

By the way, I will be using React Native (Compiled App) for my next app.

Let me know what you think about this post. Would love to hear your thoughts.

Like this post? Great! Follow me on Medium or Twitter @solanojuan.

It would be cool if you hit “Recommend” on this post too. Thanks!

More posts from J.P. Solano:

--

--

J. P. Solano
J. P. Solano

Written by J. P. Solano

Senior Software Engineer | Front-End Practitioner | AI/ML Interested | 🎙 Podcaster

No responses yet