> 2.000.000.000 people rely on greenrobot libraries
Slim & fast - that is what we stand for and that is why thousands of mobile developers wordlwide use our solutions, leading to more than a billion mobile users relying on our code
Lean & light
Mobile News from greenrobot
Library updates, new releases, related developments in open source, mobile databases, and Android
Google’s Android Dev Summit 2015 covered a talk on Android Application Architecture. Android Apps often have complex interactions among data models, application logic, UI views and controllers, and networking. A solid architecture is the key to get this right. Watch the two Googlers Yigit Boyar and Adam Powell using EventBus as an important app’s component:
On January, 28th, Facebook announced the retirement of Parse. Parse was one of the leaders in the “mobile backend as a service” (MBaaS) space. It gave app developers a hosted alternative to building a custom backend from scratch for data storage and some logic around that data. Parse was acquired in 2013 by Facebook for $85 million and was powering 500,000 apps in 2014 according to Wikipedia. So what turned the success story into a failure?
Today, we are pleased to release EventBus 3. Previous versions of EventBus rejected to use annotations for performance reasons. Now, version 3 embraces annotations to improve performance. How does that make sense? Unfortunately, Android’s performance did not get any better. Reflection on annotations is still very bad compared to Desktop Java, even on Android 6 and ART. EventBus 3 resolves this problem by introducing a new annotation processor, which will index all annotations at build time. It generates a class containing all the data that would be expensive to get at run time. Build-time indexing makes EventBus 3 the fastest EventBus ever.
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!