SlideShare a Scribd company logo
1 of 18
Hybrid Mobile
App Development



          Prepared by: Tuan Abdeen
          Certified Salesforce.com Developer
Agenda
•   ABSI
•   SL Force.com Team
•   Introduction to Mobile Development
•   Hybrid Development Approaches
     • HTML5 Hybrid Development
     • VisualForce Hybrid Development
     • Mobile SDK Hybrid Development
•   Other Technologies Used
     • OAuth 2.0
     • Offline Data Storage
     • PIN Code Authentication
•   Ongoing Research Areas

                                         Prepared by: Tuan Abdeen
                                         Certified Salesforce.com Developer
•   First Salesforce.com partner in Belgium (from 2002)
•   Sri Lanka operations started from 2009




                                               Prepared by: Tuan Abdeen
                                               Certified Salesforce.com Developer
Sri Lanka Force.com Team
           Tuan Abdeen           SCJP
         Certified Salesforce Developer




           Malaka Silva          SCJP
     Certified Salesforce Advance Developer



       Dhanusha Mahatantila              SCJP
         Certified Salesforce Developer




           Vishanka Perera       SCJP
         Certified Salesforce Developer




          Inshar Anas      SCJP, SCWCD
         Certified Salesforce Developer




         Shermal Warnakula          SCJP




             Amila Pathirana




                                                Prepared by: Tuan Abdeen
                                                Certified Salesforce.com Developer
Intro to Mobile Development
1. Native
You can code native apps for each mobile platform (Android, iOS), taking advantage of each platform's
    native capabilities.

2. HTML5
You can build HTML5 apps using familiar technologies such as HTML5, CSS, and JavaScript. Same
    app can run on all platforms, but no access to native platform features.

3. Hybrid
You can create hybrid apps that use a JavaScript bridge in a native container to merge the portability of
    HTML5 with native device capabilities, such as the camera or address book.




                                                                   Prepared by: Tuan Abdeen
                                                                   Certified Salesforce.com Developer
Hybrid Development Approaches




                   Prepared by: Tuan Abdeen
                   Certified Salesforce.com Developer
PhoneGap
What PhoneGap does here is, it will convert the web based application
(developed with HTML5, CSS3 & JQueryMobile) into a native iOS, Android,
Blackberry, Windows Phone, Palm OS and Symbian kind of an application.

Therefore, the end-user will use the app not as a web based app (meaning, not
in a web browser), but as a native app.




                                                  Prepared by: Tuan Abdeen
                                                  Certified Salesforce.com Developer
HTML5 Hybrid Development




The system was developed using pure HTML5, CSS3 and JQueryMobile.

Because this application requires to get information from Salesforce, the only
possible approach was to use the Salesforce REST API.

The application communicates with Force.com REST API using the forcetk.js
JavaScript wrapper. Forcetk.js (Force.com JavaScript REST Toolkit) is an open
source wrapper to the REST API.

PhoneGap was used to convert the web base app to a native iOS app to install it
to the iPad.


                                                     Prepared by: Tuan Abdeen
                                                     Certified Salesforce.com Developer
Prepared by: Tuan Abdeen
Certified Salesforce.com Developer
VisualForce Hybrid Development

The solution was made using Visualforce, Apex Controller, SOQL with HTML5,
CSS3 and JQueryMobile.

Best Practices:
•Marking a VF page as HTML5. <apex:page docType="html-5.0“ … >

•Set standardStylesheets="false" on the apex:page for JQueryMobile CSS
to apply iPad styles on the VF page.

•Using the ‘viewport’ meta tag. <meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0,
user-scalable=no;" />

PhoneGap was used to convert the web base app to a native iOS app to install it
to the iPad.




                                                   Prepared by: Tuan Abdeen
                                                   Certified Salesforce.com Developer
Prepared by: Tuan Abdeen
Certified Salesforce.com Developer
Mobile SDK Hybrid Development
          The Mobile SDK is an open-source suite of
          familiar technologies—like a REST API and
          OAuth 2.0 - that you can use to build great
          mobile apps.

          The Mobile SDK for iOS contains native
          Objective-C libraries, and an XCode template to
          enable developers to rapidly build iOS
          applications that securely connect to Force.com
          and Database.com.

          The Mobile SDK provides a container based on
          PhoneGap. The container enables HTML5-based
          applications to leverage the libraries such as
          OAuth and secure offline storage, effectively
          providing an enterprise-ready hybrid application
          container.


                              Prepared by: Tuan Abdeen
                              Certified Salesforce.com Developer
