I recently noticed a pretty nice mechanism which may come in handy in some situations - Expressible by array literal.
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.
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 ;)
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.
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...
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 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...
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…
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...
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...
Last week I've made basic comparison between two libraries that will help you layout your interfaces - PureLayout and SnapKit...
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...
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...
Today, we will take a closer look at Rex - ReactiveCocoa extensions. I find Rex pretty helpful when working with ReactiveCocoa, especially creating UI bindings.
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.
Today I’ll tell you about an Action
type that is available in ReactiveCocoa 4.
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
.
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.
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.
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.
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!
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.
Today, let’s take a look at basic aspect of ReactiveCocoa - Signal.
Today we will take a look at SignalProducer class which is provided with ReactiveCocoa 4.
MutableProperty which comes with ReactiveCocoa allows us to track variable’s changes. Let’s take a quick look on how it actually works.
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.
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.
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!
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.
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!
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!
Today’s short post will cover queueing audio files using Swift. In order to do this we will be using AVQueuePlayer.
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.
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.
Hi everybody! I’m Eliasz Sawicki and this blog will be my way of learning things by showing them to you! Enjoy ;)