SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Designing and developing
 mobile web applications with
 Mockup, Sencha Touch and
 Sinatra


 Matteo Collina     @matteocollina
 Daniele Bottillo   @cribcaged7




ITALIAN RUBY DAY, 10 GIUGNO 2011
Who is Mavigex
Mavigex is an academic spin-off of the
University of Bologna which focuses
on:

•   Mobile applications
•   Digital signage
•   VoIP applications
•   Mobile broadcasting

ITALIAN RUBY DAY, 10 GIUGNO 2011
Who We Are
Daniele Bottillo:
 Web mobile designer and developer
 @cribcaged7

Matteo Collina:
 Software Engineer
 Ph.D. Candidate @ UoB
 @matteocollina


ITALIAN RUBY DAY, 10 GIUGNO 2011
Mobile Web Apps?



ITALIAN RUBY DAY, 10 GIUGNO 2011
vs


              HTML5 and CSS3:

               Look & Feel similar to
                native applications
               Advanced graphics
                effects (gradients,
                fades, slides…)




ITALIAN RUBY DAY, 10 GIUGNO 2011
vs


              Javascript:

               Everybody think they
                know it :-)
               Powerful language just
                like Java and Obj-C
               Several frameworks for
                mobile development




ITALIAN RUBY DAY, 10 GIUGNO 2011
vs


              Native Applications:

               Full control of the
                Hardware
               Maximum Performance
               IDEs (Xcode, Eclipse)




ITALIAN RUBY DAY, 10 GIUGNO 2011
vs


              PhoneGap:

               Allows to reach App
                Stores with Mobile Web
                Apps
               Full hardware access
               Mixed Native/Web code
               Limited performances




ITALIAN RUBY DAY, 10 GIUGNO 2011
Development Process
    Native Approach                  Hybrid Approach


  Write      Write    More Work
                                          Write        Less Work
                          =                                 =
                       More €                            Less €
   Test       Test                        Test

  Build       Build               Build            Build




ITALIAN RUBY DAY, 10 GIUGNO 2011
Javascript Frameworks

ITALIAN RUBY DAY, 10 GIUGNO 2011
• enhanches existing mobile web sites

• has unobtrusive behaviour

• is not structured enough for a full application
  development

• has small Javascript & CSS Files

• supports many devices

• is in alpha status



ITALIAN RUBY DAY, 10 GIUGNO 2011
• derives from ExtJS

• has MVC structure

• has the Look & Feel of native applications

• has big Javascript & CSS files

• is stable (but not bug free, and you?)


ITALIAN RUBY DAY, 10 GIUGNO 2011
Backend Technologies



ITALIAN RUBY DAY, 10 GIUGNO 2011
Frontend + Backend
Native Apps                Mobile Web Apps
 The frontend and the      Frontend and Backend
  backend are                are tightly bound
  developed separately      As often as not there
 Often there is no          is a backend
  backend                   Easy sharing of data
 When backend               between the browser
  functionality is           and the JSON APIs
  needed, the
  integration is complex


ITALIAN RUBY DAY, 10 GIUGNO 2011
Backend Requirements
 REST principles

 Exposure of JSON APIs

 Fast-Fast development

 Easy HTTP caching

 Easy testing

 Easy deployment


ITALIAN RUBY DAY, 10 GIUGNO 2011
Ruby + Sinatra
 REST is just built-in

 JSON conversion is just a method call
  away

 Really flexible APIs for HTTP caching

 Community mad with testing


ITALIAN RUBY DAY, 10 GIUGNO 2011
Ruby + Sinatra

           require 'sinatra'

           get '/hi' do
             "Hello World!"
           end




ITALIAN RUBY DAY, 10 GIUGNO 2011
An Integrated
Development Process


ITALIAN RUBY DAY, 10 GIUGNO 2011
Development Process
                                     Problem
                                     Definition


             Refactoring                                    Mockups




                                                                JSON API
        Deployment
                                                                definition




                           Testing                Development




ITALIAN RUBY DAY, 10 GIUGNO 2011
Problem Definition
                   GeoReview

A simple geo localized App to review
locations. A user can:

 Enter a star-based review of some
  coordinates

 View all the reviews in a map

 View the review details of a point


