DNA Relationship Finder
Trying to build a program that eventually shows up on a smart phone had been an early entry on my bucket list. But it had been nearly 25 years since I was paid to pay attention to this type of technology. I’m just caveman with bronze age knowledge in a space-age world.
A perfect candidate application came my way through my brother-from-another-mother, and the family’s genealogist, Mark. Through his family tree work, he became an expert on some of the science of describing relationships. He steered me to a website that leverages data from popular DNA matching websites ( like 23-And-Me) to find potential relationship types. Having a mobile version of that website, he noted, would be cool. Perfect!
Other than assuming that my target ecosystem was going to be Android and not iOS (I don’t have the hardware to easily build applications for iPhones or iPads), knowing where to start was tough. Some Google searches and research ultimately led to the kindling of a life-long love affair with YouTube. I learned just about everything I needed to know from YouTube … for free.
Android Studio is a free software development environment for designing user interfaces and building the code that makes the application run. There are two options for programing the behaviour of the application; Java and Kotlin. Java is a ubiquitous programming language/run time environment. It’s used in loads of modern technology, but it has a longish learning curve. I studied how to use Java just to get the vibe, but ultimately wrote the code in Kotlin. Kotlin leverages Java, but is more modern and is more simplified.
Building the functionality required some interesting research. I ended up peeking behind the curtains of the DNA website noted above. Fortunately, the JavaScript that the website uses for its functionality was available for reverse engineering (often JavaScript is intentionally obfuscated/garbled to make it hard to understand). This exercise required a modest understanding of JavaScript, which I had to learn. Thank you YouTube. (You’d think JavaScript would be a lot like Java, but their similarities are pretty limited as they have each evolved to tackle different types of problems.)
The application was written and tested with the Android devices I had in the house. Once satisfied, it was time to publish the application on Google’s Android Play Store. This allows others to find and download the application. But mostly, I wanted to understand the experience, which required multiple steps and took a couple weeks in total. It was interesting to see the lengths that Google has to go through to make sure all of the applications it lets in the door are not malicious, not meant for sale to bad foreign actors, don’t target minors, etc.
The only maintenance I’ve done to the application, except keeping the code up to date, was to fix a bug that a lovely man from the Netherlands reported. It was a pretty simple fix – having to do with the way Europeans deal with number formats (e.g. Canada: 123.456 EU: 123,456).
I’ve now learned what I needed to learn about Android. I’ve had some other ideas floating that I may try to tackle for Android … and maybe even iOS.