greenDAO 3.1.1 Bugfix Release

Today, we released a new version of greenDAO addressing some issues with @Entity annotations. If haven’t tried them yet, please give them a try. We think this is the most convenient way to work with greenDAO, or SQLite in general. For details on the 3.1.1 improvements, please check the changelog.

performant java hashfunctions

Performant Java hash functions – today’s Java hash problems and our solution

Today, core Java APIs lack high quality hash functions, and 3rd party implementations provide sub-optimal performance. As non-cryptographic hash function are important building blocks of software, this is a major bummer for developers.

Generally, the selection of available hash functions is plenty, and in the last decade, many new hash functions emerged with very good hashing properties. Surprisingly, the core Java API just still offers Adler32 and CRC32, which were designed as checksums many years ago. Of course, there are many hash implementations available outside of the core Java API. However, Continue reading

mobile-handy-database-comparison

Mobile databases: SQLite and SQLite alternatives for Android and iOS

At Droidcon Berlin, we noticed a lot of questions around databases and that many people weren’t aware of SQLite alternatives and Object-Relational Mappers (ORMs). Therefore, we follow up with an overview of the mobile database landscape.

What is a mobile database?

While Wikipedia defines a mobile database as “either a stationary database that can be connected to by a mobile computing device […] over a mobile network, or a database which is actually stored by the mobile device,” we solely refer to databases that run on the mobile device itself.

Why use a mobile database?

There are some advantages associated with using a mobile database:

Continue reading

Avoid NoClassDefFoundError during EventBus registration

There is an obscure scenario causing some older Android versions to throw java.lang.NoClassDefFoundError when trying to register subscribers in EventBus. It was reported often in connection to the class  PersistableBundle, which was introduced in Android API level 21. It seems like an Android bug with reflection, but of course you don’t want your app to crash. Thus, we just added an FAQ entry with covering some background and a couple of solutions. One preferred solution is to update to EventBus 3 along with the subscriber index. Because the index is created during build time, it avoids problematic (and slow) reflection altogether!