Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android engineering for scale at SoundCloud

Android engineering for scale at SoundCloud

The SoundCloud app has been installed by tens of millions of users and our Android team has tripled in size over the last year.

We want to share the engineering practices that we’ve come to value as our team, user base and codebase has grown. The cornerstone of our Android architecture is RxJava. We’ll talk about how it fits into our codebase and show some examples of the problems we’ve used it to solve.

Guillaume Lung

October 30, 2014
Tweet

More Decks by Guillaume Lung

Other Decks in Programming

Transcript

  1. Subtitle ├── com │ └── soundcloud │ ├── android │

    │ ├── stream │ │ │ ├── StreamAdapter.java │ │ │ ├── StreamFragment.java │ │ │ ├── StreamModule.java │ │ │ ├── StreamOperations.java │ │ │ ├── StreamStorage.java │ │ │ └── StreamItemPresenter.java
  2. Subtitle { "id":612849, "kind":"user", "permalink":"bazan", "username":"David Bazan", "uri":"https://api.soundcloud.com/users/612849", "permalink_url":"http://soundcloud.com/bazan", "avatar_url":"https://i1.sndcdn.com/avatars-000030728315-

    oe5uld-large.jpg?e76cf77", "country":"United States", "first_name":"David", "last_name":"Bazan", "full_name":"David Bazan", "description":"Known for his work fronting the enigmatic rock band Pedro the Lion, David Bazan\u2019s emotionally charged narratives, eye for telling detail, and mournful voice have more in common with J.D. Salinger\u2019s \u201cNine Stories\u201d or Flannery O\u2019Connor\u2019s \u201cWise Blood\u201d than with the usual lyrical slant of popular music. Bazan is a gifted storyteller, weaving parables of spiritual conflict, suburban ennui, and personal surrender into magnetic, well-crafted songs.\r\n\r\nHis debut solo full-length album, Curse Your Branches (out now on Barsuk), is a masterwork by a modern American poet at the height of his powers. Paste Magazine called him one of the \u201c100 Best Living Songwriters\u201d. This record is the deepest and most explicit exploration of his struggles with faith and a meditation on all things passed between the generations.", "city":"Seattle", "discogs_name":null, "myspace_name":"davidbazan", "website":"http://www.davidbazan.com", "website_title":"", "online":false, "track_count":32, { "collection":[ "hip hop", "chill", "electronic", "deep house", "party", "love", "rap", "happy", "study", "techno", "indie rock", "dubstep", "r&b", "relax", "country", "pop", "edm", "reggae", "house", "workout", "soundtrack", "reggaeton", "piano", "dance", "remix", "alternative", "summer", "instrumental", "rock", "morning", "funk", "classical", "punk", "electro", "trap", "club", "acoustic", "motivation", "jazz",
  3. public final class EventQueue { public static final Queue<StateTransition> PLAYBACK_STATE;

    public static final Queue<ProgressEvent> PLAYBACK_PROGRESS; public static final Queue<PlayableEvent> PLAYABLE_CHANGED; [...] }