- Md. Mizanur Rahman Sarker
Mobile Web Application
Native Application
Hybrid Application
Written using web technologies
All content will be loaded using browser
HTML5, CSS
Familiar web-based programming
Quick and easy development iteration
Easy application update/re-branding
• Change web server content
Easy distribution
• Does not need to be packaged or distribution via
app store
Installation is optional
Potentially the widest range of device
support
No native look/feel
Slower than native apps
• App loaded over network and run in browser
• App Cache speeds up
• Some device have hardware acceleration for
CSS, faster Javascript engine
Binary executable explicitly installed on the
device
Specific application for each device
Distribution through app stores or markets
Write to device-specific SDK API
• iOS: Objective C/XCOde
• Android: Java/Eclipse
• Blackbery: Java/Eclipse
Highest performance
Native UI and behavior (look/feel)
Can use any capabilities that the device
API supports
Launched from icon on home screen
Must write app for each device supported
Write to device-specific SDK API
• IOS: Objective C/XCOde
• Android: Java/Eclipse
• Blackbery: Java/Eclipse
Most costly development model (dev+
maintenance)
 2-3X dev cost + multiple platforms
Specific skills needed for development
 Best from Web and Native Apps
 App written using Web technologies
• HTML5+CSS3+Javascript
 Open web standards
 Wrapped as a native app that runs inside a
web container(i.e. Web kit)
 Full access to native functions from
JavaScript
• accelerometer, network, media, contacts
 Web code is the same across multiple
platforms
Android 4 and later (4.4 provides the best
developer experience)
IOS 6 and IOS 7
Windows 8 (Windows Store)
Windows Phone 8
To get the Multi-Device Hybrid Apps
extension, go to
the http://msdn.microsoft.com/en-
us/vstudio/dn722381.aspx.
Windows Management Framework 3.0
Visual Studio 2013 Update 3
 The installer first installs a patch to Visual Studio to support multi-device
hybrid app development.
 Joyent Node.js
• enables Visual Studio to integrate with the Apache Cordova Command Line Interface (CLI)
and Apache Ripple Emulator.
 Git CLI
• is required only if you need to manually add Git URIs for specific Cordova plug-ins.
 Google Chrome
• is required to run the Apache Ripple emulator for iOS and Android.
 Apache Ant 1.8.0 or later
• is required for the Android build process.
 Oracle Java JDK 7
• is required for the Android build process.
 Android SDK
• is required for the Android build process and Ripple.
 SQLite
• for Windows Runtime is required to add SQL connectivity to Windows apps (for the WebSQL
Polyfill plugin).
 Apple iTunes is required for deploying an app to an iOS device connected to
your Windows PC.
 css contains basic CSS style sheets that are included with the blank
template.
 images is the suggested location for images for your app.
 merges is used to add platform-specific code. For more information,
 By default, the Blank App template includes commonly used
platform-specific code for Windows and Android devices in
the merges folder. (platformOverrides.js us used to specify the
platform file.)
• For Android devices, a .js file is included to provide support for the
JavaScript Function.prototype.bind() function on Android 2.3 devices.
• For Windows, a winstore-jscompat.js file is included to enable support for a variety
of JavaScript libraries.
 res is used for platform-specific visual assets (icons and splash
screens) and signing certificates.
 script is the default location for all JavaScript or TypeScript files.
A config.xml file included in each project
provides most of your app configuration
such as the app's display name and start
page.
Visual Studio also provides two other ways
to configure your app to support platform-
specific content:
Platform-specific visual assets
Platform-specific content
Platform-specific visual assets
• You can use the res folder in your project to
specify visual assets such as icons and splash
screens based on device resolution and platform.
resiconsplatform contains the app icons
for each platform.
resscreensplatform contains splash
screens for each platform.
 Apache Cordova uses plugins to provide
access to native device capabilities that aren’t
available to simple web apps, such as access
to the file system.
 A plugin is a cross-platform Cordova library
that accesses native code and device
capabilities through a JavaScript interface.
 When required, the plugin also updates the
platform manifest to enable device
capabilities.
 Not all plugins are supported or needed on all
