Frontend in the Cloud — Creating Native Mobile Applications on Python — Free and Open Source — 5G Ready

Edward Igushev
Frontend Weekly
Published in
3 min readSep 9, 2019
Architectural Change

Overview

Mobile Applications are mostly built for specific platforms using native APIs. It might be attributed to the fact that at the very beginning of modern smartphones mobile Internet wasn’t fast, forcing developers to implement entire UI/UX and some logic on Mobile Application itself specific to a platform with minimum communication with backend. Such architecture is widespread today and it reinforces market with only two platforms. Solutions such as ReactiveNative and Apache Cordova does not challenge the typical Mobile Application architecture and address only code duplication problem.

Web Applications have different architecture. They’re built on open protocols and Applications and platforms are decoupled. As result anyone can build a website and anyone can built a new browser or a new platform.

Mobile Internet became much faster over the years and currently 5G technology makes mobile Internet fast and reliable as never before. All of that makes it perfect time to challenge traditional Mobile Applications architecture and move frontend to the cloud.

Fase is open source and free frameworks for building Applications. Entire Application including frontend runs in the cloud, constantly maintains its state and constantly communicates with a device which just renders screen with native components. Currently the API is implemented in Python, but can be implemented in C++, Java, PHP, Go, JavaScript, etc., giving developers choice of language. Currently rendering is implemented for iOS and Android, but can be implemented for Web browser, Tizen, etc., giving users choice of platform.

Currently Fase allows to create native Mobile Applications on Python.

Even gaming industry which is very sensitive to bandwidth and latencies, moving to cloud by companies like Nvidia, Microsoft and Google.

Benefits

  • Singular frontend which is rendered on all platforms with native components. With Fase developers need to implement only one frontend which runs in the cloud and rendered on devices using native components with native look and feel.

With Fase developers need to implement only one frontend.

  • Running frontend in the cloud allows to synchronize not only data, but entire context and provide synchronized and seamless user experience. Modern users usually have small chunks of time (standing in line, between meetings, etc.) to perform certain activity on mobile phone. Application can be evicted from memory and user looses context completely and that is really inconvenient when booking a hotel or making a purchase. Developers can address by saving and restoring Application state, but it requires extra effort and mostly nobody doing this. When entire Application runs in the cloud, maintaining context comes out of the box.
  • Advanced app management (instant updates, support of A/B testing). Since entire Application runs in the cloud, when it is updated, new version is available instantly across all devices bypassing any review processes. It allows continuous deployment for Mobile Applications. Developers can also deploy a new version only on small percentage of users, evaluating metrics and either fully deploy or rollback. Currently such A/B tests require code branching.
  • Free and Open Source. Framework is completely free, open source and has detailed instruction on how to deploy. API has extensive documentation.
  • Used by thousands of Applications. Already used by thousands of Applications currently available on AppStore and Play Store.

Demo

Fase Demo

Links

  • fase.io — official website with instructions on how to deploy and API documentation;
  • igushev/fase_lib — Fase Library — Fase library to develop the server of a Fase Service;
  • igushev/fase_ios — Fase iOS — iOS client for a Fase Service;
  • igushev/fase_android — Fase Android — Android client for a Fase Service;

Examples of Fase Services:

--

--