SlideShare ist ein Scribd-Unternehmen logo
1 von 56
Downloaden Sie, um offline zu lesen
Creating API’s for Mobile
        Nick DeNardis
@nickdenardis
Associate Director of Web Communications
Wayne State University
http://wayne.edu/

Host of EDU Checkup
http://educheckup.com/

Curator of EDU Snippits
http://edusnippits.com/

Writer for .eduGuru
http://doteduguru.com/
Disclaimer


This talk is less about how to code an API but
more about the strategy behind creating a
flexible and resilient API.
API:
Application programming interface
Not just for robots.
http://www.flickr.com/photos/stevent/3241986538/
The API’s job is to
                                                               make the developer as
                                                                successful as possible




http://knowyourmeme.com/memes/i-hate-sandcastles-success-kid
Where isn’t it useful?

http://www.flickr.com/photos/daychokesnight/2149714792/
Too slow...




http://www.flickr.com/photos/toolmantim/6170448143/
Too complicated...
http://www.flickr.com/photos/toolmantim/6170448143/
Adds a layer




http://www.flickr.com/photos/jabb/6715983809/
Complications with mobile
         “always on”
Mobile isn’t
        going anywhere

              1.45 Million devices per day
                 371,000 births per day




http://www.lukew.com/ff/entry.asp?1506
Mobile Data Traffic Expected To Rise 40-
                        Fold Over Next Five Years




http://techcrunch.com/2010/03/30/mobile-data-traffic-rise-40-fold/
Desktop
250 kb - Avg page weight
2.5 pages - Avg number per visit   1300


625 kb - Bandwidth per visit        975


                                    650

Mobile                              325
50 kb - Avg page weight
25 pages - Avg number per visit       0
                                                    Data

                                          Desktop          Mobile
1.25 mb - Bandwidth per visit
Mobile                 Desktop

              40



              30


Millions of
 visitors     20



              10



               0
                2009   2010   2011     2012   2013   2014   2015      2016   2017

                                     http://wayne.edu/
The Mobile Web is Slow
     And it’s mostly our fault
You can’t blame the network for everything


    CSS



  Images




 Javascript


Initial HTML

Cell Latency

                          Time
Second Request


  Images




New Content




Cell Latency

                      Time
Do less better
One size != fit all
  https://api.twitter.com/1/
  https://us2.api.mailchimp.com/1.3/
  https://api.foursquare.com/v2/
  https://api.instagram.com/v1/
  https://www.salesforce.com/services/Soap/c/18.0
  https://api.wayne.edu/v1/



 Think versioning from the start
SOAP                                                    REST
The request:                                            The request:
GET /StockPrice HTTP/1.1                                GET /StockPrice/IBM HTTP/1.1
Host: example.org                                       Host: example.org
Content-Type: application/soap+xml; charset=utf-8       Accept: text/xml
Content-Length: nnn                                     Accept-Charset: utf-8
<?xml version="1.0"?>                                   The response:
<env:Envelope xmlns:env="http://www.w3.org/
2003/05/soap-envelope"                                  HTTP/1.1 200 OK
   xmlns:s="http://www.example.org/stock-service">      Content-Type: text/xml; charset=utf-8
   <env:Body>                                           Content-Length: nnn
     <s:GetStockQuote>
          <s:TickerSymbol>IBM</s:TickerSymbol>          <?xml version="1.0"?>
     </s:GetStockQuote>                                 <s:Quote xmlns:s="http://example.org/stock-
   </env:Body>                                          service">
</env:Envelope>                                              <s:TickerSymbol>IBM</s:TickerSymbol>
                                                             <s:StockPrice>45.25</s:StockPrice>
The response:                                           </s:Quote>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<env:Envelope xmlns:env="http://www.w3.org/
2003/05/soap-envelope"
   xmlns:s="http://www.example.org/stock-service">
   <env:Body>
     <s:GetStockQuoteResponse>
          <s:StockPrice>45.25</s:StockPrice>
     </s:GetStockQuoteResponse>
   </env:Body>

                                         4 kb vs 2 kb
