Eliasz Sawicki

Eliasz Sawicki

iOS developer from Gdansk

Expressible by array literal

I recently noticed a pretty nice mechanism which may come in handy in some situations - Expressible by array literal.

3 top habits to improve the cooperation with clients

There is always a room for improvement regarding the service that we deliver to our clients. In this post I describe 3 habits that I consider really helpful in order to work effectively with clients.

From React to React-Redux in a few steps

In this post I'm going to focus on connecting `React` components with `Redux`. If you are just starting out with `React + Redux` or you have already worked with these before, but want to make this concept a bit clearer then feel invited to read this post till the end ;)

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.

The human side of software development

Getting into the world of software development can be a really demanding task. Introducing clean code, providing tests to your solution, using the right tool for the job, keeping up with latest trends... these are all things that you were most probably told about at the time that you barely knew what programming was. It seems that many people tend to neglect the side of development that hasn't got too much to do with machines...

React Native - 4 steps to improve your workflow as mobile developer

A developer needs tools that support her/his workflow to be fully productive. Well, I guess that this statement fits to any profession that you can think of. It is really important for me to feel that the environment...

React Native - The things that you should be aware of before coming onboard

React Native is a neat piece of technology that I get along pretty well with. Creating multiplatform apps using shared codebase and having a great feedback loop...

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…

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 understand how it works...

Are your views dumb enough? — A way to run your tests without simulator

Hi! As you can see, the title of this post consists of two parts. “Are your views dumb enough” refers to managing code between your classes in project...

PureLayout vs NSLayoutAnchor - Great confrontation

Last week I've made basic comparison between two libraries that will help you layout your interfaces - PureLayout and SnapKit...

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 to...

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 no matter what. When working with...

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 bindings.

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 Actions to GUI controls. Let’s see a quick example of how it works.

ReactiveCocoa 4 - Action

Today I’ll tell you about an Action type that is available in ReactiveCocoa 4.

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 event is received. We distinguish two kinds of events that you can send through signals - terminating and non-terminating. There are three kinds of terminating events: Failed, Interrupted, Completed, and one non-terminating - Next.

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 time at MCE Conf 2016 - “Open by default” panel. It’s an idea to make software open by default and close it only if needed. There are many reasons to close it of course, but sometimes we do it unnecessarily.

MCEConf 2016 day 2

Hi! Second day of MCE3 is over. It has been a really nice day where and once again I had a chance to speak with people passionate about what they do. Let’s go through my today’s schedule.

MCEConf 2016 day 1

Hi! Yesterday I was at MCE3 2016 conference and it was my first time I’ve ever attended this kind of event. I didn’t quite know what to expect, but after all I got more than thought I would. Let’s go through with the agenda I’ve chosen for myself.

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 be responsible for fetching a contact for you!

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 - Signal

Today, let’s take a look at basic aspect of ReactiveCocoa - Signal.

ReactiveCocoa 4 - SignalProducer

Today we will take a look at SignalProducer class which is provided with ReactiveCocoa 4.

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 both UIView and UIViewController, and allows you to introduce placeholders for their different states: Loading, Error, Empty or Content. Everything is based on an intuitive protocol and after providing your placeholder views and implementing required methods everything works like a charm. You can find this pod on Alexander’s github. I’ve looked into the code of this pod and I found a few things that I want to share with you today.

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 noticed that XCode did better job in terms of handling CocoaPods, autocompletion, debugging etc. It was more than enough for me to say sorry to XCode and leave AppCode for some time to let it solve it’s problems. I really miss it’s Objective-C features like code refactoring and it’s ability to generate code, but there is no place for sentimentality. Currently I’m proud user of XCode 7.3 beta and I really like it’s new autocompletion feature.

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 the pod behaves and my first impression was… “That was easy!”. If you want to find out how to use this pod, check out Hyperoslo’s github, which shows how easy it is to start sending your messages!

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 repetitive steps. You create a ViewController, then a View which will be presented in the controller. You want a PageViewController? Create one, set up ViewControllers that will be presented inside it. After some time, you can recognise a pattern and prepare a bunch of code snippets that will do the job for you. Or… You can prepare a code generator, that will generate all the files for you. This will allow you to skip the part of creating files and filling them with code templates. In this blog post, I will tell you about creating my first code generator.

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!

Data transfer between Apple Watch and iPhone

Today’s post will cover basic data transfer between your iPhone app and Apple Watch app. Let’s assume that you have already created an Apple Watch extension in your project and you want to transfer some data to your watch. As an example, we will be sending Event object to our watch, so let’s have a look at Event class!

Queueing audio files with AVQueuePlayer

Today’s short post will cover queueing audio files using Swift. In order to do this we will be using AVQueuePlayer.

EventKit - Gaining access to calendar events

If you want to gain access to your calendar events it’s time to use EventKit. EventKit allows you to do multiple operations with calendar events and reminders. In this post I will cover gaining access to existing events in your calendar.


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 called it “Habit Tracker” and it is available here. While writing this utility I came across a few interesting issues and this blogpost will cover one of them.

Git Daily Update

Recently I’ve started playing with “git log” command in order to simplify my daily update routine. After some time I found a command that fills my needs.

Hello world!

Hi everybody! I’m Eliasz Sawicki and this blog will be my way of learning things by showing them to you! Enjoy ;)

rss facebook twitter github youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora