Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Hybrid Mobile App in minutes

GoogleGuestPSK/C0g1tat0r!

3musket33rs


Fabrice Matrat
@fabricematrat


Sebastien Blanc
@sebi2706

Corinne Krych
@corinnekrych


Mathieu Bruyen
@mathbruyen

Foursquare


Mobile Web App

What is a mobile web app?


Size matters...






Interactions


Geolocation


Surviving offline


How to...

Responsive Web Design


What is it?
No more zooming, scrolling!

Which techniques?
. media queries
. fluid grid
. fexible images


Progressive enhancement


Which tools?










Going native


as hybrid

Cordova


PhoneGap Build

Full-Stack Framework



. Presentation
. Business logic
. Persistence
. Build & Test
. Documentation

An evolution


Leverages existing resources
(works with "JVM friendly" hardware, software and humans)
Build upon industry-proven technologies
(established, well tested and scalable Java frameworks & libraries)

Convention over Configuration


. No more painful XML settings

. 80 / 20 rule

. Don't repeat yourself (DRY)

Domain Driven Design




. Focus on the domain, rather than technology

. Rapid prototyping

. Adaptable architecture



Magic Scaffolding


Grails Plugin System

. 1000+ plugins
. Modularized app architecture
. Reuse established Java libraries

Grails Mobile Plugin


jQuery Mobile scaffolding

by R. Fletcher & S. Blanc
Geolocation
by S. Blanc
Spring mobile
by S. Blanc
HTML5 mobile scaffolding
by 3musket33rs
PhoneGap build
by 3musket33rs

3musket33rs.github.com

Groovy


Dynamic language

running on the JVM
Modern features
closure, collection...

Statically type check

and statically compiled ideal for Java scripting
Almost-zero learning curve
Domain-Specific Language
Perfect companion for embedded DSL
Spock awsome testing framework
Gradle official Android build system
Simplify mocking testing



syntax sugar less punctuation scripting binding no getter setter map named parameters closure GString public visibility return statement optional groovy truth operator overloading GroovyMarkup method pointer runtime transformation MOP Expando Categories methodMissing command chaining compile time transformation AST transformation CST transformation

Demo time!


Some links
http://3musket33rs.github.com
http://tagmyfriends.cloudfoundry.com

Special Thanks

Sebastien Blanc
David Trattnig

Use a spacebar or arrow keys to navigate