Luckily data-hoarder-me had a copy of my iPhoneOS 1.0 toolchain, so I installed it into a Mac OS X v10.5 VM and fixed up the port 😄
It's alive! /cc @chockenberry
And if for some reason you ever need to install iPhoneOS 1.0 in an emulator and use third-party apps from the home screen, my SpringBoard patch was to SBIconModel _addItemsToIconList:fromPath:withTags: where I bypass a [[[SBPlatformController sharedInstance] allowedDisplayIdentifiers] containsObject:] and change the beq from an 0A to a 00.
If there's an easier way of doing this, I couldn't find it after 16 years of link rot 😅
Re-learning a lot today; the iPhoneOS 1.0 SDK is *very* different from iPhoneOS 2.0 and everything after it. Simple things like UIColor, UIScreen don't exist. Even UITableView was 'just’ UITable. UILabel was UITextLabel. QuartzCore was 'LayerKit’. There is no UIApplicationDelegate either, you subclassed UIApplication instead.
Really shows the longevity of a public API contract; almost everything in iPhoneOS 2.0 is very familiar to modern UIKit development
@stroughtonsmith QuartzCore was LayerKit even in the class names (LKLayer instead of CALayer etc).
Also, back when iPhoneOS 2.0 came out, I asked if it would be possible to make a compatibility layer to let apps made for jailbroken iPhoneOS 1.x continue to work, and saurik told me the *Objective-C ABI* had changed. Abandon all hope.
@stroughtonsmith Ah, could be that, too. I just remember it started on tvMacOS, then made it to MacOS a realease or two after, and then showed up on iOS too.
Whether it was CALayer or CGLayer, or both, I don't remember.
@stroughtonsmith The original AppleTV released January 2007 (With Tiger and LayerKit).
The iPhone was announced, but didn't release until late June 2007.
Given it's much easier to downscale MacOS to Pentium M than it is to make it work within the 4GB/400MHz constraints of the iPhone, I’d say it's pretty certain the AppleTV came first, as a stepping stone?
@stroughtonsmith “everything I was developing” = you based your projects on this unreleased API, or you were at Apple at the time, working on LayerKit?
If the latter, then ofc. you’d know better what it was originally developed for.
I can just go from my personal memory of making sure we can live without certain features every Mac had but AppleTV didn't and a colleague spotting this LayerKit thing.
@stroughtonsmith That seems odd, yeah. I don’t think we bothered reverse-engineering anything beyond “there is this layer framework they're using” ... did Fig exist at this time already? Maybe they just needed it to host QuickTime movies in it?
AFAIR that LayerKit *was* CoreAnimation (or was a CoreFoundation-style thing that looked a lot like it, like CGLayer & co. do), but it would make more sense if they had a different LayerKit and it was just a double-use of an obvious name?
@foon @uliwitness @stroughtonsmith but that Apple TV booted Tiger, which didn’t have LK yet.
So it sounds like they back ported their early LK just for TV.
(And yes, LK = CA, not Quartz/CG. Not sure why the name change other than Steve wanting a purple CA orb at dub-dub. That’s probably the only reason.)
@stroughtonsmith I still have the iPhoneOS 1.x source for MobileScrobbler, though not really useful anymore since the Last.fm radio service no longer exists.
I suppose it can still scrobble your iTunes music to Last.fm with a new API key, though.
Here's the source zips for every release, and the final deb file for Cydia too: https://www.c99.org/projects/source/MobileScrobbler/
The scrobbler runs as a daemon launched by LaunchServices, so you would have to put everything into the right folders yourself without the Cydia install scripts.
@stroughtonsmith @chockenberry
Who’ll be the first to release iPhone 1 on the vision pro?
@stroughtonsmith I remember when I got my iPod touch and it didn’t even have a way to add calendar items (screenshot 4).
That came in a later update and was a revelation! 🎉
@stroughtonsmith I would love this emulation to evolve for the next iOS versions (probably with some emulated server components? 🤔)
Emulating it under iPhone at one point would be a nice touch as well 😎🤓
Attached: 1 image Figured you'd all enjoy this fun lil bit of trivia. In 2007, when Steve Jobs introduced the iPod touch, there was a dramatic reveal in the keynote half way through that it had wi-fi and Safari. He went back to the demo and made a previously-hidden Safari icon pop onto the home screen (https://youtu.be/t_cNLpUXPdQ?t=2464). I thought this was just for the keynote, but it's a real mode you can force enable. I managed to do it on this emulated iPod touch: