SlideShare a Scribd company logo
1 of 31
Download to read offline
From web sites
to web apps
to mobile apps
 An interesting journey
The past: Web sites
Today: Web apps
Today: Web apps
●   Single page applications
●   Communication via API
●   "Backend as a service"
●   Client side MV*-Frameworks
●   Templates rendered on the client
●   Data on the wire
Going mobile




With web technologies
Pick one
      First fundamental question:


           HTML / CSS / JS
                 vs.
           Pure JavaScript
Pick one
      First fundamental decision:


           HTML / CSS / JS
                 vs.
           Pure JavaScript
A tough choice
● Javascript MV* Libraries / Frameworks
  ○ Backbone
  ○ Ember
  ○ Knockout
  ○ Angular
● UI Frameworks
  ○ Lungo
  ○ Kendo
  ○ jQTouch
  ○ jQuery mobile
● Deployment frameworks
  ○ PhoneGap
  ○ Sencha
  ○ Calatrava
  ○ The M-Project
A tough choice
● Javascript MV* Libraries / Frameworks
  ○ Backbone
  ○ Ember
  ○ Knockout
  ○ Angular
● UI Frameworks
  ○ Lungo
  ○ Kendo
  ○ jQTouch
  ○ jQuery mobile
● Deployment frameworks
  ○ PhoneGap
  ○ Sencha
  ○ Calatrava
  ○ The M-Project
Problems with picking the right mix
● overlap between the three:
  ○ multiple frameworks trying to be clever
  ○ e.g. Calatrava: Deployment & UI
  ○ e.g. Kendo: MVVM & UI
● finding good combinations:
  ○   Knockout & Lungo
  ○   Knockout & Kendo
  ○   Angular & iUI
  ○   Angular & Lungo
Our stack



             Rails-API
            Angular JS
              Lungo
            PhoneGap
Our stack



         Rails-API
        Angular JS
   Lungo-Angular-Bridge
          Lungo
        PhoneGap
What's the bridge?



      Lungo          Angular


              Routing
Two choices:
● I want the Lungo routing
  ○ The Angular-Lungo-Adapter is for you
● I want the Angular routing
  ○ There is nothing for that
Two choices:
● I want the Lungo routing
  ○ The Angular-Lungo-Adapter is for you
● I want the Angular routing
  ○ There was nothing for that


Centralway proudly presents...
Lungo-Angular-Bridge
           Batteries included!
https://github.com/centralway/lungo-
            angular-bridge
LAB - Lungo Angular Bridge
● Allows to use Lungo fancyness together with
  Angular awesomeness
● Use Angular routes but leverage Lungo
  transitions
● Comes with a set of examples
● Extends Angular with the lab-view directive
Batteries included - get going!
Demo time!
Fasten your seatbelts
Experiences & Learnings
        from us
Things you may hear
● "But it's soo slooooow"

● "What if you need something native?"

● "How does deployment work?"

● "But it won't look&feel native!"
Things you may say
● "But it's soo slooooow"
○ Only in a few cases, e.g. SVG on iPhone 4
● "What if you need something native?"
○ You can do that >> Phonegap Plugins
● "How does deployment work?"
○ Either manually or via App Stores


● "But it won't look&feel native!"
○ This depends solely on the UI Framework
  used - e.g. Lungo makes it feel native
In the trenches




The pitfalls of mobile development
Round 1: iframes vs. iOS
<iframe src="http://example.com"></iframe>
<a href="http://somesite.com" target="_blank">Open</a>


What will happen?
● Android
     ○ iframe loads in the page
     ○ link opens a browser window
●   iOS
     ○ "stay-in-webview=false" (default)
        ■ iframe opens a new browser window
        ■ link opens a new browser window
     ○ "stay-in-webview=true"
        ■ iframe opens in the page
        ■ link opens in the page
Round 1: iframes vs. iOS
● 4 possible solutions
  a.   using "access" rule in Config.xml
  b.   using "InApp-Browser" (window.open)
  c.   specify target="_self" for iframe
  d.   using ChildBrowser plugin
Round 1: iframe vs. iOS
● 4 possible solutions
  a.   using "access" rule in Config.xml
  b.   using "InApp-Browser" (window.open)
  c.   specify target="_self" for iframe
  d.   using ChildBrowser plugin
