Hacker News new | past | comments | ask | show | jobs | submit login
Cocoa Touch apps (2007) (twitter.com/techemails)
179 points by tomhoward on June 3, 2021 | hide | past | favorite | 71 comments



I just realized that more time has elapsed since the iPhone launched (about 14 years: 2007 - 2021) than had between when Jobs returned to Apple and the iPhone launched (about 11 years: 1996-2007). Yikes.

Also, the three month deadline helps explain why the iPhoneOS SDK was such a mess when it first launched.


He was leading NextStep right before for ~12 years, iOS SDK is built on top of that effort (NSString - Nextstep string)


NeXT, and here's some more fun history on that: https://web.archive.org/web/20150824224400/http://www.cocoab...


Not just iOS. OS X merged in a ton of NextStep stuff to OS 9, and iOS happens to be based on that


Classic Mac OS and and Mac OS X were wholly separate operating systems.

Early versions of Mac OS X included the Classic environment, which was an OS X app that ran Mac OS 9 in a sandbox environment (https://en.wikipedia.org/wiki/Classic_Mac_OS#Classic)

Mac OS X/macOS also shipped for twenty'ish years with Carbon, which was a framework that offered a cleaned up subset of the old, classic Mac OS Toolbox. It was retired with 10.15. https://en.wikipedia.org/wiki/Carbon_(API)#Deprecation_and_d...

Regarding iOS, though, yes you are correct. iOS was derived from Mac OS X, and Jobs spoke a number of times about how the iPhone was "real OS X". https://web.archive.org/web/20070822184142/http://macdailyne...


close but iirc, its more the opposite:

osx was nextstep with os9 stuff (toolbox etc) ported over as carbon (with a lot of other os9 stuff) to support porting older apps [0]

[0] https://en.wikipedia.org/wiki/Carbon_(API)

but the kernel, gui, drivers everything was descended from nextstep

edit: (next/openstep)


Wrong on the drivers side.

The Objective-C drivers framework (DriverKit) was replaced by a C++ one based on a language subset (IO Kit).

It is no accident that IO Kit replacement is named Driver Kit as homage to the original NeXTSTEP driver framework.


right right, i guess i should have been more specific, but even though iokit was writtten in c++ it still followed much of the design patterns from the next/openstep one right?


In what concerns the architecture of a light OOP model for the drivers, I guess.


Tangent: you might enjoy r/BarbaraWalters4Scale for more of this kind of stuff

https://www.reddit.com/r/BarbaraWalters4Scale/


This is 110% the kind of content that I love to find on the Internet: https://www.reddit.com/r/BarbaraWalters4Scale/comments/nc00b...

Thanks for sharing that sub-reddit. Subscribed!


Also didn’t they debut it in the spring either way? I remember something like that. Or maybe it was 2.0


Man, that is a classic "Jobs" reply.

Detailed, well-reasoned email, acknowledged by a curt one-sentence reply.

But that only happened in email. I don't think Jobs liked the written medium. He could talk up a storm. One of the best declarative public speakers I've ever heard (but not an "emotionally eloquent" one, like many preachers).


Don’t think that’s as much a “Jobs” reply as just a general senior management necessity.

With the amount of “important” emails you get in a position with any kind of responsibility, writing thoughtful elaborate responses to each and every one would leave you with no time to do your actual job.

So you communicate the core message clearly and bluntly, and move on to the next fire.


I think a good example of this would be Tim Cook’s email to Phil Schiller on why the Mac’s App Store wasn’t taking off, which was revealed during the Epic Games v Apple trial: https://mobile.twitter.com/benedictevans/status/139681157744...

Cook sees the fire, gives a brief thought, and leaves it to Schiller on Christmas Eve to figure out why it started and how to fix it.


I think that you meant to post the following URL -- https://twitter.com/benedictevans/status/1396811577442045953

Unfortunately, it was truncated in your post

Cheers and thanks for the reference!


Also, I don't see what other information was needed here. He was the CEO, he was not supposed to get into implementation details. He gave a green light and left them to do their job.


I've grown to really like short responses, assuming they give enough info to answer the question. I think that a lot of us run into a subconcious thing where we feel like we need to say more, but most of the time we won't. I've been practicing recently, and it makes things so much faster and less tedious.

I think I originally picked this up from professors, because I'd write a well thought out response (an unreasonable amount of time spent on it), and the professor would respond with all the info I'd need in two sentences.


I forget which Apple engineer posted this anecdote, but Steve Jobs threatened to fire him and he agonized over a detailed response email.

But he ultimately just sent something like “Steve, you know how I feel. But you’re the boss. Let me know tomorrow if I’m fired or not”. He never heard back and just kept working at Apple.

Now I personally think the engineer’s like-kind response is probably what let him keep his job. But there’s something elegant about straightforwardness like this.



Jobs's reply in this case, however, was characteristically asshole-ish, not merely curt.


I also found Bertrand's email concise and to the point while still being very informative.

Covered all the bases, without requiring a PowerPoint or some long drawn out document to make his case.

The whole thing is 7 sentences but lays the foundational principles of the App Store that persists to this day.


I'm a solo entrepreneur. Curt, one line emails are the only way to scale email when a lot of customers need my time.


"Let's protect the user, by keeping control of [...] which entities can distribute apps (implies: signing infrastructure, policies, etc...)"

Imagine an alternate universe where this foundational goal of the iOS SDK was interpreted just a little more loosely, with something closer to MacOS notarization, and an App Store that had to compete just like the Mac App Store.


Easy to imagine it. It’s the google android play store situation.


And it just... sucks. So many avenues for exploitations for average developers that I'd never trust and install a 3rd party app on such a device that I carry around with me every day. Sure, Apple model is far far from perfect but the only solution I can think of for such a personal device.


> I'd never trust and install a 3rd party app on such a device that I carry around with me every day.

I don't run any third party apps either. But I like that I am welcome to do so. In the past I have installed apps from third party developers that I trust and am the better for it.


You can buy an iPhone and be secure in the knowledge that if you want to run these apps you never run, you could buy an Android phone!


I want to install apps though (and I actually do). Just those that makes economic sense for developers so that they won't want to resort to scams and even if they decided to, they wouldn't be able to. Apple's ecosystem provides that. I do run 3rd party apps on my Apple mobile devices and accept that there are reasonable vetting procedures at the human and OS level to protect my privacy and protect my device from malware. Android model unfortunately does not provide that, that's why I wouldn't install such apps in such a device.


Hard disagree. First thing I do on any new android phone is install a third party app: f-droid. the play store is impossible to navigate because it's flooded with ad-laden crap and overly permission-greedy dodgy apps. f-droid (for those who aren't familiar, it's an app store for open source applications) is an excellent way to get away from that and get apps that are basically guaranteed not to be user-hostile.

not to mention that app stores impose censorship on the sites that offer apps there. if you're an art platform you aren't allowed to show anything that even just vaguely hints at nudity (and I'm not talking about just outright porn here)


And you're able to install f-droid because Android allows sideloading, which has nothing to do with the awful way Google has managed the play store!


yes, I was trying to make the case for side-loading being good. If the iPhone had an f-droid equivalent I would probably switch over.


How does that make it suck?

Like, just don't install those apps. Easy.


What do you mean by "those apps"? I'm talking about potentially ALL apps. I want to run apps on my device. That's why I bought it.


What do you mean what do I mean? I'm talking about apps that don't come from Google Play. If you're concerned, don't install them. Easy.


I don't think we are on the same page. My point is Google Play is the best the platform has to offer, and it sucks. It still does some vetting and cares somewhat about platform's security but it is nowhere near enough. Otherwise, I actually do want to install useful apps developed by companies that won't have to resort to snooping and ads to be sustainable - and worst case is reasonably depended by the more strict Apple vetting on the platform and OS protections. So I want those apps and be reasonably secure. I want those useful apps to exist, with an ecosystem about it. Apple provides that, is my point.


Thanks for clearing that up, I see where you are coming from. I think the place you and I will disagree is this:

> Apple provides that, is my point.

Apple, imo, provides a dog and pony show - just as Google does now with their human reviews of Android apps. The app review systems are security theater. The real security is in the APIs and the OS, and I think Android and iOS are on par with one another there.


This only works if you never interact with anyone ever. A lot of your security depends on people in your network not installing random crap and the past 25 years of computers have shown that it is sufficiently easy to social-engineer people into downloading and installing random crap.


There are far more Android devices being shipped and used in the world than iOS devices. In a purely marketshare-based view, Android is winning.


...and I wasn't disputing that. Of course, Android the operating system has more market share.


I beg to differ. From my understanding, Google does not notarize apps from outside the Play Store and therefore cannot revoke apps outside the Play Store from launching. Apple can and does do all those things on macOS.


Of course. Google doesn't exactly own your device — you do. You're free to disable all preinstalled Google apps, including Play Store. I prefer to not have my devices backdoored by manufacturer.


Play protect


To expound on this for people who aren't familiar, APKs installed from outside the Play Store can be optionally uploaded to Google's servers for automatic malware scanning.


That's completely different. Apple could protect users with an awesome curated app store, but still allow sideloading if desired. In fact, maybe with slightly lower volume they could have human reviewers actually spend more than 30 seconds per app.


At least it's not the Amazon store. That place is scary, not to mention derelict. My Kindle Fire probably needs a pi-hole in front of it to make sure it's not hitting anything other than the Kindle APIs...


The most amazing part of this for me is the goals were set before they started, and they delivered on them. The goals didn't change, they didn't pivot, it didn't agile it's way slowly into something else.

Clear vision, and what they delivered took over the world.


Jesus they had 3 months to do it.


I was at Apple in SWE at the time.

While three months for public APIs was a tight schedule, a lot of the frameworks already existed and it was shoring up public access to them. Apple tends to dog food their own stuff for a while before making it public. The iOS 1 apps were using common APIs even if they weren't public.

The early iOS APIs were pretty limited and were typically a subset of everything in a framework. Subsequent releases added to public APIs or released new revamped APIs for the same purpose.

So it's not like Jobs was asking for years worth of work in three months, maybe just six months of work in three months.


I _deeply_ appreciated a recalcitrant Serland's "Let's do it right this time, rather than rush a half-cooked story" was followed immediately by Jobs' "Sure, as long as its ready in 12 weeks"

Of course, history shows it wasn't _actually_ rolled out till June (modulo direct 3P relationships Apple did earlier), but good to know managers are always managers and FAANG is always FAANG, 90% of the work gets done _in spite_ of the lack of planning


Crazy indeed. Although I assume at that point they already had large parts of the SDK implemented for native internal apps and much of those 3-6 months have been spent on public documentation, signing infrastructure etc.


Yeah, people had already been using the private APIs on jailbroken phones. That's still a pretty ambitious timeframe even just to get out all the supporting infrastructure, though.


I presume getting it to work in XCode in a presentable way was also quite an undertaking. Perhaps the simulator already existed, I don’t know. But if it did it probably wasn’t anywhere near release quality.


It ended up being more like 5[0], but still a crazy crunch.

[0] https://www.apple.com/newsroom/2008/03/06Apple-Announces-iPh...


Suddenly all my deadlines seem to be not as tight as I thought they were before.


Man, it would be nice if we could go back.


So macOS is finally getting touchscreen support? Awesome.


Not sure if this is a joke, the emails refer to iPhone and it’s original sdk. Originally, to develop for iPhone, you had to settle for making web apps.


Well the iPhone shipped with native apps. You, as a developer, just couldn't make them yourself. So my question what is, and wasn't there when it come to the internal SDK and what needed to be built out? I guess exactly what Bertrand lists lol. One of those things would be seen as a miracle to ship in that timeframe.


Nothing shipped in that timeframe. It was announced, and that was it.


Announced and demoed. Could be a severely lacking demonstration version but it still had to be presentable.


[flagged]


They did intend that. This email is Bertrand relenting and saying “Fine, let’s enable apps that aren’t web apps.” Here’s what they told developers when the iPhone was released (months before that email): https://youtu.be/vKKISOnOCaw


How is "never the case" derived from this email? This email was sent after iPhone shipped and doesn't say anything about shipping Cocoa Touch as a goal before this point.


Seems like clear case that is _was_ the case, unless Steve Jobs liked to ensure his intended features were very secret indeed, and delivered late.


[flagged]


This claim is directly contradicted by this e-mail exchange from October 2007, the very e-mail exchange in which they decided to move forward with a native app SDK. The iPhone was announced in January 2007, a full 9 months earlier, and was in development for a few years before that.

If they "always planned" the App Store, why would Bertrand, one of Steve's direct reports, be writing as if this were a brand new idea?

One of the original iPhone's "killer features" was a full, desktop-equivalent web browser in the days of the "mobile web" and WAP. They invested significant engineering effort into making it performant, adding UI affordances for zooming and panning around pages that couldn't fit on a 3.5" screen, and so on. It's completely believable they thought this solution was enough for third-party apps.


You have to keep in mind that with iPhone they built a truly revolutionary device not even remotely like anything that had ever been built. And then the jailbreak community took it and ran with it and immediately demonstrated the next level of what was possible.

It’s not that strange it didn’t all work out the way they had planned. If, prior to the original demo, you had asked just about anyone how long it would take to build something like the iPhone they would have probably said it was a decade away.

There is a reason the Android project had to throw their whole UI out of the window and start over. And if took years before they were anywhere near the iPhone experience.


[flagged]


Ah yeah, the deluded (you) thinking everybody else are the insane ones.

If you look back at that time period, the "Fine!" surely came about because iPhone jailbreakers had extracted the API from the apps and were making their own Cocoa Touch apps and sideloading it onto the iPhone. "Let's enable" sounds like they decided to open it up to the public, if your theory about stop-gaps is correct I would've expected the wording to be "Fine, let's enable CT apps early.". The rest of the email also talks about the jail which is the app store, which seems to be a rough concept of "What we need to make this happen", rather than something that they've been preparing in the background.

It looks more like you're having a stockholm syndrome with your own "knowledge".


> is presenting "Cocoa Touch apps" as a new idea?

Cocoa Touch apps wasn't a new idea, since that's what all of the Apple-developed native iPhone apps used. What's new to this email is getting approval for enabling 3rd parties to write & release them without jailbreaking your phone.


The email shows literally the opposite of what you suggest


I would argue that this email actually somewhat bolsters the claim of web apps only, so I'm not sure how you believe the exact opposite.


How does this contradict that?

The original iPhone was release in June of 2007, this confirms that the decision to release an SDK was in October of that year. With the announcement to the public being a couple of weeks after this email.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: