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!
- 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
- Deep Dive Into the Gradle Based Android Build System
- Introduction to Project Volta
- The Art Runtime
- Android Binder IPC Framework
- Interprocess Communication
- How The Main Thread Works
- Android Internals for Developers
- How Android Rendering Works to Provide Pixels on the Screen Faster Than You Can Read this Sentence
- Breaking the Android ClassLoader
- 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
- What’s New in Android Security (M and N Version)
- 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)
- Don’t Sweat the Small Stuff
- Digging into D8 and R8
- What's New in Android Studio UI and Debugging Tools
- What's New in Android
- What's New in Android Development Tools
- Android Slices
- Android Jetpack
- Android Jetpack: Manage Infinite Lists with RecyclerView and Paging
- Android Jetpack: how to smartly use Fragments in your UI
- The World of ListView
- Enabling Blind and Low-Vision Accessibility
- Writing Custom Views for Android
- Mastering the Android Touch System
- Efficient Android Layouts
- Mastering Android Drawables
- Filthy Rich [Android] Clients
- Framing the Canvas
- How LayoutInflator Works
- Window Content Transitions
- Bringing your app to life - Motion Animations everywhere
- Performance Patterns with Colt McAnlis
- Android Performance: An Overview
- Finding and Fixing Performance Problems
- Dagger 2: A New Type of Dependency Injection
- Retrofit 2
- Android Tech Talk: Annotation Processing Boilerplate Destruction
- Upgrading to Moshi
- Realm - A New and Easy to use Object Framework and Database
- Rule Your Realm
- Android Architecture for the Subway
- Don’t Fear SQL: Store and Handle Data with SQLBright and SQLDelight
- Architecture Components - Introduction
- Architecture Components - Solving the Lifecycle Problem
- Architecture Components - Persistence and Offline
- Clean App Design With Architecture Components
- The Rx Workflow Pattern
- App Development - Pragmatic Best Practices
- RIBs - Uber's new mobile architecture that scales to hundreds of engineers
- Netflix's componentization architecture with RxJava + Kotlin
- Attacking Android Applications
- Security And Privacy in Android Apps
- The Art of hiding Sensitive Info in Plain Sight
- Your App is a Giant DDOS Botnet and Other Reasons to Manage and Monitor Your Network Traffic
- Composition vs inheritance
- The Clean Code Talks - Don't Look For Things!
- Robert C Martin - Clean Architecture and Design
- Simple Made Easy
- 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
- 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
- Fundamentals of Design: How to Think Like a Designer
- Material Science: Developing Android Applications with Material Design
- Material Design For Android Developers - Udacity Course
- Inclusive Design And Testing: Making Your App Accessible
- Writing Code That Lasts Forever
- Constructive Code Review
- GOTO 2015 • Unselfish Testing • Jay Fields
- How to Write Clean, Testable Code
- The Clean Code Talks -- Unit Testing
- Why You Don't Get Mock Objects
- Acceptance Testing For Continuous Delivery
- Advanced Espresso
- Advanced Android Espresso
- 10 simple rules for writing great testcases
- Effective Unit Testing
- Mocks, Stubs, and Spies, Oh My
- Advanced Espresso
- Junit5: the next gen of testing, don't stay behind
- Pragmatic Microservices - Randy Shoup
- REST I don't think it means what you think it does - Stefan Tilkob
- What is a CDN and why Developers should care about one - Artur Bergman
- Demystifying Docker - Andrew T. Baker
- 5 Features of a Good API
- 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
- "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
- Case Studies in Terrible Testing
- The Silver Bullet Syndrome
- Simplicity - The Way of the Unusual Architect
- "Uncle" Bob Martin - The Scribe's Oath
- How and When to Explore - An Engineer's Guide
- Dan North - Decisions Decisions
- Tech Talks For Humans
- Want To Make A Change? Stop Talking And Start Listening
- How Our Engineering Environments Are Killing Diversity (And How We Can Fix It).
- The Art of Organizational Manipulation
- Keynote - Jacob Kaplan-Moss - PyCon 2015 https://vimeo.com/242043944
- Algorithms to Live By: The Computer Science of Human Decisions
- Move Slow and Mend Things
- Hammock Driven Development
- The Art of Organizational Manipulation
- Retrospectives
- Mentoring Junior Engineers
- Distributed Teams
- How to Enhance the Skills of Experienced Developers
- The Joys of Engineering Leadership
- Crushing Tech Debt Through Automation at Coinbase
- Escaping the Technical Debt Cycle
- Seven Secrets of Maintainable Codebases
- We're Agile, We Don't Do Documentation
- How documentation works, and how to make it work for your project
- Introduction To Kotlin
- Life is Great and Everything Will Be Ok, Kotlin is Here
- Kotlin, the Swift of Android
- The Road to Kotlintown
- Idiomatic Interop
- Two Stones, One Bird: Implementation Tradeoffs
- You Can, but Should You?
- Introduction to Coroutines
- Better Android Development With Kotlin and Gradle
- Kotlin's Hidden Costs, Revisited
- Sealed Classes Opened My Mind: How We Use Kotlin to Tame State at Etsy
- Functional Programming with Kotlin
- Representing State: the Kotlin Edition