</env:Envelope>




                                         Round Trip
Stick to REST
http://www.flickr.com/photos/philmanker/3654636770/
                                                     XML sucks
Your best friend JSON
Easy to encode:
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
json_encode($arr);




Easy to decode:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
json_decode($json);

Javascript:
var myObject = eval('(' + json + ')');
Existing Resources




http://doteduguru.com/id7800-results-higher-ed-cms-usage-survey-2011.html
Not everything is in the CMS
                                          Website
CMS
         Gather &
          Clean

                                          Mobile
                                          Website
Events
                    Shadow
                    storage

                                          Mobile
                                           App

LDAP
                                API
                              Webserver
                                           Digital
                                          Signage


Banner

                                           Third
                                           Party
Rolling your own API
       Trust no one.
Create. Read. Update. Delete.




http://www.flickr.com/photos/fss/2181882493/
Start with a map




http://www.flickr.com/photos/56684679@N08/6155875352/
Read first.




http://www.flickr.com/photos/hackaday/4425372655/
GET /academic/colleges/listing
GET /academic/colleges/info

GET /academic/majors/listing
GET /academic/majors/info

GET /academic/classes/listing
GET /academic/classes/info

GET /parking/availability/listing
GET /parking/availability/info
The devil is in the details
 Simple URL


Response code
 Total count

Data container


    Keep it
 lightweight

                   91 KB
Use only what you need


 Filters




Less data


                  41 KB
Writing data
POST /admissions/rfi/add
POST /admissions/visit/add
POST /admissions/application/add

POST /academic/colleges/add
POST /academic/colleges/edit

POST /academic/majors/add
POST /academic/majors/edit
Soft Delete
 (keep all the data!)
POST /academic/colleges/remove

POST /academic/majors/remove

POST /academic/classes/remove

POST /parking/availability/remove
Authentication
    /api/user/auth
Cache. Cache. Cache.
Professional cache




http://www.flickr.com/photos/carlos/2417032795/
APC

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>
Ghetto cache




http://www.flickr.com/photos/basic_sounds/5779597720/
Static files
<?php
if ((is_file($_SERVER['SCRIPT_FILENAME'].'.json'))
    && (time()-filemtime($_SERVER['SCRIPT_FILENAME'].'.json') < 3600)) {
    readfile($_SERVER['SCRIPT_FILENAME'].'.json');
    exit;
    }

// (the php script itself goes here)

echo $response;
$fp = fopen($_SERVER['SCRIPT_FILENAME'].'.json', 'w');
fwrite($fp, $response);
fclose($fp);

?>
HTML5 localStorage
if (typeof(localStorage) == 'undefined' ) {
    alert('Your browser does not support HTML5 localStorage. Try upgrading.');
} else {
    try {
         localStorage.setItem("name", "Hello World!"); //saves to the database,
    } catch (e) {
          if (e == QUOTA_EXCEEDED_ERR) {
              alert('Quota exceeded!'); //data wasn't successfully saved due to quota exceed
so throw an error
         }
    }

      document.write(localStorage.getItem("name")); //Hello World!
      localStorage.removeItem("name"); //deletes the matching item from the database
}




http://paperkilledrock.com/2010/05/html5-localstorage-part-one/
Expires header
        <?php
        header('Expires: '.gmdate('D, d M Y H:i:s GMT', time() + 3600));
        ?>




1 Month              1 Week                          1 Day
Semesters      Courses                                Events
Subjects       Media Experts                          News
Degrees
Map Categories                                       No Cache
Map Locations
                                                      Course Availability
                                                      Parking Availability
Our Stats
Feb 2011 - In production
2.5 million requests
48% from mobile
  21% iOS
  23% Android
  66% Web
95% GET’s
16 ms average response time
Examples
Mobile news
maps/locations/listing
Google API


                  events/event/listing




             directory/people/listing




             academic/courses/listing