Prepared by: Tuan Abdeen
Certified Salesforce.com Developer
Other Technologies Used

1. OAuth 2.0
Salesforce OAuth 2 User-Agent authentication flow is used by iPad application.

                                               After the consumer has an access
                                               token, they can use the access
                                               token to access Salesforce data on
                                               the end user's behalf and a refresh
                                               token to get a new access token if it
                                               becomes invalid for any reason.




                                                   Prepared by: Tuan Abdeen
                                                   Certified Salesforce.com Developer
Other Technologies Used …

2. Offline Data Storage
Offline Date Storage was implemented with Apache Cordova’s Local Storage
   API.
This API was used within the PhoneGap context to use the iPad Device’s
   storage support.




SQLite is a software library that implements a self-contained,
server-less, zero-configuration, transactional SQL database engine.




                                                     Prepared by: Tuan Abdeen
                                                     Certified Salesforce.com Developer
Other Technologies Used …

3. PIN Code Authentication
•   The User’s does not want to enter SFDC credentials every time when they
    want to access the iPad Application. (OAuth 2.0 User Agent Flow with Access
    & Refresh token)
•   In subsequent logins, we use the access & refresh token that has been
    locally saved and do automatic login on behalf of the User.
•   Next issue was the security problem of not asking any credentials to access
    the iPad Application.
•   PIN Code Authentication built for that purpose. (4 digit)




                                                      Prepared by: Tuan Abdeen
                                                      Certified Salesforce.com Developer
Ongoing Research Areas
• Mobile SDK enhancements
   • Configure PIN timeout value
   • Replace SmartStore with SQLite (SmartStore in one or more ‘soups’. A
      soup, conceptually speaking, is a logical collection of data records -
      represented as JSON objects)
   • How to represent Relational DB structure in SQLite
   • Way of pushing offline stored data to SFDC when the device is
      connected (synching stale data)
   • Dynamically creating iPad screen, depend on SFDC metadata (Page
      Layout & Field-level security)
   • Synch device contacts with SFDC contacts (QRCODE Integration)


                                                    Prepared by: Tuan Abdeen
                                                    Certified Salesforce.com Developer
Prepared by: Tuan Abdeen
Certified Salesforce.com Developer

More Related Content

What's hot

The magic of flutter
The magic of flutterThe magic of flutter
The magic of flutterShady Selim
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application DevelopmentTharindu Dassanayake
 
Introduction to Flutter
Introduction to FlutterIntroduction to Flutter
Introduction to FlutterApoorv Pandey
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application developmentKnoldus Inc.
 
What is Appium? Edureka
What is Appium? EdurekaWhat is Appium? Edureka
What is Appium? EdurekaEdureka!
 
What is flutter and why should i care?
What is flutter and why should i care?What is flutter and why should i care?
What is flutter and why should i care?Sergi Martínez
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentEric Cattoir
 
Native Apps vs. Web Apps – What Is the Better Choice?
Native Apps vs. Web Apps – What Is the Better Choice?Native Apps vs. Web Apps – What Is the Better Choice?
Native Apps vs. Web Apps – What Is the Better Choice?ChromeInfo Technologies
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptxFalgunSorathiya
 
Introduction to Android and Android Studio
Introduction to Android and Android StudioIntroduction to Android and Android Studio
Introduction to Android and Android StudioSuyash Srijan
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaEdureka!
 
Flutter talkshow
Flutter talkshowFlutter talkshow
Flutter talkshowNhan Cao
 
Introduction to mobile application development
Introduction to mobile application developmentIntroduction to mobile application development
Introduction to mobile application developmentChandan Maurya
 

What's hot (20)

The magic of flutter
The magic of flutterThe magic of flutter
The magic of flutter
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Development
 
Introduction to Flutter
Introduction to FlutterIntroduction to Flutter
Introduction to Flutter
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application development
 
What is Appium? Edureka
What is Appium? EdurekaWhat is Appium? Edureka
What is Appium? Edureka
 
What is flutter and why should i care?
What is flutter and why should i care?What is flutter and why should i care?
What is flutter and why should i care?
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Flutter
FlutterFlutter
Flutter
 
Flutter
FlutterFlutter
Flutter
 
