Bright Inventions


Do More with What You Have

Let us assume we work diligently. But does it also mean we work effectively and efficiently? Do we spend eight, seven or (at least) six or five hours a day w...

productivity, programming, business

To code or not to code

Is there always a good moment to code? Have you ever asked yourself this kind of question? Have you ever felt that maybe you should take a break instead of w...

programming, coding, work-life, balance

Bright Devs disAPPearing in Gdańsk

It was pleasure for us to take part in Summer Course “DisAPPear in Gdańsk”. Many thanks to Board of European Students of Technology for inviting us. We could...

programming, coding, workshops

3 Reasons for my affair with React-Native

I’ve been an iOS developer for some time now and most of my previous posts were touching the aspects of iOS platform. However, I have to admit something… I’...


It might be worth it

Today you can find Bright Inventions at Trójmiejskie Targi Pracy and this marks a significant milestone for us. We are now getting really serious about growi...


Redux - How do I understand it?

When you meet Redux for the first time, it often seems a bit overwhelming at first. However, if you want to work with redux effectively, you have to understa...


8 steps to keep your API sane

It is pretty well known what a backward compatibility means for our APIs - once something was deployed to production and used by the users, we may not change...

api, design

Do or do not. There is no try.

LUKE: Master, moving stones around is one thing. This is totally different! YODA: (irritated) No! No different! Only different in your mind. You must unlear...

programming, coding, teamwork

Professionals also make mistakes

We have nowadays many IT professionals, but let us think for a second what being an IT professional actually means. Is it only about being very good at progr...

coding, programming, selfdevelopment


3D Touch - Peak&Pop feature.

In my previous post I wrote about adopting UIApplicationShortcutItems in your app. Now it’s time to implement Peak&Pop - a feature provided by 3d Touch.

iOS, swift, 3d touch

PureLayout vs SnapKit - Great confrontation

At first, let me clear something out. I’m heavy PureLayout user. I’ve been creating my UIs in code for some time now and it’s not looking like I’m going back...


ReactiveSwift - Manage your memory!

Memory management is a pretty important issue when talking about any kind of system. You can’t pretend that your resources are unlimited, and give them out n...


ReactiveCocoa UI bindings with Rex

Today, we will take a closer look at Rex - ReactiveCocoa extensions. I find Rex pretty helpful when working with ReactiveCocoa, especially creating UI bindin...


ReactiveCocoa 4 - CocoaActions

CocoaAction is a wrapper around Action type that is available in ReactiveCocoa. (Here you can read more about Action). We use CocoaAction to bind our Action...


ReactiveCocoa 4 - Events

Understanding signal events in ReactiveCocoa is a must. We can’t effectively use signals and signal producers if we don’t know what will happen after certain...


Open source by default

Using open source code in projects is a common thing. I do it. Most of us do. But what is “open source” by default? Well, I’ve heard about this for the first...


Creating an UIImage using ImageIdentifiers

Hi! In my first post I want to share with you some cool tip which I watched in ‘Swift in Practice - Apple WWDC 2015’ Alex Migicovsky presentation about using...

iOS, swift

A fast way to connect to the web proxy

Configuring Android device to connect to the web proxy running on development build machine is tedious. You have to make the same steps over and over again o...


Fetching contacts with CNContactStore

Since iOS 9.0 we have a new nice method of fetching and saving contacts - CNContactStore! Today I will show you how to create a simple UITextField that will ...


Heartbeat button

Hi! Today I will show you how to create a simple heart button that will simulate a heartbeat upon each tap. You can find an example project on my Github.


ReactiveCocoa 4 - MutableProperty

MutableProperty which comes with ReactiveCocoa allows us to track variable’s changes. Let’s take a quick look on how it actually works.


My thoughts on - StatefulViewController

I had a chance to play a little bit with a nice pod that is called StatefulViewController, created by Alexander Schuch. StatefulViewController works with bot...


Custom XCode key bindings

When I started writing Swift code, I found out that my beloved IDE(AppCode) for Objective-C, was not doing as well as I thought it would. Moreover, I’ve noti...


My thoughts on - Whisper

Lately I’ve come across a nice pod which makes in-app messaging easier and decided to give it a quick look. I’ve created a test project in order to see how t...


Swift files generator

For some time, I have been creating iOS apps without using storyboards at all. Because of this fact ,creating screens in the application is connected to some...



Logging with Retrofit 2

Retrofit has been updated to 2.0 version. It’s a major change in the one of the most popular library for Android platform.</br> A lot of things have be...


3 tips for iOS Calabash beginners

Have you ever felt that your app needs UI tests? Are you tired of checking behaviours of your application again and again? Consider using Calabash!



Lately I’ve spent some time wrtiting an app for myself. It is supposed to let you create tasks, mark them as done/undone and then track your progress. I’ve c...


[CocoaHeads Tricity] Automate your iOS deployment a bit

Here come the slides from a talk I gave at the last Cocoaheads Tricity meeting. It’s titled “Automate your iOS deployment a bit” and shows how we approach bu...

iOS, CocoaHeads, GYP, generate-ios, automation, TeamCity

iOS layouts for web developers

Recently I had an opportunity to dive into an iOS development and while I enjoy it, I miss a lot of things from the web development world. I was looking for ...


Anchor child element click

I had to solve a seemingly trivial bug in an angularjs based application that turned out to be more interesting than usual.

html, javascript


Reactive Cocoa presented on CocoaHeads Tricity

On Thursday 18th December 2014 I gave a small presentation about ReactiveCocoa to the local Cocoaheads Tricity group. Cocoaheads is a group of passionate iOS...

iOS, ReactiveCocoa, CocoaHeads

Integrate slf4j with Crashlytics

As I mentioned in my previous post having meaningful log entries comes handy during development. When an app reaches beta testers as well as goes live it’s e...


Playing with Material Design, Toolbar and Palette

People around the world are waiting for Google to push Lollipop to theirs smartphones. Material Design completely changed the appearance of Android, and did ...

android, materialdesign, android-support-library

InjectionForXcode meets command line

Meet Injection Helper, a small utility for making InjectionForXcode more friendly to use. Get rid of superfluous messages and a flood of XCode windows opened...

ios, appcode, xcode, injectionforxcode, gem

Attaching ShareJS to select HTML element

One thing that I found missing in ShareJS library was the possibility to attach live concurrent editing to HTML <select> element. Out of the box it wor...

sharejs, javascript

ShareJS 0.7.3 working example

I’m experimenting with ShareJS library, which is intended to allow live concurrent editing like in Google Docs. The demo on their website seems incredibly ea...

sharejs, nodejs, javascript