Wednesday. June 06, 2018

I just have watched the What’s new in Swift from WWDC 2018 and I thought it is a great motivation to write a blog post about this talk and summarize what I learned.

And here are some new Swift 4.2 features that I really liked.

Hope you will enjoy! 🤓

SE-0194 Derived Collection of Enum Cases

In case we need to print all available enum values, we had to create some helper variable that includes all enum cases. For example, a static array called allCases. …

Hi! Today’s topic will be about TeamCity and how to provide continuous integration in your iOS project.


I have configured a TeamCity many times and for many projects. There are many advantages of using Continuous Integration system in your project development process. Also, there is a lot of alternatives to TeamCity like CircleCI, TravisCI and many more. But in this post I want to share with you TeamCity experience that I have gained at Bright Inventions.

Every project that we start — we start from configuring Continuous Integration stuff and in our case we use TeamCity to handle that.


Professional development process consists of many puzzles. Some of these puzzles can be: unit testing, choosing good architecture, clean code, continuous integration and many more. In this post I will focus on one of these puzzles — Continuous Integration(CI). An integral part of CI in iOS Development process is a great tool called Fastlane. Fastlane is a powerful engine which handles a number of tasks like: dealing with code signing, creating .ipa files, generating screenshots to AppStore and much more. …

Let’s take a quick look at one of the design patterns that should help us to write a good Object-Oriented code. The basic assumption of Strategy Pattern is that you can define many implementations that will conform to the protocol.

Take a look at a simple example that can be used on iOS applications.

Define protocol

Firstly, create a protocol which contains a method. In our case it will be:

protocol ImageDataRepresentation {
func dataRepresentationFrom(image: UIImage) -> Data?

Create strategies

Ok, most of the iOS apps use an UIImage to represent images in applications. The UIImage instance can be used to produce two…

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.

Get started

First of all we need to check if our device supports force touch events. Then if our device is familiar with force touch we can easily register our UIViewController for force touch events. Take a look at this snippet:

As you can see the above code uses the traitCollection property. It is available in every UIViewController and provides information about controller environment. In documentation we can read about it:

A trait collection encapsulates the…

With the beginning of the iPhone 6s, Apple has introduced a 3D Touch mechanism which is very cool thing. The 3D Touch is also available on the newest iPhones 7. Nothing indicates that in the future Apple devices will run out of that feature so, here is a quick tutorial on how to improve your app using the one of the three main features of 3D Touch.

Modify your Info.plist file

  1. Add to your Info.plist file a special key called UIApplicationShortcutItems. It should be an array.
  2. Add items to UIApplicationShortcutItems array. Items should be a dictionary type.
  3. Put info for each item.
  4. There are…

In this article, I would like to describe how to set up a proxy using Charles desktop app. I believe that many of you work with API or consume some REST Service. If haven’t heard about proxy yet I believe the knowledge from this post will be useful in your future development. The following example concerns an iOS environment and configuring at the macOS system.

What the proxy is?

To tell you what the Proxy is I use the definition that I found in Charles documentation

An HTTP Proxy is a server that receives requests from your web browser and then makes the request…

Kamil Wysocki

iOS programmer & new technologies enthusiast 💻 | F1 follower 🏎️ | Weightlifting hobbyist 🏋️ | Aspiring guitar player 🎸 |

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store