Selected articles and publications by Ryan Michael Kay.
Smashing Magazine:
Mastering OOP: A Practical Guide To Inheritance, Interfaces, And Abstract Classes
Quick Summary: Arguably the worst way to teach the fundamentals of programming, is to describe what something is, without mention of how or when to use it. In this article, Ryan M. Kay discusses three core concepts in OOP in the least ambiguous terms so that you may never again wonder when to use inheritance, interfaces, or abstract classes. Code examples provided are in Java with some references to Android, but only basic knowledge of Java is required to follow along.
Testing Made Easier Via Framework Minimalism And Software Architecture
As with many other topics in software development, testing and test driven development are often made needlessly complex in theory and implementation by placing too much emphasis on learning a wide array of testing frameworks. In this article, we will revisit what testing means by a simple analogy, explore concepts in software architecture which will directly result in a reduced need for testing frameworks, and some arguments as to why you might benefit from an attitude of minimalism for your testing process.
FreeCodeCamp
- How to Learn the Fundamentals of Software Engineering – in a More Interesting and Less Painful Way
- A Jetpack Compose Tutorial for Beginners – How To Understand Composables & Recomposition
- How to Use Model-View-ViewModel on Android Like a Pro
- ADB Android Install Guide: Drivers and Commands
- How to Style and Theme an App With Jetpack Compose
- How to Handle UI Events in Jetpack Compose
Medium
- Android Tutorial: Model-View-ViewModel Awkwardness
- Dependency Injection: What? Why? How?
- Programming Fundamentals Part One: What Is A Program?
- Programming Fundamentals Part Two: The Problem Domain (How To Design A Program/Application)
- Programming Fundamentals Part 3: Storing Information
- Programming Fundamentals Part 4: Logic And Errors
- Programming Fundamentals Part 5: Separation of Concerns (Software Architecture)
- Programming Fundamentals Part 6: Proving Programs With Tests (TDD + Simple Examples)