device platforms.
In Solution Explorer, open the shortcut
menu for the config.xml file, and then
choose Open or View Designer.
In the configuration designer, choose
the Plugins tab.
Select the plugins that you want to enable
in your app. (See the List of available
plugins.)
There are many options for running your
multi-device hybrid apps on Android. From
Visual Studio, you can run and debug
Android apps on the following emulators
and devices:
Apache Ripple emulator (discussed in a
separate article)
Android emulator
Genymotion emulator
Android device
 The Visual Studio Services Manager for
connected services lets you integrate
Microsoft services like Azure Mobile Services,
Office 365, and other services into your multi-
device hybrid apps. The manager makes it
easy to add services without leaving Visual
Studio.
 In this article:
 Opening Service Manager
 Adding Azure Mobile Services
 Adding Office 365 services
Apache Cordova is a set of device APIs
that allow a mobile app developer to
access native device function such as the
camera or accelerometer from JavaScript.
Free and open source, Ionic offers a library
of mobile-optimized HTML, CSS and JS
components for building highly interactive
apps.
Speed is important. So important that you
only notice when it isn't there.
 Ionic is built to perform and behave great
on the latest mobile devices.
 With minimal DOM manipulation,
Zero jQuery,
Hardware accelerated transitions, one
thing is for sure: You'll be impressed.
A match made in heaven. Ionic
utilizes AngularJS in order to create a
framework most suited to develop rich and
robust applications. Ionic not only looks
nice, but its core architecture is for serious
app development, and AngularJS ties in
perfectly.
Ionic is modeled on popular native mobile
development SDKs, making it easy to
understand for anyone that has built a
native app for iOS or Android.
 Just drop it in your code to get going, and
push through PhoneGap when it's
ready. Develop once, deploy everywhere.
Clean, simple, and functional. Ionic has
been designed to work and display
beautifully on all current mobile devices.
With tons of popular mobile components,
typography, interactive paradigms, and a
gorgeous (yet extensible) base theme,
you'll wonder how you lived without it.
Reusable and customizable front-end UI elements
 Header
 Content
 Footer
 Buttons
 List
 Cards
 Forms
 Toggle
 Checkbox
 Radio Buttons
 Range
 Select
 Tabs
 Grid
 Utility
Ionic is both a CSS framework and a
Javascript UI library. Many components
need Javascript in order to produce magic,
though often components can easily be
used without coding through framework
extensions such as our AngularIonic
extensions.
http://ngCordova.com
ngCordova gives you simple AngularJS
wrappers for common Cordova plugins.
Created by the Ionic Framework team and
the community.
 ngCordova currently has support for the following plugins:
 org.apache.cordova.camera org.apache.cordova.console
org.apache.cordova.contacts org.apache.cordova.device
org.apache.cordova.device-motion
org.apache.cordova.device-orientation
org.apache.cordova.dialogs org.apache.cordova.file
org.apache.cordova.geolocation
org.apache.cordova.globalization
org.apache.cordova.network-information
org.apache.cordova.splashscreen
org.apache.cordova.statusbar org.apache.cordova.vibration
org.apache.cordova.battery-status
https://github.com/Paldom/PinDialog.git
 https://github.com/phonegap-build/PushPlugin.git
https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-
Plugin.git https://github.com/Paldom/SpinnerDialog.git
https://github.com/brodysoft/Cordova-SQLitePlugin.git
https://github.com/EddyVerbruggen/Toast-PhoneGap-
Plugin.git https://github.com/phonegap-build/GAPlugin.git
https://github.com/driftyco/ionic-plugins-keyboard
https://github.com/wildabeast/BarcodeScanner
https://github.com/EddyVerbruggen/Flashlight-PhoneGap-
Plugin https://github.com/apache/cordova-plugin-media-
capture https://github.com/ohh2ahh/AppAvailability
https://github.com/dferrell/plugins-application-preferences
https://github.com/shazron/KeychainPlugin.git
https://github.com/katzer/cordova-plugin-printer
https://github.com/aharris88/phonegap-sms-plugin
Demo