maps/category/listing

                           events/event/listing


                        maps/location/info
faculty/profile/info




                      go/url/info
Hackathon
                                                 Community through data




http://www.flickr.com/photos/hackny/5684887983/
Resources
•   http://apigee.com/

•   http://rubyonrails.org/

•   http://cakephp.org/



•   http://37signals.com/svn/posts/3018-api-design-for-humans

•   http://broadcast.oreilly.com/2011/06/the-good-the-bad-the-ugly-of-rest-
    apis.html

•   http://sixrevisions.com/html/introduction-web-storage/

•   http://webcomm.fiu.edu/2011/11/json-as-an-api-tool-and-why-its-awesome/

•   http://doteduguru.com/id4579-results-higher-ed-cms-usage.html
Hackathons
•   http://dschool.stanford.edu/blog/2012/01/27/hack-d-kicks-off-more-than-a-
    dozen-projects-underway/

•   http://civic.mit.edu/blog/schock/occupydata-hackathon-2-roundup

•   http://newmed.media.mit.edu/health-and-wellness-innovation-2012

•   http://nyuad.nyu.edu/hackathon/about/

•   http://startup.berkeley.edu/hackathon/

•   http://www.njit.edu/hackathon/

•   http://www.lib.umich.edu/art-architecture-engineering-library/
    announcements/48-hour-mobile-app-hackathon
Questions?
  Don’t be shy.
Thank You
      @nickdenardis
nick.denardis@gmail.com
 http://nickdenardis.com/

Weitere ähnliche Inhalte

Was ist angesagt?

What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-finalWhat a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-finalRikard Thulin
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Ivano Malavolta
 
Things you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationThings you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationAndolasoft Inc
 
Phonegap Day 2016: Ember/JS & Hybrid Apps Tips
Phonegap Day 2016: Ember/JS & Hybrid Apps TipsPhonegap Day 2016: Ember/JS & Hybrid Apps Tips
Phonegap Day 2016: Ember/JS & Hybrid Apps TipsAlex Blom
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Ember Conf 2016: Building Mobile Apps with Ember
Ember Conf 2016: Building Mobile Apps with EmberEmber Conf 2016: Building Mobile Apps with Ember
Ember Conf 2016: Building Mobile Apps with EmberAlex Blom
 
Testing Any Site With Cucumber and Selenium
Testing Any Site With Cucumber and SeleniumTesting Any Site With Cucumber and Selenium
Testing Any Site With Cucumber and SeleniumChris Johnson
 
Develop:BBC 2013 - Turbocharge your mobile web apps by using offline
Develop:BBC 2013 - Turbocharge your mobile web apps by using offlineDevelop:BBC 2013 - Turbocharge your mobile web apps by using offline
Develop:BBC 2013 - Turbocharge your mobile web apps by using offlineJan Jongboom
 
BDD in Java using Cucumber
BDD in Java using CucumberBDD in Java using Cucumber
BDD in Java using Cucumberslavkurochkin
 
Single page applications the basics
Single page applications the basicsSingle page applications the basics
Single page applications the basicsChris Love
 
Lambdaless and AWS CDK
Lambdaless and AWS CDKLambdaless and AWS CDK
Lambdaless and AWS CDKMooYeol Lee
 
Rapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and JackrabbitRapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and JackrabbitCraig Dickson
 
Web Design World Flickr
Web Design World FlickrWeb Design World Flickr
Web Design World Flickrroyans
 
Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices Maximiliano Firtman
 
Flickr Services
Flickr ServicesFlickr Services
Flickr Servicesroyans
 
Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django Site
Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django SiteTeaching an Old Pony New Tricks: Maintaining and Updating and Aging Django Site
Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django SiteShawn Rider
 
