May, 2014 – Graham Miln

Making Movie Splitter

Miln Movie Splitter is my second product through Miln. It is also one of the fastest products I have developed.

Driven by a simple need Movie Splitter came together reasonably easily. That is not to say it was technically easy but the process from start to finish was clear and uncluttered by too many time consuming decisions.

New Cameras

Megan and I recently upgraded our cameras. We both opted for Canon point-and-shoot cameras after my positive experience with a PowerShot SX200 and my family’s experience with an A3200.

Our new cameras both came with a feature called Hybrid Auto. This movie digest feature creates a fun short movie as you take photos. While in Hybrid Auto the camera quietly captures a few seconds of footage before each photo. Those seconds of footage and the resulting photo are added to a summary movie of the day. The result is a surprisingly entertaining movie of the day’s events.

iMovie Frustration

Megan has been learning to film and edit. Her experiments led her naturally to want to incorporate the Hybrid Auto movie into her short films.

Try as she might, iMovie was unable to provide the frame accurate splicing of the Hybrid Auto movie she needed. The latest iMovie is great for home movies but does not attempt to provide individual frame control over the final product or the source materials.

After some frustration I noticed QuickTime Player and QuickLook both recognised each section of the Hybrid Auto movie as a chapter. This hinted that it should be possible to automatically find and slice the sections based on the chapter information.

An Opportunity to Play

This observation gave me something I have long been wanting. An opportunity to play with Apple’s new AVFoundation framework. This audio/visual library of code from Apple is reasonably new in OS X and iOS. AVFoundation underpins the audio and video handling of modern Macs and iPhones – and I had yet to delve in to see what it offered. None of my current work demanded it.

So presented with an opportunity to help Megan and play with the AVFoundation framework, I could hardly say no.

AVFoundation Fun

AVFoundation was surprisingly welcoming. The abilities I wanted had been added only in OS X 10.9 but that did not matter. Our Macs are up to date and Apple’s free upgrade path to OS X 10.9 means it is difficult to justify supporting older versions for brand new products.

Thanks to my work with Power Manager, I was comfortable with AVFoundation’s demand that most functions are asynchronous. That is, functions start and wander off into the wilderness of your computer only returning when the job is done. It means the calling code needs to be prepared to fire and forget for a while. Start the job and allow the user to get on with something else in the mean time.

The result is a much more fluid experience where you rarely feel any pauses or delays. Get the interface right and even the long running tasks feel fast or inconsequential enough not to frustrate.

Compare this to the traditional synchronous approach that starts and waits for completion before continuing. A synchronous approach is marked by progress bars, blocked documents, and long waits.

A New App

What came out of my experiments was Movie Splitter. An application that does one task really well.

The user interface was the biggest challenge for Movie Splitter. The final look and feel is deliberately light in tone.

Movie Splitter shipped with a document window of three parts. Mostly white, separated by titled sections: Source Movie, Sections, and an Export… button at the base. Simple and fairly unassuming for the brutish work it world save the user.

Miln Movie Splitter’s document window
Miln Movie Splitter’s document window

Apple is tending towards a new look and feel. I have no idea when OS X will change its appearance but I will not be surprised when it does. The signs are there and clear for all who know where to look; a change is on the wind.

When the change comes, I hope Movie Splitter will be well placed to straddle both realms.

Iconic

I have always preferred iconic icons over the photo-realistic and often comic feeling icons common on OS X today.

Miln Movie Splitter’s icons
Miln Movie Splitter’s icons

Icons should be strong and reproducible at many resolutions without great feats of effort; I am not a graphic artist and just can not afford the time such a burden would demand of me. Movie Splitter’s application and document icon still required artwork in many sizes just to produce something that looked good on retina and normal displays.

I am pleased with the final look of both Font Pestle and Movie Splitter’s icons. They feel cut from the same cloth.

Miln icons - cut from the same cloth
Miln icons - cut from the same cloth

Judgement Day

Submitting a new application for inclusion to Apple’s Mac App Store is a moment of mixed emotions. I have encountered too many stumbling blocks to feel positive about the experience. Getting Movie Splitter into the store took longer than normal. The first review led to a second and that delayed the process.

Until an application – a manifestation of your effort and hope wrapped up in a bundle of bits – is reviewed and accepted, it could yet be rejected. Rejection can be absolute with no chance of acceptance. Rejection can be a trivial change or something more subtle but you never know until all the work is done and you are ready to submit the application.

Movie Splitter was accepted into the Mac App Store. That was a good moment. One Megan and I have yet to properly celebrate; traditionally, launches require a decadent slice of chocolate cake or another treat.

Improving and Refining

I submitted a minor bug fix update for Movie Splitter to Apple today. A link to the included help book was not working. The update fixes it. I expect it will be a few days until the new version appears in the Mac App Store.

There are a few improvements I plan to make to Movie Splitter. I want to be able to integrate the application into a workflow. It seems ideal for the purpose but how depends on how Megan ends up using Movie Splitter. I would be tempted by AppleScript but I suspect Automator or another approach will be a greater priority for her. We shall see.

Follow Along

I am trying an experiment to see how effective a social site is for sharing updates and news about an application. In the past I would rely on my own site almost exclusively. For Movie Splitter, I thought an experiment would be fun.

If would like to be kept informed about Movie Splitter, like Movie Splitter’s Facebook page, facebook.com/milneu.