Cross-Platform Development using Angulr JS in Visual Studio

  • 1.
    - Md. MizanurRahman Sarker
  • 3.
    Mobile Web Application NativeApplication Hybrid Application
  • 4.
    Written using webtechnologies All content will be loaded using browser HTML5, CSS
  • 5.
    Familiar web-based programming Quickand easy development iteration Easy application update/re-branding • Change web server content Easy distribution • Does not need to be packaged or distribution via app store Installation is optional Potentially the widest range of device support
  • 6.
    No native look/feel Slowerthan native apps • App loaded over network and run in browser • App Cache speeds up • Some device have hardware acceleration for CSS, faster Javascript engine
  • 7.
    Binary executable explicitlyinstalled on the device Specific application for each device Distribution through app stores or markets Write to device-specific SDK API • iOS: Objective C/XCOde • Android: Java/Eclipse • Blackbery: Java/Eclipse
  • 8.
    Highest performance Native UIand behavior (look/feel) Can use any capabilities that the device API supports Launched from icon on home screen
  • 9.
    Must write appfor each device supported Write to device-specific SDK API • IOS: Objective C/XCOde • Android: Java/Eclipse • Blackbery: Java/Eclipse Most costly development model (dev+ maintenance)  2-3X dev cost + multiple platforms Specific skills needed for development
  • 10.
     Best fromWeb and Native Apps  App written using Web technologies • HTML5+CSS3+Javascript  Open web standards  Wrapped as a native app that runs inside a web container(i.e. Web kit)  Full access to native functions from JavaScript • accelerometer, network, media, contacts  Web code is the same across multiple platforms
  • 13.
    Android 4 andlater (4.4 provides the best developer experience) IOS 6 and IOS 7 Windows 8 (Windows Store) Windows Phone 8
  • 14.
    To get theMulti-Device Hybrid Apps extension, go to the http://msdn.microsoft.com/en- us/vstudio/dn722381.aspx.
  • 15.
    Windows Management Framework3.0 Visual Studio 2013 Update 3
  • 16.
     The installerfirst installs a patch to Visual Studio to support multi-device hybrid app development.  Joyent Node.js • enables Visual Studio to integrate with the Apache Cordova Command Line Interface (CLI) and Apache Ripple Emulator.  Git CLI • is required only if you need to manually add Git URIs for specific Cordova plug-ins.  Google Chrome • is required to run the Apache Ripple emulator for iOS and Android.  Apache Ant 1.8.0 or later • is required for the Android build process.  Oracle Java JDK 7 • is required for the Android build process.  Android SDK • is required for the Android build process and Ripple.  SQLite • for Windows Runtime is required to add SQL connectivity to Windows apps (for the WebSQL Polyfill plugin).  Apple iTunes is required for deploying an app to an iOS device connected to your Windows PC.
  • 17.
     css containsbasic CSS style sheets that are included with the blank template.  images is the suggested location for images for your app.  merges is used to add platform-specific code. For more information,  By default, the Blank App template includes commonly used platform-specific code for Windows and Android devices in the merges folder. (platformOverrides.js us used to specify the platform file.) • For Android devices, a .js file is included to provide support for the JavaScript Function.prototype.bind() function on Android 2.3 devices. • For Windows, a winstore-jscompat.js file is included to enable support for a variety of JavaScript libraries.  res is used for platform-specific visual assets (icons and splash screens) and signing certificates.  script is the default location for all JavaScript or TypeScript files.
  • 18.
    A config.xml fileincluded in each project provides most of your app configuration such as the app's display name and start page.
  • 19.
    Visual Studio alsoprovides two other ways to configure your app to support platform- specific content: Platform-specific visual assets Platform-specific content
  • 20.
    Platform-specific visual assets •You can use the res folder in your project to specify visual assets such as icons and splash screens based on device resolution and platform. resiconsplatform contains the app icons for each platform. resscreensplatform contains splash screens for each platform.
  • 21.
     Apache Cordovauses plugins to provide access to native device capabilities that aren’t available to simple web apps, such as access to the file system.  A plugin is a cross-platform Cordova library that accesses native code and device capabilities through a JavaScript interface.  When required, the plugin also updates the platform manifest to enable device capabilities.  Not all plugins are supported or needed on all device platforms.
  • 22.
    In Solution Explorer,open the shortcut menu for the config.xml file, and then choose Open or View Designer. In the configuration designer, choose the Plugins tab. Select the plugins that you want to enable in your app. (See the List of available plugins.)
  • 23.
    There are manyoptions for running your multi-device hybrid apps on Android. From Visual Studio, you can run and debug Android apps on the following emulators and devices: Apache Ripple emulator (discussed in a separate article) Android emulator Genymotion emulator Android device
  • 24.
     The VisualStudio Services Manager for connected services lets you integrate Microsoft services like Azure Mobile Services, Office 365, and other services into your multi- device hybrid apps. The manager makes it easy to add services without leaving Visual Studio.  In this article:  Opening Service Manager  Adding Azure Mobile Services  Adding Office 365 services
  • 26.
    Apache Cordova isa set of device APIs that allow a mobile app developer to access native device function such as the camera or accelerometer from JavaScript.
  • 27.
    Free and opensource, Ionic offers a library of mobile-optimized HTML, CSS and JS components for building highly interactive apps.
  • 28.
    Speed is important.So important that you only notice when it isn't there.  Ionic is built to perform and behave great on the latest mobile devices.  With minimal DOM manipulation, Zero jQuery, Hardware accelerated transitions, one thing is for sure: You'll be impressed.
  • 29.
    A match madein heaven. Ionic utilizes AngularJS in order to create a framework most suited to develop rich and robust applications. Ionic not only looks nice, but its core architecture is for serious app development, and AngularJS ties in perfectly.
  • 30.
    Ionic is modeledon popular native mobile development SDKs, making it easy to understand for anyone that has built a native app for iOS or Android.  Just drop it in your code to get going, and push through PhoneGap when it's ready. Develop once, deploy everywhere.
  • 31.
    Clean, simple, andfunctional. Ionic has been designed to work and display beautifully on all current mobile devices. With tons of popular mobile components, typography, interactive paradigms, and a gorgeous (yet extensible) base theme, you'll wonder how you lived without it.
  • 32.
    Reusable and customizablefront-end UI elements  Header  Content  Footer  Buttons  List  Cards  Forms  Toggle  Checkbox  Radio Buttons  Range  Select  Tabs  Grid  Utility
  • 34.
    Ionic is botha CSS framework and a Javascript UI library. Many components need Javascript in order to produce magic, though often components can easily be used without coding through framework extensions such as our AngularIonic extensions.
  • 36.
    http://ngCordova.com ngCordova gives yousimple AngularJS wrappers for common Cordova plugins. Created by the Ionic Framework team and the community.
  • 37.
     ngCordova currentlyhas support for the following plugins:  org.apache.cordova.camera org.apache.cordova.console org.apache.cordova.contacts org.apache.cordova.device org.apache.cordova.device-motion org.apache.cordova.device-orientation org.apache.cordova.dialogs org.apache.cordova.file org.apache.cordova.geolocation org.apache.cordova.globalization org.apache.cordova.network-information org.apache.cordova.splashscreen org.apache.cordova.statusbar org.apache.cordova.vibration org.apache.cordova.battery-status https://github.com/Paldom/PinDialog.git
  • 38.
     https://github.com/phonegap-build/PushPlugin.git https://github.com/EddyVerbruggen/SocialSharing-PhoneGap- Plugin.git https://github.com/Paldom/SpinnerDialog.git https://github.com/brodysoft/Cordova-SQLitePlugin.git https://github.com/EddyVerbruggen/Toast-PhoneGap- Plugin.githttps://github.com/phonegap-build/GAPlugin.git https://github.com/driftyco/ionic-plugins-keyboard https://github.com/wildabeast/BarcodeScanner https://github.com/EddyVerbruggen/Flashlight-PhoneGap- Plugin https://github.com/apache/cordova-plugin-media- capture https://github.com/ohh2ahh/AppAvailability https://github.com/dferrell/plugins-application-preferences https://github.com/shazron/KeychainPlugin.git https://github.com/katzer/cordova-plugin-printer https://github.com/aharris88/phonegap-sms-plugin
  • 39.