SlideShare a Scribd company logo
Case study
PhoneGap / Cordova
Jolien Coenraets
Jolien.coenraets@intec.ugent.be
www.ibcn.intec.ugent.be
Internet Based Communication Networks and Services (IBCN)
Department of Information Technology (INTEC)
Ghent University - IBBT



Department of Information Technology – Internet Based Communication Networks and Services (IBCN)
Introduction

                           = open source solution for building
                           cross-platform mobile native apps with
                           standards-based Web technologies like
                           HTML, JavaScript, CSS




Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   2
Introduction

                                                                           Accelerometer
                                                                           Camera
                                                                           Compass
                                                                           Contacts
                                                                           File
                                                                           Geolocation
                                                                           Media
                                                                           Network
                                                                           Notifications
                                                                           Storage
Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   3
Need
                                                       Lots of differences:
                                                          •Programming languages
                                                          •Screen sizes, resolutions
                                                          •Performance
                                                          •Behavior
                                                          •Buttons


                                                                       Different codebases
Java                                                                   = hard to maintain
        Java          C#       Objective C

                        1 thing in common: a browser
       Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   4
Vision
               One code base to rule them all!
Goal
 Make native functions available for web applications
 Create Adobe AIR for mobile applications

Business model
 Open source platform
 Money from training by Nitobi

Proof of concept won several prices                                                     continue !!!

      Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   5
2009 - 2010
Phase 1

  Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   6
Building the architecture, phase 1
Requirements
 Cross-platform
 Access native functions from within a webkit view
 No native code needed for developers of apps

          Portability (modifiability of the platform)
                         Layers to hide information

                         Interface towards app

                         Restrict communication paths
      Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   7
Building the architecture, phase 1
              HTML                                             CSS                             Your app

                                       JavaScript



JavaScript           JavaScript                    JavaScript                    JavaScript                PG
 Android                iOS                         WPhone                       BlackBerry               Java
 PG code              PG code                       PG code                       PG code
                                                                                                         Script

  Native               Native                        Native                        Native               PG
 Android                iOS                         WPhone                       BlackBerry
 PG code
                                                                                                     Native
                      PG code                       PG code                       PG code


                                                                                                            OS

      Department of Information Technology – Internet Based Communication Networks and Services (IBCN)            8
Creating a business, phase 1




Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   9
2010 - 2011
Phase 2

  Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   10
The community grows
They wanted this


But they got this




 Problem
 Adjusting the code resulted in conflicts and made it
 impossible to merge the code
       Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   11
Building the architecture, phase 2
Requirements
 Developers can create their own extensions
 Easily add support for new features
 Easily update certain feature without affecting other code


          Modifiability
                         Add plugins for extra functionality

                         Create internal components

                         Binding at runtime

      Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   12
Building the architecture, phase 2

   PhoneGap                                                       PhoneGap
     code                                                           code
Camera                                                              Camera
            Storage                                                                                Facebook
                                                                    Storage
Accelerometer                                                                                            PayPal
                                                               Accelerometer
               Device
                                                                     Device                              Adds

      Notification                                                Notification                       Twitter

                                                                     Media
    Media



      Department of Information Technology – Internet Based Communication Networks and Services (IBCN)            13
Building the architecture, phase 2
             HTML                                             CSS                             Your app

                                      JavaScript



Android PG            iOS PG                         WP PG                         BB PG                  PG
                                                                                                         Java
                                                                                                        Script

Android PG            iOS PG                        WP PG                          BB PG               PG
                                                                                                    Native


                                                                                                           OS

     Department of Information Technology – Internet Based Communication Networks and Services (IBCN)        14
Building the architecture, phase 2
             HTML                                             CSS                             Your app

                                      JavaScript



Android PG            iOS PG                         WP PG                         BB PG                  PG
                                                                                                         Java
                                                                                                        Script

Android PG            iOS PG                        WP PG                          BB PG               PG
                                                                                                    Native


                                                                                                           OS

     Department of Information Technology – Internet Based Communication Networks and Services (IBCN)        15
Creating a business, phase 2




 600 000+
downloads




 Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   16
2011 - …
Phase 3

  Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   17
Creating a business, phase 3




Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   18
The community grows

New people join the community, looking for an easy
 solution

But:
 complicated build process, different for each platform
 some API’s not consistent between different platforms
 little documentation, often outdated


        People drop out of the project
        Deteriorating reputation of usability and stability

      Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   19
