views:

477

answers:

2

According to the (in)famous iPhone Developer Program License Agreement change

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).

So it is allowed to develop iPhone apps using C++

My questions

  1. Is there a compiler / IDE for developing iPhone apps using C++?
  2. Is that compiler / IDE available on non Mac environments? (Windows? Linux?)
  3. If not, why? I mean an eclipse C++ plugin for iPhone development will be quite popular, or is there already any serious attempt to do that?
+2  A: 
  1. yes (XCode, though you'll still need a bit of Objective-C glue code to init your application)
  2. no
  3. because they don't want you to and you have to accept the license agreement

EDIT: here you go for restrictions on 3). Simply put, you agree to only use the SDK provided by Apple, in conditions restricted by Apple.

1.2 Definitions

"SDK" (Software Development Kit) means the Documentation, software (source code and object code), applications, sample code, simulator, tools, libraries, APIs, data, files, and materials provided by Apple for use by You in connection with Your Application development, and includes any Updates that may be provided by Apple to You pursuant to this Agreement.

-

2.1 Permitted Uses and Restrictions

Subject to the terms and conditions of this Agreement, Apple hereby grants You during the Term, a limited, non-exclusive, personal, revocable, non-sublicensable and non-transferable license to:

(a) Install a reasonable number of copies of the SDK portion of the Apple Software on Apple-branded computers owned or controlled by You, to be used internally by You or Your Authorized Developers for the sole purpose of developing or testing Applications;

-

2.6 No Other Permitted Uses

You agree not to install, use or run the SDK on any non-Apple-branded computer, not to install, use or run the iPhone OS and Provisioning Profiles on or in connection with devices other than iPhone OS Products, or to enable others to do so. You may not and You agree not to, or to enable others to, copy (except as expressly permitted under this Agreement), decompile, reverse engineer, disassemble, attempt to derive the source code of, modify, decrypt, or create derivative works of the Apple Software or any services provided by the Apple Software or otherwise provided hereunder, or any part thereof (except as and only to the extent any foregoing restriction is prohibited by applicable law or to the extent as may be permitted by licensing terms governing use of open-sourced components or sample code included with the Apple Software).

Gregory Pakosz
I didn't see any license restrictions on #3 though...
Ehrann Mehdan
I see no reason why you couldn't use Eclipse rather than Xcode to develop in.
David Thornley
as well as there is no reason why you couldn't jailbreak your device -- you can, you're no more in the lines of the license agreement, that's it
Gregory Pakosz
oh, and those are just facts, not a personal opinion
Gregory Pakosz
and as you have to work on an Apple branded computer, you have OSX and XCode so... I'm not surprised only a minority feels the urge to wipe the OS to install Linux or keep OSX but use Eclipse CDT in place of XCode
Gregory Pakosz
Also regarding #3, XCode works fine and the simulator is embedded well, and it would be a gigantic effort to get it working anywhere else for zero actual value (to the person doing the providing of the SDK). My feeling is that if you don't want to get a Mac, develop for Android and/or WinMobile instead.
dash-tom-bang
+2  A: 

There really isn't a fully-featured way to do iPhone development on any other platform besides the Mac, from the perspective of both the licensing agreement, and the development tools. Working with Objective C is painful enough as it is, I would recommend just buying a Mac Mini and trying it out there.

Andy White
"Objective C is painful enough as it is" -- subjective and argumentative :)
Gregory Pakosz
...and the truth.
Matti Virkkunen
language wars, we've been there before :)
Gregory Pakosz
See also: http://stackoverflow.com/questions/435990/why-do-programmers-love-hate-objective-c
Brad Larson