Week 5 - CC106 - Multiplatform Application Development_upload
Week 5 - CC106 - Multiplatform Application Development_upload
I. LEARNING OUTCOMES
II. TOPIC
III. REFERENCE
https://www.igi-global.com/book/emerging-technologies-applications-data-processing/
218130. Accessed: August 2021
https://sites.google.com/view/woykszwdzx/application-development-and-emerging-
technologies-syllabus-pdf. Accessed: August 2021
https://pdfs.semanticscholar.org/0778/18d3119f6eed0432134175afd34727fad20d.pdf.
Accessed: August 2021
Native vs cross-platform is a never-ending debate that has kept the tech community
divided for years. There are a few experts who prefer native apps over cross-platform
apps, on the other hand, companies like Uber are coming up with their cross-platform
app framework—Ribs— to rewrite their driver app.
Native app development eschews the complexity of creating a sustainable product that
spans multiple platforms and instead focuses on generating a competent design that
stays close to the target platform–Android and iOS.
Cross platform frameworks seek to generate an app that reaches out to as many
followers of your brand as possible by covering a wide number of end devices during the
programming and creation process.
“Given the exponential increase in the cost of per platform development and the need for rapid
time to market, cross-platform development is the way to go for the enterprise.” - Gautam
Agrawal
a. Code Reusability
Ease of code reusability is one of the biggest upsides that hybrid app
development offers. A single code can be used for multiple platforms. So, it’s
half the effort and time as compared to native app development.
b. Cost-Effectiveness
It offers a relatively lower cost of development as compared to native app
development since the code is written once and used for both (or more)
platforms.
c. Consistency in UI Components
Cross-platform apps offer a decent extent of consistency in native UI
components of the device. The look and feel are uniform.
d. Easy Hosting
It is easy to host on respective app stores once all the requirements have
been fulfilled.
e. Cloud Integration
Integration with the cloud environment is easy. You can even integrate them
quickly with enterprise-grade plugins thus offering universal compatibility.
There are a number of cross-platform app frameworks out there, each with their own set
of pros and cons, however, as per the following trend where we have picked the most
competitive and top-performing frameworks available in the market today.
Pros of Xamarin
a. Xamarin app development uses C# for coding, meaning that it works seamlessly
on an array of platforms (including Android and iOS).
b. Xamarin has a strong community of over 60,000 contributors from more than
3,700 companies.
c. Share more than 75% of your code across platforms, for “write once, run
anywhere” ease.
d. A single tech stack for faster development
Cons of Xamarin
1. Fox Sports
2. Alaska Airlines
3. HCL
4. American Cancer Society
5. BBC Good Food
React Native is an endeavor that Facebook launched in 2015, and it did cause a wave
in the market for hybrid frameworks. Within a few years of its introduction in the
market, it is already one of the most popular ones.
1. Instagram
2. Bloomberg
3. Pinterest
4. Skype
5. Tesla
Flutter is another open source and free cross-platform framework for creating native
interfaces for Android as well as iOS.
Flutter is a cross-platform app framework maintained by Google, the very same
organization that develops the Android Native Framework. The other reasons that
made me include Flutter in this list are backed by a survey held by Stack Overflow.
In the Developer Survey Results, 2019 Flutter is amongst the top 3 most loved
frameworks and it added another complexity to the existing popularity of the
Reactive Native framework.
Pros of Flutter
a. “Hot reloading” feature enables developers to see changes made in code within
seconds not minutes as when using native technologies.
e. Many ready-made solutions for native Android and iOS apps enable you to work
with Continuous Integration platforms like Travis and Jenkins.
Cons of Flutter
a. There is limited TV support with apps built on Flutter framework, i.e., Flutter offers
no support for Android TV and Apple TV.
b. Though by the virtue of being developed by Google, there are several libraries
with ready-to-implement functionalities, Flutter still lacks with respect to native
development.
c. Since Flutter-enabled apps use built-in widgets and not platform widgets,
therefore the size of the app is usually bigger. Currently, the smallest possible
app made with Flutter can weigh no less than 4MB.
1. Alibaba
2. Google
3. Google Ads
4. Tencent
4. Adobe PhoneGap: Build amazing mobile apps powered by open web tech
b. It also offers a cloud solution in case you want to create your app directly.
c. Features like access to third-party tools, a large community (the one behind the
free and open-source Apache Cordova), and a large number of plugins, make it
better than its competitors.
d. It uses an intuitive desktop as for mobile app development and then serves the
app created on the desktop to mobile devices connected to it.
b. PhoneGap is dependent on iOS SDKs to build an app and downloading these SDKs
requires a Mac.
1. Wikipedia
2. TripCase
3. FanReact
Ionic is an open-source cross-platform app framework and licensed under MIT. It uses
HTML5 for translation. Very similar to AngularJS in design and structure. It also
inherits a few design elements from iOS as well as Android. It allows you to build
native-like hybrid apps for Android and iOS as well as progressive web apps.
PS: Ionic has introduced Ionic React: One codebase. Any Platform. Now in React.
Pros of Ionic
b. The Ionic framework allows you to ship continuously. From automated native
builds to live updating and CI/CD, Ionic Appflow addresses the entire
mobile DevOps lifecycle.
Cons of Ionic
1. IBM
2. ING
3. SAP
4. NASA
A hardware platform can refer to computer or processor architecture. For example, the
x86 and x86-64 CPUs constitute the most common computer architectures.
These machines usually run a version of Microsoft Windows, although you can also
run other operating systems, such as Linux, OpenBSD, NetBSD, Mac OS X,
and FreeBSD.
the word "platform" has been extremely useful in IT to refer to the specific structures
within which software programs will run. Tools like application programming interfaces
(APIs) are used to make software compatible with a particular platform.
1. Make sure the hardware you plan to use is already supported by the Linux kernel,
and has an open-source bootloader, especially the SoC you’re targeting.
2. Having support in the official versions of the projects (kernel, bootloader) is a lot
better: quality is better, and new versions are available.
3. Some SoC vendors and/or board vendors do not contribute their changes back to the
mainline Linux kernel. Ask them to do so or use another product if you can. A good
measurement is to see the delta between their kernel and the official one.
4. Between properly supported hardware in the official Linux kernel and poorly
supported hardware, there will be huge differences in development time and cost.
1. The processor or, in the case of high-performance systems, several processors. Some
of the processors may provide only limited programmability, as is the case for many
video accelerators.
2. The set of I/O devices provided by the platform.
3. The bus interfaces.
4. The software development environment.
1. Arduino
It is the most popular free hardware platform, with more components (sensors,
buttons, displays) and more used, for being open, its simplicity, and its meager cost.
o They took an Atmel processor (the same manufacturer as the Arduino processors)
of 32 bits and 48 MHz
o Which is, neither more nor less, a very reduced version of the NET framework that
we all know.
3. NET Gadgeteer
This platform has many devices on the market: display, cameras, network interfaces,
card readers/recorders, joysticks, and Bluetooth
4. Raspberry PI
This plaque was created by the “Raspberry Pi Foundation” of the United Kingdom to
stimulate the teaching of computer science in schools.
However, its sale was at the beginning of this year, 2012, with a total of 10,000
plates manufactured in China and Taiwan.
o This board differs significantly from the previous ones, for starters it already
comes with HDMI, RCA ports (to connect it to a TV).
o GPU is compatible with OpenGL ES 2.0 and OpenVG that Can decode video with
blue-ray quality (H.264 / MPEG-4 AVC) at 40MB.
o And supports resolutions from 640 × 350 to 1920 × 1200, ARM1176JZFS 700 MHz
processor, audio, SD/MMC/SDIO card slot.
Which makes the most significant difference. And comes with Linux, more specifically
with Raspbian, a version derived from Debian.
Promotes that the hardware can be of quality, open standards and are cheaper
Increase the safety and proper functioning of the design, by operating in the most
extensive existing testing workshop
Physical design is unique. Sharing depends on the ease of reproduction of the design
and the ability to reproduce it
Component Availability
Obtaining patents
SOFTWARE PLATFORM
A software environment that is used to write applications and run them. It includes
software tools such as GUI builders, compilers, class libraries and utilities for developing
the applications, as well as a runtime engine for executing the applications, because
they are not able to run on their own. Sun's Java and Microsoft's .NET Framework are
examples of major software platforms.
1. Operating Systems
Operating system provide the basic services required to use hardware. These are
the lowest level of platform. Almost all software runs on an operating system such
as Linux with the only exceptions being low level firmware and embedded
systems.
2. Computing Platforms
Platforms built on top of operating systems that provide computing functionality
in areas such as cloud computing and virtualization. For example, a cloud
computing platform that allows you to scale your services by adding and
removing virtual machines as required.
3. Database platform
Cloud platforms for deploying and managing various types of databases such as
relational, NoSQL and in-memory databases.
4. Platforms for scalable storage of objects and files including APIs and value-
added services such as resilient storage that is backed up in multiple
locations.
6. Mobile Platform
Mobile platform includes mobile operating systems and environments for building
mobile apps. They also include cloud platforms for building mobile backends that
provide services to mobile apps. This may include specialized APIs that are useful
for mobile app developers in areas such a location and services and voice
recognition
8. API Platform
Cloud platform for deploying APIs that are typically built around an API gateway
that performs function such as load balancing, latency reduction and rate limiting.
V. ACTIVITY/IES