ITALIAN RUBY DAY, 10 GIUGNO 2011
GeoReview
The GeoReview App

 is available at: georeview.mavigex.com

 is downloadable from the Android Market

 is open source software, and the repository are on
  github:
    App
    PhoneGapIntegration

 is not bug free, but who it is?



ITALIAN RUBY DAY, 10 GIUGNO 2011
Mockups
                   GeoReview




ITALIAN RUBY DAY, 10 GIUGNO 2011
Mockups
                   GeoReview




ITALIAN RUBY DAY, 10 GIUGNO 2011
JSON APIs
                   GeoReview

• POST /reviews
  – params:
    { review:{ name: “Pippo”, stars:
      3, comment: “the comment”,
      location: “…” } }
  – response:
    { result: true }




ITALIAN RUBY DAY, 10 GIUGNO 2011
JSON APIs
                       GeoReview
• GET /reviews
   – params:
     { lat: “..”, lng: “..”, radius: “..”}
   – response:
     { status: true,
        reviews:
           [ { items:
                  [ { name:"rff", comment:"fff",
                      stars:4} ],
               total:1, lng:11.35, lat:44.49},
             { items:
                  [ { name: “gggg", comment:"Ggg",
                      stars: 5 } ],
              total: 1, lng :11.35, lat:44.49 } ] }




ITALIAN RUBY DAY, 10 GIUGNO 2011
Developing with Sencha
                   GeoReview


Getting started:

• Download Sencha Touch

• Create an empty index.html

• Include the JS+CSS libraries


ITALIAN RUBY DAY, 10 GIUGNO 2011
Developing with Sencha
                   GeoReview


Sencha Touch is a MVC framework,
what does it mean?

• Views and models are separated

• Controllers perform actions

• Every component has its own definition


ITALIAN RUBY DAY, 10 GIUGNO 2011
Developing with Sencha
                   GeoReview


Organization views:
                                      Map


                   MapContainer    InsertReview
        Viewport
                      About         ListReview




ITALIAN RUBY DAY, 10 GIUGNO 2011
CSS Generation
                     GeoReview
Sencha Touch allows to be
customized by regenerating
its CSS:

 to change the ‘basecolor’

 to bundle only the parts
  you need

 to do some crazy CSS
  personalization, like inlining
  images

ITALIAN RUBY DAY, 10 GIUGNO 2011
CSS Generation
                         GeoReview
In order to regenerate the CSS:

 we use compass, a ruby library to
  dinamically generate CSS templates

 normally, generating the CSS is just
  a ‘compass compile’ away

 in the GeoReview project we have
  automatized it using a rake task

 to see more details, look at this
  blog post:
  http://www.sencha.com/blog/an-
  introduction-to-theming-sencha-
  touch/

ITALIAN RUBY DAY, 10 GIUGNO 2011
Deployment
                    GeoReview

We deployed our mobile web app on
Heroku:

heroku create

heroku addons:add mongohq:free

git push heroku




ITALIAN RUBY DAY, 10 GIUGNO 2011
Testing
We have a full department of testers!




ITALIAN RUBY DAY, 10 GIUGNO 2011
Links
•   Mavigex: http://www.mavigex.com

•   GeoReview: http://georeview.mavigex.com

•   Sencha: http://www.sencha.com

•   Sinatra: http://www.sinatrarb.com

•   Ruby: http://www.ruby-lang.org

•   Compass: http://compass-style.org/

•   Heroku: http://www.heroku.com

•   MongoDB: http://www.mongodb.org



ITALIAN RUBY DAY, 10 GIUGNO 2011
Thank You!



ITALIAN RUBY DAY, 10 GIUGNO 2011

Weitere ähnliche Inhalte

Andere mochten auch

Making things that works with us codemotion
Making things that works with us   codemotionMaking things that works with us   codemotion
Making things that works with us codemotionMatteo Collina
 
No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.Matteo Collina
 
The usability of open data
The usability of open dataThe usability of open data
The usability of open dataMatteo Collina
 
Enter the app era with ruby on rails
Enter the app era with ruby on railsEnter the app era with ruby on rails
Enter the app era with ruby on railsMatteo Collina
 
Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)Matteo Collina
 
Making things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things DayMaking things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things DayMatteo Collina
 
The internet of things - Rails Girls Galway
The internet of things - Rails Girls GalwayThe internet of things - Rails Girls Galway
The internet of things - Rails Girls GalwayMatteo Collina
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Matteo Collina
 