Building Usable REST APIs. By Javier Ramirez, teowaki. FOWA London
Building Usable REST APIs. By Javier Ramirez, teowaki. FOWA LondonBuilding Usable REST APIs. By Javier Ramirez, teowaki. FOWA London
Building Usable REST APIs. By Javier Ramirez, teowaki. FOWA Londonjavier ramirez
 

Was ist angesagt? (20)

What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-finalWhat a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
 
Joomla REST API
Joomla REST APIJoomla REST API
Joomla REST API
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
 
Oracle APEX & PhoneGap
Oracle APEX & PhoneGapOracle APEX & PhoneGap
Oracle APEX & PhoneGap
 
Things you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationThings you must know on ruby on rails single page application
Things you must know on ruby on rails single page application
 
Phonegap Day 2016: Ember/JS & Hybrid Apps Tips
Phonegap Day 2016: Ember/JS & Hybrid Apps TipsPhonegap Day 2016: Ember/JS & Hybrid Apps Tips
Phonegap Day 2016: Ember/JS & Hybrid Apps Tips
 
API Basics
API BasicsAPI Basics
API Basics
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Ember Conf 2016: Building Mobile Apps with Ember
Ember Conf 2016: Building Mobile Apps with EmberEmber Conf 2016: Building Mobile Apps with Ember
Ember Conf 2016: Building Mobile Apps with Ember
 
Testing Any Site With Cucumber and Selenium
Testing Any Site With Cucumber and SeleniumTesting Any Site With Cucumber and Selenium
Testing Any Site With Cucumber and Selenium
 
Develop:BBC 2013 - Turbocharge your mobile web apps by using offline
Develop:BBC 2013 - Turbocharge your mobile web apps by using offlineDevelop:BBC 2013 - Turbocharge your mobile web apps by using offline
Develop:BBC 2013 - Turbocharge your mobile web apps by using offline
 
BDD in Java using Cucumber
BDD in Java using CucumberBDD in Java using Cucumber
BDD in Java using Cucumber
 
Single page applications the basics
Single page applications the basicsSingle page applications the basics
Single page applications the basics
 
Lambdaless and AWS CDK
Lambdaless and AWS CDKLambdaless and AWS CDK
Lambdaless and AWS CDK
 
Rapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and JackrabbitRapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and Jackrabbit
 
Web Design World Flickr
Web Design World FlickrWeb Design World Flickr
Web Design World Flickr
 
Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices
 
Flickr Services
Flickr ServicesFlickr Services
Flickr Services
 
Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django Site
Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django SiteTeaching an Old Pony New Tricks: Maintaining and Updating and Aging Django Site
Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django Site
 
Building Usable REST APIs. By Javier Ramirez, teowaki. FOWA London
Building Usable REST APIs. By Javier Ramirez, teowaki. FOWA LondonBuilding Usable REST APIs. By Javier Ramirez, teowaki. FOWA London
Building Usable REST APIs. By Javier Ramirez, teowaki. FOWA London
 

Andere mochten auch

Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)Chuck Greb
 
Pragmatic Git workflow
Pragmatic Git workflowPragmatic Git workflow
Pragmatic Git workflowTomek Cejner
 
Mobile API Design Techniques
Mobile API Design TechniquesMobile API Design Techniques
Mobile API Design TechniquesTrieu Nguyen
 
Develop and Deploy your Mobile API with Rails, Nginx, Unicorn and Capistrano
Develop and Deploy your Mobile API with Rails, Nginx, Unicorn and CapistranoDevelop and Deploy your Mobile API with Rails, Nginx, Unicorn and Capistrano
Develop and Deploy your Mobile API with Rails, Nginx, Unicorn and CapistranoErrazudin Ishak
 
Jordi Romero Api for-the-mobile-era
Jordi Romero Api for-the-mobile-eraJordi Romero Api for-the-mobile-era
Jordi Romero Api for-the-mobile-era.toster
 
Designing an API for Mobile
Designing an API for MobileDesigning an API for Mobile
Designing an API for MobileSocialRadar
 
