3. Introduction
cross-platform software (also multi-platform software or platform-independent software) is
computer software that is implemented on multiple computing platforms. Cross-platform
software may be divided into two types;
one requires individual building or compilation for each platform that it supports,
other one can be directly run on any platform without special preparation, e.g., software written
in an interpreted language or pre-compiled portable bytecode for which the interpreters or run-
time packages are common or standard components of all platforms.
4. For example, a cross-platform application may run on Microsoft
Windows, Linux, and macOS. Cross-platform programs may run on as
many as all existing platforms, or on as few as two platforms. Cross-
platform frameworks (such as Qt, Flutter, NativeScript, Xamarin,
Phonegap, Ionic, and React Native) exist to aid cross-platform
development
5. Platforms
Platform can refer to the type of processor (CPU) or other hardware on
which a given operating system or application runs, the type of operating
system on a computer or the combination of the type of hardware and the
type of operating system running on it. An example of a common platform is
Microsoft Windows running on the x86 architecture.
smartphones that are also effectively computer platforms but less
commonly thought about in that way. Application software can be written to
depend on the features of a particular platform—either the hardware,
operating system, or virtual machine it runs on.
6. Platfrom is divided into two parts:
1)Hardware platforms
2)Software platforms
Hardware platforms
A hardware platform can refer to an instruction set architecture. For
example: x86 architecture and its variants such as IA-32 and x86-64.
These machines often run one version of Microsoft Windows, though they
can run other operating systems as well, including Linux, OpenBSD,
NetBSD, macOS and FreeBSD.
7. Software platforms
The 32-bit ARM architectures (and newer 64-bit version) is common on
smartphones and tablet computers, which run Android, iOS and other
mobile operating systems.
Software platforms can either be an operating system or programming
environment, though more commonly it is a combination of both. A notable
exception to this is Java, which uses an operating system independent virtual
machine for its compiled code, known in the world of Java as bytecode.
8. Examples of software platforms are blackberry , Android , IOS ,
Microsoft windows , Linux , macOS etc.
9. Implementations
For a piece of software to be considered cross-platform, it must be able to
function on more than one computer architecture or operating system.
Developing such a program can be a time-consuming task because
different operating systems have different application programming
interfaces (API). For example, Linux uses a different API for application
software than Windows does.
Software written for a particular operating system does not automatically
work on all architectures that operating system supports.
10.
11. Cross-platform programming
Cross-platform programming is the practice of actively writing software
that will work on more than one platform.
Approaches to cross-platform programming
There are different ways of approaching the problem of writing a cross-
platform application program. One such approach is simply to create
multiple versions of the same program in different source trees—in
other words, the Microsoft Windows version of a program might have
one set of source code files and the Macintosh version might have
another, while a FOSS *nix system might have another. While this is a
straightforward approach to the problem.
12. Another approach that is used is to depend on pre-existing software that
hides the differences between the platforms—called abstraction of the
platform—such that the program itself is unaware of the platform it is
running on. It could be said that such programs are platform agnostic.
Programs that run on the Java Virtual Machine (JVM) are built in this
fashion.
Cross-platform programming toolkits and
environments
There are a number of tools which are available to help facilitate the
process of cross-platform programming are :
14. Pros & Cons
Pros
Faster development
Wider audience
Consistency between platforms
Cost-effective updates &
reusable code
Smart cloud integration
Cons
Lower performance as the
result of harder code design
Long wait time for new
features support
Poor customization and native
features integration
Code losses in case of
switching to another platform
15. Future
Cross-platform (CP) mobile app development is on the eye of everyone
nowadays, whether because of its many promises or just some FOMO.
Enterprises now are almost forced to take CP frameworks into
consideration when planning a new app or update to an older one. Also,
developers having CP skills are totally in-demand.
The obvious benefit of cross-platform mobile application development is
reduced costs. Developers spend their time and resources only once,
rather than reinvent the wheel for each platform.
16. Code re-usability and enhanced cloud-based deployments contribute to
reduced costs in a big way as well. Such benefits are invaluable in a
highly competitive environment where businesses are looking to cut costs
and improve process efficiency in a big way.
We can say there are plenty of CP frameworks out there, each with their
pros and cons, but the industry and the data is clearly showing us a trend
where we can pick the most “influential” or the one's enterprises are now
considering for the development of their production apps. Those two must
be React Native and Flutter.