A 15-post collection
2 months ago

SwInjecting a large project

Swift   swinject   di   iOS  

If you know me, you'll know I'm a bit of a fan of Dependency Injection frameworks and when it comes to Swift projects, my goto framework is Swinject. The documentation on Swinject's Github page is pr…

3 months ago

Quick and Nimble - Sometimes...

iOS   testing   xcode   BDD  

Some time ago I wrote a post trashing Kiwi (At least I'm honest about it!), a UI testing framework the uses dynamically generated tests to validate your iOS apps. Kiwi follows a BDD style of testing a…

a year ago

Firebase and Google Sign - patching Google's code

iOS   Google   Firebase  

I have a project I've been messing around with for a while and recently I decided to re-write it in Swift. As part of doing this I took a look at the technologies I had employed for the server, asking…

2 years ago

CocoaPods vs Carthage - Part II

carthage   cocoapods   iOS  

Recently I penned a post about what I went through getting CocoaPods going on a project recently vs what would be the case if the project had used Carthage. I suspected it might provoke some discussio…

2 years ago

CocoaPods vs Carthage

carthage   cocoapods   iOS  

Update As a follow up to this article, I wrote a more detailed opinion piece on why I prefer Carthage. Hopefully it answers some of the questions and criticisms in the comments. Original article Recen…

2 years ago

Story Teller v1.7

api   iOS   tvos   logging  

A new version of Story Teller is now available. Functionally it's the same as previous versions, but with the following changes: Support for Swift class and protocol naming conventions. ie. MyProject.…

2 years ago

What is DI?

di   iOS   framework   alchemic  

Actually this is not Yet Another DI Article (YADIA - see anyone can create an acronym!). This question has been asked many times in many places, the most recent one I've noticed being a question on L…

2 years ago

Creating Objective-C modules

objective-c   iOS   alchemic   framework  

For some time we have been able to import system frameworks as modules into Objective-C code. For example, to use Foundation, the Objective-C runtime, XCTest frameworks and my DI framework for testing…

2 years ago

Objective-C's version of Swift's '_'

iOS   objective-c  

Sometimes you want to create a variable but not use it. Developers using Swift will be familiar with this concept. For example let _ = createSomethingIDontUse() But trying this in Objective-C genera…

2 years ago


iOS   Swift  

A few months ago myself and 5 other developers started a brand new project for one of our clients. We decided to use Apple's Swift language instead of Objective-C as both the client and ourselves were…

3 years ago

Alchemic - now with Swift

Swift   alchemic   iOS   announcement  

Yep. Just spent the last month or so playing with Swift for the first time and modifying Alchemic so that it can be used in Swift projects. It proved an interesting project. In some respects Swift is…

3 years ago

Carthage - finally a good dependency manager for iOS

iOS   programming   carthage  

I've had to use Cocoapods - I don't like it. I don't like the way it stomps all over your projects files (and the ever-famous merge hell it creates), it's heavy dependency on Ruby, and the way it inte…

3 years ago

Quick tip: hiding deliberate selector mistakes

iOS   objective-c   macros   tips  

Somethings we want to enter a selector in Objective-C that will trigger an warning/error in the compiler. It might be a selector for a different class, it might be an invalid selector we are using for…

3 years ago

Putting my code where my mouth is!

iOS   logging   programming  

For some time I've been going on about how I dislike the way that logging frameworks work. My last post outlined what I wanted in a framework. Today I've pushed up v0.2 of my new framework: Story Tell…

4 years ago

Kiwi - BDD with an identity crisis

BDD   kiwi   testing   iOS  

BDD or Behaviour Driven Development is a hot term with management. It’s sold as a methodology which directly maps the requirements of the business to working code via the use of “Stories”. The basic f…