My name is Jake Marsh.
I'm a developer, designer, and writer.

Subscribed via Push Notifications. You can also subscribe via RSS or Twitter.

Subscribe via RSS or Twitter.

Subscribe via Push Notifications, RSS or Twitter.

▸ Subtle Design Changes in iOS 5

I always find it fun to try to spot all the tiny design differences in Apple's user interfaces whenever a new update comes out.

A blog called Design Archive has put together some comparison shots of iOS 4 and iOS 5 highlighting some of the more fun differences. Normally I would quote the site I'm linking to, but this one is in Japanese, and Google Translate doesn't exactly offer grammatically readable sentences either, so here's a few of the fun ones they found:

Badge Shadow

Home Icon Space

I love that Apple's designers revisit things like this so often.


▸ CSS4 Selectors

Looks like the CSS Working Group has published their first working draft of how they'd like CSS4 selectors to work.

Here are some of the highlights:

    var el = document.querySelector("#foo"); // returns first element with ID of foo
    var bar = document.querySelector(":scope > p", el); // returns equivalent of "#foo > p"
li a:matches(:link, :hover, :visited)
a:local-link /* Matches anything that links to the current page */
a:local-link(0) /* Matches any link that is the same domain */

There's tons more and David Storey does a great job of explaining stuff in his blog post.


▸ Developer Color Picker

Yes. This is so helpful it's not even funny. This little baby comes to us thanks to Wade Cosgrove.

A custom color picker designed specifically for developers. Makes getting colors out of Photoshop/Acorn mock-ups quick and easy. Currently supports NSColor, UIColor, CGColorRef, CSS and HTML styles.

Screenshot

Supplements the features of the standard color picker in OS X. Simple and perfect. Download it now.


▸ Accessing Image Properties Without Loading the Image

I see this type of stuff a lot in other people's code:

UIImage *image = [UIImage imageWithContentsOfFile:@"lolcats.jpg"];
CGSize imageSize = image.size;

It's certainly not wrong, but you are incurring a huge performance and memory usage hit just to get the width and height of an image. Enter the CGImageSource... methods.

As of iOS 4, the SDK includes a better solution in the form of the CGImageSource... set of functions, which have been available on the Mac since forever. These functions allow you to access certain image metadata without having to load the actual pixel data into memory.

Ole Begemann has put together a great article explaining the ways around such performance hits, and how you can get pretty much any metadata you could want about an image, without incurring a performance or memory usage hit.


▸ GAJavaScript

Been wanting something like this for a long time. GAJavaScript is a Cocoa Touch library that makes working with JavaScript from inside native code much more tolerable, maybe even fun.

JavaScript is accessed from Cocoa Touch using UIWebView. GAJavaScript has the concept of a "script engine", which provides the primary interface to the JavaScript runtime inside the UIWebView. Essentially, the UIWebView is an implementation detail of this library, but you may want to manage the UIWebView instance used by the script engine.

Some might say it's a nasty hack, but in certain situations I can see this totally coming in handy. I work on a product regularly that needs to facilitate complex communication between remote web view content and local native code, and boy, I really wish I'd known about this library back when I started that project.

GAJavaScript was built by Andrew Goodale and if you like it you should definitely take a look at one of his other projects, GAViewStyling which is a neat little library letting you style UIView objects with CSS style declarations.


▸ 7 Keys to Unlock an Apple Design Award

Delight is in the details. Subtle hints, humor, metaphor, animation, and beautiful visuals are some of the tools we use give our app character.

Fantastic article on the things Apple Design Awards apps do to become so great.


▸ Syncing Your App's Preferences with iCloud

One of the most interesting additions to iOS 5 was iCloud storage which makes it easy to sync data between apps running on different iOS and OS X devices. Effectively you can store key application data in the cloud and have it propagate to all instances of the app wherever they are running.

Nice writeup about syncing NSUserDefaults data to iCloud using NSUbiquitousKeyValueStore.


▸ Animate.css - a bunch of plug-and-play CSS animations

animate.css is a bunch of cool, fun, and cross-browser animations for you to use in your projects. Great for emphasis, home pages, sliders, and general just-add-water-awesomeness.

Great little library for generating a pre-made .css file filled with ready-to-use CSS3 keyframe animations. Useful and a good way to learn about doing animations like this in CSS.


▸ Nest - The Learning Thermostat

From former members of the iPod and iOS design teams, interface design by Mike Matas

No more programming, no more constantly changing the temperature. The NestTM Learning ThermostatTM programs itself in a week to keep you comfortable and save energy.

Nest Thermostat

Neat idea, price is a little steep at $249 but the idea is so simple and elegant it could catch on.


▸ How the CSS Animations on Apple's iPhone 4S Page Work

Love seeing stuff like this, really helps illustrate how far the web has come.