blog cover exceptions handling with retrofit

Retrofit Your Exceptions Using Retrofit

Using domain exceptions in your app is an important step if you want to create abstractions over different 3rd party networking libraries like Retrofit or gRPC. Handling and mapping of these exceptions can quickly become a boilerplate that you and your colleagues have to think about and sooner or later you will probably forget to do it somewhere in your code. I want to explore how this task can be done automatically in a generic and clean way when using the Retrofit library. (more…)

David Bilík

David Bilík

Lead Android Developer

blog cover Android

Enforcing Dependency Rule With Custom Detekt Rules

Clean Architecture is a much-discussed topic in recent years not only in the Android community. You can find many articles about it and most of them are devoted to an explanation and implementation of the Dependency Rule, which is the basis of the Clean Architecture. Implementing the Dependency Rule is quite easy but it is also really easy to violate it and it can be really hard to uncover that on the code review. It would be possible to control it better using package private visibility or divide app layers properly to separate modules. The problem is that we do not have package private visibility in Kotlin and layer modularization does not have to be a good or preferred architecture for our app. But don’t worry! We can use help from the static code analysis tool called detekt and I am going to show you how in this article. I expect that you already know and understand Clean Architecture including the Dependency Rule. If you don’t, I recommend this great article from Mario Sanoguera de Lorenzo. (more…)

Jan Mottl

Jan Mottl

Android Developer

Ackee blog cover: Android High Performance Audio APIs

Android High Performance Audio APIs ?

Performance matters. It is especially true for audio performance, where you want the audio to be as smooth as possible. In this article I will have a look at various available options you can use in your high performance audio app on Android. But first, we need to understand the motivation behind high performance audio. Why is it important? What problems are we trying to solve? What apps are we actually talking about?

(more…)

Petr Kubáč

Petr Kubáč

Android Developer

ackee blog cover – Dedicated one-app device with Android Management API

Dedicated one-app device with Android Management API

In Ackee we, Android developers, are mostly dealing with Play Store-oriented apps, aimed at the general public. Shared economy, food and grocery delivery, car management, education, job finding, advertising: apps in these areas are usually easily discoverable and aren’t limited to specific organizations, devices or accounts. But sometimes, our client’s requirement is to develop an internal app for their corporation with different access levels, limitations, remote configuration and strong emphasis on security. Ticketing, logistics, courier navigation are some of the use cases for enterprise apps closed to the public.

(more…)

Georgiy Shur

Georgiy Shur

Android Developer

blog post about React Native

AirBnB is done with react. What would Ackee say?

You might have read my previous series of blogs on React Native. And I feel sad, that it remained a bit misunderstood. By all means, React Native is an interesting technology; I just meant to point out its weaknesses and a way it’s being misused by the agencies around us. And as we see now after a while, according to AirBnB and Udacity who stopped using react for their app development, I was right.

(more…)

Dominik Veselý

Dominik Veselý

Software Analyst & Architect

Android Blog - Error handling @Ackee

Error Handling: Make Your Exceptions Nicer

Error handling is hard and every developer I know doesn’t like to do it. It’s almost always the last thing to be done in a new project. You have to handle different kinds of errors – from no network connectivity, to servers  being down, to user-made validation errors (either local or server-side) all of which lead to a cumbersome correcting process for all parts of the app. I would like to show you our approach to this. (more…)

David Bilík

David Bilík

Lead Android Developer