Round 2: "HTML5 routing"
$locationProvider.html5Mode(true);
Round 2: "HTML5 routing"
$locationProvider.html5Mode(false);



● HTML 5 routing not supported properly
    ○ weird behaviour
    ○ non-routing relating things go wrong
    ○ no error messages / warnings
●   Setting to "false" uses "#/..."-style routing instead of
    "real" routing ("/...")
General conclusions
● PhoneGap plugins <3
  ○ when it doesn't exist in PhoneGap
  ○ when it is too slow in HTML / CSS / JS
● Active communities & many resources
● Web is a powerful platform
Wrap-up
● Mobile is on the rise
● Web technologies rock!
● Find the right mix of Frameworks for your
  needs is hard
● Be aware of potential pitfalls
● Leverage the active communities to work
  around problems
From website to mobile app - a journey

More Related Content

What's hot

Thinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSThinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSTJ Stalcup
 
Beg, Borrow or Steal: The Art of Flashing Without Flashing
Beg, Borrow or Steal: The Art of Flashing Without FlashingBeg, Borrow or Steal: The Art of Flashing Without Flashing
Beg, Borrow or Steal: The Art of Flashing Without Flashingspjwebster
 
[DevDay 2016] Web Components, is it the future of Web Development? Speaker: V...
[DevDay 2016] Web Components, is it the future of Web Development? Speaker: V...[DevDay 2016] Web Components, is it the future of Web Development? Speaker: V...
[DevDay 2016] Web Components, is it the future of Web Development? Speaker: V...DevDay.org
 
Drupal Day 2011 - Features: una vita felice
Drupal Day 2011 - Features: una vita feliceDrupal Day 2011 - Features: una vita felice
Drupal Day 2011 - Features: una vita feliceDrupalDay
 
Cutting edge of web technology
Cutting edge of web technologyCutting edge of web technology
Cutting edge of web technologyTsutomu Ogasawara
 
WooCommerce: Customization FAQ
WooCommerce: Customization FAQWooCommerce: Customization FAQ
WooCommerce: Customization FAQRodolfo Melogli
 
Codemotion Rome 2016 - Polymer
Codemotion Rome 2016 - PolymerCodemotion Rome 2016 - Polymer
Codemotion Rome 2016 - PolymerMaurizio Mangione
 
Accessible client side routing - Nick Colley
Accessible client side routing - Nick ColleyAccessible client side routing - Nick Colley
Accessible client side routing - Nick ColleyFrontEnders
 
(WS11) Saša Matijašić (LogIT internet usluge): Quo Vadis, Browser?*
(WS11) Saša Matijašić (LogIT internet usluge): Quo Vadis, Browser?*(WS11) Saša Matijašić (LogIT internet usluge): Quo Vadis, Browser?*
(WS11) Saša Matijašić (LogIT internet usluge): Quo Vadis, Browser?*Web::Strategija
 
Thinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSSThinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSSTJ Stalcup
 
Frontend Crash Course
Frontend Crash CourseFrontend Crash Course
Frontend Crash CourseTJ Stalcup
 
Thinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSThinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSTJ Stalcup
 
Building your first WordPress plugin
Building your first WordPress pluginBuilding your first WordPress plugin
Building your first WordPress pluginJustin Foell
 
자바스크립트 공부를 위한 책 소개
자바스크립트 공부를 위한 책 소개자바스크립트 공부를 위한 책 소개
자바스크립트 공부를 위한 책 소개Ben Heo
 
Tars Tsuiper - When Drupal is not needed. Try to use Symfony.
Tars Tsuiper - When Drupal is not needed. Try to use Symfony.Tars Tsuiper - When Drupal is not needed. Try to use Symfony.
Tars Tsuiper - When Drupal is not needed. Try to use Symfony.DrupalCamp Kyiv
 
Webinar: Next Generation, Data-Driven Plugin and Theme Development
Webinar: Next Generation, Data-Driven Plugin and Theme DevelopmentWebinar: Next Generation, Data-Driven Plugin and Theme Development
Webinar: Next Generation, Data-Driven Plugin and Theme DevelopmentWP Engine
 
