On dType Suspension

I can safely confess, that a couple years ago I didn’t know a single thing
about programming. I was aware of some fairly abstract concepts and had a basic
understanding of how it all works, but it definitely wasn’t enough. My English
teacher had a saying about the active vocabulary: “You may learn all the words
from the dictionary by heart, but unless you use them regularly and naturally,
you don’t really know them”. My situation with programming was somewhat similar
to knowing lots of trivia, but having no grasp on the practical side of things.
I was determined on fixing it as soon as possible. I’ve tried reading a book or
two, but it never really got me going. Well, it explained a couple things here
and there, but it was like learning things by heart — tedious and irrelevant
(on an absolutely unrelated note: Learn Python the Hard Way is great). At that point one of my
techie friends suggested me throw the book away and learn by immersion: make an
objective, stumble upon problems, see docs and StackOverflow for possible
solutions. That was the moment I started looking for the first project, fairly
simple, yet more challenging than a mindless Hello World routine.

Once, I was typing down a big portion of plain text on my old slow Android
phone, using another memory hog Office Suite, with all those controls, sets
of buttons on all sides of the screen and I wished there was something like
Focus Writer for Ubuntu: basic, but fairly powerful in terms of achieving
that special zen state. There weren’t many such projects in Android market
back then (yeah, kids, it was called that in days of old) and this is how the
idea of dType has stricken me. The concept was fairly simple: a minimalistic
tool, that would let you jot down some text and then pass it to some other
application (Evernote, Dropbox, Email, etc.) for saving or processing. It was
simple enough to get grip at basics, yet quite challenging for a person, who
haven’t seen Java code (or any code) before.

It was the moment, when I started coding. Well, let’s say it was more about
googling intensively for just about anything. It was hard. Most of the time I
didn’t know, what I was doing and asked fairly inept questions on
StackOverflow. I still do, but now at least I can tell, what most parts of my
code are for. First, the immersion is like trying to play piano blindfolded —
my code probably stunk a big time, but at the end of the day it worked and it
was encouraging. Interest in Android development helped me to get a job as a
technical writer in a bunch of Android-related projects, especially OpenCV for Android. Since, I’ve been working mainly on C++ API
references, I’ve started to delve into OOP concepts. I’ve been thoroughly
explained, what is a class, a method and how they relate to each other,
interfaces, abstract classes and the rest of this stuff. I’m extremely grateful
for my mentors at there. Later, working on some other project, I had a chance
to look closer at working Java code and see these concepts applied to Java. I
immediately started to refactor dType code once again in attempt to implement
thorough OOP design and shake off all the redundancy. My code became a little
bit more laconic and neat. Not that it couldn’t get any better, but it was
still a huge leap forward for me.

As long as I remember, dType was constantly improving. It was first a bunch of
undocumented spaghetti code, which was somewhat straightened out at version
0.16 — it became the earliest version I bother to keep in the repository, since
everything before that was a complete disaster. Perhaps, it’s still rather bad,
but I’ve managed to shorten it almost twice, provide descriptive JavaDoc (for
the sake of it, I know no one will probably bother to read) and fix a lot of
issues while at it. I do feel a little attached to this code emotionally, since
it is my first coding experience, that has grown into a little indie project of
mine. Over the course of two years it has provided me with innumerable
challenges and priceless practical experience, but it’s finally time for me to
move on. I’ve taken great interest in Python lately, and started a couple of
projects in it. Coming back to Java code became more and more daunting to me. I
was also advised by several programmers, that I’d better concentrate on getting
really proficient with one language for now. My growing frustration with Java
verbosity ensured, that I would end up with Python as my language of choice.

Still, it was a hard decision for me to drop dType completely. People do use it
and clone it on GitHub (yeah, it had a couple of clones before the
project has been moved back and forward, nevermind the actual numbers on
GitHub). This project, though certainly quite niche and facile, does work for
some. I decided, that this suspension is going to be more of a role shift for
me: from active developer of this application to its maintainer. It will stay
as an open repository at GitHub for you to clone and alter, it will stay
published on Google Play. You can continue to use it in version 0.71. If people
provide some relevant pull requests, I would be happy to merge them and even
publish the resulting build as the new version of the app. It’s just that me
myself don’t have the time or inclination for introducing new features anymore.
It is now exactly the way I envisioned it, when I was starting. My big learning
project has reached its objective. It’s finished. My priorities have changed,
but if you do care, I would be glad to see your contributions. I’m not naive to
think that it could become a huge open source project, mind you, but I do hope,
that the app could continue living on its own, while I’m pursuing something new.

Update 06.10.2014: No one decided to contribute to this project yet, and
probably never will as more than a year has passed since this post. Perhaps,
this is for the best, as I’ve seen people complaining about a couple of nasty
visual bugs on some devices. Me myself wasn’t able to work with it on Galaxy
SIII as the screen gets black from time to time. So if you really want to
revive the project, I can only wish you good luck with that. Seriously, if you
want to try, give me your contacts, so that I could talk you out of it.