Swift 3 conversion and refactoring your project

A few weeks ago Apple announced the deprecation of Swift 2.3 starting with the release of Xcode 8.2. Reason enough to start the Swift 3 conversion of the Videoland iOS app. As the project contains many files, this couldn’t be less than challenging. The project was setup in the end of 2014, starting in Swift … 

 

Rich notifications with images or GIFs with iOS 10

Rich notifications with iOS 10 brings us some nice new features to add to our apps. It’s possible to create rich views within the detail view of a notification, which you can create with so called Notification Content Extensions. To simply display an image or GIF you can use the Notification Service Extension which I … 

 

Spotify Apple TV 4th gen Application

Many, many users are requesting an Spotify Apple TV 4th gen Application. I’m an active Apple TV user and I really missed it as well. So, as an iOS developer I decided to build it myself. It wasn’t as easy as I hoped before I started this project. I created the Apple TV application itself quite fast, … 

 

How Buienradar got 800 reviews with 4+ stars

Last May the new Buienradar app went live (more here). With over 2 million users each month, it’s one of the biggest dutch apps. This brings the possibility to create campaigns targeted on a large group of users. A popular campaign in apps is convincing users to review your app. We did have a successful … 

 

Rebuilding the new Buienradar iOS App

The new Buienradar App is now available for download in the App Store here. The last few months I’ve been very busy building the new Buienradar iOS app. It was build before entirely in Objective-C, had some redesigns and the codebase was getting full of extensions on top of the base application. It was time … 

 

Optional protocol methods in Swift

In Swift it’s kind of unsupported to implemented optional protocol methods. You can, which is ugly, use the @objc syntax: @objc protocol MyProtocol { optional func doSomething(); } class MyClass : MyProtocol { // no error } Another disadvantage here is that structs are unsupported, as you’re bridging for Objc. Using protocol extensions to create … 

 

Launch time performance optimization

Time for a small post about launch time performance optimization. I did some research in improving the launch time of my current app. I started creating a main.swift file, removed @UIApplicationMain from my AppDelegate and added this line to my main.swift: let StartTime = CFAbsoluteTimeGetCurrent() Resulting in this complete file: // // main.swift // // … 

 

Moya with SwiftyJSON using Moya-SwiftyJSONMapper

I’ve just released Moya-SwiftyJSONMapper which makes it really easy to map MoyaResponse to a struct or model inheriting from the ALSwiftyJSONAble protocol in combination with SwiftyJSON. Model creation with SwiftyJSON After you’ve created your model: import Foundation import Moya_SwiftyJSONMapper import SwiftyJSON final class GetResponse : ALSwiftyJSONAble { let url:NSURL? let origin:String let args:[String: String]? required … 

 

ALReactiveCocoaExtension for ReactiveCocoa

As many posts here already described, I’m a huge fan of ReactiveCocoa. It’s very flexible and gives me the opportunity to create reusable solutions through custom signals. As I’m using it daily, I’ve created an extension with some useful functions and uploaded it to Github. It includes methods like subscribeNextAs, doNextAs and flattenMapAs, which give … 

 

ReactiveCocoa and cancellable delayed blocks

Using ReactiveCocoa in your projects can bring up some really nice solutions. I’m using it a lot and I’m creating more and more custom RACSignals for cool solutions to problems. One of these solutions is cancellable delayed blocks cancellable delayed blocks Sometimes you want to create delayed blocks. Blocks which will fire after a certain … 

 
Follow on Feedly