Retrieving asset snapshots from Nexus with Gradle

I’ve recently been building a Tizen wearable widget to be packaged with one of our Android apps. This is achieved by bundling the built widget in the assets dir of the APK. The simplest way to develop in this way is to symlink the widget to the right place. Once this goes out for testing though you’re either going to have to move the binary to source control and commit to keeping it up to date, or have your dependency manager handle this for you.
Read more →

In search of the perfect dev process

Professional development is a very different game to the late night hack sessions where we first learn the ropes. The first couple of years of my career were really more about learning how to communicate about code than learning to code. I’ve been involved in a lot of different processes, some very ad hoc, some with buzzword names and a rulebook. All of them have taught me something, but above all what I now know is that there is no perfect process.
Read more →

Running Grunt tasks from Cordova hooks

Cordova hooks are an invaluable tool for customising your build process. The canonical way to write them according to the Cordova documentation is to write them as node scripts for optimum cross platform compatibility. This is sound advice but for more complex projects we sometimes require a more structured tool. The obvious choices in the node space are Grunt and Gulp. In this post I’ll explain how I recently adapted an existing Grunt build to be triggered using Cordova hooks.
Read more →

Contenteditable double word autocorrect bug in iOS webviews

Came accross a very frustrating bug this week, it looks like this: Within an ios webview start typing in a content editable div. Make an obvious typo so that autocorrect makes a suggestion Tab a button or link somehwere else on the page. Autocorrect will insert two copies of the suggested word. I’ve not seen this detailed anywhere else so I have provided a concrete example cordova app.
Read more →

Objective C to Swift case sensitivity gotcha with external parameter names

I hit a slight edge case on a project interopping between Objective C and Swift the other day. The app itself is all Objective C with the test suite in Swift. In this case I was implementing an Objective C delegate protocol in Swift as a test. I’ve distilled the issue down into a simple demo project, so I’ll be using code from that to describe the problem. We start with an Objective C protocol:
Read more →