Making progress

In software, the word soon doesn't always mean what you think it means. I've been working on a lot of things, and some will soon bear fruit. I'll then take the seeds of those fruits and plant them in some other apps. I want to strengthen the root system of the current crop of products; if their roots cross, I'll look down, anthropomorphize, and see it as holding hands.

As an independent developer, I'm a serial processor.  I'm CPU-bound. If I work on one thing, I'm not working on others.

Interrupts generated by peripherals may be processed slowly, or indefinitely delayed.

I don't mind this, though I sometimes feel guilty about not being able to do all the things I want to do right now.

This morning I was working on a feature that positions some buttons above the keyboard.  It didn't take long to get that working, but I spent twice that time afterward making sure all kinds of additional situations were handled.  Need to track state to make it toggle-able. What happens if the keyboard goes down; what happens during memory warnings, what about device rotation?  What if text is selected when a certain one of these keys is pressed? Pretty soon you have a lot of peripheral code around a pretty simple feature.  It feels good to set-and-forget after you're confident all the cases are handled.

Each feature is that way.  I'm going to go finish another one tonight, and handle more tomorrow.