How to build mobile API with Node.js
How to build mobile API with Node.jsHow to build mobile API with Node.js
How to build mobile API with Node.jsTomek Cejner
 
Api mobile first
Api mobile firstApi mobile first
Api mobile firstChris Saez
 
Mobile Api and Caching
Mobile Api and CachingMobile Api and Caching
Mobile Api and CachingNew Relic
 
Mobile API: Design & Techniques
Mobile API: Design & TechniquesMobile API: Design & Techniques
Mobile API: Design & TechniquesFred Brunel
 
Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)Chuck Greb
 
Data to Go: Mobile API Design
Data to Go: Mobile API DesignData to Go: Mobile API Design
Data to Go: Mobile API DesignChuck Greb
 
Build a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.jsBuild a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.jsStormpath
 
We we should be Mobile API - First, by Brad Hipps
We we should be Mobile API - First, by Brad HippsWe we should be Mobile API - First, by Brad Hipps
We we should be Mobile API - First, by Brad HippsPuerto Rico Tech Summit
 
Designing API for mobile apps (MobileWarsaw 19.01.2015)
Designing API for mobile apps (MobileWarsaw 19.01.2015)Designing API for mobile apps (MobileWarsaw 19.01.2015)
Designing API for mobile apps (MobileWarsaw 19.01.2015)Wojtek Erbetowski
 

Andere mochten auch (16)

Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)
 
Pragmatic Git workflow
Pragmatic Git workflowPragmatic Git workflow
Pragmatic Git workflow
 
Mobile API Design Techniques
Mobile API Design TechniquesMobile API Design Techniques
Mobile API Design Techniques
 
Develop and Deploy your Mobile API with Rails, Nginx, Unicorn and Capistrano
Develop and Deploy your Mobile API with Rails, Nginx, Unicorn and CapistranoDevelop and Deploy your Mobile API with Rails, Nginx, Unicorn and Capistrano
Develop and Deploy your Mobile API with Rails, Nginx, Unicorn and Capistrano
 
Jordi Romero Api for-the-mobile-era
Jordi Romero Api for-the-mobile-eraJordi Romero Api for-the-mobile-era
Jordi Romero Api for-the-mobile-era
 
Designing an API for Mobile
Designing an API for MobileDesigning an API for Mobile
Designing an API for Mobile
 
How to build mobile API with Node.js
How to build mobile API with Node.jsHow to build mobile API with Node.js
How to build mobile API with Node.js
 
Api mobile first
Api mobile firstApi mobile first
Api mobile first
 
Mobile Api and Caching
Mobile Api and CachingMobile Api and Caching
Mobile Api and Caching
 
Mobile API: Design & Techniques
Mobile API: Design & TechniquesMobile API: Design & Techniques
Mobile API: Design & Techniques
 
Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)
 
Data to Go: Mobile API Design
Data to Go: Mobile API DesignData to Go: Mobile API Design
Data to Go: Mobile API Design
 
Build a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.jsBuild a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.js
 
We we should be Mobile API - First, by Brad Hipps
We we should be Mobile API - First, by Brad HippsWe we should be Mobile API - First, by Brad Hipps
We we should be Mobile API - First, by Brad Hipps
 
Designing API for mobile apps (MobileWarsaw 19.01.2015)
Designing API for mobile apps (MobileWarsaw 19.01.2015)Designing API for mobile apps (MobileWarsaw 19.01.2015)
Designing API for mobile apps (MobileWarsaw 19.01.2015)
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Ähnlich wie Creating an Effective Mobile API

API Reliability Guide
API Reliability GuideAPI Reliability Guide
API Reliability GuideNick DeNardis
 
Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013Jon Arne Sæterås
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and moreYan Shi
 
Web app and more
Web app and moreWeb app and more
Web app and morefaming su
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on MobileAdam Lu
 
The Server Side of Responsive Web Design
The Server Side of Responsive Web DesignThe Server Side of Responsive Web Design
The Server Side of Responsive Web DesignDave Olsen
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScalePatrick Chanezon
 
