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?
Ethereum smart contracts have a wide variety of use cases, but until now it has been quite difficult to call them from your iOS app. Well, that has changed! Just by using Ethereum iOS Dev Kit and EtherKit, you can get started in no time. At the end of this tutorial you will be able to call any public contract function that is defined in its ABI (Application Binary Interface). (more…)
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.
Every app needs localization even when it’s small and “single language” app. You never know when another language could be added. Even when you’re totally sure there will be no more languages in the app, you should never have strings written directly in the code for many reasons. So you can create some custom enums, constants, whatever or you can use standard default localization keys. Guess what’s better. 😏 (more…)
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.
As you might know from our previous blogs, our primary language for writing backends is Node.js. One of the main reasons why we have chosen this technology was that we started to feel the limits of all the other classic monolithic applications, where all the basic logics, renders, request processing and so on were done in one codebase. It was rather limiting not only technologically, but also from the human resources point of view. Also in the area of our PHP “ends”, according to our recently finished projects, we used to divide the final depicting layers into the individual thin client written in React. But we wanted to go even further; dividing the backend into multiple smaller and self-maintaining parts.
A few months ago, we decided to make a small revolution in our stack – to change the dependency manager from Cocoapods to Carthage. This decision, however, gave us one big disadvantage: it became necessary to build all the dependencies before development. The amount of time developers spend on building all of the dependencies is very high, therefore it is necessary to reduce it. So let us begin, and see how we can accomplish that.
In January 2018 we hosted a Fake news themed hackathon at our place in Karlín. We organized this nearly 24-hours-long meeting together with Endowment Fund for Independent Journalism and Open Society Fund, so that the programmers could cooperate with data analysts, designers and journalist to enrich their own projects.
All we wanted for our 5th birthday was to spread happiness all around, so we had set an open call for non-profit organisations. We wanted to create an app that would support selected non-profit organisation on a long-term basis. And the winning project was Muzzle Bear from a Centre for Children with Hearing Impairment Tamtam.
In one of our last posts we showed you how to make your swift code more sexy with a custom conditional assignment operator. Today, let’s look at another simple and cool improvement of dev’s daily life. It’s going to be about collections, and their well known method