offline support
improved user interface
access to device hardware and software
easier to launch regularly
expensive to develop
users need to download the app
harder to link to content
approval by Apple
Don't recreate your website as an app
They are different
Build it natively
Use a cross platform framework
Something in between?
App design patterns
Headless Drupal
Rich content
www.flickr.com/photos/dougtone/15349046902
Where am I?
Where can I go next?
What will I find there?
From "Designing Inutuitive User Experiences"
https://developer.apple.com/videos/wwdc/2014/?id=211
www.flickr.com/photos/janitors/14380499695
www.flickr.com/photos/shadowfoot/3033030063
building an API
http://api.example.com/v1/locations |
http://api.example.com/v1/locations/50 |
http://api.example.com/v1/locations/50/events |
http://api.example.com/v1/locations/50/events/4 |
http://api.example.com/v1/getEventForLocation?ev_id=50&loc_id=4 |
http://api.example.com/v1/events/50/4 |
GET | http://api.example.com/v1/locations |
GET | http://api.example.com/v1/locations/50 |
POST | http://api.example.com/v1/locations/50/events |
PUT | http://api.example.com/v1/locations/50/events/4 |
PATCH | http://api.example.com/v1/locations/50/events/4 |
DELETE | http://api.example.com/v1/locations/50/events/4 |
POST | http://api.example.com/v1/createNewEvent?location=50 |
http://www.example.com/node/1
Accept: application/json
http://www.example.com/v1/locations/50/events
Rest and Serialization in Drupal 8
Video from DrupalCon Prague
http://prague2013.drupal.org/session/rest-and-serialization-drupal-8.html
Best Practices for Designing a Pragmatic RESTful API
Not Drupal specific
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
D7 contrib |
Services Views Datasource |
D8 core |
RESTful Web Services Serialization HTTP Basic Authentication HAL |
D8 contrib |
REST UI |
mature and familiar
quick to develop
browser support is good
responsive
handle links natively
don't use Javascript
{
type: "slideshow",
slides: [
{
type: "slide",
content: "..."
},
{
type: "slide",
content: "..."
}
]
}
{
type: "slideshow",
slides: [
{
type: "slide",
content: "<!doctype html><html>...<body>...</body></html>"
},
{
type: "slide",
content: "<!doctype html><html>...<body>...</body></html>"
}
]
}
Hybrid sweet spot: Native navigation, web content
https://signalvnoise.com/posts/3743-hybrid-sweet-spot-native-navigation-web-content
HTML5 and native apps: the hybrid approach
http://www.theguardian.com/info/developer-blog/2012/aug/28/html5-native-apps-hybrid-approach