SlideShare una empresa de Scribd logo
1 de 30
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)

Más contenido relacionado

La actualidad más candente

Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapRamesh Nair
 
Phone gap in android technology
Phone gap in android technologyPhone gap in android technology
Phone gap in android technologyVikrant Thakare
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile ApplicationsRuwan Ranganath
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGapJoseph Labrecque
 
Introduction to Hybrid Application Development
Introduction to Hybrid Application DevelopmentIntroduction to Hybrid Application Development
Introduction to Hybrid Application DevelopmentDotitude
 
HTML5, PhoneGap and What's Next
HTML5, PhoneGap and What's NextHTML5, PhoneGap and What's Next
HTML5, PhoneGap and What's Nextm0bz
 
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/CSSGabriel 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 + MobileFirstRaymond Camden
 
Hybrid mobile app development
Hybrid mobile app developmentHybrid mobile app development
Hybrid mobile app developmentChamil Madusanka
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5Akib B. Momin
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application developmentKnoldus Inc.
 
Cross platform-mobile-applications
Cross platform-mobile-applicationsCross platform-mobile-applications
Cross platform-mobile-applicationsmailalamin
 
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 developmentWxit 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 TouchSteve Drucker
 

La actualidad más candente (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 a 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 Casestudydheerajkureel
 
Blackberrymobile Application Development Casestudy
Blackberrymobile Application Development CasestudyBlackberrymobile Application Development Casestudy
Blackberrymobile Application Development Casestudydheerajkureel
 
LocalSocial Overview Q409v3
LocalSocial Overview Q409v3LocalSocial Overview Q409v3
LocalSocial Overview Q409v3Sean 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 JavaScriptSencha
 
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 applicationsJames 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 TelefonicaFrancisco 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 DevelopmentAntenna 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 APIsEricsson 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 a 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
 

Más de Frank Gielen

I mindsx4howest v2
I mindsx4howest v2I mindsx4howest v2
I mindsx4howest v2Frank Gielen
 
I mindsx learning analytics v2
I mindsx learning analytics v2I mindsx learning analytics v2
I mindsx learning analytics v2Frank Gielen
 
You have been MOOCed
You have been MOOCedYou have been MOOCed
You have been MOOCedFrank 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 CanvasFrank Gielen
 
Defining the opportunity 2013
Defining the opportunity 2013Defining the opportunity 2013
Defining the opportunity 2013Frank 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 outlineFrank Gielen
 
Delaware presentation nov2012
Delaware presentation nov2012Delaware presentation nov2012
Delaware presentation nov2012Frank 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_workshopFrank Gielen
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiabilityFrank 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
 

Más de 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
 

Último

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - 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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
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
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Último (20)

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - 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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.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
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

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)

Notas del editor

  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