IPad Almost Like a Computer
Just a little rant about how close an iPad is to being a better portable Mac.
I’ve mentioned it before, but especially now that the internals are identical, the iPad could be merged (perhaps optionally) with MacOS to allow more full computing on the portable platform.
One argument is the screen size, as the computer inside is essentially the same. I have a slightly older 13-inch iPad Air, with the M2 processor and 256GB of storage, which seemingly has 8GB of RAM. It’s essentially the same compute power and screen size as the (now slightly older) MacBook. I also have an older Mac Mini, with an M1 processor and 256GB of storage and 8GB of RAM.
The major differences are IO. The MacBook has a built-in keyboard, trackpad, and multiple USB-C/Thunderbolt ports, but not a touch screen. The iPad has a touch screen and one USB-C port that supports DisplayPort. My Mac Mini has a number of USB ports, HDMI, Ethernet, and no other IO, requiring a keyboard and mouse or touchpad to be connected or paired, and an external monitor.
To blur the lines, right now I have my iPad plugged into a 27-inch 4K display with a USB keyboard and mouse attached. The screen does not have touch capabilities, so I can only do that on my iPad, but the mouse and keyboard work everywhere. Stage Manager has some gaps, especially if I confuse it by having the mouse on one screen but then try to tab to a window on the other screen. This confusion doesn’t happen on MacOS, though, where my Mac Mini shines, also connected to multiple displays.
So, although they have the same compute power, RAM, and storage, and can use multiple displays and input peripherals, iPadOS is limited and sandboxed, preventing me (and presumably others) from doing many things that would make my day better.
I do understand the usefulness of sandboxing. I also get the usefulness of the iPadOS interface when using it as a tablet. For so many users, and even for me 90% of the time, it’s nearly perfect. Stage Manager helps bridge the gaps where it’s useful to see multiple windows, and still allows the default full-screen to behave as we’d like. But it does fail a little in its multiple window handling, doing weird things like building groups of open windows that all swap in and out when switching between them. There are times that’s great, but others where it’s annoying, and it can be frustrating forgetting which environment you’re on to make sure you open the app windows together the right way.
All of that can be refined, though.
Where I want the line to get crossed a little more than some of that interface refinement, is some of the deeper dive app capabilities, particularly in some cases where the security of sandboxing gets in the way. There are apps available for either iPad or MacOS, sometimes with availability on both, either with the same app or something similar.
For example, I’m using Firefox right now to tap this blog entry, and it’s vey similar, but different on the two platforms. A big thing that’s missing on the iPad version is the ability to inspect a web page, its network interactions, or viewing the assets and errors. This is the same for all of the browsers available on both platforms.
For another example, I use Pages on both, because it conveniently handles versions of documents and shares between both, not only in a common data store, but leveraging hand-off to allow me to move editing on one to continue work on the other. It doesn’t quite have shared live editing, where changes made on one are immediately visible on the other, but it comes close. On the iPad, though, I can’t add fonts, and sometimes adding fonts to a document on the Mac doesn’t make them available on the tablet.
One of the things I do is make software. That’s part of why I want to inspect web pages, both mine and others. Because of sandboxing, though, I can’t run my desired IDEs, run the shell-level scripts and applications to build or execute the software, or otherwise manage the tools and results of software development. There are a few web-backed IDEs, where essentially the development is done on another computer while the interface is displayed on the tablet (or desktop), but there are difficulties with that, too. There isn’t a shell on the iPad, for good reason, that could allow me a gateway into a container or protected zone where I could do the things I need to do for that part of my job I have to have a computer.
I think there needs to be a leap of faith for iPad owners who know what they’re doing. Maybe protect it with developer licenses or fees, like XCode and the Apple SDK used to have, to at least show the commitment, if not the expertise, to pull it off.
Since it works on my Mac, interface concerns aside, it doesn’t make sense it couldn’t work also on my iPad, pretty much no matter what “it” is. It should be possible to run a virtual machine or isolated container on the iPad, as can be done on the Mac, and maybe let that be the foot in the crossover door, where I can have a shell, add tools like git and Gradle, adding a JVM, Groovy, or Kotlin compiler and tools as I need. Or even XCode, to natively create software meant for Apple products. Maybe its UI is confined to a separate screen, and initially can’t interact with other windows or whatever, maybe beyond copy and paste.
Or give me a capability to choose to reinstall the OS with MacOS instead. There’s always a screen. They can add touch capabilities (rumors are they’ve been trying to add touch screens to MacBooks). There’s an on-screen keyboard in MacOS that maybe they need to turn on more often if a physical keyboard isn’t present as the iPad does.
As I sit here now, with my iPad and no other Mac in sight, I have ideas and things I want to do. I’ll have to tinker with them using the web editor in GitLab, and either try to get their build system to build and test for me, or use Terminus to shell to my machine at home and do things through SSH. I can do everything over SSH, if I want to use a shell-based editor, like vim, or a tool that can use SSH behind the scenes, but they’re leaving a lot out of iPad editors. There’s vscode.dev, and I can add a remote server to my home lab, but that again requires some Internet stability and performance that local development doesn’t necessary require.
I think it can be done. I think it should be done. I wish I knew better how to encourage it or help make it happen.