My name is Ryan Kay, and I'm kind of an Android Developer. I say kind of, because I've never worked as an Android Developer at a Company; nor do I have a degree in anything. What I do have, is a strong desire to write awesome code, make useful Apps, and give back to a community which has given me so much.
I began working with the Android platform in the summer of 2014. I knew that I wanted to work for myself back then, and my basic understanding of Java (I did take an Introductory Java Programming course at my local Community College, but that's all my post-secondary) made it seem like being an App peddler wasn't out of the realm of possibility. Since then, I've been learning Android Development and making small projects in my spare time.
In 2016, I managed to find myself with enough spare time to rebuild my old projects properly and work on improving my understanding of Software Architecture and OOP Principles. While I was happy to finally immerse myself in learning Android near full-time, I was also frustrated by how hard it was to come by simple, yet thorough explanations of fundamental topics. I would look up concepts like "Java Interfaces", and feel my self-worth take a hit each time I found a jargon filled, rabbit-hole of an answer.
Every now and then, I would come across a source which would actually explain the following things about topic "x":
- This is what "x" does.
- This is where "x" fits into your App.
- Here are some other reasons why "x" makes your code/architecture better.
- Here are some common pitfalls to avoid when implementing "x".
What this made me realize, was that the problem wasn't that I was too stupid to understand "x". It's just that simply explaining what "x" is to someone who isn't already immersed and competent with concepts similar to "x", usually doesn't cut it. Don't get me wrong, I realize that most of the tutorials and docs I was reading really weren't directed towards Junior Developers like me. It's just that it truly pains me to think about people being in the same position as I was back then. Not everyone has the money to afford going to school for this stuff, and being told that you're not smart enough to learn or do something, whether it's by a wall of impenetrable jargon or a real person, hurts. It hurts, but my experience has shown me that it can also be used as a source of Rocket Fuel.
I never really intended to put so much effort into sharing my learning with others, but it has truly become a passion of mine. In March of 2016, I decided to take a stab at breaking down Android's RecyclerView Widget in a series of videos on youtube. Much to my surprise, I recieved overwhelmingly positive feedback; and the few people who watched my series back then seemed very grateful. Since then, I've done my best to share my learning for free whenever I have the spare time to do so.
By February 2017, I'd broken 1000 Subs on youtube, and I was receiving nice comments from people all over the world almost daily. I'd also come to two very important realizations: The first, was that I needed to step my Dev game up a few notches. Even though I understood the basic ideas of concepts TDD and Software Architecture Design, I simply hadn't had the spare time or mental energy to apply them to an App rigorously. I'd also began listening to Fragmented Podcast and exposing myself to interesting new APIs like RxJava and Mockito. All of this inspired me to build my latest demo project over Livestream, Profiler. It might not be an amazing App yet, and I'm certainly not the best teacher for advanced concepts like Reactive Streams (Rx) and Testing, but I really enjoy trying to explain it (not to mention I have yet to put a price tag on my content). Livestreaming also helps me learn, as I'm lucky to have a few regular viewers that are seasoned Developers on multiple platforms.
If in some small way I can contribute to giving people free, accurate, and entertaining content, then this wiseAss project will be worth it for me. If I say something wrong and someone kindly corrects me, even better. If I say something wrong and someone tells me I'm stupid and I should quit, well, that's fine too. It's all Rocket Fuel to me, and I'm stubborn as an ass.
If you think that what I'm doing is worth sharing or even throwing some money at, please see my Support Page for more details.
Profiler is a demo project which I created to learn how to work with Web APIs, RxJava 2, Testing, MVP and just generally improve my skills. I started out teaching people about the App's Architecture and Technologies via Livestream, but at this point I'll simply be improving and expanding upon it without trying to give a seminar each stream. I'm always open to constructive criticism and feedback, so please feel free to check out the Repository and suggest improvements.
PosTrainer was originally designed to be an App which allowed the user to set multiple daily Reminders to sit up straight, as well as some instructional content on basic stretches I use to combat the effects of sitting at a desk for 8-12 hours a day. The project is fully functional, but I'm in the process of rebuilding it's Architecture and UI to a higher standard. I've chosen to keep this project open source, and I regularly work on it on Livestream.Google Play: https://play.google.com/store/apps/details?id=com.bracketcove.postrainer
Catalyft is a Workout logging tool, designed to allow the user to create accurate logs and provide analytical tools for Gym sessions. Input from the user is stored in JSON format, which is read/written from a local SQLite database on the Android Device. While I'm proud of the scale of this App, I built it a while ago, and it needs improvements. No, this one won't be open source. I release enough of my stuff for free already.
Google Play: https://play.google.com/store/apps/details?id=com.brackettcove.catalyft