Bright Inventions

How to use different Google configurations for each build config

If you have ever used Google Sign-In, Firebase, or Google Analytics for iOS, you should be familiar with a GoogleService-Info.plist configuration file. Using property list files instead of setting every required property manually in code is convenient, especially while using more than one Google service at once and the configuration grows. But have you ever wondered how this can be adjusted to multiple environments?

What are Code Reviews for?

It is often said that Code Reviews are by far the most effective way to identify bugs in software. However, it is easy to notice that the "code review" term is a bit overloaded and it might mean different things to different people.

Redshift Materialized Views

It is often convenient to create a view upon your normalized schema to join and aggregate the data, especially when it requires a complicated query.

How to publish a library to a Maven repository with the maven-publish plugin

A seasoned developer now and then creates a piece of code that he or she would like to reuse in a different project. When such time comes it is useful to know how to publish a library so that it can easily be incorporated into a different project. In this post I will describe how to publish a Kotlin library to JCenter with maven-publish and com.jfrog.bintray Gradle plugins.

Side effects of transferring iOS application

When the time you are selling your long-developed application comes, or you are about to take over an app, you probably do not bother about the transition process. Although Apple has described the steps in details, you should consider potential consequences before starting the transition.


Not everyone is an extrovert, and for sure not every programmer is, but companies are created by teams, and it is the team that takes the greatest responsibility for running the company effectively. If team members do not collaborate, there is very little chance your business will succeed.

Comparison sorting part 1

Sorting data is one of the most important tasks that computers have been doing since they were invented. Over those years developers have found many ways of doing it.

Use ShouldKO for better assertion messages

Most of us write tests these days. Whether they are unit, integration, end-to-end or performance tests once written we often do not go back to them until they fail. It is thus vital to have a clear assertion message when a test fails.

My motives for MVVM + FlowControllers path

There are many different approaches to building an iOS application. MVC, MVP, MVVM, VIPER, Redux... And surely, you can name many others. I've been writing iOS apps for some time now, and I have noticed that MVVM + FlowControllers approach works pretty well for me. In this post I'd like to focus on "WHY?" I use it over other approaches, "HOW?" I use it in my apps.