Profile cover photo
Profile photo
Moritz Post
Tech and mobile enthusiast. :)
Tech and mobile enthusiast. :)

Moritz's interests
View all
Moritz's posts

Post has attachment
"Everyish" month google releases the Android version distribution numbers for devices accessing the play store. And every month i wonder why do they only show the absolut percent of a version?

If you are an Android developer that wants to know "what percentage of the market do i reach when going for minSdk XYZ" you have to add those numbers up manually. Very annoying.

Post has attachment
Airbnb released a cool library called Lottie to render Aftereffects animations in Android or iOS. Looks pretty capable. 

Post has shared content
Great to see mote alternatives to SQL on Android. With libraries like Realm and now ObjectBox life is getting easier. Definitely need to try it. Apparently the performance is great "out of the box". :)
We just released a new mobile database. ObjectBox is designed for performance and easily outperforms any database we ever tested. It was a lot of work and fun to build it! Please share!

Post has attachment
Apparently this really happend: DJI buys Hasselblad! Who would have thought? Mind blown! :)

Post has attachment
New Balance just announced an Android Wear based running watch called the RunIQ. While i have bought a dedicated Garmin running watch (Forerunner 630) a few weeks ago, this watch could bring me back into the Android Wear running camp.

After having owned the Sony Smartwatch 3 and the Moto 360 Sport (both with GPS) i got a little disappointed with the lack running focused features. Both had problems with GPS precision and heart rate tracking. The Android Wear watchs were also missing dedicated hardware buttons for start/stop/split.

The Garmin Forerunner 630 nails it in those departments and the chest strap also measures stride cadence and vertical bounce (which is a surprisingly useful metric). But than i am not able to sync my Google Play Music with the Garmin, making me bring my Moto 360 sport as a music playing device as well.

If the new RunIQ has better GPS performance and heart rate tracking is much better than on the other two wear devices i have owned, we could look at a winner.

Post has attachment
After looking into deeply nested layouts on Facebooks Yoga layout and RelativeLayout [1], i wanted to compare the performance of deeply nested ConstraintLayouts. The key takeaway is: If you are having slow layouts with RelativeLayout you should update to the ConstraintLayout.

So hows does the ContraintLayout compare? The benchmark is the Yoga layout with a max depth of 500 levels (1000 ViewGroups) in 2.7sec. The good news: unlike the RelativeLayout, which topped out at depth ~8 (16 ViewGroups), the ConstraintLayout is actually able to handle such a depth. It took the ConstraintLayout ~3 sec to calculate its layout with a depth of 500 (1000 ViewGroups). Very close to the Yoga layout. Pretty good.

So how far down the rabbit hole can you take the ConstraintLayout? All tests were conducted on the Nexus 6P without "largeHeap" enabled. The deepest layout that could be created without an OutOfMemoryException was 1900 levels (3800 ViewGroups) in 46 sec. That is pretty deep.

Concluding this experiment it can be said that there is no reason to use the RelativeLayout anymore. If you need to use a cross platform layout, the Yoga layout is a good choice (although it is missing some features). When you need the absolute maximum depth (which you should not go for) and want a quick layout you should opt for the ConstraintLayout.

Keep in mind that the experiments were conducted on a particular layout configuration. Your mileage may vary when using other types of views/layoutparams.


Post has attachment
I have been looking at layout performance of Facebooks Yoga layout ( and Androids RelativeLayout in Android apps. While the Yoga layout is not fully featured yet (eg. it misses support for baseline alignment) it has one thing going for it: speed.

The attached screenshot shows the same layout using nested Yoga layouts and nested RelativeLayouts. While the RelativeLayout is known to be notoriously slow when nesting deep it was still an interesting observation:

When nesting the RelativeLayout 16 layouts deep, starting the app took 22 sec (Nexus 6p). Layouting 16 levels deep with Yoga took only 2,7 sec. That is nearly 10 times better performance.

So where is the limit for the yoga layout? In fact there is no limit. The only limit is a crash in the jni layer when going very deep. Until that point the performance does not deteriorate noticable from nesting deeper.

So how far can you take it? The maximum number of nested layouts was 500 ViewGroups. The startup time of the app remains at ~2.7 sec. Pretty impressive.

So comparing layout performance between Androids RelativeLayout and the Yoga layout in the shown scenario is clearly in favor of the Yoga layout. It would be interesting to pit the Yoga Layout against the ConstraintLayout.

cc +Lucas Rocha

Post has attachment
A few days ago an article in the New York Times made the rounds on the internet. It is a very long read but i finally gotten around to finish it (in multiple sittings). If you are interested in the background story on how the AI development took place over the last few years, bring a cup of your favorite beverage, strap in and go for a very insightful read.

Post has attachment
After 2 months of waiting, DJI has finally shipped my Mavic Pro. Happy flyer. :) First impressions are really good. Great build quality and stable hoovering. Looking forward to many 27 minutes. :)
2 Photos - View album
Wait while more posts are being loaded