Native Apps vs. Web Apps – What Is the Better Choice?
Native Apps vs. Web Apps – What Is the Better Choice?Native Apps vs. Web Apps – What Is the Better Choice?
Native Apps vs. Web Apps – What Is the Better Choice?
 
Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptx
 
Google Firebase presentation - English
Google Firebase presentation - EnglishGoogle Firebase presentation - English
Google Firebase presentation - English
 
Native vs. Hybrid Apps
Native vs. Hybrid AppsNative vs. Hybrid Apps
Native vs. Hybrid Apps
 
Introduction to Android and Android Studio
Introduction to Android and Android StudioIntroduction to Android and Android Studio
Introduction to Android and Android Studio
 
Android Basic Concept
Android Basic Concept Android Basic Concept
Android Basic Concept
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | Edureka
 
Flutter talkshow
Flutter talkshowFlutter talkshow
Flutter talkshow
 
Introduction to mobile application development
Introduction to mobile application developmentIntroduction to mobile application development
Introduction to mobile application development
 

Viewers also liked

Unit testing in Force.com platform
Unit testing in Force.com platformUnit testing in Force.com platform
Unit testing in Force.com platformChamil Madusanka
 
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkCihad Horuzoğlu
 
Building Hybrid Apps with AngularJS and Ionic
Building Hybrid Apps with AngularJS and IonicBuilding Hybrid Apps with AngularJS and Ionic
Building Hybrid Apps with AngularJS and IonicYounes Adounis
 
Building Mobile Apps with Cordova , AngularJS and Ionic
Building Mobile Apps with Cordova , AngularJS and IonicBuilding Mobile Apps with Cordova , AngularJS and Ionic
Building Mobile Apps with Cordova , AngularJS and IonicKadhem Soltani
 
Native vs Web vs Hybrid Mobile Application Development
Native vs Web vs Hybrid Mobile Application DevelopmentNative vs Web vs Hybrid Mobile Application Development
Native vs Web vs Hybrid Mobile Application DevelopmentKosala Nuwan Perera
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Developmenttechugo
 
Architecture Best Practices
Architecture Best PracticesArchitecture Best Practices
Architecture Best PracticesAWS Germany
 
PPT from Webinar Create Hybrid Mobile Application in 1 hour
PPT from Webinar Create Hybrid Mobile Application in 1 hourPPT from Webinar Create Hybrid Mobile Application in 1 hour
PPT from Webinar Create Hybrid Mobile Application in 1 hourDhananjay Kumar
 
building HTML hybrid app
 with ionic
building HTML hybrid app
 with ionicbuilding HTML hybrid app
 with ionic
building HTML hybrid app
 with ionicNakano Kyohei
 
Hybrid vs Native Mobile App. Decide in 5 minutes!
Hybrid vs Native Mobile App. Decide in 5 minutes!Hybrid vs Native Mobile App. Decide in 5 minutes!
Hybrid vs Native Mobile App. Decide in 5 minutes!July Systems
 
Cross platform mobile development
Cross platform mobile developmentCross platform mobile development
Cross platform mobile developmentPeter Friese
 
Introduction to Firebase on Android
Introduction to Firebase on AndroidIntroduction to Firebase on Android
Introduction to Firebase on Androidamsanjeev
 
Building single page applications
Building single page applicationsBuilding single page applications
Building single page applicationsSC5.io
 
Native vs. Web vs. Hybrid: Mobile Development Choices
Native vs. Web vs. Hybrid: Mobile Development ChoicesNative vs. Web vs. Hybrid: Mobile Development Choices
Native vs. Web vs. Hybrid: Mobile Development ChoicesJason Grigsby
 
Workshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkWorkshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkAayush Shrestha
 
Developing a Modern Mobile App Strategy
Developing a Modern Mobile App StrategyDeveloping a Modern Mobile App Strategy
Developing a Modern Mobile App StrategyTodd Anglin
 
Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page ApplicationKMS Technology
 

Viewers also liked (20)

Unit testing in Force.com platform
Unit testing in Force.com platformUnit testing in Force.com platform
Unit testing in Force.com platform
 
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic Framework
 
Building Hybrid Apps with AngularJS and Ionic
Building Hybrid Apps with AngularJS and IonicBuilding Hybrid Apps with AngularJS and Ionic
Building Hybrid Apps with AngularJS and Ionic
 
Hybrid mobile apps
Hybrid mobile appsHybrid mobile apps
Hybrid mobile apps
 
