ANTONYFB.COM

Apparently I make medical Android apps now, and a little about my setup

24 Jun 2023, 3:44 p.m.

So, my wife asked me to make her an Android app. This is not a thing I currently know how to do, but I have to learn Java for one of the modules I want to do with the Open University, so I figure I'll give it a shot. The app she wants me to make sounds like a worthy little cause, as well, and may prove useful for some other folks out there in the world.

My mission, or so I'm told

There is apparently a dearth of free Android apps well-suited to logging endometriosis symptoms, at least none that suit my wife's taste. This isn't surprising to me, considering that it's a condition that gets remarkably little air time considering how prevalent it is. Indeed, Endometriosis UK estimates that it affects about 1 in 10 women, yet it takes an average of 8 years from onset of symptoms to receive a diagnosis. It seems remarkably under-studied and under-supported. So, I've been tasked with building her interpretation of the perfect logging app for the condition. Easy, right?

No.

I imagine that if it were easy, she wouldn't need to ask me to make her one. Granted, there are a few about, but none of them work well for her. My main job here, it seems, will be translating her wishes into reality. I'm playing the role of genie-with-a-patchy-beard, more or less. I'll make the app freely available when it's done, but it may be a longish road. The way I see it, my immediate tasks are as follows:

  1. Research clinical best practices/recommendations for endometriosis symptom logging
  2. Learn enough Java to YOLO my way through a prototype
  3. Learn about Android Studio and the general process of building for Android
  4. Devise a list of appropriate features, and implement them
  5. Test, refine, repeat.

Currently, in terms of feature set I'm thinking some sort of out-of-10 pain scale, tags for kind of pain, options for saying whether the user in currently on their period, additional symptoms (common ones in a drop-down menu, with the ability to add custom ones), notes, and a daily reminder to log, with the time at which the reminder happens being set by the user. I'd like to include some sort of export functionality, like a button you can press to generate a pdf summary of symptoms over time, with a line graph displaying pain over time, average pain rankings for on-period and not-on-period days, and ranking of most common symptoms.

This is, to some degree, a bit of an intimidating project. I want it to be genuinely useful to people, I want it to be good. This will be challenging, and I am more than willing to listen to any advice anyone has. Find me on Mastodon down below, or shoot me an email at antonyrbramwell@gmail.com if you like. I'm particularly interested in hearing from endometriosis sufferers, to hear what they'd want to see in an app.

And another thing

While I'm here, I thought I'd spend a few minutes writing about the tools I like to use when developing and tinkering. I'll try to give some rationale for each of my choices, though ultimately I am a fickle creature operating largely on vibes.

My Machines

Desktop

My main machine is a custom build. An Asrock B550m Steel Legend with an AMD Ryzen 5 3600, AMD GX 590, 32GB of DDR4 RAM, a 1TB NVME SSD, and a 240GB SATA SSD. I use two screens, a 24" 1080p 60Hz main screen and a 19" 1440 by 900 secondary screen at the same refresh rate.

This machine runs Slackware Linux 15.0, my all-time favourite OS and the one that's given me the most learning opportunities so far. I run LeftWM on this one (dynamic tiling is, for my money, the best way to make use of all the screen space), and do most of my code writing on it.

I use Slackware on here largely because the system is entirely based around the idea of, "No, you do it." It's an unopinionated tinkerer's paradise. My own iteration includes two 3rd-party package managers (Sbotools and Flatpak), a plethora of scripts to help me administer the system, and about 5 pieces of software for every possible task. I like playing with different things, and Slackware is great for that.

Laptop

My trusty Lenovo V145-15AST. AMD A6-9225, 8GB of DDR4, 256GB SSD. This was my only machine until I built the desktop, and I'm rather attached to it. I run Void Linux on it with XFCE as the desktop environment, and it serves mainly as a studying machine for when I don't want to leave the sofa but have Open University deadlines.

Void's bloody good. It has a really cool init system, a wonderful package manager, and like Slackware, it is rather unopinionated and lets you do whatever you want. If Slackware went away for whatever reason, Void would be on my main machine without a doubt.

My VPS

A DigitalOcean droplet running Ubuntu Server 22.10. Very easy to use and configure, it's where this site lives. I'm happy with it so far, but I've only had it a few days at time of writing so time will tell.

My software

Text Editor

I'm a Doom Emacs guy, with all the nerdiness and eccentricity that implies. I also make heavy use of Neovim (particularly when crawling around the file system in a terminal, editing config files and scripts and such), because I'm awful.

A picture of my Doom Emacs setup, with the file tree open on the side, two editing windows and a terminal emulator.
M-x neckbeard

Browser

For the most part, I use Firefox. I also like to open stuff up in w3m or Lynx now and again, to get a better idea of how it appears to assistive tech like screen readers as well as experience the web without scripting. I'm of the opinion that JavaScript is over-used, to be honest. At time of writing, there is no JavaScript on this site. That may well change, but I'd rather keep as much of the site as simple as I can get away with for as long as I can.

Other software I use and enjoy

That should just about do it for today, I think. If you made it this far, thanks for reading. If you have any suggestions for my projects, want to tell me I'm wrong for liking certain software, find me on Mastodon (link below).

-Antony