Saturday, 14 February 2015

Travis CI and Multi-Language Projects

Travis CI is an awesome free-of-charge continuous integration service. Go and check it, if you haven't tried it yet. What I appreciate in particular is a broad range of supported programming languages. Should you happen to have a project based on more than a single language though, then you might wonder if and how the builds would work.

Saturday, 7 February 2015

Step-by-Step: Fabric and Android Studio

I've just added Fabric SDKs to my Android project and the initial impression is overly positive. However, during the setup, I ran into a few time consuming issues. Enhanced with a better understanding of how it all fits together, I have to admit that most of the troubles were totally avoidable. In this post, I would like to walk you through the official tutorial and highlight the important steps.

Saturday, 31 January 2015

Bytecode Manipulation via Reflection API and Javassist

I've recently come across an interesting puzzle, it went like "Guess the next value of Math.random()". How could you possibly do it? Well, since the output is unpredictable by definition, the only option left for many of us is cheating. Once I successfully "solved" the puzzle by crippling the poor Math class to a worrying extent, I was thinking what else could I do. And most importantly, how far would I get before I had to reach for advanced frameworks like Mockito, PowerMock or jMock.

Sunday, 11 January 2015

Fluency of Java 8 Date-Time API

Here are a few quick examples of how API calls can be chained to answer advanced queries, such as "Which day is the last Friday of the next month". Or imagine you need match a weekly or monthly schedule. These and similar queries can be resolved without much of an effort.

Saturday, 10 January 2015

String Interpolation in Java

Languages like Scala, Ruby or even PHP allow to build dynamic textual content in an elegant and concise way. Is string interpolation available in Java?

Tuesday, 6 January 2015

API Mock Server Powered by Node.js

There we go again. I couldn't help but to (re)write my own. Unlike my previous attempt, I managed to keep implementation neat and tidy with a solid test coverage. Since all the details are on the project page, I will only focus on a few quick highlights.

Sunday, 28 December 2014

Preloading of an Android WebView

Coding for Android can be tough at times. Especially when things one would take for granted aren't supported at all. Such as an option for a fully justified text in a TextView. After having tried a number of different solutions I eventually gave up on using a TextView and resorted to a WebView instead. Of course, the first problem I hit was bad performance. While the text started to show in a way it was meant to, it took about a second to load despite the fact there was no network traffic involved at all. Having to show a spinner for a tiny piece of text loaded from local resources felt like a snap in the face. I started to dig into the issue with the TextView once again. I even ended up implementing full justification on my own, but when trying to apply it to Android I quickly discovered there was much more to worry about. Scrap that, back to the sluggish WebView, trying to preload it this time. That finally worked. So here is my take on how to preload a simple dialog containing a WebView.