Image for post
Image for post

At some point, every Android developer will end up using a Locale for the applications they are building. If you are dealing with dates and time zones, currencies or multiple language support, you probably faced some challenges to make everything work as intended. In this article, we are going to see how to use Locale to handle localization (L10N), what are the common pitfalls and how to deal with them.

What’s Locale on Android?

According to the Android documentation, a Locale is:

An object that represents a specific geographical, political, or cultural region. An operation that requires a Locale to perform its task is…


Image for post
Image for post

A couple months, we decided to use Android App Bundle (AAB) to distribute Aircall’s Android app in Play Store. After analyzing the Aircall Android application package (APK), we found we could deliver optimized APKs to our users — an overall size reduction of 60%!

In this article, we are going to expose our journey to Android App Bundle from our own motivations to the development within the application and the CI with CircleCI and fastlane to release on the Play Store.

Why move to App Bundle?

Moving to App Bundle had many advantages. The first and main reason was the APK size optimization, to deliver…


Image for post
Image for post

I was recently playing with Jetpack Compose, learning the future of the UI on Android. In a sample app, I tried to build a parallax effect I implemented in previous applications. In a screen you have an image in the background that scrolls less than the content you can scroll. Let’s see how we can implement this animation coupled with a fade out of the image using Jetpack Compose.

Disclaimer: the code samples are based on Compose 1.0.0-alpha11. The API methods might change in a near future.

The Parallax Effect

The idea here was to add a parallax effect to the image while…


Image for post
Image for post
Photo by Micah Williams on Unsplash

Security is a very important topic and has to be taken seriously when developing Android applications, especially if sensitive data is stored on the device such as user information or API tokens. Some third party libraries already exist to secure the app data like SecurePreferences but Google introduced its own security library within the Jetpack suite. Let see how we can use it to encrypt the shared preferences of an application and do the migration from SecurePreferences.

Jetpack Security libraries overview

The Jetpack suite provides two security libraries to secure your app data. Security-crypto is there to encrypt files stored by your application or…


Image for post
Image for post
Photo by Mika Baumeister on Unsplash

Unity is a game engine developed by Unity Technology, running on Windows, MacOS and Linux, for building cross-platform games and applications (Android, iOS, Windows, PlayStation…). It has been there for 15 years now, and it gave us the opportunity to build high quality graphic experiences or games on mobile. Unity is becoming more and more popular: according to the company, “50% of the new mobile games are made with Unity”. A lot of studios (Blizzard, Square Enix, White Elk…) are trusting Unity for developing their games or AR/VR standalone applications.

Unity has recently improved the support for building great game…


Image for post
Image for post
Photo by Kushagra Kevat on Unsplash

ExoPlayer is a very powerful library, developed and maintained by Google, for playing various video and audio content on Android. It also provides a large set of extension for using custom data source or supporting new formats. Let see how we can build our own extension by developing a custom DataSource for playing content from a SMB server.

What is an ExoPlayer DataSource?

With ExoPlayer, a DataSource is an interface that reads data from URI-identified resources, it allows to open a connection to read the specified data on your server by example. The library provides a default implementation for reading HTTP sources with HttpDataSource and…


Image for post
Image for post

Kotlin has become an official language for Android development since the Google I/O 17. Afterwards, a lot of company started their migration from Java to Kotlin (although many did use Kotlin prior to the official support). Here at CINEMUR, the first Kotlin lines of code were added late 2017 when we developed the TV show feature in our application, now 50% of the app is in Kotlin 🙌

After almost a year of learning Kotlin and using it for building my Android applications, I would like to share some useful tips on how to do the migration of an existing…

Julien Salvi

Senior Android Engineer @ Aircall (Paris) - Startup way of life, beer lover and world traveler.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store