FRENDS의 시작
FRENDS의 시작FRENDS의 시작
FRENDS의 시작frendskr
 
Building an Appier Web - London Web Standards - Nov 2016
Building an Appier Web -  London Web Standards - Nov 2016Building an Appier Web -  London Web Standards - Nov 2016
Building an Appier Web - London Web Standards - Nov 2016Andy Davies
 
Building an Appier Web - Velocity Amsterdam 2016
Building an Appier Web - Velocity Amsterdam 2016Building an Appier Web - Velocity Amsterdam 2016
Building an Appier Web - Velocity Amsterdam 2016Andy Davies
 
Makingweb: Great front end performance starts on the server.
Makingweb: Great front end performance starts on the server.Makingweb: Great front end performance starts on the server.
Makingweb: Great front end performance starts on the server.Jon Arne Sæterås
 
Moved to https://slidr.io/azzazzel/what-is-a-portal
Moved to https://slidr.io/azzazzel/what-is-a-portalMoved to https://slidr.io/azzazzel/what-is-a-portal
Moved to https://slidr.io/azzazzel/what-is-a-portalMilen Dyankov
 
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppBest Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppSt. Petersburg College
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Estelle Weyl
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5dynamis
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Nicholas Zakas
 
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Nicholas Zakas
 
Building an Appier Web - May 2016
Building an Appier Web - May 2016Building an Appier Web - May 2016
Building an Appier Web - May 2016Andy Davies
 
Practical Tips for Mobile Widget development
Practical Tips for Mobile Widget developmentPractical Tips for Mobile Widget development
Practical Tips for Mobile Widget developmentbrucelawson
 

Ähnlich wie Creating an Effective Mobile API (20)

API Reliability Guide
API Reliability GuideAPI Reliability Guide
API Reliability Guide
 
Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 
URL Design
URL DesignURL Design
URL Design
 
The Server Side of Responsive Web Design
The Server Side of Responsive Web DesignThe Server Side of Responsive Web Design
The Server Side of Responsive Web Design
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
 
FRENDS의 시작
FRENDS의 시작FRENDS의 시작
FRENDS의 시작
 
Building an Appier Web - London Web Standards - Nov 2016
Building an Appier Web -  London Web Standards - Nov 2016Building an Appier Web -  London Web Standards - Nov 2016
Building an Appier Web - London Web Standards - Nov 2016
 
Building an Appier Web - Velocity Amsterdam 2016
Building an Appier Web - Velocity Amsterdam 2016Building an Appier Web - Velocity Amsterdam 2016
Building an Appier Web - Velocity Amsterdam 2016
 
Makingweb: Great front end performance starts on the server.
Makingweb: Great front end performance starts on the server.Makingweb: Great front end performance starts on the server.
Makingweb: Great front end performance starts on the server.
 
Moved to https://slidr.io/azzazzel/what-is-a-portal
Moved to https://slidr.io/azzazzel/what-is-a-portalMoved to https://slidr.io/azzazzel/what-is-a-portal
Moved to https://slidr.io/azzazzel/what-is-a-portal
 
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppBest Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile App
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)
 
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
 
Building an Appier Web - May 2016
Building an Appier Web - May 2016Building an Appier Web - May 2016
Building an Appier Web - May 2016
 
Practical Tips for Mobile Widget development
Practical Tips for Mobile Widget developmentPractical Tips for Mobile Widget development
Practical Tips for Mobile Widget development
 

Mehr von Nick DeNardis

How to be better at getting things done in 2022
How to be better at getting things done in 2022How to be better at getting things done in 2022
How to be better at getting things done in 2022Nick DeNardis
 
What is quality code? From cruft to craft
What is quality code? From cruft to craftWhat is quality code? From cruft to craft
What is quality code? From cruft to craftNick DeNardis
 
