Playing sound through two displays by Paulo Fierro

On my desk sits a 21" iMac which is plugged into a 27" Apple Cinema Display. The iMac is a great machine, but the audio quality is better coming out of the Cinema Display — larger screen, probably better speakers.

​My desk on May 17

So when I'm playing music I always select the sound output to come from the Cinema Display. You can Option+click the Volume icon on the menu bar and select either "Display Audio" or "LED Cinema Display", both mean the same thing. If I want to use the iMac speakers I select "Internal Speakers".

But what if I want to use both? Madness right? After looking around I found that you can create a "Multi-Output" device using the Audio MIDI Setup app.

So after doing that I created a multi-output device called "Both Screens" with output going to the built-in iMac speakers as well as the Cinema Display.

The only downside is that you have to control the volume from the app doing the playback, e.g. iTunes. Whatever volume you had the selected display at is what's used so you may want to swap back to it, set the right volume and then swap back.

Dual monitor sound output. Hell yes.

From the "why did I take so long to try that" department by Paulo Fierro

CocoaPods

I'm really glad I took the time to learn and use CocoaPods on this latest project. Such a massive time saver for iOS devs. No more adding linker flags, copying bundles and keeping external frameworks up-to-date manually.

I simply write a Podfile (similar to a Gemfile if you come from the Ruby world), and run "pod install." If a library I'm using has been updated I run "pod update". If a library I want to use isn't available, you can easily submit it to their list of specs on Github.

Great stuff.

Spark Inspector

Its like a Web Inspector for iOS apps. Modify your UI's properties and see the changes live in the Simulator or on your iOS device. you can also see your views in a 3D extruded mode to get a better grasp over how your UI is being laid out.

There's also a notification monitor to see notifications and their payloads as they are fired with the added ability to go back and resend them. Not used this much yet but it looks snazzy.

Crashlytics

I like TestFlight for distributing builds though I will be using Hockey on our next internal app because I've heard great things.

However I no longer ship the TestFlight SDK in our apps because I find the crash monitoring in Crashlytics to be far superior. You can group similar crashes and mark them closed once you've fixed the issue. You also get so many more useful details like available disk space, how many users are affected, etc so I would recommend you give it a shot. I'm a fan.

We're in the business of building things that makes our lives easier and these tools make the development easier.

LockMe by Paulo Fierro

Lately Niqui has been having some issues with her iPhone 5's lock button. It works now and then, but you have to press it 6-7 times before it actually locks the screen which is quite annoying.

You can set phone to Auto-Lock after a minute but sometimes you want to lock the screen at a particular point in time.

Enter LockMe.

lockme.png

LockMe is a tiny app that simply locks the screen and quits. It uses an undocumented function called GSEventLockDevice which does just that. Its part of the private GraphicsServices framework so the app can't be submitted to the App Store, but it does the job until she can get her phone fixed.

There's a few ways to use private frameworks but I found the simplest route was to load it dynamically at runtime. The meat of the app is just ten lines of code.

That's pretty cool if you ask me.

So if you or someone you know has the same issue, grab the app from our GitHub repository, build it for them and be a hero :)