TL;DR: with colleagues from Ackee we developed RxOauth2, an open source library to handle OAuth with RxJava streams. You may take a look at it directly or read this blog post (part 1 is here) to find out why and how we implemented it.
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?
The Material Design 2.0 comes with couple of new and interesting concepts. One of them is the emphasis on shapes of your components. There is one way to create very nice complex shapes in a very simple way which is called MaterialShapeDrawable. Is it useful? Is it easy to use enough? Let’s find out.
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…)
Reactive programming has become essential for the way we make apps. Most companies today use some sort of a reactive framework, ranging from μFrameworks that implement the most basic Actor model, through hundreds of Future/Promise frameworks with different levels of API richness, all the way up to massive FRP frameworks that introduce a new programming paradigm and shape our application architecture in the process. (more…)
What? Ackee and cooking? Well, not entirely, even though we did show we knew our way around the kitchen at the #dnesnekodim event. However, considering we feel better behind the keyboard, our cookbook will not be about food but about programming. Read about how we prepare the best applications on the Czech scene, what tools we use, as well as all of our secret procedures. (more…)
Why not Java?
The programming world is constantly developing, and so are the programming languages. They tend to become outdated and often aren’t able to compete with modern languages that better suit the needs of the industry. Java has been working hard to keep-up with the introduction of multiple modern features in Java 8, but unfortunately it seems that Android developers won’t be able to use them in the near future (natively). (more…)
Programming for Android may be tricky due to several reasons. One of them is the poor separation of concerns. If some experienced developer is used to coding the “clean” way and now moves to Android, he may be quite confused by the relative mess of the native components inside. Often the Activities, Adapters or Fragments have to mix application logic, data access and presentation within because Android’s architecture doesn’t offer any effective mechanisms to separate them. The result is a loosely coupled, arduously extendable application which is vulnerable to errors, hard to test as well as maintain. Fortunately, Android’s development doesn’t stand still and more new patterns and interpretations of the old ones are appearing to make a developer’s life easier. We’re going to talk about one of them, the MVP pattern.
We briefly mentioned the new mobile application Pokin, which won the 16th AppParade on our blog a month ago. Now the time has come to look at it in more detail. The attractive exterior hides a relatively sophisticated technology, which we developed in Ackee from scratch and thus became pioneers in this area of its kind.