Building a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejsBuilding a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejsMatteo Collina
 
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015Matteo Collina
 
L'universo dietro alle App
L'universo dietro alle AppL'universo dietro alle App
L'universo dietro alle AppMatteo Collina
 
Operational transformation
Operational transformationOperational transformation
Operational transformationMatteo Collina
 
Today's Trending Technologies 2014
Today's Trending Technologies 2014Today's Trending Technologies 2014
Today's Trending Technologies 2014Hazem Torab
 
Exposing M2M to the REST of us
Exposing M2M to the REST of usExposing M2M to the REST of us
Exposing M2M to the REST of usMatteo Collina
 
Making things that work with us - Distill
Making things that work with us - DistillMaking things that work with us - Distill
Making things that work with us - DistillMatteo Collina
 
Making your washing machine talk with a power plant
Making your washing machine talk with a power plantMaking your washing machine talk with a power plant
Making your washing machine talk with a power plantMatteo Collina
 
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce LabsHow To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce LabsSauce Labs
 
Quantum Computers PART 1 & 2 by Prof Lili Saghafi
Quantum Computers  PART 1 & 2 by Prof Lili SaghafiQuantum Computers  PART 1 & 2 by Prof Lili Saghafi
Quantum Computers PART 1 & 2 by Prof Lili SaghafiProfessor Lili Saghafi
 

Andere mochten auch (20)

Making things that works with us codemotion
Making things that works with us   codemotionMaking things that works with us   codemotion
Making things that works with us codemotion
 
No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.
 
The usability of open data
The usability of open dataThe usability of open data
The usability of open data
 
Enter the app era with ruby on rails
Enter the app era with ruby on railsEnter the app era with ruby on rails
Enter the app era with ruby on rails
 
CI-18n
CI-18nCI-18n
CI-18n
 
Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)
 
Making things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things DayMaking things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things Day
 
The internet of things - Rails Girls Galway
The internet of things - Rails Girls GalwayThe internet of things - Rails Girls Galway
The internet of things - Rails Girls Galway
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
 
Building a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejsBuilding a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejs
 
Back end[1] debdeep
Back end[1]  debdeepBack end[1]  debdeep
Back end[1] debdeep
 
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
 
L'universo dietro alle App
L'universo dietro alle AppL'universo dietro alle App
L'universo dietro alle App
 
Operational transformation
Operational transformationOperational transformation
Operational transformation
 
Today's Trending Technologies 2014
Today's Trending Technologies 2014Today's Trending Technologies 2014
Today's Trending Technologies 2014
 
Exposing M2M to the REST of us
Exposing M2M to the REST of usExposing M2M to the REST of us
Exposing M2M to the REST of us
 
Making things that work with us - Distill
Making things that work with us - DistillMaking things that work with us - Distill
Making things that work with us - Distill
 
Making your washing machine talk with a power plant
Making your washing machine talk with a power plantMaking your washing machine talk with a power plant
Making your washing machine talk with a power plant
 
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce LabsHow To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
 
Quantum Computers PART 1 & 2 by Prof Lili Saghafi
Quantum Computers  PART 1 & 2 by Prof Lili SaghafiQuantum Computers  PART 1 & 2 by Prof Lili Saghafi
Quantum Computers PART 1 & 2 by Prof Lili Saghafi
 

Ähnlich wie Designing and developing mobile web applications with Mockup, Sencha Touch and Sinatra @RubyDay

Mobile Development with PhoneGap
Mobile Development with PhoneGapMobile Development with PhoneGap
Mobile Development with PhoneGapJoshua Johnson
 
IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...
IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...
IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...Laura Miller
 
Building our App with React Native
Building our App with React NativeBuilding our App with React Native
Building our App with React NativeNuxeo
 
React Native - CirebonDev
React Native - CirebonDevReact Native - CirebonDev
React Native - CirebonDevAyat Maulana
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapQuang Minh Dao
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapQuang Minh Dao
 
Flowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock
 
PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010alunny
 
2011 The Year of Web apps
2011 The Year of Web apps2011 The Year of Web apps
2011 The Year of Web appsJungHyuk Kwon
 
Ionic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocksIonic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocksJuarez Filho
 
