Promises and Ads

A promise is a really simple and easy to understand pattern. In general, it's just an object that represents a result of some action which is not finished yet. That's all, nothing more.

This simple concept reduces a complexity of asynchronous code a lot. Imagine that you don't have to write these awful nested completion blocks - every operation is synchronous. You just ask your service to return data - and it returns you something to work with.

Using UIWebView with VIPER

I was working on Rambler.Mail project for the whole year. It's a client for one of the most popular Russian e-mail providers. The application itself is rather ordinary, it has the very same features you'd expect from an e-mail application - and nothing more. However, I spent a lot of time building a solid and maintainable architecture for both business logic and presentation layers.

One of the most interesting features was a rendering engine for displaying e-mail content. I won't dive into implementation details - all you need to know at the moment is that we used UIWebView and WebViewJavascriptBridge - a great library for bridging native code and javascript. The result system was monlithic, difficult to understand and reason about - undoubtedly not the best piece of software I've ever built.

Before I had a chance to refactor it I was switched to another project. To my great surprise I've encountered there a very similar task - I had to build a rendering engine for displaying blog posts. This time I was prepared well - I already knew how NOT to build such systems. So, instead of spaghetti code, I've used another approach - the cell containing UIWebView was built using the VIPER architecture.

«A Mind For Numbers» in a Nutshell

This post has appeared primarily thanks to Sergey Teplyakov blog. Firstly his post about Barbara Oakley book took my attention. Secondly - the practice of writing brief reviews of noticeable materials seems like a good investment of time and a way to organize thoughts.

My meeting with Barbara Oakley was just a matter of time. Some of my friends have taken the famous Learning How to Learn course on Coursera which is considered the most viewed ever. I always beware of such kind of humanitarian materials - usually you wouldn't be able to find there anything but numerous repeats of obvious with rare inclusions of interesting thoughts.

However, the feedback was too good to keep ignoring it. Luckily, I came across a review of Barbara Oakley book «A Mind For Numbers». This book claimed to have the same content as aforementioned course.

Generamba

TL;DR

This post is about our brand new code generator suited for iOS development. Some of its features are:

  • Support for both Objective-C and Swift.
  • Powered by liquid template engine.
  • Has a flexible template management system.
  • Cocoapods integration.