Full stack java script development
Full stack java script developmentFull stack java script development
Full stack java script developmentTomislav Capan
 
NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1Tomislav Capan
 

What's hot (20)

Thinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSThinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSS
 
Beg, Borrow or Steal: The Art of Flashing Without Flashing
Beg, Borrow or Steal: The Art of Flashing Without FlashingBeg, Borrow or Steal: The Art of Flashing Without Flashing
Beg, Borrow or Steal: The Art of Flashing Without Flashing
 
[DevDay 2016] Web Components, is it the future of Web Development? Speaker: V...
[DevDay 2016] Web Components, is it the future of Web Development? Speaker: V...[DevDay 2016] Web Components, is it the future of Web Development? Speaker: V...
[DevDay 2016] Web Components, is it the future of Web Development? Speaker: V...
 
Drupal Day 2011 - Features: una vita felice
Drupal Day 2011 - Features: una vita feliceDrupal Day 2011 - Features: una vita felice
Drupal Day 2011 - Features: una vita felice
 
Cutting edge of web technology
Cutting edge of web technologyCutting edge of web technology
Cutting edge of web technology
 
WooCommerce: Customization FAQ
WooCommerce: Customization FAQWooCommerce: Customization FAQ
WooCommerce: Customization FAQ
 
Codemotion Rome 2016 - Polymer
Codemotion Rome 2016 - PolymerCodemotion Rome 2016 - Polymer
Codemotion Rome 2016 - Polymer
 
Accessible client side routing - Nick Colley
Accessible client side routing - Nick ColleyAccessible client side routing - Nick Colley
Accessible client side routing - Nick Colley
 
(WS11) Saša Matijašić (LogIT internet usluge): Quo Vadis, Browser?*
(WS11) Saša Matijašić (LogIT internet usluge): Quo Vadis, Browser?*(WS11) Saša Matijašić (LogIT internet usluge): Quo Vadis, Browser?*
(WS11) Saša Matijašić (LogIT internet usluge): Quo Vadis, Browser?*
 
Thinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSSThinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSS
 
Frontend Crash Course
Frontend Crash CourseFrontend Crash Course
Frontend Crash Course
 
Thinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSThinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSS
 
Building your first WordPress plugin
Building your first WordPress pluginBuilding your first WordPress plugin
Building your first WordPress plugin
 
자바스크립트 공부를 위한 책 소개
자바스크립트 공부를 위한 책 소개자바스크립트 공부를 위한 책 소개
자바스크립트 공부를 위한 책 소개
 
Tars Tsuiper - When Drupal is not needed. Try to use Symfony.
Tars Tsuiper - When Drupal is not needed. Try to use Symfony.Tars Tsuiper - When Drupal is not needed. Try to use Symfony.
Tars Tsuiper - When Drupal is not needed. Try to use Symfony.
 
CV_2016_en
CV_2016_enCV_2016_en
CV_2016_en
 
Webinar: Next Generation, Data-Driven Plugin and Theme Development
Webinar: Next Generation, Data-Driven Plugin and Theme DevelopmentWebinar: Next Generation, Data-Driven Plugin and Theme Development
Webinar: Next Generation, Data-Driven Plugin and Theme Development
 
Full stack java script development
Full stack java script developmentFull stack java script development
Full stack java script development
 
Frontend Crash Course
Frontend Crash CourseFrontend Crash Course
Frontend Crash Course
 
NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1
 

Similar to From website to mobile app - a journey

Beyond responsive design - UI for the modern web application
Beyond responsive design - UI for the modern web applicationBeyond responsive design - UI for the modern web application
Beyond responsive design - UI for the modern web applicationPete Smith
 
Phone gap & jquerymobile
Phone gap & jquerymobilePhone gap & jquerymobile
Phone gap & jquerymobilebetabeers
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.Globant
 
Getting Started With AngularJS
Getting Started With AngularJSGetting Started With AngularJS
Getting Started With AngularJSOmnia Helmi
 
Top 10 Incredible Websites Built With Angular Framework
Top 10 Incredible Websites Built With Angular FrameworkTop 10 Incredible Websites Built With Angular Framework
Top 10 Incredible Websites Built With Angular Framework75waytechnologies
 
