SlideShare a Scribd company logo
Hybrid Mobile Apps with Calatrava
Vivek Jain
Development
Approaches
Native app for each platform
User Experience
Separate teams/skillset
Device capabilities
App Store
Expensive
High maintenance
Web App for all platforms
Single team/skillset
Limited device
capabilities
Affordable
Standard UX
No App Store
Web AppNative Apps
Affordability
User Experience
Product Vs Channel
Ultimate Goal
UserExperience
Line of deployment
Awesome apps
Implementation Strategy
Laser Cover-your-bases
UserExperience
Line of deployment
Native Apps
Affordability
User Experience
Single team
Native where required
Shared everywhere else
Hybrid Approach
Web App
Separated Presentation
BodyUI
Hybrid UI
Hybrid UI
Enter Calatrava
Bridge KernelPage
BodyUI
Bridging to and from Native
JavaScript
Bridge KernelDevice specific
code
Not just for UI
Allows Incremental release strategy
Release 1 Release 2
iOS
Androi
d
Web
iOS
Androi
d
Web
Affordability
User Experience
Evolve incrementally
Extend existing app
Native Only Native + Shared
When to use
• complex client-side business logic
• when mobile is a channel
• not a pure UI app (like a game)
• web experience is not good enough
• cover-you-bases implementation strategy
• additional features in an existing app
Platforms supported
Structure of a
Calatrava Project
kernel
app
plugins
spec
shell
pages
assets
lib
droid
ios
web
Pages - logical screen on the app
• View Controller on iOS
• Activity on Android
• div on Mobile Web
Pages - manages the UI
• bind to events
• extract data
• render data
Bridge
• API for kernel to interact with native
• calatrava.bridge.
• pages
• changePage
• request
• plugins
Kernel
• business & flow/interaction logic
• features under kernel/app
• gets references to pages from the bridge
• specs under kernel/spec
Shell
• optional HTML UI for sharing
• contains pages in HTML and JS
• recommend to start with entire UI in
shell• Web App for free
Plugins
• for device specific code
• single interface in kernel
• specific implementation for each platform
Tech Used
• coffee-script
• jasmine-node
• haml
• rake (for build scripts)
Getting Started
gem install calatrava
calatrava create <project-name>
Home: calatrava.github.com
Demo
Thank You
vivekjain10@gmail.com @vivekjain10
References
• martinfowler.com/articles/multiMobile/
• martinfowler.com/articles/mobileImplStrategy.html
• calatrava.github.com
Questions?
Join ThoughtWorks: join.thoughtworks.com

More Related Content

What's hot

Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
Abhishek Gupta
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard Thulin
Rikard Thulin
 

What's hot (20)

Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDKQuickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
 
Native vs Hybrid Apps
Native vs Hybrid AppsNative vs Hybrid Apps
Native vs Hybrid Apps
 
Flutter or PWA Which Is Best For Application Development
Flutter or PWA Which Is Best For Application DevelopmentFlutter or PWA Which Is Best For Application Development
Flutter or PWA Which Is Best For Application Development
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile Applications
 
Building Hybrid Apps with AngularJS and Ionic
Building Hybrid Apps with AngularJS and IonicBuilding Hybrid Apps with AngularJS and Ionic
Building Hybrid Apps with AngularJS and Ionic
 
Website application developers sydney
Website application developers sydneyWebsite application developers sydney
Website application developers sydney
 
Mobile architecture options
Mobile architecture optionsMobile architecture options
Mobile architecture options
 
Welcome
WelcomeWelcome
Welcome
 
Best cross-platform mobile app development tools
Best cross-platform mobile app development tools Best cross-platform mobile app development tools
Best cross-platform mobile app development tools
 
Mobile Application vs Web Application
Mobile Application vs Web ApplicationMobile Application vs Web Application
Mobile Application vs Web Application
 
Whitepaper: Building Web Apps with Uniface
Whitepaper: Building Web Apps with UnifaceWhitepaper: Building Web Apps with Uniface
Whitepaper: Building Web Apps with Uniface
 
Veeva iREP Overview & Dev guide
Veeva iREP Overview & Dev guideVeeva iREP Overview & Dev guide
Veeva iREP Overview & Dev guide
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
Cross Platform Mobile Application Development
Cross Platform Mobile Application DevelopmentCross Platform Mobile Application Development
Cross Platform Mobile Application Development
 
Lync integration with metro app
Lync integration with metro appLync integration with metro app
Lync integration with metro app
 
Hybrid vs. Native Mobile App
Hybrid vs. Native Mobile AppHybrid vs. Native Mobile App
Hybrid vs. Native Mobile App
 
Designing Modules for the Browser and Node with Browserify
Designing Modules for the Browser and Node with BrowserifyDesigning Modules for the Browser and Node with Browserify
Designing Modules for the Browser and Node with Browserify
 
Developing multi-screen applications using Adobe Integrated Runtime (AIR)
Developing multi-screen applications using Adobe Integrated Runtime (AIR)Developing multi-screen applications using Adobe Integrated Runtime (AIR)
Developing multi-screen applications using Adobe Integrated Runtime (AIR)
 
