Skip to main content

Test Driven Development for Beginners

· 9 min read
Alex Hart
Android Developer at Signal

In this post, I hope to present a gentle introduction to test driven development. I will explain what it is, why it is useful, how to apply it today, and when to avoid it. Best practices will be touched on, and hopefully you the reader will come out with a better understanding of what all the fuss is about. This post is not exhaustive by any means, and if you wish to read and learn more about test driven development, then I recommend you pick up a copy of Kent Beck's seminal work on the topic, "Test Driven Development: By Example."

How to fill knowledge gaps

· 14 min read
Alex Hart
Android Developer at Signal

Finding a new Android software development position can be a daunting task. When scrolling through requirements it is easy to get lost and overwhelmed. Endless job requirements can lead to the feeling that you are not ready yet or are not good enough to get into this field. I hope to have this post alleviate some of this stress. In it I hope to shed some light on how we as developers should approach learning new skills, and how we can know what to learn by distilling job adverts into their basic components.

This guide makes a basic assumption that you have some small amount of experience writing android applications. Not that you have necessarily released anything to the store, but more-so that you know the basics. If you do not, then I would recommend starting with the "Build your first android app" guide over on the Android Developers website and then heading back here to continue on your android journey.

Dissecting a bad class declaration

· 8 min read
Alex Hart
Android Developer at Signal

About a year ago, there was a class declaration that I came across on Twitter that was so bad I said I could write an entire article on it. Well, folks who told me to just do it, I'm doing it. The class declaration in question was as follows:

abstract class TaskFragment : BaseFragment(), Runnable

Essentially, this was an abstract fragment that extended some base fragment and implemented a runnable. From the name, it sounds like this is a fragment that a developer can implement in order to do some background work and return a result. There are some red flags here.

Disposability, testability, readability

· 10 min read
Alex Hart
Android Developer at Signal

It was brought to my attention recently on Twitter that a lot of us senior engineering folk like to bang on about different concepts but rarely take the time to sit down and explain what they mean by them. So, today I'm going to put my money where my mouth is. This was all written in a single sitting while my two year old is taking a nap, and other folks have written much more in depth about these topics than I have. Suffice to say that this is an opinion piece, and the opinion of one dude on the internet, so please take that with a grain of salt. I do not support comments on this site, but please feel free to reach out to me on Mastodon if you have any questions!

Today I want to do a bit of a brain dump on what I consider three of the most important concepts that any Junior should wrap their head around. These are disposability, testability, and readability.