Building SPAs with AngularJS
Building SPAs with AngularJSBuilding SPAs with AngularJS
Building SPAs with AngularJSCezar Carneiro
 
YUI App Framework
YUI App FrameworkYUI App Framework
YUI App FrameworkelHornair
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoChristian Heilmann
 
Recent Market Trends in software development
Recent Market Trends in software developmentRecent Market Trends in software development
Recent Market Trends in software developmentShahid Ahmad
 
uMobile, I’m Mobile, We’re All Mobile!!
uMobile, I’m Mobile, We’re All Mobile!!uMobile, I’m Mobile, We’re All Mobile!!
uMobile, I’m Mobile, We’re All Mobile!!Aaron Grant
 
HTML5 - The Good, the Bad, the Ugly
HTML5 - The Good, the Bad, the UglyHTML5 - The Good, the Bad, the Ugly
HTML5 - The Good, the Bad, the UglyMario Heiderich
 
A brief description about Angular
A brief description about AngularA brief description about Angular
A brief description about AngularPAYALJHA8
 
Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Kazuhiro Ogura
 
Javascript & SEO 2019
Javascript & SEO 2019Javascript & SEO 2019
Javascript & SEO 2019Edd Wilson
 

Similar to From website to mobile app - a journey (20)

Beyond responsive design - UI for the modern web application
Beyond responsive design - UI for the modern web applicationBeyond responsive design - UI for the modern web application
Beyond responsive design - UI for the modern web application
 
Phone gap & jquerymobile
Phone gap & jquerymobilePhone gap & jquerymobile
Phone gap & jquerymobile
 
Ionic
IonicIonic
Ionic
 
A Period of Transition
A Period of TransitionA Period of Transition
A Period of Transition
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Listfy Sprint #0
Listfy Sprint #0Listfy Sprint #0
Listfy Sprint #0
 
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
Globant Week Cali - Entendiendo el desarrollo Front-end del mundo moderno.
 
Getting Started With AngularJS
Getting Started With AngularJSGetting Started With AngularJS
Getting Started With AngularJS
 
Top 10 Incredible Websites Built With Angular Framework
Top 10 Incredible Websites Built With Angular FrameworkTop 10 Incredible Websites Built With Angular Framework
Top 10 Incredible Websites Built With Angular Framework
 
Building SPAs with AngularJS
Building SPAs with AngularJSBuilding SPAs with AngularJS
Building SPAs with AngularJS
 
APIs for mobile
APIs for mobileAPIs for mobile
APIs for mobile
 
YUI App Framework
YUI App FrameworkYUI App Framework
YUI App Framework
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
Recent Market Trends in software development
Recent Market Trends in software developmentRecent Market Trends in software development
Recent Market Trends in software development
 
uMobile, I’m Mobile, We’re All Mobile!!
uMobile, I’m Mobile, We’re All Mobile!!uMobile, I’m Mobile, We’re All Mobile!!
uMobile, I’m Mobile, We’re All Mobile!!
 
HTML5 - The Good, the Bad, the Ugly
HTML5 - The Good, the Bad, the UglyHTML5 - The Good, the Bad, the Ugly
HTML5 - The Good, the Bad, the Ugly
 
A brief description about Angular
A brief description about AngularA brief description about Angular
A brief description about Angular
 
What is the Use of Angular?
What is the Use of Angular?What is the Use of Angular?
What is the Use of Angular?
 
Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Introducing chrome apps (ogura)
Introducing chrome apps (ogura)
 
Javascript & SEO 2019
Javascript & SEO 2019Javascript & SEO 2019
Javascript & SEO 2019
 

Recently uploaded

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

