Your SlideShare is downloading. ×
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

LinkedIn Mobile: How do we do it?

70,572

Published on

A brief overview of the design, code, test and deploy model we use at LinkedIn in the mobile group to build and support multiplatform development.

A brief overview of the design, code, test and deploy model we use at LinkedIn in the mobile group to build and support multiplatform development.

Published in: Technology, Design
0 Comments
58 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
70,572
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
341
Comments
0
Likes
58
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. LinkedIn Mobile How we do we do it?
    • 2. BuildDesign CodeTestingDeploy
    • 3. Build PlatformDesign iOS Code AndroidTesting BrowserDeploy Other
    • 4. Design
    • 5. Interaction vs Visual• Designing a house’s floorplan• Focus on Rooms, Doors and Hallways• Stay away from Paint, Furniture and Carpet• Has & Does for each screen• Black & White then add color
    • 6. Search, Compose, Room NavigationStream You Inbox Following Notifications Breadth < 4 Depth < 3
    • 7. Adjust for App Platform• On Screen Back vs Hardware Back• Up vs Back / Stacks vs Pages• Pull To Refresh vs Button Refresh• Settings• Visual Design
    • 8. Mobile Web Enter the house SEO Email Organic
    • 9. Code
    • 10. Other iOS Android Mobile Web WrapJS/HTML + Native Native JS/HTML JS/HTML Screen based REST API Mobile Server (node.js + MongoDB) Domain REST API LinkedIn Platform
    • 11. Other iOS Android Mobile Web WrapJS/HTML + Native Native JS/HTML JS/HTML Screen based REST API Mobile Server (node.js + MongoDB) Domain REST API LinkedIn Platform
    • 12. Why Node.JS: Evented & JS• I/O Bound for most interaction• Aggregation and Manipulation of Strings• Lots of persistent socket connections• Client developers are doing server development
    • 13. Mobile Server• Stateless Load Balancer Nginx Nginx• Platform Transport: JSON In / JSON Out Node JS Node JS Server Server• Nginx as Web Server Mongo Logging Tracking• CDN for Static Content DB Server Server• Log / Track Everything LinkedIn Platform
    • 14. Screen Based JSON• Single Request per { ttype: nut1, screen time: 298349823, header: “Wow, that is pretty cool”,• JSON is template ....... ...... based footer: “shared by Kiran Prasad”, id: 1298398127,• Updatable on } server
    • 15. Other iOS Android Mobile Web WrapJS/HTML + Native Native JS/HTML JS/HTML Screen based REST API Mobile Server (node.js + MongoDB) Domain REST API LinkedIn Platform
    • 16. iOS• Native for all infinite lists• Native for Window Manager• JS/HTML for all screens that are detail views• Per screen choice for the stuff in the middle• Async JS/iOS Bridge
    • 17. Other iOS Android Mobile Web WrapJS/HTML + Native Native JS/HTML JS/HTML Screen based REST API Mobile Server (node.js + MongoDB) Domain REST API LinkedIn Platform
    • 18. Android• Native for all the screens• WebView for browsing the web• Moving towards more HTML5• Contacts locally stored but rest only in memory cache
    • 19. Other iOS Android Mobile Web WrapJS/HTML + Native Native JS/HTML JS/HTML Screen based REST API Mobile Server (node.js + MongoDB) Domain REST API LinkedIn Platform
    • 20. Mobile Web• Backbone for MVC • LocalStorage for personal Cache• Underscore for utils• Zapto for DOM • SASS for CSS Manipulation • Closure for compiling• Modified iScroll for • Hash based Loader Scrolling
    • 21. Test
    • 22. Test• Automation: Vows, Robotium, Selenium, FoneMonkey, GHUnit• Hudson for build management• Internal Tool for Layout Testing• PhantomJS based Tool for Performance• Bug Bash + 2 Week Demos
    • 23. Deploy
    • 24. Deploy / Monitor• Enterprise Build available • Keynote for to employees Performance and Availability monitoring• Ship everything 2 times a week • DeviceAnywhere for compatibility testing• Apps and Server Deploy independently • Internal monitoring for QPS, Uptime, etc• 2 Week Bake for Big Stuff • Client Crash Log Metrics tracked daily
    • 25. Thanks! & Questions?

    ×