Some time ago I got interested in reactive programming and RxJava in particular. It’s gaining more popular in Android world and I often see RxJava as an obligatory skill for a Senior or Mid Android Developer position, that’s why learning it can be of a great benefit if you’re seeking a job 😉 But even if not, it can simplify your app development, especially if you have lots of UI fields which you fill in with some changing data or if you want to have an interactive search, or while using Retrofit for you HTTP requests. There are even smaller libs for a particular task, like RxWear, RxNotifications or RxAndroidBle (find a full list of such libs here). Choosing the right one will depend on your needs 😉
And so today I just want to share a few resources which I found very useful while learning how RxJava and RxAndroid libraries work (and what are they at all :). I have basically reviewed what’s available on ReactiveX Tutorials list (which is huge!) and listed the most intuitive and easy to get below, as well as a few articles and tutorials I found on the Internet myself.
A separate and an absolutely must position is a RxJava for Android App Development free e-book. It’s very short (only 41 pages!), and it’s a piece of cake to read, believe me, because I read it before any other docs or tutorials, and it explained the most important principles just fine 🙂
Continue reading Best resources to learn RxJava
Today I will show you how to benefit from Handlers in Android 🙂
First of all, Handlers aren’t some new concept, they were there long ago. How long? Well, from API level 1. Still, I always felt Android developers don’t use them enough, me included.
When I’ve discover the brilliance of Handlers, I was surprised how handy they are and how easy is to use them.
So, what does a Handler do? A few things, really.
Continue reading Tutorial: How to use a Handler?
Today I want to present you a new JSON-parsing library – LoganSquare, written by BlueLine Labs. It is told to be the fasted available and quite easy to use, so I couldn’t miss it 😉 Below you will find an example Android project, which serializes and parses some objects.
Also, I have run Logan’s Benchmark project myself and indeed, the results are good. Not as good, as on their GitHub’s page, but still. Just to make everything clear, I have used Nexus 5 running Android 6.0.1 (ART).
As you can see, LoganSquare wins in every category. Lets check how we can use it in our project, shall we?
Continue reading Tutorial: Parse JSON with LoganSquare
Today’s tutorial will be about SQLCipher and its integration in Android (with the means of Android Studio). Just to give some introduction, SQLCipher is used for a full database encryption. What full means is that the DB file is entirely encrypted, not only separate rows or tables. Zetetic, the company behind SQLCipher, provides Community and Commercial edition. You can use the former for commercial projects, though, just have to provide license doc in your app. Also, SQLCipher is not for Android only, it can be used on various platforms.
Regarding security features, SQLCipher uses 256-bit AES in CBC mode by default, with 1kB page size, and it derives the key data using PBKDF2 function. The difference in API that you instantly notice is the passphrase argument in
getWritableDatabase() methods. Now, this passphrase should never be stored in the application, otherwise the whole point of encryption is wasted. One thing to keep in mind, is that the passphrase is not a key! Yes, the DB is encrypted using the key, but it is generated based on the passphrase (~ password) and also can be re-set using PRAGMA rekey command.
Continue reading Tutorial: Add SQLCipher to your Android app