Friday, April 9, 2010

The new iPhone 4.0 SDK Developer License agreement

Many of you have heard by now that Apple has changed their license agreement for the iPhone 4.0 SDK. The change would appear to prohibit creating native iPhone applications with anything except Objective-C, C or C++. What Apple did NOT say is why they are making this change. There has been a lot of speculation but what we need is to know Apple's true motivation.

We at REAL Software remain interested in possibly supporting iPhone. I say "possibly" because we have never officially announced support for iPhone and I don't want this to be misconstrued as an announcement. We are contacting Apple to find out what the story is. Once we know that, we will let you know if our plans have changed.

25 comments:

Anonymous said...

Thanks for remaining proactive and open about your iPhone related intentions.

Thomas said...

I agree - I'm sure the recent discussions on the mailing lists have been reading the new agreement too literally. I believe that Apple just wants to avoid apps being made from ready-to-use building blocks, maybe even for reasons of verifiability. If RS could show Apple that apps can be made with it, programmed in RB instead of ObjC, but with the same freedom in choosing the algorithms, and using the same frameworks, then Apple has little reason to deny such apps.

Anonymous said...

If Apple is really (literally) restricting the development to only their languages and only their tools, I would recommend we all go and file a complaint with the Federal Trade Commission (ftc.gov) that Apple is not playing fair.

Timo Ruohomäki said...

I have to say I've never understood the request for REAL to support iPhone OS. The whole idea of cross-platform compiling is based on parallel versions of the same functionality, controls and windows. I find it difficult to even think about a project where a software would be compiled as OSX desktop and iPhone OS. It's not just about a completetely different API, it's also about a completely different purpose: desktop vs. mobile client.

I don't think for anyone who really wants to publish an iPhone app it would be a major problem to learn how to use Objective-C

Brad Hutchings said...

@Timo... My Dad would love to write an iPhone app. He's great with REAL Studio. He's never going to learn Obj-C or gain the patience to use an environment like XCode.

And if I could do it as easily as a Mac or Windows app, I'd whip up a HyperCard wannabe and stick it on Cydia when the iPad gets its inevitable jailbreak.

Anonymous said...

If the built application size is... 10MB... (*)

But IDE/creating applications from the iPad? Could be an idea.

George said...

Actually, I think that there are good reasons to use the RB IDE.

I certainly don't like X-Code at all. Probably reflects my programming skill, but then again, its not like most apps are really that sophisticated anyway.

Michael

Anonymous said...

It's all about reusable code. While the user interface and available options may differ between the mobile version and the desktop version, it is still nice to reuse what you can from the core of the application. Anyone who says that they don't need this either has an application that is so simple it hardly requires any code, or has never tried to "port" an application to another language.

msa said...

Drop iPhone support and instead compiling to HTML5 (with offline support) + JavaScript would make me consider renewing my license and support. RS would not break the license agreement with Apple.

Anonymous said...

I would like to see REAL Studio support for iPhone OS because while I can code in ObjC/Cocoa, I find it to be a royal pain compared to REALbasic.

I would not expect to be able to simply cross compile desktop RB apps to the iPhone. But I sure would like to use the RS IDE and a mobile phone subset of the RB language/framework instead of Xcode/Cocoa/ObjC. My productivity would shoot through the roof.

Anonymous said...

I think the real issue here is Apple doesn't want *cross-platform* mobile development. i.e. an app developed in one environment that can be cross compiled to Android, WinMo, Palm, etc.

If RS were to show that their intentions are to create an iPhone-only development environment, perhaps Apple wouldn't mind.

Anonymous said...

> If RS were to show that their intentions are to
> create an iPhone-only development
> environment, perhaps Apple wouldn't mind.

Apple sure would mind. They want you writing DIRECTLY to their APIs because it's the best way to lock you -the developer- into their platform.

Anonymous said...

What Apple is trying todo IMO is to make sure they don't end up the victim of LCD (lowest common dominator) programming. They don't want an app crippled because Android, Windows Mobile 7, etc don't have support all the features they provide.

All cross platform tools, unfortunately, force you into the LCD (lowest common dominator) programming mode.

Geoff Perlman said...

Some cross-platform tools don't provide support for native features and controls. We always have and always will. We let you, the developer, decide if you will use platform-specific features or not. This is the same decision you would have to make developing two separate versions of your app for two different platforms.

Anonymous said...

Apple is less concerned with the LCD and more concerned with locking you, the developer, into their platform.

Even if you found an intermediary layer (like REALbasic) that instantly supported every new API the day they were announced, Apple would prefer you didn't use that intermediary layer. Forgetting your code for a minute, they don't want your skills to be portable. Every hour you invest in learning the CocoaTouch APIs is an hour not spent learning how to develop for Windows Mobile 7, Android, BlackBerry, etc.

Apple is exerting this preference in their iPhone SDK developer agreement, which is their prerogative. It sucks and it makes me less interested in building iPhone apps but there not much that we can do about it.

