3 ms·
My impression was that the iPhone was fully thought out in advance so that everything would work together. Take away a major piece, and the whole thing stops ma
by mtdewcmu 13y ago
My impression was that the iPhone was fully thought out in advance so that everything would work together. Take away a major piece, and the whole thing stops making sense. It needed a touch screen so that it didn't need a keyboard. There couldn't be a keyboard, because it took space away from the display. Replacing a keyboard with a touch screen was radical at that time, and it had to work really well. People would need visual feedback to be able to interact with it effectively. The visual feedback couldn't lag, so that required fast graphics. And so on...
- potatolicious 13y agoSort of. It wasn't quite such a clear causal chain - there were some things that positioned them well in the first place. Quartz, which is the drawing and compositing engine developed for OSX, is really at the core of it. For one thing, Quartz is really fast, and long before iPhone was even a rumor Apple had already tied it deeply into OpenGL and made it hardware accelerated. Quartz is really the "secret sauce" to the responsiveness and graphics performance of iOS, and it predates iOS by a pretty wide margin. Core Graphics was built on top of Quartz, as well as Core Animation, which form the primary ways third party devs interact with the graphics layer. If Apple hadn't done OSX first, or done it differently, I don't think they could have pulled off iPhone.
- pohl 13y agoCoreAnimation is another great example: it was first made public in the summer of '06. It's easier to see why they were working on such a thing now.
- mtdewcmu 13y agoFor sure, it wasn't conceived in a vacuum. Apple's existing IP would have provided essential pieces to make it possible. I've only owned a single smart phone so far, and it's an Android device. But I've noticed that Apple's devices have smoother interfaces. I've wondered how much of that can be traced to platform factors, and how much is simply execution and polish. And whether the OS design, and the difference between ObjC and Java, play a significant role. My impression was that Java was a dog, but it seems to run pretty well on Android. It's possible that with the meticulous attention to detail of a company like Apple, Android could be made as responsive and smooth as iOS. Or, maybe, platform issues make that virtually impossible. It would be more technically intriguing to think that native code and Quartz are decisively better, but I'm leaning toward the more boring explanation that Apple just worked harder on the UI, and expended the effort to do all the little things right. The basis for my opinion is the observation that true explanations are more often boring. I'm not very expert on graphics, but I've had a suspicion that dedicated graphics hardware makes iPhone-type devices possible. Highly-integrated and highly power efficient graphics hardware was only just becoming available when the iPhone was in development. And, as you mentioned, the software layers to take full advantage of it in a GUI wasn't something you could just take for granted.