9 reasons why programmers should learn react native
9 reasons why programmers should learn react native9 reasons why programmers should learn react native
9 reasons why programmers should learn react nativeReact Sharing
 
Pycon2011 android programming-using_python
Pycon2011 android programming-using_pythonPycon2011 android programming-using_python
Pycon2011 android programming-using_pythonGeorge Goh
 
Bringing the Ruby language into the mobile world
Bringing the Ruby language into the mobile worldBringing the Ruby language into the mobile world
Bringing the Ruby language into the mobile worldLaurent Sansonetti
 
Hybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJSHybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJSZvika Epstein
 
How native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App DevelopmentHow native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App DevelopmentDevathon
 
Top mobile app development frameworks to consider in 2021
Top mobile app development frameworks to consider in 2021Top mobile app development frameworks to consider in 2021
Top mobile app development frameworks to consider in 2021Katy Slemon
 
Making the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapMaking the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapRoy Clarkson
 
3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time 3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time Pascal Rettig
 
Ionic - Hybrid Mobile Application Framework
Ionic - Hybrid Mobile Application FrameworkIonic - Hybrid Mobile Application Framework
Ionic - Hybrid Mobile Application FrameworkSanjay Kumar
 

Ähnlich wie Designing and developing mobile web applications with Mockup, Sencha Touch and Sinatra @RubyDay (20)

Mobile Development with PhoneGap
Mobile Development with PhoneGapMobile Development with PhoneGap
Mobile Development with PhoneGap
 
IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...
IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...
IONIC VS. REACT NATIVE – WHICH FRAMEWORK IS BETTER FOR CROSS-PLATFORM MOBILE ...
 
Building our App with React Native
Building our App with React NativeBuilding our App with React Native
Building our App with React Native
 
React Native - CirebonDev
React Native - CirebonDevReact Native - CirebonDev
React Native - CirebonDev
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Phonegap
PhonegapPhonegap
Phonegap
 
Flowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDB
 
PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010PhoneGap Talk @ Sencha Con 2010
PhoneGap Talk @ Sencha Con 2010
 
2011 The Year of Web apps
2011 The Year of Web apps2011 The Year of Web apps
2011 The Year of Web apps
 
Ionic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocksIonic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocks
 
9 reasons why programmers should learn react native
9 reasons why programmers should learn react native9 reasons why programmers should learn react native
9 reasons why programmers should learn react native
 
Pycon2011 android programming-using_python
Pycon2011 android programming-using_pythonPycon2011 android programming-using_python
Pycon2011 android programming-using_python
 
Bringing the Ruby language into the mobile world
Bringing the Ruby language into the mobile worldBringing the Ruby language into the mobile world
Bringing the Ruby language into the mobile world
 
Hybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJSHybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJS
 
How native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App DevelopmentHow native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App Development
 
Top mobile app development frameworks to consider in 2021
Top mobile app development frameworks to consider in 2021Top mobile app development frameworks to consider in 2021
Top mobile app development frameworks to consider in 2021
 
Making the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapMaking the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGap
 
3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time 3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time
 
