Hire Us

Railsware Blog

on product management, engineering, design, culture and many more...

Creation of pure Swift module

Creation of pure Swift module

If you have already started playing with swift, you probably thought about how to include third party libraries into your project or how to distribute yours. Apple provides a mechanism to distribute code via frameworks (eventually, for iOS too), so making a custom framework, which will include both ObjC and …

Global variables in Swift are not variables

Global variables in Swift are not variables

The title sounds pretty strange, but I will explain what it means. While playing with Swift I’ve faced weird behaviour, a feature in fact, which isn’t covered in documentation (at least I didn’t find any references!). UPD: shame on me, how could I miss this? Global constants and variables are …

Creating and using Clang plugin with Xcode

Creating and using Clang plugin with Xcode

This tutorial describes how to create Clang plugin and covers the next things: environment setupbasic plugin setupsetup Xcode project for plugin developmentwarnings reportingerrors reportingXcode integrationinteractive hints for errors/warnings riddance tl;dr Clang Rocks!!! You can find the plugin here. Intro While working on BloodMagic, I realised that it’d be nice to …

Dependency Injection in Objective-C with Blood and Magic

MVC is not sufficient Every day iOS apps become more cumbersome and bulky, which makes MVC approach not sufficient. We are seeing more and more classes for different purposes: app logic extracts into services, models extends with decorators, view separates into partials and so on. And – what is more …

Forward Declaration In Your Objective-C Projects

Using Forward Declaration In Your Objective-C Projects

If you’re new to Objective C and iOS development, this topic will explain some important things about Forward Declaration and will help you understand the concept behind it. So, let’s skip the theory and jump right into a small example to see what it’s all about. We’ll create a small …