Why #littlebigdetails Matter and What You Should Do About Them
Why #littlebigdetails Matter and What You Should Do About ThemWhy #littlebigdetails Matter and What You Should Do About Them
Why #littlebigdetails Matter and What You Should Do About ThemNick DeNardis
 
CASE IV - Making that first impression online
CASE IV - Making that first impression onlineCASE IV - Making that first impression online
CASE IV - Making that first impression onlineNick DeNardis
 
Personal and Professional Social Media
Personal and Professional Social MediaPersonal and Professional Social Media
Personal and Professional Social MediaNick DeNardis
 
Designing for next steps: A forward moving Web experience
Designing for next steps: A forward moving Web experienceDesigning for next steps: A forward moving Web experience
Designing for next steps: A forward moving Web experienceNick DeNardis
 
Designing for next steps - A forward moving Web experience
Designing for next steps - A forward moving Web experienceDesigning for next steps - A forward moving Web experience
Designing for next steps - A forward moving Web experienceNick DeNardis
 
Producing a mobile presence. Timeline: Yesterday...
Producing a mobile presence. Timeline: Yesterday...Producing a mobile presence. Timeline: Yesterday...
Producing a mobile presence. Timeline: Yesterday...Nick DeNardis
 
Iterative Website Redesign: Micro Goals in Action - CASEV 2011
Iterative Website Redesign: Micro Goals in Action - CASEV 2011Iterative Website Redesign: Micro Goals in Action - CASEV 2011
Iterative Website Redesign: Micro Goals in Action - CASEV 2011Nick DeNardis
 
Iterative Website Redesign - Micro Goals in Action
 Iterative Website Redesign - Micro Goals in Action Iterative Website Redesign - Micro Goals in Action
Iterative Website Redesign - Micro Goals in ActionNick DeNardis
 
Give Your Content Legs and Run With It - PSUWEB11
Give Your Content Legs and Run With It - PSUWEB11Give Your Content Legs and Run With It - PSUWEB11
Give Your Content Legs and Run With It - PSUWEB11Nick DeNardis
 
Social Media Tools for Startups
Social Media Tools for StartupsSocial Media Tools for Startups
Social Media Tools for StartupsNick DeNardis
 
Golden Rule for the Web - #eduGuruSummit
Golden Rule for the Web - #eduGuruSummitGolden Rule for the Web - #eduGuruSummit
Golden Rule for the Web - #eduGuruSummitNick DeNardis
 
LIS7470 - Information Architecture
LIS7470 - Information ArchitectureLIS7470 - Information Architecture
LIS7470 - Information ArchitectureNick DeNardis
 
Flexible Web Branding, the Case Against Single Web Templates - CASEV 2010
Flexible Web Branding, the Case Against Single Web Templates - CASEV 2010Flexible Web Branding, the Case Against Single Web Templates - CASEV 2010
Flexible Web Branding, the Case Against Single Web Templates - CASEV 2010Nick DeNardis
 
Better Design Through Analytics - #eduiconf 2010
Better Design Through Analytics - #eduiconf 2010Better Design Through Analytics - #eduiconf 2010
Better Design Through Analytics - #eduiconf 2010Nick DeNardis
 
Web Metrics: An Overview - #eduiconf 2010
Web Metrics: An Overview - #eduiconf 2010Web Metrics: An Overview - #eduiconf 2010
Web Metrics: An Overview - #eduiconf 2010Nick DeNardis
 
Analyzing Real-time User Visitor Searches
Analyzing Real-time User Visitor SearchesAnalyzing Real-time User Visitor Searches
Analyzing Real-time User Visitor SearchesNick DeNardis
 
Realigning your Web Redesign Process
Realigning your Web Redesign ProcessRealigning your Web Redesign Process
Realigning your Web Redesign ProcessNick DeNardis
 
State of the Wayne State Web Site
State of the Wayne State Web SiteState of the Wayne State Web Site
State of the Wayne State Web SiteNick DeNardis
 

Mehr von Nick DeNardis (20)