Building the architecture, phase 3
Requirements
 Easier workflow (create, develop, build)
 Lower learning curve
 Consistent API between platforms


          Usability
                         Improve documentation

                         Improve build process

                         Improve PG JS source code
      Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   20
Building the architecture, phase 2
                                                                                                  Media
 PhoneGap
   code                                                                                          Camera
  Camera
                                Facebook                                                       Facebook




                                                                          PhoneGap code
  Storage                                                                                        PayPal
                                  PayPal
Accelerometer                                                                                    Storage

   Device                          Adds                                                            Adds

 Notification                                                                                     Twitter
                                  Twitter
                                                                                            Accelerometer
   Media
                                                                                                  Device

                                                                                              Notification

    Department of Information Technology – Internet Based Communication Networks and Services (IBCN)         21
Building the architecture, phase 3
              HTML                                             CSS                             Your app

                                       JavaScript


                                                                                                       PG
                                                                                                      Java
Android               iOS PG                    WP PG                       BB PG                    Script
PG


Android PG             iOS PG                        WP PG                          BB PG               PG
                                                                                                     Native

                                                                                                         OS

      Department of Information Technology – Internet Based Communication Networks and Services (IBCN)    22
Building the architecture, phase 3
              HTML                                             CSS                             Your app

                                       JavaScript


                             PhoneGap JavaScript                                                       PG
                                                                                                      Java
Android               iOS PG                    WP PG                       BB PG                    Script
PG


Android PG             iOS PG                        WP PG                          BB PG               PG
                                                                                                     Native

                                                                                                         OS

      Department of Information Technology – Internet Based Communication Networks and Services (IBCN)    23
Current status


                                                                  100 000+
                                                               downloads / month




Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   24
REMARKS

 Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   25
Remarks

An architecture can change …
      but it is better to have it right the first time.




     Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   26
Refactors
   Different JS files to one
         Change project structure = SVN conflicts
   Different plugin structure
         Outdated plugins, rewrite all your plugins
   API changes
         Introducing bugs, outdated documentation or information
   Name changes
         Find and replace ‘Phonegap’ to ‘Cordova’



                 Developer’s nightmare


        Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   27
Find partners




Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   28
No silver bullet

                              ≠ platform that every app should use


Advantages:                                               Disadvantages:


 Quick                                                    Javascript debugging
 Scripting languages                                      Performance

 Phonegap build                                           ‘Almost’ native




     Department of Information Technology – Internet Based Communication Networks and Services (IBCN)   29
Questions ?

Jolien Coenraets
jolien.coenraets@intec.ugent.be
www.ibcn.intec.ugent.be
Internet Based Communication Networks and Services (IBCN)
Department of Information Technology (INTEC)
Ghent University - IBBT



Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

More Related Content

What's hot

Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
Ramesh Nair
 
Phone gap in android technology
Phone gap in android technologyPhone gap in android technology
Phone gap in android technology
Vikrant Thakare
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile Applications
Ruwan Ranganath
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
Joseph Labrecque
 
Introduction to Hybrid Application Development
Introduction to Hybrid Application DevelopmentIntroduction to Hybrid Application Development
Introduction to Hybrid Application Development
Dotitude
 
HTML5, PhoneGap and What's Next
HTML5, PhoneGap and What's NextHTML5, PhoneGap and What's Next
HTML5, PhoneGap and What's Next
m0bz
 
HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기
정현 황
 
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSCordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Gabriel Huecas
 
Build Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGapBuild Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGapAllan Huang
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirst
Raymond Camden
 
Hybrid mobile app development
Hybrid mobile app developmentHybrid mobile app development
Hybrid mobile app development
Chamil Madusanka
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5
Akib B. Momin
 
Mobile stategy
Mobile stategyMobile stategy
Mobile stategy
Burhan Surti
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application development
Knoldus Inc.
 
Cross platform-mobile-applications
Cross platform-mobile-applicationsCross platform-mobile-applications
Cross platform-mobile-applications
mailalamin
 
Top 10 programming languages for mobile app development
Top 10 programming languages for mobile app developmentTop 10 programming languages for mobile app development
Top 10 programming languages for mobile app development
Wxit Consultant Services
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
Steve Drucker
 

What's hot (20)

Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Phone gap in android technology
Phone gap in android technologyPhone gap in android technology
Phone gap in android technology
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile Applications
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
 
Hybrid mobile apps
Hybrid mobile appsHybrid mobile apps
Hybrid mobile apps
 
