qlyoung's wiki

iphone

Bit of a pace change here, I don't particularly care about consumer electronics but mobile computers aka phones are an exception since for better or worse they're inextricably tied up with much of my life.

After being a longtime user of Pixel devices (which pairly nicely with Google Fi cell service), the screen on my Pixel 4a broke in June 2022. At the same time I went to Yosemite with some friends and noticed that the pictures they took with their iPhones looked a lot better than the pictures I've taken with any Android phones. I was always skeptical of iPhone's ostensibly restrictive user experience (relative to Android), but being rather bored with technology and not finding any really good Android phones on the market (where are the microsd slots?) decided to pick up an iPhone. Apple has a decent 14 day return policy, so I figured I'd try it out and if the device annoyed me I'd just return it and get whatever the current number pixel is. In short, I've been pleasantly surprised by iPhone and am keeping it. I bought the iPhone 13 Mini with 512gb of storage.

Preconceptions

My main hangups coming into iPhone numbered three:

No filesystem access

I'd vaguely heard that it is difficult to access iPhone's filesystem. This is one of the things that kept me from seriously looking into iPhone in the past. I know how computers work, I know consumer computers have a filesystem that has files on it, one of the main things I do with computers is work with files on the filesystem. I'm generally not interested in learning abstractions over the filesystem and if I'm prevented from doing things I normally do with the filesystem, like moving files around, that's a nonstarter for me. Turns out this concern was misplaced. The iOS concept of the filesystem is more complicated than the one on Android, but from a functional perspective I can still accomplish the same tasks. I can mount various parts of the iPhone filesystem on my Arch laptop via a FUSE module and get to the files I need to get to. On iOS, apps apparently have their own private filesystems, which is kind of a neat concept and makes perfect sense from an application sandboxing perspective. These can also be mounted on Linux via FUSE. I can copy files to and from application filesystems and I can copy to and from the directories iOS exposes for use as mass storage.

By far the biggest filesystem-related task I do with phones is to sync my music collection to the device. With the way I manage my music collection, I prefer to do this with rsync, it's simple and clean and does what I need it to. On Android I would mount the phone filesystem via jmtpfs and rsync my music to a directory in the filesystem; on iOS I mount the application filesystem for my music player application (VLC) using ifuse and do the same thing.

Android:

jmtpfs ~/mnt

Mounts the whole phone filesystem on ~/mnt. Now I can copy my music to ~/mnt/Music with rsync.

iOS:

ifuse -o allow_other --documents org.videolan.vlc-ios ~/mnt

Mounts VLC's application filesystem on ~/mnt. Now I can copy my music to ~/mnt/Music with rsync.

A little more regarding application filesystems. The first thing I noticed when using iPhone was that when I wanted to save a picture from the browser to the phone, I had to choose where I wanted it to end up. The two options iOS presents in are Files and Photos. This is strange, conceptually I am saving a file, so the distinction between these two things isn't clear. After I figured out the application filesystem thing this makes a lot more sense; choosing Photos saves the picture to the Photos application's filesystem, saving it to Files saves it to the Files application's filesystem. This seemed like a bizarre abstraction over the very simple concept of a filesystem until I realized that this ties into how iOS does application sandboxing.

