Check out Jerry's new videos -- REV to ObjC -> iPhone

Peter Alcibiades palcibiades-first at yahoo.co.uk
Sun May 9 10:13:35 EDT 2010


Rene, this is the text in question:-

3.3.1 — Applications may only use Documented APIs in the manner prescribed
by Apple and must not use or call any private APIs. Applications must be
originally written in Objective-C, C, C++, or JavaScript as executed by the
iPhone OS WebKit engine, and only code written in C, C++, and Objective-C
may compile and directly link against the Documented APIs (e.g.,
Applications that link to Documented APIs through an intermediary
translation or compatibility layer or tool are prohibited).

It may be difficult linguistically for non-native speakers, but to a native
speaker this is (mostly) clear and unambiguous.  What it says is, your
application

-- must be originally written in the specified languages.  This is perhaps
not totally precise, but it is going to allow you to sketch out your ideas
on paper in whatever you want, to do flow charts in whatever you want, but
it is not going to allow you to code in anything but the languages specified
and then translate into them.  Things are 'originally written' in, for
instance, French, when this was the first version of the novel that was
written.  Translations into English are not originally written in English. 
It may seem hard to define exactly, but its clear to most people what does
and does not count as originally written.

-- in particular, with regard to Javascript, it is not just any sort of
javascript, it is only allowed to write originally in "Javascript "as
executed by the iPhone OS WebKit engine".   This means, your original
writing if in JS must be in this particular flavor of it.

-- It next says that you may not compile and link against the documented
APIs from anything but C, C++ and Objective-C.  That is perfectly clear and
unambiguous.  You may not arrive at the code in these languages from any
method but originally writing in them.  Having got your code, you may
compile and link if and only if it is written in the approved languages.

In short, do not write originally in anything but the approved languages,
and if you do, do not compile and link against the APIs.

-- It finally says that "Applications that link to Documented APIs through
an intermediary translation or compatibility layer or tool are prohibited". 
Now, this is a for example, so it is not exhaustive.  But what it is telling
you is that you cannot use an intermediary translation tool.  You cannot do
what you are trying to do.  

What's the bottom line?  You can write your C or C++ using whatever you
want.  Eclipse or notepad, they do not care.  But you will write C or C++ in
the editor or IDE of your choice.  You will not write revtalk or anything
else, and have that translate into C.  

The sentence is not perfectly clear in one respect, its not clear whether
compatibility qualifies tool, as well as layer.  It could mean that you may
not use a compatibility layer or a compatibility tool to link to the APIs,
or it could be meant more widely, that you may not use a compatibility layer
or any kind of tool, not restricted to compatibility tools, to link to the
APIs.  It makes no practical difference either way though.

Whatever, if you want to comply with the developer contract, this is
perfectly clear.  It says you need to fire up your brain and start coding
either in:-

-- C

-- C++

-- Objective C

-- Javascript as executed by the iPhone OS Webkit engine.

There is really no doubt about what this means.  As to whether its
enforceable, the answer is, in the short to medium term, undoubtedly. 
Because there is an enforcement mechanism, they don't have to let your app
into the App store, and they don't have to give a reason for refusal.  So
mere suspicion that you have done it in the wrong language and translated
it, will get your app barred.  And they are not interested, they simply do
not care, if they ban some apps incorrectly.  There is nothing you can do
about it.  They do not even have to tell you what their reason was.

The only people who will change this will be the courts and the competition
regulators in the US.  By the time they get around to it, and by the time a
settlement is worked out, if they overturn it, and by the time the
boundaries of that settlement are fixed, it will be too late for you as an
iPhone developer.

You have to understand that finding some way around the wording does not
help at all.  Even if you were to find one, which you won't, you will just
get banned anyway for finding a way around and using it.

You want to develop for iPhone OS as a business, you now have two and only
two practical choices.  One, get busy on C or iPhone Java.    Two, develop
webapps as in Rodeo.  The safest is probably flavors of C.  The quickest is
probably Rodeo.  Save time, and accept it.
-- 
View this message in context: http://runtime-revolution.278305.n4.nabble.com/Check-out-Jerry-s-new-videos-tp2135722p2164443.html
Sent from the Revolution - User mailing list archive at Nabble.com.



More information about the use-livecode mailing list