Introduction to Hybrid Application Development
Introduction to Hybrid Application DevelopmentIntroduction to Hybrid Application Development
Introduction to Hybrid Application Development
 
HTML5, PhoneGap and What's Next
HTML5, PhoneGap and What's NextHTML5, PhoneGap and What's Next
HTML5, PhoneGap and What's Next
 
HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기
 
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSCordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
 
phonegap_101
phonegap_101phonegap_101
phonegap_101
 
Build Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGapBuild Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGap
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirst
 
Hybrid mobile app development
Hybrid mobile app developmentHybrid mobile app development
Hybrid mobile app development
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5
 
Mobile stategy
Mobile stategyMobile stategy
Mobile stategy
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application development
 
Cross platform-mobile-applications
Cross platform-mobile-applicationsCross platform-mobile-applications
Cross platform-mobile-applications
 
Hybrid Mobile App
Hybrid Mobile AppHybrid Mobile App
Hybrid Mobile App
 
Top 10 programming languages for mobile app development
Top 10 programming languages for mobile app developmentTop 10 programming languages for mobile app development
Top 10 programming languages for mobile app development
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
 

Similar to The Phonegap Architecture

Hybrid Mobile Application Framework
Hybrid Mobile Application FrameworkHybrid Mobile Application Framework
Hybrid Mobile Application Framework동수 장
 
Mee go是您的新机遇
Mee go是您的新机遇Mee go是您的新机遇
Mee go是您的新机遇OpenSourceCamp
 
Ipad Application Development Casestudy
Ipad Application Development CasestudyIpad Application Development Casestudy
Ipad Application Development Casestudy
dheerajkureel
 
Blackberrymobile Application Development Casestudy
Blackberrymobile Application Development CasestudyBlackberrymobile Application Development Casestudy
Blackberrymobile Application Development Casestudy
dheerajkureel
 
LocalSocial Overview Q409v3
LocalSocial Overview Q409v3LocalSocial Overview Q409v3
LocalSocial Overview Q409v3
Sean O'Sullivan
 
baidu开发者大会 - Web App开发框架介绍以及分析
baidu开发者大会 - Web App开发框架介绍以及分析baidu开发者大会 - Web App开发框架介绍以及分析
baidu开发者大会 - Web App开发框架介绍以及分析joylite
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Sencha
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applications
James Pearce
 
MobiWebApp 2012 - Gaps between standard & tool for native and web mobile appl...
MobiWebApp 2012 - Gaps between standard & tool for native and web mobile appl...MobiWebApp 2012 - Gaps between standard & tool for native and web mobile appl...
MobiWebApp 2012 - Gaps between standard & tool for native and web mobile appl...
Mootwin
 
HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗
Bobby Chen
 
Rebaca Technologies Corporate Overview
Rebaca Technologies Corporate OverviewRebaca Technologies Corporate Overview
Rebaca Technologies Corporate Overviewsumitkhandelwal
 
Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs
mentoresd
 
Presenting the Open Web Device by Telefonica
Presenting the Open Web Device by TelefonicaPresenting the Open Web Device by Telefonica
Presenting the Open Web Device by Telefonica
Francisco Jordano
 
Debunking Common Myths of Mobile Application Development
Debunking Common Myths of Mobile Application DevelopmentDebunking Common Myths of Mobile Application Development
Debunking Common Myths of Mobile Application Development
Antenna Software
 
4. FOMS _ Pervasive Services _ John_McGovern
4. FOMS _ Pervasive  Services _ John_McGovern4. FOMS _ Pervasive  Services _ John_McGovern
4. FOMS _ Pervasive Services _ John_McGovernFOMS011
 
앱스프레소를 이용한 모바일 앱 개발(1)
앱스프레소를 이용한 모바일 앱 개발(1)앱스프레소를 이용한 모바일 앱 개발(1)
앱스프레소를 이용한 모바일 앱 개발(1)
mosaicnet
 
An Overview of All Ericsson Labs APIs
An Overview of All Ericsson Labs APIsAn Overview of All Ericsson Labs APIs
An Overview of All Ericsson Labs APIs
Ericsson Labs
 
WebSphere as a platform for mobile apps
WebSphere as a platform for mobile appsWebSphere as a platform for mobile apps
WebSphere as a platform for mobile appsIBM Danmark
 

Similar to The Phonegap Architecture (20)

