Platform Software: Four Things to Keep In Mind
Designing A Cross-Platform Software: Four Things to Keep In Mind
Building cross-platform software can be challenging, as you have to balance between guidelines, technology limitations of different platforms, and user preferences. Below are several hints and tips that have helped us in creating the cross-platform 1C:Enterprise framework and will be useful for anyone who wants to build apps for different OS.
“Cross-platform” means thorough research
Nowadays when the term “cross-platform” is mixed with “responsiveness” people often think that if they manage to deliver more or less the same user experience on multiple devices, it will suffice. However, it does not work this way.
To create really cross-platform software that not only adjusts its interface to a smaller screen size but is really usable on different platforms, you should conduct thorough research on your users’ preferences and their needs. This can give you valuable, if not so obvious insights. For example, you might find that even if you give them a mobile app they’d rather use your system via mobile web. Also, such behavior may be specific to users of certain platforms and devices (say, Apple iPad).
This is why users of the 1C:Enterprise framework may choose from multiple options for building and deploying software on different platforms: thin/thick clients, browsers etc. Before we decided to go with these options we studied stats of how our business automation software was usually utilised, talked to customers, and ran dozens of tests. This is the only way to build cross-platform tools that will be used effectively.
Server-side could be cross-platform as well
Some developers think that “cross-platform” refers solely to apps, and they are wrong. Sometimes (e.g. for enterprise-level systems with multiple components) it is important to give users an opportunity to use multiple operating systems not only with front-end apps, but for running core software as well.
The companies that will be using your software might want it to work in their Linux or Windows-based environments, while some of them have a mixed infrastructure and might want to use some components with Linux and others with Windows. If your tool can’t do this, it won’t really be considered cross-platform.
This is why software based on 1C:Enterprise can run its core components either on Linux, Windows, or Mac and can be used in a mixed mode running in a mixed environment. And as we use Java, we can create really flexible configurations.
The software can’t be absolutely the same everywhere
While designing a cross-platform system it is crucial to understand that versions of your software for different platforms can’t be 100% identical. There are always limitations and problems that are too expensive to be solved right away.
For example, users of 1C:Enterprise-based software can run it on clusters of servers with different OS (Windows or Linux). Linux-based servers have some limitations here: for example, SQL Server DBMS and interaction with COM objects are not supported.
It is very hard to build a system that will be absolutely the same on every operating system. Just warn your users in advance.
Don’t avoid open-source
If you want to create a cross-platform system, use open-source tools. According to GitHub stats, tools for cross-platform development are the most popular and fastest growing group of open-source projects in 2018.
Angular/angular-cli, TensorFlow/models for building web apps, cURL for work with HTTP and FTTP, OpenSSL for cryptography, ICU for internationalization, Google Test for unit testing — there are lots of tools that will make your life easier and many of which we use on our projects.
Final thoughts
Building a cross-platform software is a challenging process. This is why it is a good idea to use platforms that allow the designing of business applications compatible with different platforms, operating systems, or devices.
For example, when talking about business process automation, the company has the choice: either it will spend its resources to create the required software in-house, or go with a platform like 1C:Enterprise. This option is cross-platform by design and allows creating mobile apps (Android, iOS), and is compatible with all modern web browsers and already integrated with major server-side applications and DBMS software. As a result, the speed of development is significantly increased.