iPhone SDK Rules Block Skype, Firefox, Java ...
An anonymous reader writes "Apple's iPhone software development kit is already drawing complaints due to the strict terms of service. Voice over IP apps like Skype that attempt to use the cellular data connection will be blocked. Competing web browsers Firefox and Opera are forbidden. Even Sun is now backpedaling on its recent announcement of a java port, noting that there are some legal issues. Critics are already comparing Apple's methods to Comcast's anti-net neutrality filtering, and Microsoft's Netscape-killing antitrust tactics. Could Apple face government regulators?"
Most cell phone applications are written in J2ME. The lack of J2ME support means existing applications already on AT&T's approved app deck would need extensive porting. The only exception is Verizon which has their own language (called BREW), which has less apps than most other companies because of it. Even the Black Berry supports J2ME.
borne shell, etc:
"no interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple's Published APIs and built-in interpreter(s)."
This slashdot post is entirely sensationalism at its worse. If anyone had read the articles attached: Skype banned: "Apple To Allow VoIP on iPhone But...", it doesn't talk about Skype being banned, but being restricted. The firefox issue seems to be dealing with the fact that no interpreted languages are accepted (javascript I assume), and no plugin arch. are allowed. Actually, I'd gladly accept a no-plugin firefox. No more bloated firefox. And really, how many other mobile browsers allow plugins? (I'm honestly asking...). For sun, it's some legal issues that have come up. They haven't BLOCKED anything. To go from the article (which is entirely positive on Apple), and turn it around to be negative is doing a disservice to the original author. Saying that everything is being blocked is silly. If you want to play in the game, you gotta follow the rules. If you don't, well, there's always hockey.
This space for rent.
Don't forget C#, which also returns "> 5000" hits. If we could get a real number on that, I'd bet C# has more than Java.
I have never seen an SDK that so blatantly locks users out of common usage like this, have you? Maybe I've managed a decade and a half in this industry without noticing that it's normal practice to use legal force to ensure that an SDK is only used a particular way?
Which industry? This isn't atypical in the embedded industry at all. It is very unusual in the general computing industry. I think the issue here is that the iPhone and iTouch span that divide moreso than any device that came before it.
If you wanted to develop for the PlayStation, for instance, you had to sign all kinds of agreements. And they were relatively open compared to some embedded device makers.
E pluribus unum
You seem to portray learning Obj-C as some huge undertaking. If you come from a Java background, learning Obj-C is like learning to play stud poker when you've only played draw poker before. Some of the mechanics are different, but there's a lot of overlap. Anyway, how is Java more conducive to innovation than Obj-C? Because it has better IDEs (which is probably debatable, but I'll cede the point anyway)? What can you do in Java than you can't do in Obj-C? Sure, Java has more frameworks built around it (and frameworks built around those frameworks, with more frameworks layered over them, and frameworks built on top of those, etc.), but Apple has some pretty decent libraries too. I've only dabbled in Cocoa programming, but I find the syntax of Obj-C to be rather nice. I like that there's at least some way to implement delegation. It may be a bit sketchy, but it's better than Java's system, which amounts to "Ahh, fuck it. Let the IDE generate some code. That's good enough."
You have one thing right: Objective-C will probably never be nearly as popular as Java. Ok, two things: Too much java makes me have to poo-poo. I don't see why that means Apple must support Java on the iPhone though. I'm sure the platform will do just fine without it.
The secret to creativity is knowing how to hide your sources. - Albert Einstein
Smartphone market? I still find that hard to believe - there are several countries where Blackberry is, but iPhone is not.
Here's a big hint. Sales does not equate to "size of market". If in the final quarter of 2007, the iPhone sold 27% of the smartphones sold, that does not mean every one in four smartphones is an iPhone (I'm also looking at you for a basic misunderstanding of this, Mr Roughly Drafted). As the Wikipedians would say, "[citation needed]".
hate to break this to you, but much of the software you run on your typical cellphone is written in Java. I have quite a few positive java apps on my blackberry
not to mention, if you use ebay, you're using a Java-based web app. I hear it's a pretty decent piece of software.
oh, and I have a daily (mostly) positive experience with Eclipse.
The idea that "java apps are obvious due to their slowness and crappiness" is an old, tired adage. It's just false. You might as well say, "C++ apps are obvious due to their memory leaks". Just because you've run some crappy Java code doesn't mean the language itself and all code written in it is crap. It brings you more benefits than you know.
Disclaimer: I do a lot of J2EE coding. I also hate Java, but for more technical reasons. ;-)
multifariam.net -- yet another nerd blog
Apple's documentation is wonderful..... if you already know Objective-C. It is pretty bad otherwise. Okay, It's really horrible otherwise, and not that great if you do.
I tend to use http://www.cocoadev.com/ more than anything else. You really should do the basic Apple Currency Converter tutorial first though, as it walks you through the interface. In general, trust the C that you know, but throw out the C++. Things tend to be done with a different approach, so if you can find other code that does a similar thing, the C part of your brain will understand it, but the C++ part will get angry. Eventually, I realized that the C++ part of my brain was also extremely masochistic, so it became easier to ignore it.
Did that help at all? More than anything else, just jump right in. Build and test often, and have fun with it.
- iPhone: You can run native code. XBox: no native code; all code runs in the
.NET Framework VM sandbox.
- iPhone: $99 one-time fee. XBox: $99 yearly subscription + $50 yearly subscription for XBox Live Gold
- iPhone: free version with emulator for testing. XBox: free version but no way to test for XBox compatibility.
- iPhone: iTunes is the exclusive distribution channel for iPhone programs. XBox: XBox Live the is exclusive distribution channel for XBox games.
Since neither Apple or Microsoft can control what you do with the SDK on your own hardware, the following restrictions only apply to applications distributed through iTunes or XBox Live.- iPhone: programs of any type will be distributed. XBox: programs must be games for distribution on Live.
- iPhone: distribution on iTunes store will be available to any developer. XBox: distribution on XBox Live restricted to a select few who win periodic voting contests.
- iPhone: programs can use WiFi for any purpose; cellular network with restrictions. XBox: Network access only for XBox Live and local LAN multiplayer. Non-LAN play must enforce requirement of XBox Live Gold subscription.
- iPhone: programs distributed through iTunes may not execute downloaded code or plugins. XBox: Microsoft would never approve a game for distribution on Live that executed downloaded code or could download plugins.
- iPhone: Free programs distributed for free. XNA: not announced. Likely to limit or prohibit free games.
- iPhone: Commercial distribution is 30% of gross revenue, no other fees. XNA: not announced. Likely to be higher than 30% based on rumors of XBLA royalty rates.
As you can see, XBox development is *just* as restricted as iPhone development; more so, in fact.main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}