Hybrid Mobile Application Framework
Hybrid Mobile Application FrameworkHybrid Mobile Application Framework
Hybrid Mobile Application Framework
 
Mee go是您的新机遇
Mee go是您的新机遇Mee go是您的新机遇
Mee go是您的新机遇
 
Ipad Application Development Casestudy
Ipad Application Development CasestudyIpad Application Development Casestudy
Ipad Application Development Casestudy
 
Blackberrymobile Application Development Casestudy
Blackberrymobile Application Development CasestudyBlackberrymobile Application Development Casestudy
Blackberrymobile Application Development Casestudy
 
LocalSocial Overview Q409v3
LocalSocial Overview Q409v3LocalSocial Overview Q409v3
LocalSocial Overview Q409v3
 
baidu开发者大会 - Web App开发框架介绍以及分析
baidu开发者大会 - Web App开发框架介绍以及分析baidu开发者大会 - Web App开发框架介绍以及分析
baidu开发者大会 - Web App开发框架介绍以及分析
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
 
MeeGo and Community
MeeGo and CommunityMeeGo and Community
MeeGo and Community
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applications
 
MobiWebApp 2012 - Gaps between standard & tool for native and web mobile appl...
MobiWebApp 2012 - Gaps between standard & tool for native and web mobile appl...MobiWebApp 2012 - Gaps between standard & tool for native and web mobile appl...
MobiWebApp 2012 - Gaps between standard & tool for native and web mobile appl...
 
HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗
 
Rebaca Technologies Corporate Overview
Rebaca Technologies Corporate OverviewRebaca Technologies Corporate Overview
Rebaca Technologies Corporate Overview
 
Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs
 
Presenting the Open Web Device by Telefonica
Presenting the Open Web Device by TelefonicaPresenting the Open Web Device by Telefonica
Presenting the Open Web Device by Telefonica
 
Debunking Common Myths of Mobile Application Development
Debunking Common Myths of Mobile Application DevelopmentDebunking Common Myths of Mobile Application Development
Debunking Common Myths of Mobile Application Development
 
4. FOMS _ Pervasive Services _ John_McGovern
4. FOMS _ Pervasive  Services _ John_McGovern4. FOMS _ Pervasive  Services _ John_McGovern
4. FOMS _ Pervasive Services _ John_McGovern
 
앱스프레소를 이용한 모바일 앱 개발(1)
앱스프레소를 이용한 모바일 앱 개발(1)앱스프레소를 이용한 모바일 앱 개발(1)
앱스프레소를 이용한 모바일 앱 개발(1)
 
An Overview of All Ericsson Labs APIs
An Overview of All Ericsson Labs APIsAn Overview of All Ericsson Labs APIs
An Overview of All Ericsson Labs APIs
 
SpotOn Brochure
SpotOn BrochureSpotOn Brochure
SpotOn Brochure
 
WebSphere as a platform for mobile apps
WebSphere as a platform for mobile appsWebSphere as a platform for mobile apps
WebSphere as a platform for mobile apps
 

More from Frank Gielen

I mindsx4howest v2
I mindsx4howest v2I mindsx4howest v2
I mindsx4howest v2
Frank Gielen
 
I mindsx learning analytics v2
I mindsx learning analytics v2I mindsx learning analytics v2
I mindsx learning analytics v2
Frank Gielen
 
You have been MOOCed
You have been MOOCedYou have been MOOCed
You have been MOOCed
Frank Gielen
 
Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)
Frank Gielen
 
Beyond MOOCs (2014)
Beyond MOOCs (2014)Beyond MOOCs (2014)
Beyond MOOCs (2014)
Frank Gielen
 
The Research Canvas
The Research CanvasThe Research Canvas
The Research Canvas
Frank Gielen
 
Defining the opportunity 2013
Defining the opportunity 2013Defining the opportunity 2013
Defining the opportunity 2013
Frank Gielen
 
KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013Frank Gielen
 
Dare 2 Start - Course outline
Dare 2 Start - Course outlineDare 2 Start - Course outline
Dare 2 Start - Course outline
Frank Gielen
 
Delaware presentation nov2012
Delaware presentation nov2012Delaware presentation nov2012
Delaware presentation nov2012Frank Gielen
 
Sa 008 patterns
Sa 008 patternsSa 008 patterns
Sa 008 patterns
Frank Gielen
 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_viewsFrank Gielen
 
Sa 007 availability
Sa 007 availabilitySa 007 availability
Sa 007 availabilityFrank Gielen
 
