Mission
At Yelp, we're big believers in continually improving our skills as developers. For the past two years, our Android team has been doing that at our weekly Android School, where we get together and watch some of the best videos from the Android community and beyond. Sometimes these are programming related, but sometimes they're on more general topics like how to be better technical leaders.
We've found this to be immensely useful in growing our skills as software engineers, so we wanted to share it with the wider Android community to help other teams wade through the ocean of content that exists out there.
We'll be updating this once every month or so as we complete new topics in our own Android School!
Videos
Android Build Tools
- Gradle For Android
- What's New in Android Development Tools
- Creating a Custom Build Platform with Gradle
- Using Mat (Memory Analyzer Tool) to Understand Memory Issues in Your App
- Udacity Course - Gradle For Android And Java (Gradle 101)
- Android Studio For Experts
Android OS
- Introduction to Project Volta
- The Art Runtime
- Android Binder IPC Framework
- Interprocess Communication
- How The Main Thread Works
Views
- The World of ListView
- Enabling Blind and Low-Vision Accessibility
- Writing Custom Views for Android
- Mastering the Android Touch System
- Efficient Android Layouts
Views - Next Level
- Mastering Android Drawables
- Filthy Rich [Android] Clients
- Framing the Canvas
- How LayoutInflator Works
- Window Content Transitions
Android Features
Software Engineering Theory: Patterns
- Composition vs inheritance
- The Clean Code Talks - Don't Look For Things!
- Robert C Martin - Clean Architecture and Design
Software Engineering Theory: Writing Clean Code
- Simple Made Easy
- How to Write Clean, Testable Code
- The Clean Code Talks - Global State And Singletons
- Hammock Driven Development
- How To Design A Good Api And Why It Matters
- Applying S.O.L.I.D. Principles
- Domain Driven Design By Example
Software Engineering Theory
- Bret Victor: Inventing On Principle
- Writing Software by David Heinemeier Hansson
- Scott Meyers - The Most Important Design Guideline
- Donald Knuth - My Advice to Young People
- Bjarne Stroustrup - Object Oriented Programming Without Inheritance
- Greg Wilson - What We Actually Know About Software Development, And Why We Believe It’s True
UI Design
- Fundamentals of Design: How to Think Like a Designer
- Material Science: Developing Android Applications with Material Design
- Material Design For Android Developers - Udacity Course
Android Performance
Being a Great Engineer
- Robert C. Martin (Uncle Bob) - Demanding Professionalism in Software Development
- The Ethical Consequences of Our Collective Actions
- Bake the Cookies, Wear the Dress: Connecting with Confident Authority
- Your Brain's Api: Giving And Getting Technical Help
Being a Great Engineer (Month 2)
- "Uncle" Bob Martin - "The Future of Programming"
- Effective Java - Still Effective After All These Years
- Working Effectively with Legacy Code by Roberto Hernandez-Pou
- GOTO 2016 • Seven Secrets of Maintainable Codebases • Adam Tornhill
- GOTO 2015 • Unselfish Testing • Jay Fields
- Case Statudies in Terrible Testing
Organizational Culture
- How Our Engineering Environments Are Killing Diversity (And How We Can Fix It).
- The Art of Organizational Manipulation
- Keynote - Jacob Kaplan-Moss - PyCon 2015
Android Design Patterns (That We Don’t Use at Yelp)
- Functional Reactive Programming with Rxjava
- Introduction to Functional Reactive Programming (With a Bit More of an Android Focus)
- Dagger 2: A New Type of Dependency Injection
- Retrofit 2
- Kotlin, the Swift of Android
- Android Development with Kotlin
- Android Tech Talk: Annotation Processing Boilerplate Destruction
Google IO 2016
- What’s New in Android Development Tools
- The Experts’ Guide to Android Development Tools
- Recyclerview Ins And Outs
- What the Fragment?
- Android Layouts: a New World
- What’s New in the Support Library
- Advanced Espresso
- What’s New in Android Security (M and N Version)
- Inclusive Design And Testing: Making Your App Accessible
Tools (Android Studio, Debugger, OS X productivity)
- Knowledge Is Power: Understanding git
- Mac OS X Automation Workshop
- Mastering the Vim Language (intermediate)
- From Vim Muggle to Wizard in 10 Easy Steps (advanced)