WELCOME TO OUR TECH BLOG

We are a team passionate about Ruby on Rails and new web technologies.

Test ajax calls in react component lifecycle

While developing React application you will most likely need to fetch some data from API. If you're using class components a common place to do this is componentDidMount lifecycle method. But then you might be wondering how to properly write unit tests for it? In this blog post I will show basic examples how to write tests for HTTP calls inside class methods. ... Read more
While developing React application you will most likely need to fetch some data from API. If you're using class components a common place to do this is componentDidMount lifecycle method. But then you might be wondering how to properly write unit... Read more

Pair programming with Docker, SSH and TMUX

Pair programming with Docker, SSH and TMUX aka. distributed pair programming Pair programming is a well known practice in agile development. The principles here are simple: sit next to your colleague, let them write the code (the driver) while you will be planing/reviewing/instructing (the navigator). This practice separates the thinking processes of implementation and strategy from each other. It helps to focus on one particular aspect at the moment. Programmers all over the world are pairing to gain experience, increase productivity, solve complex problems, debug, refactor, etc. ... Read more
Pair programming with Docker, SSH and TMUX aka. distributed pair programming Pair programming is a well known practice in agile development. The principles here are simple: sit next to your colleague, let them write the code (the driver)... Read more

Make Android Runtime Permissions easier with Dexter

In Android Marshmallow Google introduced new permissions system - now we request permissions in runtime. This approach is safer for the user, but for developers it is more code to write. We need to check if user willingly grants access and, if not, ask for it. Of course, old <uses-permission> in app manifest stays the same as before. Now there are two places serving nearly the same purpose. Next, call requestPermission() method (it’s required in our Activity class) and write callback with the results. Don’t forget about request code, same for defined methods! What if out app requires a really big amount of permissions? Activities can be overloaded with that logic and this causes a mess. Don’t worry - community comes with help.  ... Read more
In Android Marshmallow Google introduced new permissions system - now we request permissions in runtime. This approach is safer for the user, but for developers it is more code to write. We need to check if user willingly grants access and, if... Read more

Rails Router - 5 uncommon features you will fall in love with

There is no doubts that the router is a foundation of every Rails application. Usually, it is full of single routes and resources. However, as your application grows and becomes more complex it is very tough to maintain your routes.rb file clean and readable. Thus I would like to present you a few features of Rails Router that will help you to grasp the nettle. ... Read more
There is no doubts that the router is a foundation of every Rails application. Usually, it is full of single routes and resources. However, as your application grows and becomes more complex it is very tough to maintain your routes.rb file clean... Read more

How does BitCoin work?

BitCoin is gaining more and more popularity nowadays, but what are the foundations of this success? I will try to explain in this post. ... Read more
BitCoin is gaining more and more popularity nowadays, but what are the foundations of this success? I will try to explain in this post. Read more

Add some flavor to your application - product flavors configuration.

In the course of writing Android application, it often happens that we have to build more than one application from the same code base. During the development process, these are the most common versions supported in different environments - test and production. In addition, we sometimes need a free and paid version - another 2 versions of the application. I have recently met the issue of creating another instance of an existing application that covers nearly 95% of the functionality. Creating a completely new project on the basis of the previous one would not be a good solution because some of the modifications or improvements would have to be done twice. You can do it differently - you can use product flavors. In this post, I would like to show you how to efficiently create multiple flavors in different dimensions as well as manage source sets efficiently. ... Read more
In the course of writing Android application, it often happens that we have to build more than one application from the same code base. During the development process, these are the most common versions supported in different environments - test... Read more

Geocoder - a way Rails support geocoding

A few weeks ago I run a spontaneous trip to Toruń. Once I reached my destination I realized how easy it was to find a proper place to park or to plan a short coffee break while driving. All thanks to a small mobile device stuck to the front glass of my car. I realized that geolocalization is a crucial part of many services in a nowadays world. Let’s see how Rails allows you to make use of this technology.... Read more
A few weeks ago I run a spontaneous trip to Toruń. Once I reached my destination I realized how easy it was to find a proper place to park or to plan a short coffee break while driving. All thanks to a small mobile device stuck to the front glass... Read more

Simple Authentication with Bcrypt and Warden

Whenever you think about solving authentication problems in Rails applications, the default solution is Devise. It’s flexible, provides you with various strategies and helpers out of the box, and it should Just Work™. ... Read more
Whenever you think about solving authentication problems in Rails applications, the default solution is Devise. It’s flexible, provides you with various strategies and helpers out of the box, and it should Just Work™.  Read more

Code diet with Sugar ORM

Data storage is a very important topic not only for backend developers. From the mobile developer point of view, most of the work is communication with REST API, but we sometimes need to implement a classical database in our application. ... Read more
Data storage is a very important topic not only for backend developers. From the mobile developer point of view, most of the work is communication with REST API, but we sometimes need to implement a classical database in our application.  Read more

First steps in RubyMotion

RubyMotion is a technology that allows to create cross-platform applications using the Ruby programming language. Target operating systems are Android, iOS, OS X, as well as Watch OS and tvOS. ... Read more
RubyMotion is a technology that allows to create cross-platform applications using the Ruby programming language. Target operating systems are Android, iOS, OS X, as well as Watch OS and tvOS.  Read more
Join our awesome team
Check offers

Work
with us

Tell us about your idea
and we will find a way
to make it happen.

Get estimate
We bring your vision to reality
Get estimate