Noonic Guides - Mobile App: from Native to Web
Noonic Guides - Mobile App: from Native to WebNoonic Guides - Mobile App: from Native to Web
Noonic Guides - Mobile App: from Native to Web
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard Thulin
 

Viewers also liked (11)

AndroidMemoryProfiling
AndroidMemoryProfilingAndroidMemoryProfiling
AndroidMemoryProfiling
 
WebsitePerformance
WebsitePerformanceWebsitePerformance
WebsitePerformance
 
PORTFOLIO
PORTFOLIOPORTFOLIO
PORTFOLIO
 
Curriculum Vita 2015
Curriculum Vita 2015Curriculum Vita 2015
Curriculum Vita 2015
 
Kik messenger for pc
Kik messenger for pcKik messenger for pc
Kik messenger for pc
 
1218 MVT
1218 MVT1218 MVT
1218 MVT
 
cálculo de las multiplicaciones
cálculo de las multiplicacionescálculo de las multiplicaciones
cálculo de las multiplicaciones
 
Angeline's Interior Design Portfolio3
Angeline's Interior Design Portfolio3Angeline's Interior Design Portfolio3
Angeline's Interior Design Portfolio3
 
A M&A PROCESS PERSPECTIVE IN THE BANKING SECTOR
A M&A PROCESS PERSPECTIVE IN THE BANKING SECTORA M&A PROCESS PERSPECTIVE IN THE BANKING SECTOR
A M&A PROCESS PERSPECTIVE IN THE BANKING SECTOR
 
Architectural Considerations For Complex Mobile And Web Applications
Architectural Considerations For Complex Mobile And Web ApplicationsArchitectural Considerations For Complex Mobile And Web Applications
Architectural Considerations For Complex Mobile And Web Applications
 
Fyi pitch
Fyi pitchFyi pitch
Fyi pitch
 

Similar to Calatrava

Similar to Calatrava (20)

Which Cross-Platform App Development Framework Is Right for You
Which Cross-Platform App Development Framework Is Right for YouWhich Cross-Platform App Development Framework Is Right for You
Which Cross-Platform App Development Framework Is Right for You
 
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicHybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
 
Dealing with-the-dilemma-mob-app-dev-approaches
Dealing with-the-dilemma-mob-app-dev-approachesDealing with-the-dilemma-mob-app-dev-approaches
Dealing with-the-dilemma-mob-app-dev-approaches
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
 
Cross platform mobile application devlopment
Cross platform mobile application devlopmentCross platform mobile application devlopment
Cross platform mobile application devlopment
 
Comparing multi-platform mobile apps frameworks
Comparing multi-platform mobile apps frameworksComparing multi-platform mobile apps frameworks
Comparing multi-platform mobile apps frameworks
 
Introduction to Hybrid Application Development
Introduction to Hybrid Application DevelopmentIntroduction to Hybrid Application Development
Introduction to Hybrid Application Development
 
Deal with the dilemma of hybrid and native
Deal with the dilemma of hybrid and nativeDeal with the dilemma of hybrid and native
Deal with the dilemma of hybrid and native
 
Flutter Navigating the Highs and Lows of Cross-Platform App Development
Flutter Navigating the Highs and Lows of Cross-Platform App DevelopmentFlutter Navigating the Highs and Lows of Cross-Platform App Development
Flutter Navigating the Highs and Lows of Cross-Platform App Development
 
Why hybrid-is-important
Why hybrid-is-importantWhy hybrid-is-important
Why hybrid-is-important
 
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchBuilding Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
 
Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...
Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...
Мобильная разработка. Между Сциллой и Харибдой. Native, hybrid or cross platf...
 
Popular App Development Frameworks used by App Developers.
Popular App Development Frameworks used by App Developers.Popular App Development Frameworks used by App Developers.
Popular App Development Frameworks used by App Developers.
 
Consider Starting Small
Consider Starting SmallConsider Starting Small
Consider Starting Small
 
10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps
 
Navigating the Mobile maze
Navigating the Mobile mazeNavigating the Mobile maze
Navigating the Mobile maze
 
Hybrid Mobile App
Hybrid Mobile AppHybrid Mobile App
Hybrid Mobile App
 
Hybrid mobile app
Hybrid mobile appHybrid mobile app
Hybrid mobile app
 
6 Best JavaScript Framework for Mobile Apps Trending in 2023.pdf
6 Best JavaScript Framework for Mobile Apps Trending in 2023.pdf6 Best JavaScript Framework for Mobile Apps Trending in 2023.pdf
6 Best JavaScript Framework for Mobile Apps Trending in 2023.pdf
 
Multi device development using visual studio (iOS, Android & Windows)
Multi device development using visual studio (iOS, Android & Windows)Multi device development using visual studio (iOS, Android & Windows)
Multi device development using visual studio (iOS, Android & Windows)
 

Calatrava

Editor's Notes

  1. Give an example of where this would make sense
  2. - concept - native vs shared - what you wrote and what calatrava provides
  3. Rearrange points