Pr 005 qa_workshop
Pr 005 qa_workshopPr 005 qa_workshop
Pr 005 qa_workshop
Frank Gielen
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiability
Frank Gielen
 
VC Do's and Don'ts - Jurgen Ingels
VC Do's and Don'ts  - Jurgen Ingels VC Do's and Don'ts  - Jurgen Ingels
VC Do's and Don'ts - Jurgen Ingels Frank Gielen
 
Debt & Equity - Wouter Haerick
Debt & Equity - Wouter HaerickDebt & Equity - Wouter Haerick
Debt & Equity - Wouter HaerickFrank Gielen
 

More from Frank Gielen (20)

I mindsx4howest v2
I mindsx4howest v2I mindsx4howest v2
I mindsx4howest v2
 
I mindsx learning analytics v2
I mindsx learning analytics v2I mindsx learning analytics v2
I mindsx learning analytics v2
 
You have been MOOCed
You have been MOOCedYou have been MOOCed
You have been MOOCed
 
Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)
 
Beyond MOOCs (2014)
Beyond MOOCs (2014)Beyond MOOCs (2014)
Beyond MOOCs (2014)
 
The Research Canvas
The Research CanvasThe Research Canvas
The Research Canvas
 
Defining the opportunity 2013
Defining the opportunity 2013Defining the opportunity 2013
Defining the opportunity 2013
 
KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013
 
Dare 2 Start - Course outline
Dare 2 Start - Course outlineDare 2 Start - Course outline
Dare 2 Start - Course outline
 
Sop test planning
Sop test planningSop test planning
Sop test planning
 
Delaware presentation nov2012
Delaware presentation nov2012Delaware presentation nov2012
Delaware presentation nov2012
 
Pr crc
Pr crcPr crc
Pr crc
 
Sa 008 patterns
Sa 008 patternsSa 008 patterns
Sa 008 patterns
 
Sa 009 add
Sa 009 addSa 009 add
Sa 009 add
 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_views
 
Sa 007 availability
Sa 007 availabilitySa 007 availability
Sa 007 availability
 
Pr 005 qa_workshop
Pr 005 qa_workshopPr 005 qa_workshop
Pr 005 qa_workshop
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiability
 
VC Do's and Don'ts - Jurgen Ingels
VC Do's and Don'ts  - Jurgen Ingels VC Do's and Don'ts  - Jurgen Ingels
VC Do's and Don'ts - Jurgen Ingels
 
Debt & Equity - Wouter Haerick
Debt & Equity - Wouter HaerickDebt & Equity - Wouter Haerick
Debt & Equity - Wouter Haerick
 

Recently uploaded

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 

Recently uploaded (20)

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