From website to mobile app - a journey

  • 1. From web sites to web apps to mobile apps An interesting journey
  • 4. Today: Web apps ● Single page applications ● Communication via API ● "Backend as a service" ● Client side MV*-Frameworks ● Templates rendered on the client ● Data on the wire
  • 5. Going mobile With web technologies
  • 6. Pick one First fundamental question: HTML / CSS / JS vs. Pure JavaScript
  • 7. Pick one First fundamental decision: HTML / CSS / JS vs. Pure JavaScript
  • 8. A tough choice ● Javascript MV* Libraries / Frameworks ○ Backbone ○ Ember ○ Knockout ○ Angular ● UI Frameworks ○ Lungo ○ Kendo ○ jQTouch ○ jQuery mobile ● Deployment frameworks ○ PhoneGap ○ Sencha ○ Calatrava ○ The M-Project
  • 9. A tough choice ● Javascript MV* Libraries / Frameworks ○ Backbone ○ Ember ○ Knockout ○ Angular ● UI Frameworks ○ Lungo ○ Kendo ○ jQTouch ○ jQuery mobile ● Deployment frameworks ○ PhoneGap ○ Sencha ○ Calatrava ○ The M-Project
  • 10. Problems with picking the right mix ● overlap between the three: ○ multiple frameworks trying to be clever ○ e.g. Calatrava: Deployment & UI ○ e.g. Kendo: MVVM & UI ● finding good combinations: ○ Knockout & Lungo ○ Knockout & Kendo ○ Angular & iUI ○ Angular & Lungo
  • 11. Our stack Rails-API Angular JS Lungo PhoneGap
  • 12. Our stack Rails-API Angular JS Lungo-Angular-Bridge Lungo PhoneGap
  • 13. What's the bridge? Lungo Angular Routing
  • 14. Two choices: ● I want the Lungo routing ○ The Angular-Lungo-Adapter is for you ● I want the Angular routing ○ There is nothing for that
  • 15. Two choices: ● I want the Lungo routing ○ The Angular-Lungo-Adapter is for you ● I want the Angular routing ○ There was nothing for that Centralway proudly presents...
  • 16. Lungo-Angular-Bridge Batteries included! https://github.com/centralway/lungo- angular-bridge
  • 17. LAB - Lungo Angular Bridge ● Allows to use Lungo fancyness together with Angular awesomeness ● Use Angular routes but leverage Lungo transitions ● Comes with a set of examples ● Extends Angular with the lab-view directive
  • 18. Batteries included - get going!
  • 21. Things you may hear ● "But it's soo slooooow" ● "What if you need something native?" ● "How does deployment work?" ● "But it won't look&feel native!"
  • 22. Things you may say ● "But it's soo slooooow" ○ Only in a few cases, e.g. SVG on iPhone 4 ● "What if you need something native?" ○ You can do that >> Phonegap Plugins ● "How does deployment work?" ○ Either manually or via App Stores ● "But it won't look&feel native!" ○ This depends solely on the UI Framework used - e.g. Lungo makes it feel native
  • 23. In the trenches The pitfalls of mobile development
  • 24. Round 1: iframes vs. iOS <iframe src="http://example.com"></iframe> <a href="http://somesite.com" target="_blank">Open</a> What will happen? ● Android ○ iframe loads in the page ○ link opens a browser window ● iOS ○ "stay-in-webview=false" (default) ■ iframe opens a new browser window ■ link opens a new browser window ○ "stay-in-webview=true" ■ iframe opens in the page ■ link opens in the page
  • 25. Round 1: iframes vs. iOS ● 4 possible solutions a. using "access" rule in Config.xml b. using "InApp-Browser" (window.open) c. specify target="_self" for iframe d. using ChildBrowser plugin
  • 26. Round 1: iframe vs. iOS ● 4 possible solutions a. using "access" rule in Config.xml b. using "InApp-Browser" (window.open) c. specify target="_self" for iframe d. using ChildBrowser plugin
  • 27. Round 2: "HTML5 routing" $locationProvider.html5Mode(true);
  • 28. Round 2: "HTML5 routing" $locationProvider.html5Mode(false); ● HTML 5 routing not supported properly ○ weird behaviour ○ non-routing relating things go wrong ○ no error messages / warnings ● Setting to "false" uses "#/..."-style routing instead of "real" routing ("/...")
  • 29. General conclusions ● PhoneGap plugins <3 ○ when it doesn't exist in PhoneGap ○ when it is too slow in HTML / CSS / JS ● Active communities & many resources ● Web is a powerful platform
  • 30. Wrap-up ● Mobile is on the rise ● Web technologies rock! ● Find the right mix of Frameworks for your needs is hard ● Be aware of potential pitfalls ● Leverage the active communities to work around problems