Binge v1.5

This update has been a long time coming.

According to my git commits, I started working on the meat of this update in back on October 3rd 2016. That means I've been working on this update in my free time for almost 6 months. Needless to say, I'm really excited to get it out the door.

Let's take a look at what's new, shall we?

UI Updates

I've subtly update a lot of the UI in Binge with this update. TV and Movie sections no longer have titles at the top, font sizes are slightly smaller, table rows are slightly shorter, and poster art is now pushed up to the upper left corner of the screen. Space is now used a lot more efficiently, which makes things cleaner and allows more to be shown on the screen at once.

I've also updated the alphabet list down the side of the screen to indicate which section the user currently has focused.

New App Icon

Binge was originally released under the name "Prime" - a name that lasted only a single point release, but the app icon (inspired by the mathematical symbol for prime) never got updated. Even though it didn't make sense anymore, I still though it looked cool so wasn't in too much of a hurry to update it.

Maybe if I knew that I would be taking 6 months between releases, I would have updated it earlier.

Caching

This is the definitely the change that made this update take so long to develop.

With previous version of Binge, all data was fetched as needed, then discarded almost immediately. So if the user switched back and forth between focusing two movies over and over, their background and poster art would get re-fetched each time the focus changed. Or ever time the app started up, the full list of movies and tv shows would need to be fetched from the server, causing

This non-caching structure was fairly easy to implement, but was not only inefficient and slow, but it would also lead to several situations where focus would jump around in the app when the user didn't expect it to.

Version 1.5 uses Realm.io for data storage, and I think the results are quite impressive. Everything is much more responsive and fluid. Focus doesn't jump around. Images load immediately when possible. And on every app launch after the first one, the user's movies are TV shows lists are able to be displayed immediately.

Even though this change basically involved me rewriting every single feature of the app, I definitely think it was worth it.