$30 off During Our Annual Pro Sale. View Details »

API Design Optimized for Mobile Platform

Gea-Suan Lin
October 28, 2012

API Design Optimized for Mobile Platform

Speaker: Gea-Suan Lin (@gslin), KKBOX Inc.
Topic: API Design Optimized for Mobile Platform
Conference: MOPCON 2012 (in Kaohsiung, Taiwan)

How to design API optimized for mobile platform.

Gea-Suan Lin

October 28, 2012
Tweet

More Decks by Gea-Suan Lin

Other Decks in Technology

Transcript

  1. API Design Optimized
    for Mobile Platform
    Gea-Suan Lin
    KKBOX, Inc.

    View Slide

  2. KKBOX

    View Slide

  3. Mobile Platform

    View Slide

  4. Mobile Network
    Mobile Device

    View Slide

  5. Compare to Landline

    View Slide

  6. Network Part

    View Slide

  7. Speed

    View Slide

  8. Reliability

    View Slide

  9. Latency

    View Slide

  10. Device Part

    View Slide

  11. It’s much slower.

    View Slide

  12. So,

    View Slide

  13. To adopt mobile
    environment,

    View Slide

  14. We care about these
    two different faces

    View Slide

  15. Client Modification

    View Slide

  16. Server Modification

    View Slide

  17. API Modification

    View Slide

  18. First,
    Merge Operations

    View Slide

  19. Reduce Connections

    View Slide

  20. POST /login
    username=
    password=
    GET /check-version
    GET /rank/album/top100
    GET /rank/song/top100
    GET /rank/artist/top100

    View Slide

  21. Merge to...

    View Slide

  22. POST /login
    username=
    password=
    extra=check-version,rank-album-
    top100,rank-song-top100,rank-artist-
    top100

    View Slide

  23. It’s dirty.

    View Slide

  24. But it’s much efficient.

    View Slide

  25. Second,
    Operation with
    Strict-Increasing Serial

    View Slide

  26. Avoid Duplicate
    API Call

    View Slide

  27. POST /mybox/room/1/
    message
    message=
    serial=

    View Slide

  28. Use database to store
    the serial of each
    device.

    View Slide

  29. Third,
    Multiple Objects
    Design

    View Slide

  30. Reduce Client CPU
    Resource

    View Slide

  31. And Reduce
    Connections

    View Slide

  32. GET /song/
    1,2,3,4,5,6,7,8,9,10,11,
    12,13,14,15,16,17,18,19,
    20

    View Slide

  33. Fourth,
    Filter Results

    View Slide

  34. Reduce Traffic

    View Slide

  35. Reduce Client CPU
    Resouce

    View Slide

  36. GET /song/
    1,2,3,4,5,6,7,8,9,10,11,
    12,13,14,15,16,17,18,19,
    20/name

    View Slide

  37. Then...

    View Slide

  38. Fifth,
    Compression

    View Slide

  39. Reduce Traffic

    View Slide

  40. Sixth,
    Use Port 80 & 443

    View Slide

  41. Reduce Firewall Issue

    View Slide

  42. Thank You!

    View Slide