Building Mobile Apps with Cordova , AngularJS and Ionic
Building Mobile Apps with Cordova , AngularJS and IonicBuilding Mobile Apps with Cordova , AngularJS and Ionic
Building Mobile Apps with Cordova , AngularJS and Ionic
 
Native vs Web vs Hybrid Mobile Application Development
Native vs Web vs Hybrid Mobile Application DevelopmentNative vs Web vs Hybrid Mobile Application Development
Native vs Web vs Hybrid Mobile Application Development
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Development
 
Architecture Best Practices
Architecture Best PracticesArchitecture Best Practices
Architecture Best Practices
 
PPT from Webinar Create Hybrid Mobile Application in 1 hour
PPT from Webinar Create Hybrid Mobile Application in 1 hourPPT from Webinar Create Hybrid Mobile Application in 1 hour
PPT from Webinar Create Hybrid Mobile Application in 1 hour
 
building HTML hybrid app
 with ionic
building HTML hybrid app
 with ionicbuilding HTML hybrid app
 with ionic
building HTML hybrid app
 with ionic
 
Different types of mobile apps
Different types of mobile appsDifferent types of mobile apps
Different types of mobile apps
 
Hybrid vs Native Mobile App. Decide in 5 minutes!
Hybrid vs Native Mobile App. Decide in 5 minutes!Hybrid vs Native Mobile App. Decide in 5 minutes!
Hybrid vs Native Mobile App. Decide in 5 minutes!
 
Cross platform mobile development
Cross platform mobile developmentCross platform mobile development
Cross platform mobile development
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
Introduction to Firebase on Android
Introduction to Firebase on AndroidIntroduction to Firebase on Android
Introduction to Firebase on Android
 
Building single page applications
Building single page applicationsBuilding single page applications
Building single page applications
 
Native vs. Web vs. Hybrid: Mobile Development Choices
Native vs. Web vs. Hybrid: Mobile Development ChoicesNative vs. Web vs. Hybrid: Mobile Development Choices
Native vs. Web vs. Hybrid: Mobile Development Choices
 
Workshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkWorkshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic Framework
 
Developing a Modern Mobile App Strategy
Developing a Modern Mobile App StrategyDeveloping a Modern Mobile App Strategy
Developing a Modern Mobile App Strategy
 
Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page Application
 

Similar to Hybrid mobile app development

Understanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesUnderstanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesSalesforce Developers
 
Build Consumer Apps Using Mobile SDK and Ionic Framework
Build Consumer Apps Using Mobile SDK and Ionic FrameworkBuild Consumer Apps Using Mobile SDK and Ionic Framework
Build Consumer Apps Using Mobile SDK and Ionic FrameworkSalesforce Developers
 
IBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBIZZ
 
Wise Men Oracle Mobility Webinar- 11-December-2014
Wise Men Oracle Mobility Webinar- 11-December-2014Wise Men Oracle Mobility Webinar- 11-December-2014
Wise Men Oracle Mobility Webinar- 11-December-2014Wise Men
 
Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017
Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017
Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017Amazon Web Services
 
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDKQuickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDKSalesforce Developers
 
Powering your Apps with Cloud Services
Powering your Apps with Cloud ServicesPowering your Apps with Cloud Services
Powering your Apps with Cloud ServicesXpand IT
 
Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices LivePerson
 
New Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformNew Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformLohith Goudagere Nagaraj
 
Dreamforce 19 Global Gatherings Sevilla Salesforce Developer Group
Dreamforce 19 Global Gatherings Sevilla Salesforce Developer GroupDreamforce 19 Global Gatherings Sevilla Salesforce Developer Group
Dreamforce 19 Global Gatherings Sevilla Salesforce Developer GroupJorge Ortega Traverso
 
iOS-iPhone documentation
iOS-iPhone documentationiOS-iPhone documentation
iOS-iPhone documentationRaj Dubey
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platformi4consulting.org
 
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDKQuickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDKMichael Welburn
 
Salesforce Spring 2020 New Developer Features
Salesforce Spring 2020 New Developer FeaturesSalesforce Spring 2020 New Developer Features
Salesforce Spring 2020 New Developer FeaturesLydon Bergin
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioMizanur Sarker
 

Similar to Hybrid mobile app development (20)

Understanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesUnderstanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile Architectures
 
