So, if you haven't heard, Apple, in their recent update to the iPhone SDK, gave the iPhone development community the Cupertino one finger salute. This was done by changing section 3.3.1 of the developer's agreement from:
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
to:
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).
Or, to put it short, Apple has banned the use of any toolchain other than their own for iPhone development. The head of development firm TaoEffect
emailed His Steveness about this change, he recieved the response:
We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.
The amount of contempt in that statement for developers is just staggering, not to mention a baldfaced lie, especially when you can point to the success of third party frameworks like MonoTouch and Unity3D. Of course, Apple's number one fanboy
has a Jobs-approved explanation for the move, mainly centering around Apple trying to kill of Adobe's attempt to develop a Flash cross compatibility tool. But considering some of the other moves Apple has made recently (such as their multitouch patent infringement lawsuit against HTC), there's an argument to be made that Apple is starting to see the growth of Android as a major long-term threat, and has begun to try to make moves to hamper Android development.
The problem is that this move seems to be backfiring. Many developers and iPhone evangelists have not taken this change well, with several notable defections. It's pretty clear that this move wasn't fully thought out by Apple whatsoever, and it's going to be interesting how they handle the backlash.
Posts
It looks great on the surface, but then you realize that it's effectively all smoke and mirrors - sure, it's a phone. That's pretty much all it's good at, and the inane developer restrictions are essentially the problem.
isn't the touch screen tech superior to the competitors?
even if that's the case, yes, this is pretty terrible, and only convinces me further that i am going to go for a different phone when my contract ends.
I kind of like the touchscreen on my LG Dare better than my iPod touch cause I can use my fingernails on it.
Or do we still have to stay on our honeymoon and rave about the iPad?
http://arstechnica.com/microsoft/news/2010/02/windows-phone-7-series-development-kit-info-leaks.ars
http://arstechnica.com/microsoft/news/2010/03/winphones-first-big-native-code-casualty-firefox-on-winmob.ars
Not that the iPhone or Win 7 doing this is good news AT ALL, but it seems to be a pretty popular game to play these days.
This seems like pretty much a direct outcome of that, which seems pretty much like a boldfaced way to just make money off mac fanboys.
However, that being said, I may be being a bit of a silly goose on this subject as most of my knowledge of it comes second hand through my father and roommate, and I have no technical skills whatsoever dealing with computers.
They aren't rejecting it because they clearly did say that there would be other browsers available on the app store back in 08.
They're just not going to say yes until they launch their new version of Safari, probably along with OS 4.0.
Oh and speaking of 4.0? Does anyone else buy the bullshit that a 3G isn't capable of fucking app folders and multitasking? Are you fucking kidding me? How fucking obvious is it that they're twisting your arm to go buy a new phone? Why the fuck can't the 2G and early iTouch's even get basic feature updates like homescreen wallpaper?
of course they could make it all work backwards
but they won't, because planned obsolescence is a great business strategy
and many consumers will get right up and buy the new phone day one, or soon after. it works very well. they have no reason to expend the extra effort for minimal reward, in terms of profit.
because apple is a stomping megalithic corporation like any other.
A lot of devs like to be whiny bitches because they come from enviornments where everything is open and free. But the bottomline is, if you're going to develop for the iPhone you need to play by Apple's rules. Trust me, we are better off this way.
Devs certainly aren't going to start leaving the iPhone in droves.
And anyone who doesn't support the killing of Flash is bloody ignorant.
And backwards compatibility is not that simple, you need better tech even if it's just to render a full screen wall paper all the time, (and don't forget every icon has a transparent shadow underneath which is really what chokes the older processors). Multitasking? Forget about it. Folders? Needs more RAM to preserve dynamic hierarchies, so fuck that.
Ever think there's a reason for why developers prefer more open environments? Perhaps it's because more open environments don't get in your way that often?
Please, tell me why we're "better off" in a walled garden where we have to get Apple's permission to install an application?
In the immediate future? No. But what's happening is that the ones who are leaving are the elite devs on the edge. And they are the developers that Apple can't afford to lose, because they're the people who can make it so the community can shift.
Why?
BALLS! BRASS BALLS!
But yeah, I guess the (dev) honeymoon is over? Sort of?
There is no technical issue whatsoever stopping the 3G, or even the original iPhone from multitasking. Aside from a shortage of RAM, I suppose, but OS 4.0 is allowed to kill frozen backgrounded processes at will to free up memory. It's a move to get people to upgrade. Jailbreakers already have 4.0 multitasking on older phones without issue. It's a simple plist change.
And a link to one of the pieces he was talking about - http://daringfireball.net/2010/04/why_apple_changed_section_331
Basically, it's good for Apple (duh), it's good (technologically) for iPhone/Pod/Pad users because it ensures high compatibility and quality of apps, but it's bad for anyone making cross platform development tools and anyone wanting to develop cross platform apps.
I think it's a gamble, and a decent one at that. Apple is banking on the size of the iPhone/Pod/Pad user base being enough to entice developers to jump through their hoops, but they're doing it right as RIM and Google really have started taking a bite out of Apple's market share (no pun intended).
'sup Obs
It kind of is. Apple is being evil to gain market dominance at the expense of everyone else. It's the same shit Microsoft pulled in the 90s.
Apple's store rules are a mixture of good technical advice, overzealous protection against bad developers, politically motivated bullshit, sleazy money grubbing, sucking up to wireless telcos, and plain old control freakery. I don't think we're better off under the care of Apple because it's clear that Apple is only looking out for Apple.
Indie developers and hobbyists are. Larger developers will just eat the cost if they can play by the rules or leave if they cannot.
When flash is dead, I will do a little jig atop its grave. But that doesn't mean that Adobe shouldn't be allowed to offer it as a shitty development platform until that day.
Just how full of shit are you? The iPhone's RAM and processor capabilities are so far beyond "painting an image to screen" and "managing a folder" that it's laughable you would even bring it up. Adding a few features to springboard is not going to take down an older phone. I know and thousands of other people know firsthand because they jalbreak their phones, inject code into springboard with MobileSubstrate, and nothing breaks. Except maybe a smile out on to their faces when they remove carrier restrictions and slap a wallpaper up behind the home icons.
Please.
Sun did the same stuff with their hardware. If you want full forwards and backwards compatibility, you need to keep developers away from the metal. They don't want to fuck with half the App Store breaking each time they do an update when Joe Cool Programmer decides to try and use some hardware quirk to do something.
If you want 100% control over what goes on your iPhone, there's plenty of ways to do so with minimal effort and there's even an alternate store for you to put your app on, with no restrictions.
This is like saying my local hardware store is wrong because they won't accept tables made out of plywood and fastened with wood glue and only accept tables made out of oak and secured with titanium nails. You don't have the right to force them to sell something, nor do they have the right to prevent you from using your plywood table in your home and/or selling it at a yard sale.
The iPhone does none of the preventing. Developers produce legitimate binaries using a cross-compiler and Apple analyzes them, says "this isn't made with Objective-C and our compiler!" and rejects it. Even though its a totally legitimate binary that runs well, does not crash, and in no way violates the pre-4.0 agreement.
This is not about keeping developers away from the metal. This is not about disallowing developers from accessing private APIs that are subject to change. This is about straight up restricting developers in how they go from idea to binary to ensure that Apple's language of choice is used. They are creating an artificial lock-in for business reasons, NOT technical.
I can elaborate on any portion of this concept if you want.
There is literally no problem here except that Adobe is just mad that their middleware isn't allowed per the license agreement.
I don't think anybody was arguing the move was illegal or violated any sort of international treaties.
Apple can assert all the control they want over their platform and their store, but this portion of the developer agreement falls cleanly outside of their jurisdiction! They don't get to decide how the binary is formed before it is submitted the same way the post office doesn't get to decide where you buy the paper you write letters on.
I am!
How is Obama gonna use his homebrew "iLaunchNuclearBombAt<Country>" app now?!
The reason they can detect such middleware in the first place is because it's making calls to places where it shouldn't be.
This isn't even close to the level of toolchain restrictions for developing for Nintendo or Microsoft consoles.
Alternatively
Yes because it's Apple and all people do is complain about the iPad even though it's gonna be the next big thing, and who needs Flash any ways? The iPad is going to destroy the competition and this is all part of Jobs' master plan. Man's a genius
SteamID: devCharles
twitter: https://twitter.com/charlesewise
Nope. If that was the case, current apps made with alternate toolchains would have been rejected. The private API issue is entirely separate (and at a different conceptual level than this). Private API calls are something that Apple scans for automatically already anyway.
Basically, the only way to tell if a binary was made with an alternate toolchain is to disassemble it and run heuristics to see if the machine code was likely generated by Apple's compiler or not. Who knows, maybe the developer is some kind of code ninja and wrote the thing directly in assembly! Developers do that all the time for Microsoft and Nintendo platforms.
The vast majority of development that goes on on the iPhone is not cross-platform anyway. Sure, you might get a few defectors who prefer more open development environments, but in the long run the superiority and popularity of iPhone, supplemented by the potential of the iPad, will make many more people stay.
And Flash can go suck my ****. It's a fucking disaster in terms of stability and security, and a big portion of browser crashes can be blamed on it. I don't want that piece of shit touching my iPhone, period.
MAGICAL!
They dropped a shit load of new , better apis as well with the announcement.
What they are trying to do is manage expectations.
Someone mentioned smoke and mirrors, hell yes that's how you manage your expectations.
It goes back to a twist on the old question: Would you rather be able to do any magic trick in the world and stun and amaze audiences or not do any but be able to perform one mundane but totally true magic skill (like being able to change the color of your urine at will from urine color to purple?)
Have you seen the internet without flash installed, or with all flash blocked recently? It's a strange, serene, quiet, and frequently fucking useless place. Seriously, so many websites use it for critical functionality (without even bothering to supply an html alt) that you literally cannot get by without it whether in academia or the workplace, even if you loathe the shitty software and the screen-grabbing ads it serves.
Also on Steam and PSN: twobadcats
Well, I think there was a hope that Jobs had learned from that. Instead, it seems that he's trying to rewrite history. The problem is that it looks like history is repeating itself - iPhone sales have stagnated at about 90k units/month, while Android has hit 60K units/month and is growing. Also, Android isn't as fragmented as people think - the handsets running Cupcake or Donut are mainly the older first gen Android phones such as the G1, while newer Android phones such as the Droid, Hero, and Nexus One are running Eclair (and will probably move to FroYo as soon as it's finalized.)
Apple is a proprietary developer, which basically means that they control not only the hardware in their products, but the parameters and restrictions in their software development. Every company wants to make the best presentations of optimized products, and if you aren't in charge of the factors that can alter that optimization, you have a much harder time presenting and touting that optimism. Basically, it's a lot like Chrysler letting customers choose their engine specifications from a third-party source; they can't promise you 30mpg if you want to buy a 10-cylinder turbocharger.
It's an Apple product. Apple takes these risks (if they can be called that) at their own peril, and if their developmental restrictions drive engineers and creators away from the medium, they'll reap the rewards in the form of decreased sales and lowered stock value. I get pissed about the way Apple forces the market to accommodate their technology instead of vice-versa (can I please get some fucking Blu-Ray support?!), but Apple isn't doing this at gunpoint, and they usually have pretty good reasons for doing the things they do. Yes, they make questionable choices at times, but it's their products and consumption isn't compulsory.
I'm not really here to defend Apple. I'm by no means a fanboy, and the only product of theirs I own is an iPod touch. But all this hand-wringing seems a lot like yelling at the bouncer when he keeps you out of the club because you're wearing flip-flops and Ed Hardy; the provider sets the rules of exchange, you as a consumer only ever have the option of agreeing to or refusing the exchange. This is the same for everything.