Ionic - Hybrid Mobile Application Framework
Ionic - Hybrid Mobile Application FrameworkIonic - Hybrid Mobile Application Framework
Ionic - Hybrid Mobile Application Framework
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Kürzlich hochgeladen (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Designing and developing mobile web applications with Mockup, Sencha Touch and Sinatra @RubyDay

  • 1. Designing and developing mobile web applications with Mockup, Sencha Touch and Sinatra Matteo Collina @matteocollina Daniele Bottillo @cribcaged7 ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 2. Who is Mavigex Mavigex is an academic spin-off of the University of Bologna which focuses on: • Mobile applications • Digital signage • VoIP applications • Mobile broadcasting ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 3. Who We Are Daniele Bottillo:  Web mobile designer and developer  @cribcaged7 Matteo Collina:  Software Engineer  Ph.D. Candidate @ UoB  @matteocollina ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 4. Mobile Web Apps? ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 5. vs HTML5 and CSS3:  Look & Feel similar to native applications  Advanced graphics effects (gradients, fades, slides…) ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 6. vs Javascript:  Everybody think they know it :-)  Powerful language just like Java and Obj-C  Several frameworks for mobile development ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 7. vs Native Applications:  Full control of the Hardware  Maximum Performance  IDEs (Xcode, Eclipse) ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 8. vs PhoneGap:  Allows to reach App Stores with Mobile Web Apps  Full hardware access  Mixed Native/Web code  Limited performances ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 9. Development Process Native Approach Hybrid Approach Write Write More Work Write Less Work = = More € Less € Test Test Test Build Build Build Build ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 10. Javascript Frameworks ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 11. • enhanches existing mobile web sites • has unobtrusive behaviour • is not structured enough for a full application development • has small Javascript & CSS Files • supports many devices • is in alpha status ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 12. • derives from ExtJS • has MVC structure • has the Look & Feel of native applications • has big Javascript & CSS files • is stable (but not bug free, and you?) ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 13. Backend Technologies ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 14. Frontend + Backend Native Apps Mobile Web Apps  The frontend and the  Frontend and Backend backend are are tightly bound developed separately  As often as not there  Often there is no is a backend backend  Easy sharing of data  When backend between the browser functionality is and the JSON APIs needed, the integration is complex ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 15. Backend Requirements  REST principles  Exposure of JSON APIs  Fast-Fast development  Easy HTTP caching  Easy testing  Easy deployment ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 16. Ruby + Sinatra  REST is just built-in  JSON conversion is just a method call away  Really flexible APIs for HTTP caching  Community mad with testing ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 17. Ruby + Sinatra require 'sinatra' get '/hi' do "Hello World!" end ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 18. An Integrated Development Process ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 19. Development Process Problem Definition Refactoring Mockups JSON API Deployment definition Testing Development ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 20. Problem Definition GeoReview A simple geo localized App to review locations. A user can:  Enter a star-based review of some coordinates  View all the reviews in a map  View the review details of a point ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 21. GeoReview The GeoReview App  is available at: georeview.mavigex.com  is downloadable from the Android Market  is open source software, and the repository are on github:  App  PhoneGapIntegration  is not bug free, but who it is? ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 22. Mockups GeoReview ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 23. Mockups GeoReview ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 24. JSON APIs GeoReview • POST /reviews – params: { review:{ name: “Pippo”, stars: 3, comment: “the comment”, location: “…” } } – response: { result: true } ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 25. JSON APIs GeoReview • GET /reviews – params: { lat: “..”, lng: “..”, radius: “..”} – response: { status: true, reviews: [ { items: [ { name:"rff", comment:"fff", stars:4} ], total:1, lng:11.35, lat:44.49}, { items: [ { name: “gggg", comment:"Ggg", stars: 5 } ], total: 1, lng :11.35, lat:44.49 } ] } ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 26. Developing with Sencha GeoReview Getting started: • Download Sencha Touch • Create an empty index.html • Include the JS+CSS libraries ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 27. Developing with Sencha GeoReview Sencha Touch is a MVC framework, what does it mean? • Views and models are separated • Controllers perform actions • Every component has its own definition ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 28. Developing with Sencha GeoReview Organization views: Map MapContainer InsertReview Viewport About ListReview ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 29. CSS Generation GeoReview Sencha Touch allows to be customized by regenerating its CSS:  to change the ‘basecolor’  to bundle only the parts you need  to do some crazy CSS personalization, like inlining images ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 30. CSS Generation GeoReview In order to regenerate the CSS:  we use compass, a ruby library to dinamically generate CSS templates  normally, generating the CSS is just a ‘compass compile’ away  in the GeoReview project we have automatized it using a rake task  to see more details, look at this blog post: http://www.sencha.com/blog/an- introduction-to-theming-sencha- touch/ ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 31. Deployment GeoReview We deployed our mobile web app on Heroku: heroku create heroku addons:add mongohq:free git push heroku ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 32. Testing We have a full department of testers! ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 33. Links • Mavigex: http://www.mavigex.com • GeoReview: http://georeview.mavigex.com • Sencha: http://www.sencha.com • Sinatra: http://www.sinatrarb.com • Ruby: http://www.ruby-lang.org • Compass: http://compass-style.org/ • Heroku: http://www.heroku.com • MongoDB: http://www.mongodb.org ITALIAN RUBY DAY, 10 GIUGNO 2011
  • 34. Thank You! ITALIAN RUBY DAY, 10 GIUGNO 2011