Build Consumer Apps Using Mobile SDK and Ionic Framework
Build Consumer Apps Using Mobile SDK and Ionic FrameworkBuild Consumer Apps Using Mobile SDK and Ionic Framework
Build Consumer Apps Using Mobile SDK and Ionic Framework
 
Going Offline with Salesforce1 Mobile SDK
Going Offline with Salesforce1 Mobile SDKGoing Offline with Salesforce1 Mobile SDK
Going Offline with Salesforce1 Mobile SDK
 
Salesforce touch
Salesforce touchSalesforce touch
Salesforce touch
 
IBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with Worklight
 
Wise Men Oracle Mobility Webinar- 11-December-2014
Wise Men Oracle Mobility Webinar- 11-December-2014Wise Men Oracle Mobility Webinar- 11-December-2014
Wise Men Oracle Mobility Webinar- 11-December-2014
 
Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017
Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017
Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017
 
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDKQuickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
 
Mobile Apps Develpment - A Comparison
Mobile Apps Develpment - A ComparisonMobile Apps Develpment - A Comparison
Mobile Apps Develpment - A Comparison
 
Powering your Apps with Cloud Services
Powering your Apps with Cloud ServicesPowering your Apps with Cloud Services
Powering your Apps with Cloud Services
 
Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices
 
New Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformNew Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik Platform
 
Dreamforce 19 Global Gatherings Sevilla Salesforce Developer Group
Dreamforce 19 Global Gatherings Sevilla Salesforce Developer GroupDreamforce 19 Global Gatherings Sevilla Salesforce Developer Group
Dreamforce 19 Global Gatherings Sevilla Salesforce Developer Group
 
iOS-iPhone documentation
iOS-iPhone documentationiOS-iPhone documentation
iOS-iPhone documentation
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platform
 
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDKQuickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
 
Salesforce Spring 2020 New Developer Features
Salesforce Spring 2020 New Developer FeaturesSalesforce Spring 2020 New Developer Features
Salesforce Spring 2020 New Developer Features
 
Shankar
ShankarShankar
Shankar
 
19-03-22.pdf
19-03-22.pdf19-03-22.pdf
19-03-22.pdf
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 

Recently uploaded

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Recently uploaded (20)

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

