Lithium: the Multiplatform Porting Tool for Large Companies

This blog article is the first of a series that will provide more information on how our porting platform works and outline its advantages.

You may have noticed that we have built our very own multiplatform porting tool, Lithium. This tool allows us to develop mobile applications for large companies and it therefor possesses multiple functions designed specifically for these businesses.

Why Build Lithium Instead of Using Existing Porting Tools?

Let’s go back to 2010. Steve Jobs is undeniably siding with HTML5 as the ideal language for mobile apps. Spiria then develops a series of apps for a major client possessing a very vast sales force. This client needs a mobile app that can work on most future platforms, as well as more advanced features specific to a large company:

  • Synchronization despite an intermittent network;
  • Security;
  • Large scale database management;
  • Data centralization;
  • Device management (scanners/printers).

Solutions available at the time on the market, such as PhoneGap, are not yet mature and offer functions that are too limited and insufficient for our client.

There’s no way we’re building something for our client that will have to be redone in 2 or 3 years. It’s for this reason that we decided to build our own porting platform.

Lithium vs. PhoneGap and Cordova

Since being launched, platforms have evolved. With them, we have evolved Lithium. 10% of its functions are duplicated by Cordova or PhoneGap. It serves as an extra string to developers’ bows instead of acting as a replacement.

Lithium, Technically: JavaScript, C++ and Data for Large Companies

Lithium is what we call a framework. Its goal is to simplify the development of an application that is not linked to a platform and can therefore easily evolve. Lithium facilitates the reuse of UI components, data structures and algorithms, and also simplifies synchronization when a network is available intermittently.

In other words, Lithium is:

  • Platform abstraction layer (GPS, camera, etc.)
  • Web app container
  • Reusable widgets and components
  • Possible use of third party libraries (ex. Map)
  • Database synchronization
  • Chat infrastructure (client and server)

Lithium offers a JavaScript and C++ interface and great flexibility in terms of multiplatform development. It helps build apps way beyond the “showcase” format, and was designed for complex company apps that can involve millions of daily transactions between devices and a central server.

Managing data synchronization between a device and a server is an integral part of Lithium, which offers tools for both the server and the client.

Lithium also guarantees an easier interaction between JavaScript and C++, which means that it can carry intensive calculations toward a more efficient common language while transferring results to JavaScript/HTML5. This ensures a higher security level against reverse engineering than simple JavaScript code.

Furthermore, integrated modules dedicated to certain activity sectors, such as an API impression, access to Bluetooth APIs and interaction with barcode readers, complete this solution for large scale applications.

In terms of quality control and technical support, it’s possible to quickly and efficiently develop and debug a mobile app using standard environments such as Visual Studio.

The Future

We continue developing our platform. Many options are available for our tool: it can be distributed in open-source, offered as a complement to existing platforms or even distributed commercially.

Lithium is, and will always be, a complement to Cordova as opposed to a replacement.

Lithium does not pretend to be the solution to everything. There will always be a special place for native apps. It is actually possible to use Lithium without HTML5: the platform could be used for synchronization or to improve a native app’s security, for example.