How to be better at getting things done in 2022
How to be better at getting things done in 2022How to be better at getting things done in 2022
How to be better at getting things done in 2022
 
What is quality code? From cruft to craft
What is quality code? From cruft to craftWhat is quality code? From cruft to craft
What is quality code? From cruft to craft
 
Why #littlebigdetails Matter and What You Should Do About Them
Why #littlebigdetails Matter and What You Should Do About ThemWhy #littlebigdetails Matter and What You Should Do About Them
Why #littlebigdetails Matter and What You Should Do About Them
 
CASE IV - Making that first impression online
CASE IV - Making that first impression onlineCASE IV - Making that first impression online
CASE IV - Making that first impression online
 
Personal and Professional Social Media
Personal and Professional Social MediaPersonal and Professional Social Media
Personal and Professional Social Media
 
Designing for next steps: A forward moving Web experience
Designing for next steps: A forward moving Web experienceDesigning for next steps: A forward moving Web experience
Designing for next steps: A forward moving Web experience
 
Designing for next steps - A forward moving Web experience
Designing for next steps - A forward moving Web experienceDesigning for next steps - A forward moving Web experience
Designing for next steps - A forward moving Web experience
 
Producing a mobile presence. Timeline: Yesterday...
Producing a mobile presence. Timeline: Yesterday...Producing a mobile presence. Timeline: Yesterday...
Producing a mobile presence. Timeline: Yesterday...
 
Iterative Website Redesign: Micro Goals in Action - CASEV 2011
Iterative Website Redesign: Micro Goals in Action - CASEV 2011Iterative Website Redesign: Micro Goals in Action - CASEV 2011
Iterative Website Redesign: Micro Goals in Action - CASEV 2011
 
Iterative Website Redesign - Micro Goals in Action
 Iterative Website Redesign - Micro Goals in Action Iterative Website Redesign - Micro Goals in Action
Iterative Website Redesign - Micro Goals in Action
 
Give Your Content Legs and Run With It - PSUWEB11
Give Your Content Legs and Run With It - PSUWEB11Give Your Content Legs and Run With It - PSUWEB11
Give Your Content Legs and Run With It - PSUWEB11
 
Social Media Tools for Startups
Social Media Tools for StartupsSocial Media Tools for Startups
Social Media Tools for Startups
 
Golden Rule for the Web - #eduGuruSummit
Golden Rule for the Web - #eduGuruSummitGolden Rule for the Web - #eduGuruSummit
Golden Rule for the Web - #eduGuruSummit
 
LIS7470 - Information Architecture
LIS7470 - Information ArchitectureLIS7470 - Information Architecture
LIS7470 - Information Architecture
 
Flexible Web Branding, the Case Against Single Web Templates - CASEV 2010
Flexible Web Branding, the Case Against Single Web Templates - CASEV 2010Flexible Web Branding, the Case Against Single Web Templates - CASEV 2010
Flexible Web Branding, the Case Against Single Web Templates - CASEV 2010
 
Better Design Through Analytics - #eduiconf 2010
Better Design Through Analytics - #eduiconf 2010Better Design Through Analytics - #eduiconf 2010
Better Design Through Analytics - #eduiconf 2010
 
Web Metrics: An Overview - #eduiconf 2010
Web Metrics: An Overview - #eduiconf 2010Web Metrics: An Overview - #eduiconf 2010
Web Metrics: An Overview - #eduiconf 2010
 
Analyzing Real-time User Visitor Searches
Analyzing Real-time User Visitor SearchesAnalyzing Real-time User Visitor Searches
Analyzing Real-time User Visitor Searches
 
Realigning your Web Redesign Process
Realigning your Web Redesign ProcessRealigning your Web Redesign Process
Realigning your Web Redesign Process
 
State of the Wayne State Web Site
State of the Wayne State Web SiteState of the Wayne State Web Site
State of the Wayne State Web Site
 

Kürzlich hochgeladen

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Kürzlich hochgeladen (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

Creating an Effective Mobile API