The Phonegap Architecture

  • 1. Case study PhoneGap / Cordova Jolien Coenraets Jolien.coenraets@intec.ugent.be www.ibcn.intec.ugent.be Internet Based Communication Networks and Services (IBCN) Department of Information Technology (INTEC) Ghent University - IBBT Department of Information Technology – Internet Based Communication Networks and Services (IBCN)
  • 2. Introduction = open source solution for building cross-platform mobile native apps with standards-based Web technologies like HTML, JavaScript, CSS Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 2
  • 3. Introduction Accelerometer Camera Compass Contacts File Geolocation Media Network Notifications Storage Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 3
  • 4. Need Lots of differences: •Programming languages •Screen sizes, resolutions •Performance •Behavior •Buttons Different codebases Java = hard to maintain Java C# Objective C 1 thing in common: a browser Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 4
  • 5. Vision One code base to rule them all! Goal Make native functions available for web applications Create Adobe AIR for mobile applications Business model Open source platform Money from training by Nitobi Proof of concept won several prices continue !!! Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 5
  • 6. 2009 - 2010 Phase 1 Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 6
  • 7. Building the architecture, phase 1 Requirements Cross-platform Access native functions from within a webkit view No native code needed for developers of apps Portability (modifiability of the platform) Layers to hide information Interface towards app Restrict communication paths Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 7
  • 8. Building the architecture, phase 1 HTML CSS Your app JavaScript JavaScript JavaScript JavaScript JavaScript PG Android iOS WPhone BlackBerry Java PG code PG code PG code PG code Script Native Native Native Native PG Android iOS WPhone BlackBerry PG code Native PG code PG code PG code OS Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 8
  • 9. Creating a business, phase 1 Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 9
  • 10. 2010 - 2011 Phase 2 Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 10
  • 11. The community grows They wanted this But they got this Problem Adjusting the code resulted in conflicts and made it impossible to merge the code Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 11
  • 12. Building the architecture, phase 2 Requirements Developers can create their own extensions Easily add support for new features Easily update certain feature without affecting other code Modifiability Add plugins for extra functionality Create internal components Binding at runtime Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 12
  • 13. Building the architecture, phase 2 PhoneGap PhoneGap code code Camera Camera Storage Facebook Storage Accelerometer PayPal Accelerometer Device Device Adds Notification Notification Twitter Media Media Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 13
  • 14. Building the architecture, phase 2 HTML CSS Your app JavaScript Android PG iOS PG WP PG BB PG PG Java Script Android PG iOS PG WP PG BB PG PG Native OS Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 14
  • 15. Building the architecture, phase 2 HTML CSS Your app JavaScript Android PG iOS PG WP PG BB PG PG Java Script Android PG iOS PG WP PG BB PG PG Native OS Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 15
  • 16. Creating a business, phase 2 600 000+ downloads Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 16
  • 17. 2011 - … Phase 3 Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 17
  • 18. Creating a business, phase 3 Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 18
  • 19. The community grows New people join the community, looking for an easy solution But: complicated build process, different for each platform some API’s not consistent between different platforms little documentation, often outdated People drop out of the project Deteriorating reputation of usability and stability Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 19
  • 20. Building the architecture, phase 3 Requirements Easier workflow (create, develop, build) Lower learning curve Consistent API between platforms Usability Improve documentation Improve build process Improve PG JS source code Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 20
  • 21. Building the architecture, phase 2 Media PhoneGap code Camera Camera Facebook Facebook PhoneGap code Storage PayPal PayPal Accelerometer Storage Device Adds Adds Notification Twitter Twitter Accelerometer Media Device Notification Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 21
  • 22. Building the architecture, phase 3 HTML CSS Your app JavaScript PG Java Android iOS PG WP PG BB PG Script PG Android PG iOS PG WP PG BB PG PG Native OS Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 22
  • 23. Building the architecture, phase 3 HTML CSS Your app JavaScript PhoneGap JavaScript PG Java Android iOS PG WP PG BB PG Script PG Android PG iOS PG WP PG BB PG PG Native OS Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 23
  • 24. Current status 100 000+ downloads / month Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 24
  • 25. REMARKS Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 25
  • 26. Remarks An architecture can change … but it is better to have it right the first time. Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 26
  • 27. Refactors  Different JS files to one Change project structure = SVN conflicts  Different plugin structure Outdated plugins, rewrite all your plugins  API changes Introducing bugs, outdated documentation or information  Name changes Find and replace ‘Phonegap’ to ‘Cordova’ Developer’s nightmare Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 27
  • 28. Find partners Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 28
  • 29. No silver bullet ≠ platform that every app should use Advantages: Disadvantages:  Quick  Javascript debugging  Scripting languages  Performance  Phonegap build  ‘Almost’ native Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 29
  • 30. Questions ? Jolien Coenraets jolien.coenraets@intec.ugent.be www.ibcn.intec.ugent.be Internet Based Communication Networks and Services (IBCN) Department of Information Technology (INTEC) Ghent University - IBBT Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

Editor's Notes

  1. Situatieschets 2009: smartphones en tablets komen op, maarerzijnveelplatformen (toenBada, Symbian, Windows Mobile, Android kont op, iPhone 3G). Nergensiets uniform, niemandweetwaar het naatoegaat. Moeilijkomals developer tekiezen, liefstallestegelijk.
  2. Visie en missiePhonegaptoen (samen met commercieel aspect)Adobe AIR kwam pas in 2010 naartelefoon
  3. Uitleg portability en wat het voor PG betekende
  4. Architectuuroverzicht
  5. Probleemstelleng:niet pluggable, veelverschillendeversies
  6. Uitleg portability en wat het voor PG betekende
  7. Toelatenomeigenplugins toe tevoegen en functionaliteit in interne modules steken
  8. Architectuuroverzichtfase 2 – pluginstoegevoegd
  9. Architectuuroverzichtfase 2 – pluginstoegevoegd
  10. OvernameNitobi door Adobe, Grotere community
  11. Nu is bijnaalleseenexterneplugin
  12. Architectuuroverzichtfase 3 – unified javascript layer
  13. Architectuuroverzichtfase 3 – unified javascript layer