Analystik’s Approach to Cross-Platform Application Development

See AMP Version

The new cross-platform application development paradigm has confronted developers with a multi-OS and multi-device heteroclite environment (iOS, Android, PC, Web). And of course, everyone was looking for high-performance cross-platform multi-device deliverables!

Saying that the application development landscape has greatly evolved over the last few years would definitely be an understatement, be it mobile or back-end and front-end. And always the performance challenge remained central over time, both in terms of development (to develop the fastest possible at the lowest cost) and in terms of application performance.

From Mobile to Multi-device to Cross-platform Application Development

Before, the developer would code according to its expertise and programming philosophy and its deep knowledge of a specific environment, you were either Java, Open Source, Windows, iOS or BlackBerry, for example; in short, you would code mostly for one platform / environment.

But with the BYOD phenomenon, the Mobility rage and the tsunami of mobile applications that came along with it; developers found themselves confronted with a multiplicity of OS and had to choose a deployment / coding strategy because they would have to code for 2-3-4 different OS and their respective UIs, of course. Two thoughts of school were facing each other: native versus mobile web (and different browsers).

Developers were also facing a steep price challenge thanks to overseas and over-continent competition, still while coding… 2-3 times more code!

And let’s not forget that with Mobility came a new business model in the market, the free software programs became the new standard even though you would have to come up with a way to monetize your traffic (subscriptions / downloads) somewhere down the road which many have overestimated, never finding a way just to cover expenses or make profits.

Hence, the « Mobile Puritans » often opted for a mixed strategy, that is to develop and deploy a comprehensive native application for the main target market OS and a lighter application version for the secondary target market OS; which would have you abandoned some markets but would in theory deliver higher-performance mobile applications. The less puritan ones would go with a mobile web development for which many regret its lack of appeal in terms of design as a counterpart for its multi-OS adaptability!   However, mobile web development comes with an undeniable advantage in terms of development cost and deployment cost.

before-after

Target large and code small

So, in this context, face with the challenge of coding at the best possible cost while reaching all platforms (OS), some started looking for a new solid base upon which building their cross-platform application development without harming application performance; in this particular case, the server.

That’s the point of view Analystik adopted, or if you prefer, the asset we decided to bet on; hence in our cross-platform application design, we keep all enterprise business logics, main calculus and process as well as data on the « server » side. Yes, it’s true, we really are talking about the good old Server / Client architecture just like when the characters displayed were green… but hey, the thing is, today there’s a huge difference in how we talk to different Clients. You need an adequate communications protocol in sync with your business requirements, for different Clients (OS and platforms), that is.

Once this choice was made, we started looking for an adequate communications protocol meeting all requirements, between Server and Clients; hence, different UIs on different OS & devices.

For the Server to Client communications, Analystik chose REST (Representational State Transfer), a high performance HTTP protocol but also versatile, which enables it to « exchange / interpret » Java, JavaScript, C#, Swift, Objective C, HTML, etc.; in short, we targeted large! REST is highly performing because it transfers data in a non-verbal fashion, contrary to SOAP.

Consequently, in our applications’ design philosophy, we have chosen to code small on the Client UIs’ side, to restrict the nature and quantity of instructions to display, color, etc.

In a word, what is unique to each Client is being coded on the « Client » side and what is common to all Clients is being coded on the « Server » side.

server-rest-en

Example: For taxes and shipping fees on an eCommerce website, the data will be downloaded on the Server and the calculus (sums and taxes) will be executed on the Server, data will then be put into cache and displayed on the Client only when required.

Own your choices…

This approach demanded to be resourceful since it relies heavily on the REST communications protocol by sometimes commanding a heavy load of data circulating back and forth between Server and Clients, which would have been impossible just a few years ago. So, we had to take that into account and, adapt.

and develop best practices

Consequently, we have learned from our mistakes and developed a few best practices:

  • Limit the quantity of instructions executed on the Client side
    • Develop a sense for execution timing
    • Choose the right moment to transfer data to Client UIs
  • Make sure you have the right optimized cache instructions for each Client UI
  • Identify and benefit from each Client’s capabilities and performance

If you plan on attacking cross-platform application development; follow these best practices, target large and code small, and your code should last… forever!

Happy Cross-platform Application Development,

Denis Paul & Michel

Leave a Reply

Your email address will not be published. Required fields are marked *