BuySellAds.com

Until Dec 3rd, 44% off all Manning books, including Barcodes with iOS! Promo code: mobicftw
Our DNA is written in Objective-C
Jump

Translating NSTimeZone Geopolitical IDs

For my new version of Summertime I am building a time zone picker. You can get the known time zone names from the NSTimeZone class, but unfortunately Apple does not give us any localization of these. The localizedName:local: method gives you localized names of the time zones itself (e.g. “Pacific Standard Time”) in various formats. But what I found to be missing is a way to have the geo names localizable as well.

If I have my iPhone set to German I want to find my timezone by entering “Wien”, not “Vienna”.

My initial thought was to keep this to myself, but since I only speak German and English I can never hope to have the translations be perfect unless I would pay several translators to comb through them. And you know, Google Translate is great, but not 100%. So I started a new Open Source project on GitHub: NSTimeZone+Localization which aims to remedy this.

Read more

LuckyWheel 1.2

It’s been a while since we last updated our game LuckyWheel. There was a nasty bug on iOS 4.x that prevented the keyboard from appearing causing a great deal of frustration. We also used the opportunity of polishing the graphics and adding Retina support.

Changes

  • FIXED: Keyboard not appearing on iOS 4.x
  • UPDATED: Now with Retina Graphics
  • NEW: Lite Version has IAP option to purchase full version question pack
  • NEW: Lite Version has IAP option to remove ads

The new version has been submitted to Apple and is awaiting review.

Apple Subscriptions

The hot button topic these days is Apple’s “new” subscription service and the conditions they are enforcing on it. Not only are they drawing harsh criticism from publishers for not letting them have all the users data (to be sold to advertisers), they are also catching fire for driving poor Readability out of business (or from the app store).

What’s forgotten in all this commotion is that the truth of the matter is far from all the buzzwords. As usual the lack of actual news from Cupertino is prompting the big tech blogs to bash Apple a bit, citing “sources from the publishing industry”. What the pundits even like better is when developers write something to be linked to, like the Readability guys are doing in an open whining letter to Apple.

Usually I prefer to ignore this link-baiting and attention-deficit-syndrome. If developers think their work gets to little attention then they start ranting publicly hoping to be heard and the major public outcry persuade Apple to give in. I’ve been guilty of that myself at times.

But in this blog post I want to explore why Apple has every right to what they are doing. I fully support their message.

Read more

State of Code

I have to admit I am rather close to being stressed out at the moment. In this article I will try to summarize all that’s going on in my head to find a strategy or guideline as to how to deal with a good problem to have “too much work”.

I made a promise to take one day off per week to recharge my batteries. Writing helps me do that and so I hope to share a few insights into my complicated brain while at the same time asking for your forgiveness if you have to queue to have me look at your code.

But first, I want to show off my new battery I had put into my MacBook Pro. It’s one of the first ones that no longer has a “user serviceable battery”. I could have sent it in to an authorized Apple repair center, but instead I opted to call upon a friend of the Austrian Cocoaheads who happens to be an “authorized Apple screw-driver”.

Read more

Voices that Matter

Publishing Powerhouse Pearson is establishing the Voices that Matter iPhone Developers Conferences as an additional “place to be” for us developers.

Last year I had the opportunity (thanks to three sponsors) to attend the issue in Seattle and I loved the casual intermingling with peers, mixed with great networking and – of course – good talks. Being in Seattle is also a great opportunity to visit the Boing plant and see big airplanes being made as an spare time diversion.

From what I’ve seen there the core audience for the VTM events are beginning programmers who are not totally new to the Apple frameworks, but who need a bit of a kick to advance to the next level. VTM returns to Seattle this spring, April 9-10.

Read more

Color Math

For my Rich Text Editing component I wanted selections to look like the Apple originals. So I made a screenshot of some editing action and inspected it in Photoshop to find out how they are drawn.

Visually there are two options: either the selection boxes are drawn behind the text not affecting it, or they are layered on top of the text.  Because the selection also changes the color values of the black text it must be the latter. It’s on top.

In this article I’ll try to figure out the math so that I can calculate the original blue and alpha value used. We will see that it is orders of magnitude easier to do if we know the result of blending this color over white and black than two arbitrary ones.

Read more

OpenSource’ing MyAppSales

One of the things that people know me for is for continuing to develop on MyAppSales, my favorite tool to download and keep those elusive sales report from iTunes Connect. It’s always been a hobby and until now I’ve allowed people to access the source in exchange for a mandatory donation. This went on for almost two years now.

Those donations never made sufficient money for me to pay for professional development. But I felt that I had to ask the approx. 500 people on the google group about their opinion as they might see their donation as a purchase and not like the idea of this software now being available for free. Boy was I wrong. Resoundingly people voted “+1″ for going OpenSource.

So here it is. It’s Open. Read on for how I moved the repo from my SVN server to GitHub, including the entire revision history.
Read more

DTCards – Universalizing an iPhone App

Ever since the iPad came out I’ve been giving the occasional thought as to how I could universalize my existing iPhone apps. Generally the problem is that you have view controllers that work well on the resolution of the iPhone, but if you simply display them full screen on iPad they look weird.

So I’ve started to work on a view controller that would allow me to reuse my iPhone view controllers by displaying them not in full screen but as distinct cards. The idea is that you would use the same DTCardsViewController as root in your app and then depending on which device it runs on will either show the cards filling the iPhone screen or by laying them out to better fill the iPad screen.

In this article I want to give you a brief demo of where my R&D stands so far.

Read more

Rich Text Editing on iOS

For the past few days you’ve see me go on and on about this Open Source Project of mine. Sorry if this got a bit annoying to you but I am very passionate about bringing this functionality to a broad audience because I feel that UIWebView should not be used as much as it is. With the DTAttributedTextView from the GitHub project you can replace most of these and have way more control over the outcome.

Apple might finally add support for Rich Text Editing in iOS 5, coming Summer 2011. I suspect that the Pages app on the iPad might be a glorified test case for Apple for that. But even if that indeed comes to our Xcode, it will be end of 2011 that customers will have widely deployed iOS 5

.

Today I want to show you something completely different that is using the aforementioned project as a base and extends it to provide Rich Text Editing capability.

Read more

UIWebView must die

Almost always when we iOS developers want to display some rich text we are using UIWebView. That’s not by choice, since traditionally Apple did not provide any classes to us being able to show formatted text.

That changed slightly with the iPad, because in 3.2 we got CoreText as well as CATextLayer. CoreText gives us NSAttributedString which is basically a string that can have different attributes for ranges of characters. Those attributes can either be standard ones, like to describe the font, color, size and paragraph format. Or they can be your own arbitrary attributes.

I’ve shown how to programmatically construct these in my previous article on CoreText. The one thing though that is still missing from making CoreText really useful are ways to create attributed strings. Clearly doing it all in code is not feasable.

In this article I am introducing an Open Source project that aims to provide the missing functionality to iOS developers.

Read more