The Swift Programming Language

The Swift Programming Language

Posted on 10 June 2014 | Reading time: 4 minutes

This year’s WWDC Keynote, the main event at Apple’s yearly developer conference, has been mind-blowing. The company has released an impressive amount of tools and APIs for iOS 8 and OS X 10.10 Yosemite. They say it’s the biggest release since the iPhone SDK was originally introduced… and I believe that! I’ve been following the WWDC for a few years now, and every time Apple is able to surprise me. Most of the Keynote has been quite standard: updates about how the company is doing, new operating system for the Mac with fancy new features and UI, new operating system for mobile devices (iOS 8), etc. But then something happened: the last 20 minutes or so have seen Craig Federighi (Senior VP of Software Engineering) announce a bunch of new frameworks and tools for developers. So what? - you would say. Well, what has really been a surprise to all (you can tell by the loud ‘wow’ from the on-site audience at the Moscone Center, where the conference was held), has been the introduction of a new programming language for iOS and OS X development, Swift. [...]

Working with Legacy Code

Working with Legacy Code

Posted on 09 May 2014 | Reading time: 1 minute

Every software engineer feels a sense disgust when hearing the words legacy code. Strictly speaking legacy code it’s code you “inherit” from someone else, however, the term is more broadly used to indicate a piece of software that’s no longer maintained. Often it’s code that, although deprecated, is still in use because of dependencies spread across a large system. Anyway, Michael Feathers has a better definition [...]

How to Sync Xcode Code Snippets via Dropbox

How to Sync Xcode Code Snippets via Dropbox

Posted on 02 September 2013 | Reading time: 2 minutes

Disclaimer: This post is based on an answer on StackOverflow to the question “How Can One Transfer Xcode 4 Code Snippets From One Machine To Another?”. I’ve tried the following method myself and it works like magic. I’m also using it to sync Xcode’s custom colour schemes and other user-specific data across my Macs. Xcode’s Code Snippets are located in ~/Library/Developer/Xcode/UserData/CodeSnippets/. If you want to have all your code snippets synchronised between multiple Macs, you can use Dropbox to do so. [...]

The App Store Business: do we need Paid Upgrades or can we live with In-App Purchase only?

The App Store Business: do we need Paid Upgrades or can we live with In-App Purchase only?

Posted on 27 August 2013 | Reading time: 5 minutes

Since the introduction of the App Store, and even more when the Mac App Store arrived, a lot of discussion has been made around apps’ pricing models. Only last year a debate about the need for paid app upgrades raised among developers, but it eventually fade off… until a couple of weeks ago, when Apple released Logic Pro X as a separate, full-priced, app - deprecating the existing Logic Pro on the Store. With this launch, Apple has reclaimed its intention of not allowing any paid upgrade to apps. Moreover, by a quick analysis of the apps featured by Apple in the last few months, it also appears that they prefer the freemium model over paid apps in general, although most of theirs aren’t actually free. Games are the only kind of apps that actually sees a major featured rate even when they’re in sale or free. What developers can do then to guarantee themselves an income after the initial sale then? [...]

The best ways to integrate external repositories into your projects

The best ways to integrate external repositories into your projects

Posted on 09 August 2013 | Reading time: 11 minutes

When I started using version control systems (VCS) a few years ago, I’ve searched for the best way to integrate external repositories into my own. At that time, everyone I knew was simply copying the contents of those repositories into their project and eventually maintain that code alongside their own, often without giving anything back when fixing bugs in opens source libraries. What I was looking for, instead, was a way to integrate such libraries so that it would be trivial to get updates or to contribute back to those projects; but most of all, I wanted to share reusable components across multiple projects in a way that allowed me to only maintain the shared code once and get updates everywhere instantly. It turns out that all the most used VCS support such think in a way or another, but, as you’ll see by the time you finish reading this, there also are tools that do not strictly require a specific VCS in order to accomplish the same task. [...]