_________ is the type executable for iOS. .
IPA
_________ is the type executable for Android. .APK
Built-in apps have direct access to low-level APIs only through high-level APIs. False
_________ is the type executable for Blackberry. .COD
The process of obtaining a binary executable image and preparing it for distribution is
same across platforms. True
Pure mobile websites are same as pure mobile apps. False
Application caching is enabled with the latest features of _________. HTML5 and CSS3
Web apps are much easier to maintain as they have a common code base across
multiple mobile platforms. True
JavaScript Toolkit library includes which of the following? Sencha Touch and Jquery Mobile
Pure mobile web apps are written only in _________. HTML/CSS/JavaScript
Native apps are a choice for implementation because it is: (I) Executed directly by OS
(II) Makes explicit use of OS APIs (III) Cheaper to build in one platform I and II
Being built on one single base, you can add functionality and have multiple versions of
the app all benefit from it. This is benefit of __________ Hybrid apps
In case of pure mobile web apps, the code is executed by the _______. Browser
Which of these is the main player in the world of hybrid apps? Phonegap/Cordova
Identify the correct sequence of steps in a native app development. (I) Package the
binary executable with resources (II) Create a binary executable (III) Distribute through
the app store II, I, III
Is a container app required for a native app to execute in a mobile device? False
Looking at the mobile app and its features, is it possible to distinguish between the type
as Native, Web or Hybrid? False
Purely native apps are binary executable image that is explicitly downloaded and stored
on the file system of the mobile device. True
_________ is the type executable for Windows. .APP
Web apps are much easier to maintain as they have a common code base across
multiple mobile platforms. True
Identify the correct sequence of steps in a native app development. (I) Set the
configuration info and OS-specific declaration files. (II) Create additional resources like
images, audio signals, etc. (III) Compile and link the source code. II, I, III
Introduction to Mobile Apps
Hello There! All that looks same outside, might not always be same inside.
Welcome to the world of mobile app and its anatomy. In this course, let’s understand the
fundamentals of Native, Web and Hybrid Apps; the differences, advantages and
disadvantages.
Native apps which you might think of as conventional mobile app.
Web apps which are written in HTML and run inside the browser.
Hybrid apps which are a interesting combination of the two approaches, which is
especially important for the enterprise context.
Known Native Apps
Let's take a look at few prominent native apps for iPhone and Android. As you can
notice, few are known communication and collaboration apps, our own enterprise apps,
and few popular gaming apps.
The thing that all of these apps have in common is that, they are all purely native. But,
what does that actually mean?
Characteristics of Native Apps
A binary executable image that is explicitly downloaded and stored on the
file system of the mobile device.
This installation process can be initiated by the user or in some cases by the IT
department of an enterprise.
Characteristics of Native Apps
Distributed through popular app store or marketplace of the device, or via an enterprise
distributed mechanism.
Examples: iTunes, Google PlayS tore, Windows Store, TCS appmart, etc.
Characteristics of Native Apps
Executed directly by the Operating System (OS).
o Launched from the home screen.
o Does not require another container app to run it.
Makes explicit use of OS APIs.
Many cases, although not always! Native app has a look and feel which is typical
of that specific mobile OS.
Native App Development
Obtaining a binary executable imaging and preparing it for distribution is basically
same for all the leading mobile operating systems.
The developers write the source code of the application.
Create additional resources such as images, audio segments, configuration info
and various declaration files.
Native App Development
Use the tools provided by the operating system vendor to compile the source
code.
Link it in order to create an executable in binary form.
Package the binary executable together with the resources of the app.
Package can be distributed to the mobile devices through app stores or
other means.
SDK for Mobile OS
The tools, few utilities and files are usually called the SDK of the mobile OS.
The SDK is platform-specific and each mobile OS comes with its own unique
tools.
But the process is quite similar for all of them!
Let’s see few examples now!
Native App Development - iOS
Language : Objective-C, C, C++
Tool : Xcode
Executable Files : .ipa
Application Stores : Apple iTunes
Native App Development - Android
Language : Java (Some C, C++)
Tool : Android SDK
Executable Files : .apk
Application Stores : Android Market (Google Play Store)
High-level APIs and Built-in Apps
Web browser, Calendar, Contacts, Photo Album, Calls, and Messages.
The OS comes with built-in native apps that let users directly access these
services.
The operating system provides the GUI Toolkit which comes with its own set of
user interface components such as button, slider, menu, tabs etc.
These components inherit the look and feel of the mobile OS that
usually provide a very smooth user experience.
Native Apps - Interaction with Mobile
Native Apps – Upside, However!
Upside:
Executed directly
Propriety operating-system APIs
App gets access to all the different hardware components of the device
Very Fast and Powerful
Let you do amazing things and really tap the full potential of the mobile device.
However,
These APIs are proprietary and each mobile OS provides its own unique APIs for
each function.
The differences in APIs make porting of an app to multiple devices expensive.
Native Apps – Why Not?
Even though the overall process is similar for all the platforms the specifics are
different for each one.
When we write the code for one platform we can't use it on others.
Similar approach, but different source code and expertise results in expensive
development and maintenance!
Known Web Apps
Today's mobile devices come with very powerful browsers with support
for Html5, CSS3 and advanced JavaScript.
Examples: Google, WikiPedia, YouTube, and Amazon etc.
Characteristics of Pure Mobile Web Apps
Pure mobile web apps which are written entirely in HTML, CSS, JavaScript, and
served from a web server but are almost indistinguishable to the user from
native apps.
Installed on the homepage and launched like native apps.
Interactive user interface which is highly optimized for touch screens.
Client Side rendering
Available Offline
Characteristics of Pure Mobile Web Sites
Alternate to pure mobile web app are pure mobile web sites.
Visited by browsing
Static, navigational UI
Generic Look and Feel
Server Side Rendering
Require Network Connectivity
JavaScript Toolkits for Mobile Web App UI
JavaScript Toolkit Library
o Sencha Touch
o JQuery Mobile
These are very reminiscent of the look and feel of native apps.
Both execute entirely within the browser on the mobile device.
Makes use of the newest JavaScript, CSS3 andHTML5` features available in
browsers.
HTML5 & CSS3
HTML5 is the transition of HTML from a page definition language into a powerful
technology for creating browser based apps.
HTML5 provides many client-side graphics capabilities with the canvas element SVG
and things like rounded corners.
HTML5 and CSS3 has several mechanisms that enable offline support such as
application caching.
Offline storage data URLs also make it easy for apps to perform client side rendering
without contacting the server.
Many more for you to Explore!
Web Apps - Why?
Entirely written using web technologies
o HTML, CSS and JavaScript
Code is executed by the browser, not by the OS
Several ways to launch the app
o Typing URL, Clicking Hyperlink
o Scanning QR Code
o Home screen shortcut
Installation is optional
Easily support multiple mobile OSs and can be extended with device-specific
enhancements to make them behave more like native apps.
Web Apps - Interaction with Mobile
Web apps run within the browser and the browser is itself a native app.
App has direct access to the OS APIs but it only exposes some of them
to Web Apps.
One specific element of the browser is Rendering engine the heart of the
browser.
This rendering engine is called Webkit and it's an open source project.
Almost all the leading smartphone vendors are using the same.
Characteristics of Hybrid Apps
Native App with embedded HTML.
All the benefits of native App.
Full access to APIs.
App store presence
Selected portion of the apps are written in web technologies
The web portion of the app can either be downloaded from the
web or packaged within app.
Hybrid Apps Development
Hybrid Apps – Interaction with mobile Device
Hybrid apps have two separate components
o Native portion
o Web Portion
The native portion of the app has control over the rendering engine and it creates
a bridge that allows the web portions of the app to access all the OS APIs.
o Custom Bridge
o Ready-made such as PhoneGap
Native vs Web vs Hybrid Apps