Textspansion v2

So as the preview hinted the other day, I've been working on a v2 of Textspansion. I actually started work on it almost immediately after the Hackathon at work which was last Friday to Sunday. Naturally, I thought to myself, "I just spent the last 3 days coding... let's code some more!" That Hackathon was exactly what I needed. 3 days hacking away at someone else's Android code base wanted me to revive that pile of goop code that was snuggled away in a corner and make it beautiful.

Oh dear lord what is this

The original Textspansion was written in approximately 3 months way back in 2011. Back then, design was an afterthought. I think the biggest UI element that I really wanted was the ActionBar because that was the hot new Android UI element at the time. Since we (Sean Barag and I) were aiming for Android 2.3 at the time and ActionBarSherlock wasn't a thing back then, we used some other 3rd party ActionBar-like library.  

When I looked at this screenshot last week, I almost wanted to cry. Where are the margins?! Gingerbread UI elements!? What is this, 2011!? But hey, at least the ActionBar looks great (I still do think that). 

Since the very first iteration, we made small incremental changes to it. We added the ongoing notification in the notification shade because some device manufacturers thought it was a good idea not to have a Search button, thereby ruining our main use-case. Then Ice Cream Sandwich was announced and the Search button was removed completely! Thanks, Google! We added string tokens for dynamic data such as the date or the time (I laugh now because the code for this is absolutely butt ugly. Then I cry.). Finally, I added some tutorial screenshots to replace the list that you see on the left. 

Development slowed down as we couldn't think of anything new to implement while we were in school. We continued to maintain it through support emails and bug fixes. I was totally surprised when we got an email last year from one person telling us the app was crashing when she was trying to import a list of over 500 snippets. First of all, we didn't expect anyone to use it when we first launched it. When it was picked up by Lifehacker, I nearly wet my pants. Then I find out there we have an actual power user using our app? I was super stoked. 

So why am I rewriting Textspansion from scratch? I won't sugarcoat it; I was a TERRIBLE programmer 2 years ago. The main Activity was 897 lines of code. 897! For barely anything complicated! In those 2 years, I like to think I've become a slightly better programmer. I want to take what I've learned in those two years and write better code. Also, Android has changed significantly in those 2 years. Our original backend is almost completely deprecated and is pretty inefficient. The past few days trying to utilize the modern APIs have been really exciting. Finally, something something phoenix analogy.

Enough rambling, here's a screenshot of Textspansion 2.

Seriously, I'm pretty hungry.