Programming

Struggling with age ratings

With OS 3.0, Apple added parental controls to the iPhone. Therefore, each application in the iTunes App store needs an age rating from 4+ to 17+ (true "adult" content cannot be sold via the app-store at all).

During the submission of an app, the developer has to answer questions like: "Does the app contain nudity?", "Does the app contain obscene language?", "Does the app contain simulated gambling?". Based on the answers, iTunes calculates the age rating.

Two weeks ago, I submitted a bug-fix for KTdict C-D (there is an error handling the German "ü" correctly, which I realized after some bad reviews). I thought a dictionary shouldn't be a problem for children, so I answered all these questions with "none". This gives an age rating of 4+, which is no change to the current version.

One week later the surprise: Apple rejected the update due to "profanity" and "mature/suggestive themes". Okay - they obviously found some "dirty" words in the dictionary. As I didn't want to censor, I changed the age rating by moving "profanity" and "mature/suggestive themes" to "mild". This increases age rating to 9+.

One week later the next surprise: App again rejected. This time the reason is "sexual content in Chinese". So I change now also this setting, which makes KTdict C-D now a 12+ app. I hope Apple will release the update this time, so it makes it finally to my customers.

I must say that I find this pretty annoying. It would be O.K. with me if Apple would say: We looked at your app and think it should be rated 17+. But right now, I have to play trial and error to see what Apple thinks about an app. Due to the review process, each trial costs one week.

Anyway: I hope to get the update out soon and not to lose too many customers between 4 and 9 years of age...
|

From Objective-C to Java

One of my plans for KTdict is to write a "buddy" desktop application. It would have essentially the same functionality, but provide the possibility to synchronize flash-cards and dictionaries between iPhone and desktop.

Question is which programming language and GUI-framework to use. It would be quite easy for me to write this as a Mac/Cocoa-application, but this would leave Linux and Windows users out.

So I ended up reading a book about the Java programming language (so far I seriously used C, C++ and Objective-C) and got a first small program to run, so I can provide my first impressions here.

First thing I noticed it that Java and Objective-C are semantically much more similar then Java and C++ or Objective-C and C++:

• Inheritance scheme is the same: Objective-C and Java use single inheritance with the addition of protocols / interfaces (C++ has true multiple-inheritance).
• Both languages have simple types (int, float, ...) and objects, they don't make everything an object.

Main differences between Objective-C and Java are:

• Java isn't a superset of C, so features like converting integers to pointers are gone. It isn't possible to write low-level code in Java.
• Java has no type "id" like Objective-C and it is not possible (one might argue also not necessary) to do dynamic typing.
• Java compiles to byte-code for a virtual machine, not binary-code for a hardware processor.

Java is likely the language least prone to programming errors I have ever used. It is very clear, that the designers of the languages rather compromised on power then on safety. Also, I like the idea of having a cross-platform GUI-library (Swing).

But I haven't decided yet what to do. Currently, Java is the most likely choice, but I am also considering simply writing a Mac-only app in Cocoa (lowest effort for me) or to check other cross-platform frameworks like Qt.
|