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?
Interactions
Geolocation
Surviving offline
How to...
Responsive Web Design
What is it?
No more zooming, scrolling!
Which techniques?
. media queries
. fluid grid
. fexible images
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!
Special Thanks
Sebastien Blanc
David Trattnig
Use a spacebar or arrow keys to navigate