This one is sort of a given these days, but appears we now have even stronger evidence that the almost-certainly forthcoming iPad 3 will have a Retina class screen.
Shown here is an iPad bookmark image resource with an @2x version:
We have been finding references to 2X iPad images for well over a year (including iBooks 1.2), (...)
I'm posting about this as a nudge-nudge to my fellow iOS developers to keep this in mind if you are starting out on any new iPad projects, you'll need to whip up a new 2048×1536 resolution Photoshop document.
Should make designing iPad apps a little more interesting.
How many times has this happened to you?
- I received the new mobileprovision file.
- You still haven’t added my UDID in it.
- I have.
- No you have not.
- Yes I have.
- No you haven’t.
- No! Why don’t you just…
- Look, I’m sure. Can you generate it again?
- Ok, I will. Wait… ok, it’s done.
- Let me check. No, sorry, still not ok.
- Are you sure?
[END OF CHAT CONVERSATION CENSORED]
MacMotion brings something to relieve the pain (slightly) of dealing with Apple Provisioning Profiles, and it uses one of my favorite OS X features, QuickLook.
After installing MacMotion's new QuickLook plugin Simply press the spacebar on any
.mobileprovision file in the finder and instead of some boring 1 line summary, you'll get something like this:
It also has some great enhancements to Finder icons to quickly tell you if a profile is valid or not.
You can download the plugin here (at the bottom of the post).
Tom Harrington brings us another insanely valuable little bit of code that does some simple, yet awesome things with a parsed NSDictionary of JSON content:
- Provide a safe, generic alternative to Cocoa’s -setValuesForKeysWithDictionary: for use with NSManagedObject and its subclasses
- Handle cases where JSON data didn’t match up with what the managed objects expected. Getting a string where you expect a numeric value, or vice versa, for example, or getting a string representation of a date when you want a real NSDate object.
Basically Tom is examining his managed object's defined properties, and then looking into the NSDictionary he got when he parsed some JSON, and if any of the property key names exist in both structures, he sets the value.
The end result is being able to do something like this:
I love little tools and case studies like this as they always help to enlighten more of us to the awesomeness that is the Objective-C runtime.