Geoff Perlman said...

That doesn't lock you into their platform any more than building an app for iPhone with REAL Studio would. You can port your iPhone app to Android for example. You will have to recreate the UI and rewrite the code that manages the UI but the core of your app could be written in C++ and shared between the two platforms. The same would be true with REAL Studio. You would have to recreate your UI and redo some of the code that manages it just as you would using the tools from Apple and Google.

Anonymous said...

> the core of your app could be written in C++
> and shared between the two platforms.

Not if the core of your app does things like: dial the phone, GPS, address book, VOIP... all of the phone stuff handled by CocoaTouch.

It's true that anything truly unique to your app could be abstracted out into its own portable library, but Apple is essentially forcing devs to write directly to their APIs for everything else.

The lock-in effect isn't perfect (to Geoff's point) but it's much stronger than if they allowed cross-platform tools like Flash, MonoTouch, Unity and REALbasic.

Whether this will ultimately help or hurt Apple in the martketplace remains to be seen.

Software Maniac said...

I usually don't blog, but this topic seriously jeopardizes any tool that builds applications for any platform. If Apple is requiring the original code for an app to be written in Obj-C then this will cause issues for other Mac development environments (FileMaker comes to mind), too! I would imagine that perhaps the intent, as Geoff rightfully states, is that Apple should enforce using public, supported OS X APIs and if RealStudio does that then "great, RS complies and should be allowed to support development for iPhone/iPad!" If the idea, however, is to restrict any tool that supports other platforms, oh man... that spells "antitrust" behavior that would already resource-constrained software companies to pick other embedded platforms (which would be ultimately impact Apple customers). Ultimately, customers will decide -- and if apps are "dumbed down" using lousy cross-compiler tools that create subpar apps, then nobody will buy 'em (especially with the buyer ranking forums used for each product in the Apple Store). Let's hope this Apple edict gets corrected quickly and doesn't spill over onto the Mac OS X platform, too!

Anonymous said...

I would love for RS to write for the iPhone. It would open up a lot of opportunities for RS developers, but I worry about Apple closing us all down. Did you hear the latest rumor, and I hope it is a rumor, that the next version of Mac OS will require that all apps be approved by Apple.

http://macdailynews.com/index.php/weblog/comments/24948/

If this is true, it could put an end to RB running on a Mac.

Geoff Perlman said...

There is no truth to that rumor. In fact, I believe the writer was being facetious. I'm quite sure Apple has not plans to approve Mac apps they way they do iPhone apps nor require that they be made with XCode.

Kiko Lobo said...

I agree that RB should stop persuing IPhone development and go instead for HTML5 / WEB 2.0

Way smarter, and this is the future of cross compile.. Either in the iPhone or on any other platform in the world.

PLEASE PLEASE PLEASE! I really want to stick around with RB... And WEB is the future of all apps... Look at mobile me and google docs..

adhoc said...

Server apps and device/desktop apps require different tools and implementations.

Java was an experiment... successful for the enterprise, but not for the device. RB is not (I think) seeking to serve the same market.

ThomasC said...

I must say, having the real-basic foundation for building iPhone apps would rock my world. I've always found Xcode to be incredible cumbersome to work with, infact so cumbersome I have lost most of my wish to develop for the iPhone just because I've been "spoiled" with real-basic's incredible user-friendly and intuitive way of working. And now that iPad arrived also, I must say, my urge to test out the platform really gets into a big temptation. I am crossing my fingers for you, I hope there will be a RB/RS iPhone/iPad developer platform sometime in the future.

Anonymous said...

Forget RB for iPhone unless it only generates Obj-C source compilable using XCode. Many people submitted letters to Apple, they just ignored them. But... I know one case that reached directly to SJ and he told "Sorry. No way".

My advice, follow everybody. Make it run on Android.

Apple has just the locked iPad, Android will have a dozen free iPad-likes on the second half of 2010.

Apple has iPhone. Android is invading the phone market and I personally gave my iPhone 3G to my wife and bought the HTC Desire to myself (This device got features, design and freedom I demand, plus the Google OS. If you don't know it, find one and check by yourself why I did it).

Anonymous said...

So, maybe there could be a surprise or two at the Apple (AAPL) Worldwide Developers Conference, after all.

Trip Chowdhry, an analyst with tiny Global Equities Research, contends that 7 minutes of the June 7 keynote by Apple CEO Steve Jobs has been blocked off for a presentation by Microsoft (MSFT) to talk about Visual Studio 2010, the company’s suite of development tools. Chowdhry says the new version of VS will allow developers to write native applications for the iPhone, iPad and Mac OS. And here’s the kicker: he thinks Microsoft’s presentation could be given by none other than Microsoft CEO Steve Ballmer. (Or if not, at least Bob Muglia, who runs Microsoft’s server and tools business.)