Hybrid mobile app development

  • 1. Hybrid Mobile App Development Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 2. Agenda • ABSI • SL Force.com Team • Introduction to Mobile Development • Hybrid Development Approaches • HTML5 Hybrid Development • VisualForce Hybrid Development • Mobile SDK Hybrid Development • Other Technologies Used • OAuth 2.0 • Offline Data Storage • PIN Code Authentication • Ongoing Research Areas Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 3. First Salesforce.com partner in Belgium (from 2002) • Sri Lanka operations started from 2009 Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 4. Sri Lanka Force.com Team Tuan Abdeen SCJP Certified Salesforce Developer Malaka Silva SCJP Certified Salesforce Advance Developer Dhanusha Mahatantila SCJP Certified Salesforce Developer Vishanka Perera SCJP Certified Salesforce Developer Inshar Anas SCJP, SCWCD Certified Salesforce Developer Shermal Warnakula SCJP Amila Pathirana Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 5. Intro to Mobile Development 1. Native You can code native apps for each mobile platform (Android, iOS), taking advantage of each platform's native capabilities. 2. HTML5 You can build HTML5 apps using familiar technologies such as HTML5, CSS, and JavaScript. Same app can run on all platforms, but no access to native platform features. 3. Hybrid You can create hybrid apps that use a JavaScript bridge in a native container to merge the portability of HTML5 with native device capabilities, such as the camera or address book. Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 6. Hybrid Development Approaches Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 7. PhoneGap What PhoneGap does here is, it will convert the web based application (developed with HTML5, CSS3 & JQueryMobile) into a native iOS, Android, Blackberry, Windows Phone, Palm OS and Symbian kind of an application. Therefore, the end-user will use the app not as a web based app (meaning, not in a web browser), but as a native app. Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 8. HTML5 Hybrid Development The system was developed using pure HTML5, CSS3 and JQueryMobile. Because this application requires to get information from Salesforce, the only possible approach was to use the Salesforce REST API. The application communicates with Force.com REST API using the forcetk.js JavaScript wrapper. Forcetk.js (Force.com JavaScript REST Toolkit) is an open source wrapper to the REST API. PhoneGap was used to convert the web base app to a native iOS app to install it to the iPad. Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 9. Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 10. VisualForce Hybrid Development The solution was made using Visualforce, Apex Controller, SOQL with HTML5, CSS3 and JQueryMobile. Best Practices: •Marking a VF page as HTML5. <apex:page docType="html-5.0“ … > •Set standardStylesheets="false" on the apex:page for JQueryMobile CSS to apply iPad styles on the VF page. •Using the ‘viewport’ meta tag. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" /> PhoneGap was used to convert the web base app to a native iOS app to install it to the iPad. Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 11. Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 12. Mobile SDK Hybrid Development The Mobile SDK is an open-source suite of familiar technologies—like a REST API and OAuth 2.0 - that you can use to build great mobile apps. The Mobile SDK for iOS contains native Objective-C libraries, and an XCode template to enable developers to rapidly build iOS applications that securely connect to Force.com and Database.com. The Mobile SDK provides a container based on PhoneGap. The container enables HTML5-based applications to leverage the libraries such as OAuth and secure offline storage, effectively providing an enterprise-ready hybrid application container. Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 13. Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 14. Other Technologies Used 1. OAuth 2.0 Salesforce OAuth 2 User-Agent authentication flow is used by iPad application. After the consumer has an access token, they can use the access token to access Salesforce data on the end user's behalf and a refresh token to get a new access token if it becomes invalid for any reason. Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 15. Other Technologies Used … 2. Offline Data Storage Offline Date Storage was implemented with Apache Cordova’s Local Storage API. This API was used within the PhoneGap context to use the iPad Device’s storage support. SQLite is a software library that implements a self-contained, server-less, zero-configuration, transactional SQL database engine. Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 16. Other Technologies Used … 3. PIN Code Authentication • The User’s does not want to enter SFDC credentials every time when they want to access the iPad Application. (OAuth 2.0 User Agent Flow with Access & Refresh token) • In subsequent logins, we use the access & refresh token that has been locally saved and do automatic login on behalf of the User. • Next issue was the security problem of not asking any credentials to access the iPad Application. • PIN Code Authentication built for that purpose. (4 digit) Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 17. Ongoing Research Areas • Mobile SDK enhancements • Configure PIN timeout value • Replace SmartStore with SQLite (SmartStore in one or more ‘soups’. A soup, conceptually speaking, is a logical collection of data records - represented as JSON objects) • How to represent Relational DB structure in SQLite • Way of pushing offline stored data to SFDC when the device is connected (synching stale data) • Dynamically creating iPad screen, depend on SFDC metadata (Page Layout & Field-level security) • Synch device contacts with SFDC contacts (QRCODE Integration) Prepared by: Tuan Abdeen Certified Salesforce.com Developer
  • 18. Prepared by: Tuan Abdeen Certified Salesforce.com Developer

Editor's Notes

  1. ABSI salesforce gold partner Certified Consultants from Belgium SL has done 14 big projects for the last 3.5 years Knowledge in - Customer Portal - Force.com Sites - Sales cloud &amp; Sales cycle (Opp, Product, PriceBook, Lead, Quote etc..) - we have people with Heroku Experience - Data Integration with Pervasive - Appexchahnge (all ready published Utility + report scheduler in due time)
  2. All developers from Java background (almost everybody SCJP certified) Except for the 2 new comers all are Force.com DEV 401 certified Malaka already 501 certified and Me and Dhanusha is waiting for 501 results
  3. Intro we were focusing on Force.com custom development and also Appexchange for last couple of years Because of the current trend and demand for iPad based mobile app development, we are now researching on SFDC mobile development
  4. In Hybrid development all front end development is based on HTML5. We use Phonegap to wrap the application to become a native app as well as to get native platform device features. In Hybrid development we have tried 3 alternative approaches. Every single approach has its pros and cons. Pure HTML5 based approach. In this approach the HTML files are store at PhoneGap container and works well in Online and offline mode. But to connect to SFDC the only option is the Force.com Rest API. Well known VF page, APEX controllers and SOQL approach. Less development time, but offline mode does not work. Salesforce Mobile SDK – recently released as a pilot after last Dreamforce. It uses VF, apex controllers, SOQL, JS remoting plus many more features.
  5. xCode =&gt; ABSI tuan@absi.be.ipad / isba1210 Pin =&gt; 1111
  6. xCode =&gt; defiproIpad absi@renault.be.test / isba1234
  7. Xcode =&gt; CT [email_address] 1qaz2wsx@