• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
LinkedIn Mobile: How do we do it?
 

LinkedIn Mobile: How do we do it?

on

  • 69,915 views

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.

Statistics

Views

Total Views
69,915
Views on SlideShare
69,440
Embed Views
475

Actions

Likes
52
Downloads
310
Comments
0

22 Embeds 475

http://kennychua.net 87
http://androidopen.com 86
http://paper.li 66
http://www.linkedin.com 65
https://www.linkedin.com 41
https://twitter.com 26
http://vinebrancho.wordpress.com 26
http://www.freerealestatesocialmedia.info 17
http://www.scoop.it 17
http://127.0.0.1:51235 9
http://a0.twimg.com 8
https://si0.twimg.com 6
http://us-w1.rockmelt.com 6
http://english2.site90.net 5
http://www.kennychua.net 3
http://www.certipost.com 1
http://www.onlydoo.com 1
http://www.twylah.com 1
http://tweetedtimes.com 1
http://localhost 1
http://trunk.ly 1
http://www.slippbc.ca 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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

LinkedIn Mobile: How do we do it? LinkedIn Mobile: How do we do it? Presentation Transcript

  • LinkedIn Mobile How we do we do it?
  • BuildDesign CodeTestingDeploy
  • Build PlatformDesign iOS Code AndroidTesting BrowserDeploy Other
  • Design
  • 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
  • Search, Compose, Room NavigationStream You Inbox Following Notifications Breadth < 4 Depth < 3
  • 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
  • Mobile Web Enter the house SEO Email Organic
  • Code
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Android• Native for all the screens• WebView for browsing the web• Moving towards more HTML5• Contacts locally stored but rest only in memory cache
  • 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
  • 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
  • Test
  • 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
  • Deploy
  • 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
  • Thanks! & Questions?