iOS doesn't work like Android where an app either has access to the filesystem or it doesn't; on iOS you grant individual apps access to specific paths in the filesystem. There also seems to be a concept of apps asking other apps for permission to access parts of their app filesystems, although this may be the same thing (not sure as I haven't done any iOS development). This is awesome from a security perspective and is something I didn't know I needed until I used it. For example, if I want to send a picture to a channel in Discord on Android, I open the Discord file picker and all photos on my phone are visible from within the application; i.e. Discord has unfettered access to the filesystem. A malicious or buggy Discord could choose to send any picture it wanted, there's no access controls preventing it from doing that. Contrast with iOS; I open the Discord file picker, and by default I see no photos. Instead there's iOS UX there that allows me to grant Discord access to *specific* photos. Once I grant access, then Discord allows me to pick from the photos I've granted it access to. This is a huge deal. This is absolutely how it should be. Filesystem access should be heavily locked down and mediated by the operating system on mobile devices. In retrospect Android is extremely primitive in this regard. It's difficult to explain in text without seeing how it works in practice, but once I used it, I had a moment of “ah, I get it now” and was sold on it.

One other note on this; I'd heard people say “oh but iOS has the Files app now” in response to concerns of restricted filesystem access. It does indeed have a Files app, and this app is interesting. It's a surprisingly comprehensive file management app. It allows you to access select application filesystems - it seems to be limited to ones that apps choose to expose - and some other parts of the filesystem, although the parts that are exposed are clearly curated by iOS. There's obviously no view of the root filesystem. Functionally it feels like porcelain over a bunch of bind mounts or a virtual filesystem being used to present a clean, access controlled interface to stuff iOS has decided you should see. To be honest, I rather like it. The Files app also has the capability to mount remote shares, another pleasant surprise; I was able to add my home Samba server easily and played around with copying music files from it into the VLC app filesystem using just the Files app, which actually worked.

No webm support

I watch a lot of webms. For some reason - I really don't care about the justification - Apple has decided webm is not an ordained format and refuses to implement a system codec for it.

Yeah, this one kind of sucks. Webms just don't load or present as file downloads instead of embedded playback in places where they'd normally embed as videos on Android. Installing VLC and opening the file in VLC works well enough to live with it, but still, this is stupid and for a company that really cares about user experience, they should just implement webms. I don't care if there's a royalty situation or a nonfree codec situation or whatever the issue is. Apple is the world's most valuable company, they can afford to pay royalties so that I can play webms on my $1000+ mobile computer that I bought from them. No excuses.

Lock-in

Vague concerns about being locked into the Apple ecosystem, forced to use only apps approved by Apple, integration with iCloud, etc…

This one is also valid. Lack of first class support for sideloading is a legitimate gripe here. Functionally this means I can't install Newpipe to watch YouTube without ads. I don't know who the hell watches YouTube ads, but I'm not about to spend hours of my life watching that trash. My time is more valuable than that.

Using YouTube frontends like Invidious in the browser works, but it's not really a great experience. Notably, it is still better than the YouTube app with ads, but it's worse than Newpipe where I had my own curated playlists and subscriptions managed entirely through the app (not tied to my Google account).

I'm told that the data shows that people who buy iPhone are much more willing to pay money to solve problems than other people are. I imagine most people solve this problem by paying for YouTube Pro or YouTube Red or whatever the premium YouTube version is that doesn't show you ads. I may end up there but not today. As a matter of principle I refuse. I also think it's complete bullshit that I can't sideload apps on my $1000+ computer. I paid for it, it's mine, let me run my code on it. But this horse has been beat to death so many times, and Apple definitely knows that people will still use iPhone, and they're right about that. I'm still using iPhone.


Positives

Things I like.

UX

Everyone knows this one. iPhone is famous for the UI being buttery smooth at all times. This is real. As much as I wish I didn't, I use my phone probably a couple hours a day. Having nearly every interaction with the device be pretty much glitch/hang-free is such a tangible upgrade over Android.

Minor things like picture-in-picture, context menus, the screenshot editor etc. all work together for an experience that is far more consistent and far more pleasant than Android. For a device that runs large swaths of my life, it's a significant upgrade.

Pictures

When I first wrote this section after getting the phone, I wrote:

It is just a fact that the iPhone takes amazing pictures. Through whatever combination of camera and software, pictures on the iPhone turn out consistently better than any picture I ever took with any Android flagship - and I have owned a lot, from the Nexus 5 through the Pixel 4a. Having a wide angle camera is also awesome, I use that thing all the time.

After two years of using the phone, I now hate the iPhone “look”. I think it's because in that time I purchased a mirrorless camera and started doing enthusiast photography, prompting me to be much more conscious of colors, sharpening, contrast, noise and noise reduction, and all the other things you notice when you start grading your own photography. Now when I see photos produced by the stock iOS pipeline, I'm left wondering why they frequently look *so awful*. In some scenes the photos look good, but in many cases iOS will consistently

  • oversharpen
  • oversaturate
  • apply extreme local contrast

It is possible to shoot in raw on my iPhone, but doing so doesn't match the type of photography I use my phone for. My phone camera is for quick snaps to capture a moment or preserve a memory when I don't have my real camera, or don't want to use it. Oftentimes I want to share the photos I take soon after shooting. Shooting in raw means I need to demosaic, grade, and export that photo. When I take 30 pictures in a day that is too much effort for each photo. I need the computational pipeline to produce something that looks at least OK. The extreme amount of oversharping and local contrast that the iOS pipeline produces just looks terrible.

Here's two versions of the same photo I took of a rock wall in Colorado. I shot this using Halide, which produces both a raw and a HEIC that goes through the usual iOS image pipeline. I applied a neutral grade to the raw, only correcting for exposure, a little bit of chroma and a touch of contrast. Can you tell which one is the iOS photo and which is the raw? Hint: the iOS one looks like nothing that exists on planet Earth.

I guess the pipeline is optimized for what people want to see, but it looks awful to me.

I've also noticed that iOS takes pictures of sunsets that in real life have delicate and beautiful shades of pink and maps all of the pink tones into…orange? It's so egregious I genuinely believe that the pipeline detects sunset photos and applies a specific grade that crushes pinks and produces a very generic looking orange and blue photo.

Security

I said most of what I wanted to say in the filesystem section, but yeah. The iOS security model is clearly much more mature than that of Android. At security conferences there's always a talk or two about breaking iOS application sandboxing. No one gives talks like that for Android. I think that's because breaking iOS is actually impressive. Nobody is surprised that Android is broken.

MagSafe

Wireless charging is dope, but MagSafe is the nicest system I've used out of all of them. I really like the MagSafe charger for iPhone.

General build quality

Apple's build quality is legendary and it's on full display in the iPhone. Hardware silent mode switch is great.

Standard support

This one actually surprised me. iOS has deeply integrated support for standard protocols and technologies into the OS, including:

  • CardDAV. Completely and seamlessly integrated into the OS. Configured my CardDAV server in the OS settings, contacts sync both ways. It just works. Notably it works better than the Google Contacts mess on Android.
  • CalDAV. Again, configured in the OS, and it just works. Calendar events sync both ways.
  • Samba. Yep. Go into the Files app, dots menu, “Connect to server”, put in a smb:// URL. Login prompt, done. Mounted.
  • FTP, SFTP and I believe WebDAV work same as above.

Overall the situation here is far better than what I experienced on Android.

Negatives

The media situation

The iPhone media library is weird. Apparently iOS has a concept of music, videos and photos being some kind of special entities above and beyond regular files. This kind of makes sense from a historical perspective; the iPhone was originally launched as a 3-in-1 combo device, as Steve Jobs said, “A widescreen iPod with touch controls, a revolutionary mobile phone, and an internet communications device” or something like that. So the media situation on iPhone is a relic of it being conceptualized as having an iPod inside of it, and you use iTunes to manage iPods. I have fond memories from the early 2000's of copying music to my iPod shuffle's mass storage using Windows XP and then the songs just never playing on the iPod because I didn't rebuild the database file…that's still a thing on iPhone, somehow. Android has this in the bag, the way media is indexed and behaves on Android isn't perfect but it's better than iPhone. Media is files. I should be able to copy the files to disk and then the Music app should see them and play them, full stop. VLC for iOS is an all-in-one alternative solution to the iOS system media apps, but again, it shouldn't be necessary. At the very least if Apple wants to lock users into iTunes it needs to support iTunes on all major operating systems. And Linux is a major operating system. I use Arch btw.

Sharing videos

Compression

This one is bizarre. iOS heavily prioritizes the ability to share media. All of their commercials show users sharing pictures and videos. But what they don't advertise is that it is extremely difficult to share files without incurring mandatory compression.

You see, when you share a media file using the “Share” button from the Photos app, iOS determines whether or not the file is “too big”. If it's too big, it will heavily compress the file before sending it. So for example, if I post a 4k video I took on my iPhone to a channel in Discord, iOS will first compress the video before sending it to Discord. The compressed result invariably is noticeably much worse quality than the original file. Furthermore, there is no option to control this behavior. There is no toggle to disable this compression.

This behavior is super weird. iPhone can take 4k60 video, but if you try to share that video using the builtin OS facilities, you never get 4k60 video. You get something like HD 30 video. In fact, short of plugging your phone into your computer, there is no way to get the full quality file out of the device! This makes NO SENSE! Why advertise the ability to take high quality media and then completely crush it when the user shares it?

What Apple is doing here is prioritizing frictionless sharing over quality. Users do not want to wait 30 seconds for a 800mb video file to upload, and they don't want to wait for the recipient to download it. Everything is much more responsive if the file is <100mb; the upload is near instant, the recipient can retrieve it faster, and the user gets the serotonin hit from the reaction sooner. So iOS compresses anything big. But this completely defeats the purpose of being able to take high quality video for me. The idea is that I'm supposed to be able to share everything right from my phone, right? Isn't it very un-Apple to have to plug the device in and copy the file off to share it? This is exactly the sort of thing Apple explicitly designs out of its products, and yet here we are. Just give me a toggle that says I want to share the full size media file and not compress it, that's enough!

Don't believe me? https://stackoverflow.com/questions/3159061/avoid-video-compression-when-selecting-movie-with-uiimagepickercontroller/5893066#5893066

iMessage video length limitations

iMessage is Apple's proprietary messaging protocol. Messages between iOS users are automatically upgraded to use iMessage, which adds capabilities over regular SMS like reactions, ability to share large files, and so on.

However one thing that you cannot do is send long videos. I tried to send a 9 minute video to a friend via iMessage and received this message:

Video is too long. Note well that this does not say “Video is too big”. I could understand a file size limit. But this video is 18.4mb, very small by today's standards. To check that this is an actual limit on length, I zipped the video with a resulting file size of 17.9mb and then tried sending the zip. That worked flawlessly.

As is usually the case with looking up information on iOS online, nearly all of the explanations I found for this behavior (except this one incorrectly cite maximum file size limitations as the reason “Video is too long” appears. We have just shown that it is, in fact, a length limitation and not a size limitation. There is zero technical reason I can think of that there should be a length limit on videos.

Working with large files

Sharing just a few files of relatively limited size works usually works flawlessly on iOS. But what if you want to share 7gb of photos? Should work exactly the same, right?

If you try to share a large quantity of data, regardless of whether it is from the Photos app, or Files, iOS is liable to do one of the following:

1. Nothing 2. Freeze

Try it for yourself. Go into your Photos app and, as a test case, select every photo in your Recents album, and then hit the share button and see what happens. Odds are that nothing will happen. The usual share dialog will simply not appear, or it might show up after a few minutes. This is very bad UX. If you are going to fail, do it immediately.

If you try this same exercise in the Files app, you may even see it freeze. Not only does the share dialog not appear, the app actually goes unresponsive. This is a native system app built and distributed by Apple, running on Apple's operating system, on Apple's hardware. This is exactly what Apple claims they prevent by imposing all these limitations on iOS, yet their own system applications fail miserably as soon as you put a heavy lift on them.

This is a recurring theme. Apple has very clearly designed iOS to be optimized for handling small files, small amounts of data, with a focus on the speed of sharing rather than the quality of the shared data. Android is a very strong winner here.

iCloud integration

Fuck off, I don't want your cloud service and it shouldn't be integrated into my $,$$$ computer.

Lightning

This isn't a huge deal so far but I really wish it just had type c.

Update 07/23/22

Turns out this is a huge deal. When I purchased this incredibly expensive flagship smartphone which was released to market in September 2021, I assumed that it would provide a physical interface capable of supporting at least USB 3.0. I did not check this. USB 3.0 was published in 2008. Virtually every smartphone made in the past decade has had USB 3.0. Not iPhone! The lightning connector offers, unbelievably, USB 2.0. The USB 2.0 spec was published in April 2000. It offers a maximum data rate of about 480 Mbit/s ≈ 60mbps. Compare to 3.0 which offers 5 Gbit/s ≈ 500mbps.

This is absolutely irredeemable dog shit. It is unbelievable that Apple of all companies is selling computers that do not offer a 12 year old standard. If I had known this, I would not have purchased the iPhone.

Bluetooth

Not even Apple can get this perfect it seems. I have multiple pairs of wireless earbuds and the iPhone seems keen on connecting to as many as it possibly can. I'll be using one pair, and suddenly the audio will stop and I'll hear a faint tinny sound coming from somewhere else in my domicile, because iPhone decided to connect to a different pair of headphones and route the music over there. It's especially annoying when it happens on a VoIP call.

I expected more from Apple in this department, they clearly pay obsessive attention to UX, bluetooth issues are oddly out of place.

Face ID?

Face ID is cool. It works most of the time. The problem is that it doesn't work all of the time, and in particular, it works less of the time than the fingerprint reader on my Pixel 4a did. The fingerprint reader didn't work when my hands were wet, but other than that, it was much more consistent than Face ID has been.

Price

My iPhone 13 Mini carrier-unlocked from Apple with AppleCare+ cost $1,100. That is insane.

Mids

Blue bubble

Ok, this is more of an anthropology piece than anything, but it's kind of interesting to write about anyway. Apple has created a genius status symbol in iMessage. If two iPhone users text each other, Apple automatically upgrades the conversation to use iMessage, their encrypted messaging solution. In this case the text bubbles are blue. But if an iPhone user texts a non-iPhone user, iMessage is unavailable and the connection falls back to SMS. In this case, the iPhone user sees the messages as green.

Because iPhones are seen as the premium choice of phone among millenials and later generations, being a “green bubble” is tantamount to failing a status symbol check. Youth refer to non-iPhone using youth as “green bubbles”. It's like showing up to home room wearing gap instead of bape. Since many people retain this particular kind of lizard brain into adult life, having an iPhone can be social grease when texting such people. I don't condone it but pretending it isn't real is just being naïve.

Conclusions

I'm keeping iPhone. Overall it is MUCH more enjoyable to use than flagship Android devices, and while I have gripes with it, I've solved all of them one way or another (except for ad-free YouTube (edit: solved with Invidious + Yattee). Security is clearly much better. It's a pleasure to use because of the buttery smooth UX. Filesystem access is surprisingly good while also maintaining strong application sandboxing.

Lack of sideloading sucks and the phone is overpriced. I wish there was a company that made a good phone.

Panorama theme by desbest
iphone.txt · Last modified: 2024/08/24 22:09 by qlyoung
CC Attribution-Noncommercial-Share Alike 4.0 International Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 4.0 International