00:00:10 ◼ ► Yeah, the first time I've ever had a crash also. Yeah, what'd you do? Yeah, I was, so our neighbors across the street are having an issue with some critters getting into their attic space and they wanted to, I offered to help them look around this area around their roof that's hard to see from the ground.
00:00:29 ◼ ► And I said, hey, you know, if you want, I have a flying camera. We can look at it, we can inspect it really nicely and we can try to see, because they were trying to figure out where they might be coming in from, if there's anything we can spot.
00:00:40 ◼ ► So we waited for a time when it was not very crowded, because I don't want to be a jerk, and flew it up there and my skills have not atrophied too badly, with one minor exception that I crashed it.
00:00:53 ◼ ► So, other than that, Mrs. Lincoln had you like the plan. Right, yes, besides that, I was flying around this part of their roof that sticks up and I was trying to get down low so I could see under the eave.
00:01:06 ◼ ► So it requires flying low and close and then looking up from the drone. I gave a small haircut to a nearby plant and that's fine, it survived that.
00:01:15 ◼ ► And the whole time it's beeping like crazy, because I'm getting very close. It has the proximity sensors that have a radius of something like, I think, four to eight feet.
00:01:24 ◼ ► It's pretty far that it senses, and so it's pretty hard to fly close to anything without it freaking out.
00:01:30 ◼ ► But I try to look and peer under an eave and I move it over a little bit and it gets close to a different section of the roof that is sloped.
00:01:40 ◼ ► I didn't crash into that roof segment, because I knew it was there, but I got close enough to it that the drone said, "landing."
00:01:49 ◼ ► Because it thought that I had gotten so close to a surface that I was intending to land it on that surface.
00:01:56 ◼ ► Now, once it says, "landing," no matter how hard you push up on that stick, it will land.
00:02:02 ◼ ► No, there's a way, I honestly don't remember off the top of my head, I think there's a way to cancel it. You have to point both sticks to the upper, or you go diagonally in on both sticks, or maybe diagonally out on both sticks, I can't remember what it is.
00:02:14 ◼ ► But I think there is a way to cancel it, but yes, in the heat of the moment I probably would have ended up landing the thing by accident as well.
00:02:21 ◼ ► And I was only a couple of feet above this segment. I knew I was getting close to it, that was the point.
00:02:25 ◼ ► I could see it in my line of sight from across the street, so I knew it was fine, but when it said, "landing," and it proceeded to try to land on a very sloped section of the roof, it failed to correctly land, and rolled down the roof and got snagged in the gutter.
00:02:43 ◼ ► Now, it's the summertime, it's a two-story roof, and there's not super easy access to it, but they had a deck on one side, so I was like, "alright, let me see if I can crawl up there," they had a ladder, they had a deck, so I'm like, "alright," so I crawl up on the roof, but it's on the other side of the roof from where the ladder could access.
00:03:11 ◼ ► Great, yeah. I'm covered in sunscreen and sweat because it's July and it's very hot and I've had a lot of sunscreen on, so I'm like greasy and hot, and I'm crawling around on this--
00:03:28 ◼ ► Eventually, I get across the roof, I cut up my elbows and knees a little bit from all the tar shingles, but I couldn't get close enough to it because that face of the roof was super hot, and I touched it for a second, I'm like, "you know what, I can't safely do that."
00:03:45 ◼ ► And you were thinking, "you know, if Jon was here, he would have told me to wear gloves before I went up on that roof."
00:03:49 ◼ ► Yeah, right. So I like shimmy back over to the ladder, get myself safely down, and then proceed over the next half hour with my neighbor to devise various schemes because one of its little arms was sticking out, like out from the gutter. So you could see it from the bottom.
00:04:11 ◼ ► Once I went up there the first time, I'm like, "you know what, this might be a bad idea."
00:04:17 ◼ ► Well, yeah. I mean, it was kind of hazardous. Once I was off the roof, I'm like, "you know what, that was a stupid idea, I shouldn't go back there, that was not safe."
00:04:26 ◼ ► So we proceeded over the following half hour to throw ropes at it, trying to lasso it to pull it down.
00:04:35 ◼ ► It's like trying to get a ball out of a tree by throwing other balls at it, you know that one?
00:04:39 ◼ ► Yeah, and there's that children's book where they just throw everything into the tree and it all gets stuck. So I successfully did manage to hook it while hanging out a second story window, throwing it underhand, like a lasso. It was the most ridiculous scene.
00:05:02 ◼ ► Send up the second drone to get the first drone. As soon as it's just drones filling the gutters from edge to edge.
00:05:11 ◼ ► Yeah, and I'm happy to report that I did eventually snag it with the rope. It fell off of a two-story tall gutter, hit a couple of tree branches on the way down, and landed in the next neighbor's sandy garden.
00:05:24 ◼ ► And it totally seems to have survived. It was able to fly afterwards. I didn't even lose a propeller. It seems like it's totally fine.
00:05:39 ◼ ► Oh, yeah, yeah, yeah. All right. We have actually what I think might be a busier show than one would expect, given that we just recorded two days ago.
00:05:46 ◼ ► So we should probably go ahead and get started. So let's do some follow-up from two days ago, starting with Anthony Lee, who said, "No! I really hope the new tab Safari options stay. Unlike the ATP FM folks, I love the new single bar Safari UI."
00:06:00 ◼ ► I just want to put this in here because this is one of a handful of people saying they really like the old Safari UI.
00:06:06 ◼ ► So for several shows we've been saying we have seen literally zero people say they liked it. Finally they have come out. Not a lot of them.
00:06:12 ◼ ► But people do exist who like the compact Safari UI, which you can still get, by the way, through a preference. And we'll have more on that in a bit.
00:06:25 ◼ ► I think there might have been one. This was specifically talking about the Mac. I think there might have been one person who liked the iPhone one.
00:06:31 ◼ ► But anyway, put it this way. It's the law of big numbers. There's so many iPhone users. And I know not everyone uses the beta or whatever. Inevitably there will always be somebody who likes pretty much any UI.
00:06:42 ◼ ► We kept making extreme statements about it because we literally had heard from zero people. I just wanted to say that that is now not the case. But yeah, just because there are some people that like it doesn't mean it's good and you should keep it. You're really trying to make the most people happy that you can with your UI. Make it usable by the largest number of people.
00:06:59 ◼ ► It's worth considering if you're going to defend their decisions so far or if you're going to propose new alternatives, you can have a goal of like, "Hey, I want to enable this new cool feature."
00:07:12 ◼ ► Say, you know, like the new one enables the swipe gesture to switch between tabs and everything. There's usually some kind of benefit to some kind of new UI. But is that worth it at the expense of the common actions done by millions or possibly billions of people around the world every single day in one of the most commonly used and most critical apps on the phone?
00:07:37 ◼ ► If you're going to have major changes to Safari, especially on the iPhone, you have to be really sure that they're going to work for everybody. You have to be super conservative with that because it's such a core app that's so important.
00:07:53 ◼ ► It's like the settings app. You have to be really careful with that because so many people use it all the time and alternatives are kind of difficult to make and to use. So they have to be as conservative as possible with the UI of Safari.
00:08:08 ◼ ► That is not a place to do like radical experimentation, especially if the main thing that experimentation enables is a power user gesture. That's not a good balance of those needs.
00:08:22 ◼ ► Dan Blondell writes, "The weird Safari decisions on iOS at least make more sense in the context of AR. Floating controls, swiping between tabs like cards, etc. I assume that AR interfaces will be so new to users that Apple will want to do whatever they can in advance to tee up the existing UIs so some elements are familiar."
00:08:45 ◼ ► Here's the thing. The kernel of truth, the part of this that I think is a real thing is Apple for sure has in the past handful of years really made a concerted effort to try to strengthen the family resemblance of its software experiences.
00:09:07 ◼ ► It doesn't mean they're going to make everything look exactly the same, but there were various times in the past where iOS and macOS, even though they both had kind of like an Apple flavor, they might as well have been designed by entirely different teams.
00:09:21 ◼ ► Obviously, Mac OS X existed for years before iOS did, and then iOS had to kind of be its own thing. It was a very different context for the two things.
00:09:29 ◼ ► But there was a time when they started to come back more towards each other, and having things look like they are part of the same family is desirable.
00:09:40 ◼ ► Some of it is in terms of recognition, like, "Oh, I've seen this control before, and when I see it, I think it will behave kind of like this, and so the appearance and my expectations for the functionality are paired together.
00:09:52 ◼ ► It's less to learn. This all makes good sense." But there is a limit to that, where now you're making things the same when you know for a fact that the use context is different.
00:10:05 ◼ ► One is touch, and one is mouse and trackpad. One is a gigantic screen, and one is a tiny phone. There are so many differences about the usage context, right?
00:10:13 ◼ ► So the idea that Apple would make a UI on the Mac to try to sort of lay the groundwork for familiarity of look and feel of controls for AR,
00:10:24 ◼ ► like, I'm sure whatever the AR experience is will probably try to have some kind of family resemblance, but you would never want to make decisions on the Mac in an effort to get people ready for a UI that doesn't exist yet
00:10:38 ◼ ► that is incredibly different than the Mac, because AR is about as different from, probably even more different from the Mac than the Mac is from the iPhone.
00:10:45 ◼ ► You really need to make a UI that lets people use the thing that the UI is on. Maybe, like, as a fifth-order concern, you want a family resemblance for familiarity of controls or whatever, right?
00:10:58 ◼ ► But I have to think that there is almost nothing in the new Safari UI that has anything to do with any effort to try to make people familiar with an upcoming AR interface, and if there is, that's a bad idea.
00:11:12 ◼ ► Just make Safari have a good UI, maybe, like, again, third-order concern, make it look like it's part of the family with the existing products, and, you know, AR is going to have to do what it has to do with it.
00:11:22 ◼ ► I feel like what AR has to do is it has to fit into the existing family resemblance while being a good UI for AR, which is very different from the other things.
00:11:31 ◼ ► So I really hope there is no reasoning. I mean, a lot of people said they thought the Safari tabs look like touch targets or whatever.
00:11:38 ◼ ► Like, that's bad, because they're not, right? If Apple wants to make touch-based Macs, that makes a lot more sense, but they don't have touch-based Macs, so don't make it look like it's touch-based, so, yeah, it reminds me of iPhone where I can touch things.
00:11:49 ◼ ► But, of course, you can't touch these, and it's like, well, then what's the point? So I hope this is not true.
00:11:55 ◼ ► Yeah, I mean, I think, if anything, if there is any relation between, you know, an assumed AR interface library that they are presumably developing, you know, if all those rumors are true, and this, I think it's not necessarily that they're designing this to prepare us for AR.
00:12:13 ◼ ► It's probably more like the designers think a certain aesthetic and style is cool right now, and they're using it in both places, maybe, but they're not doing it for usability reasons. They're doing it because that's their current style.
00:12:26 ◼ ► You know, like, a long time ago, John Gruber gave this conference talk, UI design kind of has fashion phases. Like, it goes through fashions, basically.
00:12:34 ◼ ► It's not, it isn't just like, we discovered this is the scientific ideal of the usability of a button, and this is how all buttons will look forever.
00:12:41 ◼ ► It's more like, this style's in fashion right now, this style's out of fashion, and the actual usability of those things is pretty far down the priority list in practice these days.
00:12:53 ◼ ► Which, that's still an argument, I don't necessarily think we have a good balance of that, but UI design is very, like, current fashion based.
00:13:01 ◼ ► You know, it has its own fashions, and things go in and out that are separate from usability or certain devices' needs. If this is, like, how their AR and development interfaces look, that's probably why.
00:13:15 ◼ ► Not because they want to prepare us ahead of time. Like, it's probably just, right now, Apple thinks this look is cool, and their UI designers wanted to do it, and they did it.
00:13:25 ◼ ► Like, that's, that is the most likely explanation for this, not some kind of grand plan about AR.
00:13:34 ◼ ► Probably not. I mean, maybe some of the very highest level UI design leads might be, like, just because they might be tasked with making that UI as well.
00:13:44 ◼ ► And maybe they might set direction, but I don't even know if the shared disclosure would even go that low in the organization, even to, like, the UI people, I don't know.
00:13:53 ◼ ► I mean, if you think about it, though, like, you think about, like, this design, the design for the Mac thing is so focused on a need that is fairly Mac specific, which is conservation of vertical space, right?
00:14:04 ◼ ► I don't know what aspect ratio the AR glasses will be or whatever, but, like, it's so, it's so, like, condensing that UI and getting it up out of the way is such a, you know, thing to do on desktop computers if you want to save vertical space.
00:14:17 ◼ ► Who knows what the constraints will be in AR? Will vertical space be the constraint? Will there be any Chrome at all? Will there be such a thing as a window, let alone a toolbar, right?
00:14:26 ◼ ► You know, and if the AR Safari comes out and has a bunch of rounded rectangles, people are going to say, "See, it's just like Safari 15."
00:14:32 ◼ ► As Steve Jobs said, rounded rectangles are everywhere, okay? Just because the AR interface has rounded rectangles does not mean it's like the Safari UI.
00:14:40 ◼ ► You know, like, how are you going to interact with them in AR? Are you going to have a mouse? Are you going to have a trackpad? Maybe? Probably not.
00:14:48 ◼ ► Like, you know, how are you going to interact with Safari 15 on the Mac? Do you touch the Mac? No, you don't, because it's not a touch interface.
00:14:54 ◼ ► Like, I know they look kind of like touch targets, but it's, you know, at this point, with the aesthetic being so, so simple, it's kind of, you can, you will always see aspects of one interface somewhere else.
00:15:05 ◼ ► But honestly, like, making a good interface to anything is really hard, and if you are saddled with trying to, like, it's like a strategy check, saddled with doing literally anything other than trying to make the best UI possible for the functionality in the app that you're working on, like,
00:15:22 ◼ ► oh, you can make an app, but not only do you have to make it good, but also make sure it looks like this and it looks like that and incorporates this element and does this trendy thing. That's just making, you know, it's just making more work for yourself and making it harder and probably making your UI worse.
00:15:36 ◼ ► All right, so maybe it wasn't such a great idea after all. I still thought it was clever, but never mind.
00:15:40 ◼ ► Guy English wrote, with regard to Mac Safari's tab close UI, Guy says, "Aiming at an icon shouldn't destroy the object it represents." That's a pretty good summary.
00:15:51 ◼ ► What he's getting at is that in the Safari tabs on the Mac, the way the little tabs look as little rounded rectangles is you see the favicon for the website and then some text that they try to jam in there, right?
00:16:03 ◼ ► And so how do you close a tab? In the previous versions of Safari, there was sort of a dedicated blank space to the left of the favicon that you would use to close a tab.
00:16:14 ◼ ► And there's nothing there looking at it because Apple doesn't want visual clutter, but as soon as your mouse enters the tab in Safari, you know, in current version of Mac OS, the little X appears and then you click on the X and the tab closes, right?
00:16:26 ◼ ► But in the new version, the Monterey version, the little tabby things don't have any room for that X to appear. So when your mouse enters the little tabby thing, the favicon is replaced by the X.
00:16:39 ◼ ► So if you were to just see the little favicon and go reach up to it, which is a thing, and try to drag it somewhere, which is a thing a moderately experienced Mac user might do because for a long, long time in Mac OS, when you saw in the sort of title bar-ish area of the window,
00:16:54 ◼ ► an icon and then some text next to it, which kind of represented the title of the thing, that icon is very often a proxy icon that you can drag to represent the thing, whether it's the document or whatever, or even in previous versions of Safari and other web browsers.
00:17:07 ◼ ► If you grab the favicon and drag it to the desktop, it'll save like a web location to that website. It'll save the URL. This is something to expect just based on experience of, you know, this is a common UI idiom.
00:17:19 ◼ ► It's not really formalized in human interface guidelines, except maybe the proxy icons are, but like for literal decades, this is the way things work.
00:17:25 ◼ ► If you do that on Monterey Safari and go try to grab that favicon, you can't grab it because as soon as your mouse enters the tab, that favicon becomes a close button.
00:17:33 ◼ ► And if you don't notice that and just go grab and click, you will close the tab that you were just trying to do something with.
00:17:39 ◼ ► Now there's a way to get it back. You can do a key combo. I think undo might even work. I forgot if it was command shift T or maybe that's Chrome.
00:17:44 ◼ ► Anyway, there's a way to get the tab back. So it's hopefully non-destructive unless you were in the middle of filling out a form or writing a giant post in the CMS, which you should never, ever do.
00:17:57 ◼ ► The reason he mentioned this is he filed a bug on this back when the original version of Monterey Safari came out and said, "Hey, making the favicon essentially turn into the close box, probably not what users expect."
00:18:08 ◼ ► And Apple closed the bug as part of this sort of redesign. Like, "Oh, no, all those..." Guy's guess is like they just kind of lumped together all the complaints about the Monterey Safari thing.
00:18:19 ◼ ► And they said, "Yeah, no, we changed our mind. We're going back to like a more traditional one as discussed in the previous episode."
00:18:23 ◼ ► But he just refiled it and said, "Yeah, but my specific complaint was not the tabs are all combined with the toolbar and blah, blah, blah. My specific complaint was I go for the icon, it becomes a close box."
00:18:34 ◼ ► And they did that, of course, to save horizontal space, which was super important to do when everything was on one line and every time you clicked on the tab, it expanded into the address bar.
00:18:42 ◼ ► But now that the tabs are on their own line again, I feel like they have the breathing room to give the close box more space.
00:18:48 ◼ ► Honestly, we know from hearing from various sources that more changes are coming to all the versions of Safari. They're not done fixing it, right?
00:18:55 ◼ ► So it's not fair to take judgments now, but I look at the way they've reverted. It's like at this point, just go back to the previous one.
00:19:03 ◼ ► Because there's nothing in the newly reverted one that has any benefits over the old one. It's just weirder and worse.
00:19:11 ◼ ► So if you're going to have two UI modes, have one be the new one that Anthony likes, and two other people, and one be the existing Safari UI that works fine.
00:19:27 ◼ ► So we were talking about having preferences in order to enable or disable new Safari user interfaces, and one of us, probably John, said, "I can't think of any other apps that have multiple complete user interfaces."
00:19:42 ◼ ► And a friend of the show, Daniel Jalkett, reminded us that Mail is an Apple app that has two completely different UIs, and also Outlook on the Mac, if you have to use that, I'm so sorry, John, and NetNewswire also fall into similar categories.
00:19:55 ◼ ► Yeah, the reason I thought of NetNewswire and Outlook, and the reason it's interesting that there's three of them, is that it's exactly the same choice in all of them.
00:20:05 ◼ ► So when we're talking about what alternate interfaces there in Mail, people might not know if you just use Apple Mail, sort of its default configuration, but it's basically like a three column view, where the left is the top level, and then you click on something in the left, and then the column to the right of it is drilled down to that level,
00:20:23 ◼ ► and then the column to the right of that is drilled down into an individual message, so it's like mailbox, list of messages in that mailbox, and then the message you have selected.
00:20:32 ◼ ► Like column view, like column view in the Finder, it goes from general to specific, left to right. I don't know if it's actually reversed in right to left languages, but anyway, that is the default interface to Apple Mail.
00:20:43 ◼ ► But it has another interface where it does mailboxes on the left, the currently selected mailbox on the top part of the remaining right portion, and then the message on the bottom part of the remaining right portion.
00:20:56 ◼ ► Right, and those two views, left to right columns, and column, and then two things on top of each other, column row row, I don't know what you want to call them. Some people prefer one, some people prefer the other, and all three of these apps, Apple Mail, NetNewswire, and Microsoft Outlook, support both of those interfaces, and have for years, for years and years and years, and it seems like,
00:21:21 ◼ ► although NetNewswire recently didn't support the other one, but I think NetNewswire is going to bring back the other one, and it's kind of like the scroll direction, where I think in the beginning they were like, "Oh, everyone will just switch over to three column view, because everybody likes it better," and a bunch of people were like, "No, I don't like the three column view, I like column row row," and there was just no way to get enough people to agree that one of them is better than the other, so all three of these applications, which do similar things,
00:21:48 ◼ ► and have the same hierarchy of list of things, and the thing, and then the thing, just continue to ship with these "two different UIs." Now, they're not really that different, it's not any different than saying, "Oh, the Finder has five different UIs, because you can do list view, column view, icon view," you know, if you think of it that way, it's not like they have two entirely different UIs, but it is just roughly analogous to the small UI that Safari has, which is the part that's not the web page in every web browser window, which is the tabs, the address bar, the toolbar.
00:22:17 ◼ ► If you can totally change that, as you can in Monterey Safari right now, that's kind of the equivalent of just saying, "How do you want that thing to look? I want it to look like this, you know, three columns, or a column and two rows," right?
00:22:29 ◼ ► I'm hoping and expecting that the Safari, like, I don't see a need for the Safari one to support these two, because as previously established, it's not as if it's like close to 50/50 in terms of preference for the new UI, it's just Anthony and three other people, and then literally everyone else in the world hates it.
00:22:46 ◼ ► So I don't expect, I don't think, like, that Apple's like, "Well, we need to preserve this UI from the betas of Monterey for the people who did like it."
00:22:57 ◼ ► It just kind of seems like a hangover or like a, you know, letting down gently the people who are proponents of that UI within Apple to even keep it in the, you know, keep it in the app as an option.
00:23:17 ◼ ► We are sponsored this week by Memberful, who lets you monetize your passion with memberships.
00:23:23 ◼ ► Memberful lets you, the content creator, sell memberships to your audience. It's used by the biggest creators on the web.
00:23:35 ◼ ► They have everything you need to run a membership program, including custom branding, so it looks like you and not them, gift subscriptions, Apple Pay, free trials, private podcasts for members,
00:23:45 ◼ ► and tons more. You keep full control and ownership of your audience, your brand, and your membership.
00:23:53 ◼ ► That, to me, is the biggest part. I would never use a platform that would take control of the relationship between me and my audience or me and my customers for me.
00:24:01 ◼ ► Like, I want to own that relationship as much as possible. And Memberful lets you do that. They let you retain control over all of that.
00:24:08 ◼ ► And Memberful seamlessly integrates with the tools you already use, and they have a world-class support team ready to help you get going, simplify your memberships, grow your revenue, whatever you need.
00:24:19 ◼ ► They are passionate about your success, and you will always have access to a real human at Memberful.
00:24:24 ◼ ► You can get started today for free with no credit card required. Memberful.com/ATP today to get started.
00:24:33 ◼ ► Once again, go to Memberful.com/ATP today. You can get started. Again, no credit card required. It's a real trial, and you get to keep so much control with Memberful.
00:24:44 ◼ ► That's the way to do it. So, Memberful.com/ATP to monetize your passion with membership. Thank you so much to Memberful for sponsoring our show.
00:24:58 ◼ ► Ben Golmer writes, "Darkroom's flag and reject workflow is way faster for me than anything Photos does."
00:25:04 ◼ ► And we will provide a link to the website about the app, and then apparently somebody wrote a Medium post about why this is better.
00:25:14 ◼ ► Yeah, this is the first of a lot of feedback items. Really talking about an area of Apple Photos that I haven't explored, mostly because Photos serves my needs, more or less.
00:25:24 ◼ ► But two things. One, it's possible to make a Mac app that reads and understands Apple's photo library. I'm assuming this is an official API because there are a lot of apps that do this.
00:25:34 ◼ ► So Darkroom is one of those apps. I'm not sure if flag and reject is its flagship feature, but apparently it does it really well.
00:25:41 ◼ ► So if you want to have an app that does better than Photos and sort of going through your pictures and deciding which ones you like and which ones you don't, check out Darkroom. Check out the blog post to describe the workflow.
00:25:50 ◼ ► It's like a massively featured app. I haven't actually used it before, but it has a lot more than that.
00:25:56 ◼ ► And then the second thing is, most of these apps, the way Apple does extensions to other apps is you have to ship your extension inside another app.
00:26:06 ◼ ► So you can do what I do with my silly reload button, which is you ship an app that does nothing and its only function is to contain the app extension.
00:26:14 ◼ ► That's where the extensions live. They live inside my app as an app extension. And then Safari, through the magic of Apple's extension mechanism, can see all the little extensions that live inside other apps and say, "Oh, within Safari, you can use these extensions to put a toolbar button up or whatever."
00:26:30 ◼ ► Apple Photos does the same thing. So you can download either a little container application or a giant full-fledged application, and they may also have buried inside them, in addition to their application, an extension for photos.
00:26:43 ◼ ► And one of the types of extensions that Photos supports is what they call an edit extension, in addition to things like Mimeo or like a book printing extension or whatever.
00:26:51 ◼ ► But an edit extension is what it sounds like. If you see a photo inside the Apple Photos app, you can use an edit extension to say, "I want to edit this photo, but I don't want to edit it with Apple's Photos app. I want to edit it with the extension from this app."
00:27:04 ◼ ► And you won't leave Apple Photos. That extension will show its UI inside Apple Photos. It's kind of like OpenDoc, but not really.
00:27:12 ◼ ► So you can use more powerful editing tools within Apple Photos without launching the other standalone app, without using the standalone app, just getting access to their editing tools.
00:27:21 ◼ ► So both of those things I haven't really investigated. Alternate apps that are alternatives to Photos that read the same photo library or edit extensions, and Darkroom is the first of those that was suggested to us.
00:27:33 ◼ ► Sure. Kyle McMahon had another suggestion. This one is called Raw Power. Which, yeah, okay, I can see what you're doing there.
00:27:43 ◼ ► Yeah. Kyle says, "Since you guys are into iCloud Photo library as a library sync layer, but less into it as a photo editor, you should look into a Mac and iOS app called Raw Power."
00:27:53 ◼ ► I only looked at the Mac version of this, by the way, but apparently it's in iOS as well.
00:27:56 ◼ ► The developer is Nick Bahad, who worked at Apple and the Apple Photo Apps group, including back in the days of Aperture.
00:28:03 ◼ ► The app positions itself as being particularly good for raw photos, but it absolutely works with JPEGs files as well.
00:28:07 ◼ ► The app has a standalone mode, but in my mind, the real magic is a mode where it can essentially be a third-party front end for your Photos library, iCloud syncing and all.
00:28:14 ◼ ► The developer being an Apple alum, it is calling into the same system image editing framework as photos.app does, and you may prefer the app's interface or results, and the fact that it exposes more of Apple's raw engine controls than Photos does.
00:28:25 ◼ ► We'll put a link to a video introduction from the developer. Kyle continues, "Big caveat. Before you go all in on editing extensions for Photos.app, understand the implications of when your saved non-destructive edits are from an extension, not Apple.
00:28:38 ◼ ► Because Photos.app cannot..." I keep reading Photos.app because that's what the person wrote, but I hate that.
00:28:42 ◼ ► "Because Apple Photos cannot depend on the extension always being installed, extension editors have to render out a full quality copy of your photo.
00:28:50 ◼ ► If you uninstall the extension, your only options for adjusting the edit are to start over." So that's important to remember.
00:28:55 ◼ ► It's not like it destroys your original, but because Photos can't just expect that extension to always be there, if you do a bunch of edits, it has to like sort of save out your edited version and say, "Okay, you did a bunch of edits with this editing extension, and alongside the original, here is your edited version."
00:29:11 ◼ ► If you uninstall that extension and say, "Oh, I changed my mind. I want to brighten it up a little bit," because you don't have the extension anymore, you can't bring up that picture again and adjust the brightness slider because you literally don't even have that extension anymore.
00:29:22 ◼ ► And so it always burns in your edited version. Again, it doesn't overwrite your original, but it's not as flexible as using Photos where you never will sort of burn in a copy that is visible to you. You'll always have access to the original. You can always go back and readjust.
00:29:36 ◼ ► But anyway, I took a look at this raw power thing. It is both a standalone app and it is an editing extension. As far as I can tell, the editing extension looks like it has pretty much all the controls of the standalone app for the one specific task of editing.
00:29:50 ◼ ► But if you use a standalone app, it seems like, I don't know if you can use it as a replacement for Photos, but it basically looks like Photos. I was amazed. I launched it and it says, "Hey, do you want me to point myself at a folder full of photos or at your library?"
00:30:02 ◼ ► I said, "Here you go. Point at my library." And it said, "Okay, I found 140,000 photos." It's like, "Wow, you did find 140,000 photos." And there they all are. And you can scroll through them. Again, it's not duplicating your... it's just reading my photo library.
00:30:19 ◼ ► Yeah, the Darkroom one I think is a subscription thing, but I think it's pretty cheap. I bought it. It's a $50 app and it has way more editing controls than Photos. Now, I don't use Lightroom. I'm sure it's better than this or whatever. Who knows?
00:30:32 ◼ ► But because this is a developer who worked on the Apple Photos apps, I'm assuming they are very familiar with Apple's formats and it really does expose stuff like you can adjust the depth on the portrait mode pictures and stuff like that. It has, you know, all the things that I talked about not having in Photos like the lens correction and distortion and much better controls for finding areas that are clipping and stuff like that.
00:30:52 ◼ ► That's all in this. I was pretty impressed by it. I'm not sure how much I'll use it, but I like being able to have another go-to app where I don't have to sort of change what I'm doing. I don't have to suddenly use Lightroom or something. I'm still just dedicated to my one Photos library.
00:31:07 ◼ ► But if I want to do an edit that Photos can't handle rather than exporting it into Photoshop and then re-importing it. By the way, within Photos you can say "edit in" and then select an application and select Acorn or Photoshop. That's different than editing extensions.
00:31:19 ◼ ► But anyway, I don't have to commit to a new library format or anything like that. But I have more options for how I want to do edits than just the tools that are in Photos.
00:31:30 ◼ ► And I say again, looking at the raw power thing, it made me kind of appreciate the Apple Photo controls because they are so dumbed down and simplified that 99% of the time what I want to do is there.
00:31:40 ◼ ► But for that other 1%, especially for raws, which I do have a bunch of, it's nice to be able to have a slightly fancier app that doesn't require me to buy in on Lightroom or whatever.
00:31:52 ◼ ► I like too how, I've never tried these apps that integrate with Photo library, but I like that theoretically you could use both. Because if they're using the Apple Photos or iCloud Photo library as their data store and sync layer, you don't have to just choose one app that you do everything in.
00:32:13 ◼ ► You can try different ones. You can have different apps for different tasks or for different needs. You can switch between them at will. And that's a really cool thing to me.
00:32:22 ◼ ► I love the editing controls in Lightroom. I just was never really able to achieve the kind of success and integration I wanted with Lightroom as the storage and sync layer.
00:32:33 ◼ ► I want to keep using Apple Photos as my storage and sync platform. It's already there. It gets all my photos automatically. It gets everything from my phone automatically. I'm already paying for it. Everything's already synced and backed up and everything.
00:32:45 ◼ ► So that's great. I don't want to join someone else's cloud and use someone else's platform or have my fancy camera photos separate from my phone photos for no reason. I don't want that.
00:32:56 ◼ ► So this kind of API for other apps to be able to work against the Apple Photos library, that's really cool. And the fact that there are a couple of good apps for it, I actually might check these out.
00:33:07 ◼ ► The apps are aware of each other. I was running Raw Power at the same time as I was running photos and I was editing the same picture. I forget which app it was, but one of them threw up a dialogue and said,
00:33:17 ◼ ► "Just so you know, you're kind of in the middle of editing the same picture in another app, so do you want to discard the changes that are in progress over there?" It does contract resolution. You can't literally edit the same photo at the same time and just cross your fingers.
00:33:31 ◼ ► It seems like it's aware of what both things are doing. But if you wanted to, for example, run them both at the same time, but use one app for your reject. If you want to use Darkroom to sort through and reject them quickly because it's got a good interface to that, and then just delete them when you're done.
00:33:44 ◼ ► When you flip back over to the photos, you'll see those things poof out of existence. Just maybe don't try to edit the same photo at the same time in multiple apps. Raw Power, I think this was the app that threw up a dialogue, is smart enough to know you're doing that and warn you, but I can imagine other ones maybe not being so and you'll just be like, "Last update wins," and you might be sad.
00:34:01 ◼ ► So quick update before we move out of photos. I have, according to photos on my Mac, 73,609 photos, 4,899 videos, and I still have 20,000 left to upload as of Friday night the 16th.
00:34:14 ◼ ► Alarmingly, the bar, you know, the little progress bar, looks like it's barely moved despite hypothetically tens of thousands of photos having been uploaded, so I'm not sure what to make of that. Again, I don't know, sitting here today, I would probably change my tune in a week or two, but sitting here today, I don't know if I can recommend this to someone who has a media library of my size that wants to just dive right in.
00:34:37 ◼ ► This is very slow, very clunky. I edited the dates of my videos that were from the year 3 million, and that's great on photos on my Mac, but that hasn't yet synced to any of my other devices, which is super delightful.
00:34:54 ◼ ► So yeah, I guess this is good, maybe one day, but I'm still waiting for that day to arrive.
00:35:01 ◼ ► Yeah, keep waiting. You'll get uploaded eventually. Someone said in the chat room that raw power is $40, not $50, so I went to the App Store page to confirm that, but of course I can't see the price, can I?
00:35:14 ◼ ► And darkroom seems to be something like $25 a year or $50 forever, so that's not bad either.
00:35:21 ◼ ► The other thing about raw power is that it has some metadata of its own, because the first thing I tried to do when I went into it was filter. It showed me my 140,000 photos in thumbnail view. I'm like, wow, that was fast.
00:35:36 ◼ ► And then I wanted to filter them to just show the raws, which is a thing you can do in an app that's not Apple Photos really easily, because there was a little filter thing and I clicked it, and lo and behold, it had controls.
00:35:45 ◼ ► What it had in there was -- I'm not sure if you're familiar with it, but there are things you can put in a user interface, like they're called standard controls where there are check boxes and there are pop-up menus and there are buttons and all sorts of things you can use to let you do things with an app.
00:35:57 ◼ ► Apple just thinks either a blank gray wall or a text field that you can type things in and pray is the way to go.
00:36:03 ◼ ► But anyway, this had controls and one of them said show me only photos of pop-up menu, and in the pop-up menu was jpeg, raw, jpeg bus raw, and boy, it was really easy for me to check those check boxes and click raw from the pop-up menu.
00:36:16 ◼ ► Anyway, I'm just angry because Photos has so much space for UI and they just deleted it all from iPhoto in favor of a super smart text field that I really don't like.
00:36:25 ◼ ► So when I went to do that filter, I saw a little word that said indexing. Another thing Photos doesn't understand, hey, look at that, tell me something right in the UI when I'm trying to do it instead of just graying it out and me saying why can't I filter? Why can't I select the file type?
00:36:38 ◼ ► Oh, because it's indexing. And it indexed and it didn't index very long. It was like maybe 15 minutes and indexed and when it was done, I could say just show me the raws and boop, 140,000 thumbnails got compressed down to only a few thousand with a little tiny UI over the thumbnails showing a little R for raw, a little R plus J for the raw.
00:36:54 ◼ ► A little R plus J for raw plus JPEG, a little icon for ones that were edited. It's amazing. I can understand why this person maybe left Apple. It's like, look, you can make a good photo editor if you are willing to put UI on the screen.
00:37:11 ◼ ► Alright, and finally, Aaron Braeger writes, "With possibly the best news I have heard all week long, ladies and gentlemen, boys and girls, the proxy icon can be re-enabled in Mac OS Monterey Beta 3."
00:37:26 ◼ ► Woo! This is extremely, extremely good news. So what are we talking about? On most document-based Mac apps, anything really worth its salt, there is a little icon up next to the title of the app that you can grab. And when you do that, you're grabbing a representation, a proxy of the file you're working on. So like in Word or in TextEdit or whatever.
00:37:48 ◼ ► In Finder windows. You can grab that little icon and move it around your file system and it will move the original file, which is super cool and something that blew my mind when I think it was Marco told me about this years and years and years ago before I even knew Jon, so that's why I know it wasn't Jon.
00:38:07 ◼ ► Why do you have to bring us down, Jon? I was so excited. Why do you have to be like that?
00:38:15 ◼ ► So the point being, you can go into Accessibility, Display, and there's a checkbox "Show window title icons" and it will bring the proxy icons back because otherwise in Monterey, you have to like hover for an unconscious, I can't say that word, for way too long in order to get that proxy icon to show up.
00:38:35 ◼ ► And in Big Sur as well. One of the most common things that I use this for is if you are in a terminal window and you want to refer to a folder or file, you can drag its icon or its proxy icon from that area of the title bar into a terminal window and it will insert it as a properly escaped shell argument.
00:38:55 ◼ ► So it's very, very handy. One of the most common things I do is if I have a finder window that I want to operate on in the terminal, I will open up a terminal window and then type cd space and then drag the proxy icon there to get a terminal that's right in that folder.
00:39:08 ◼ ► I know there are other ways to do that, but that's how I do it. But yeah, it's a very, very common thing for me to do that. So very happy to see this. This is one of those Big Sur design regressions that I have been complaining about a lot.
00:39:19 ◼ ► And so to have an option to fix this in Monterey is going to make me upgrade to Monterey much sooner than I otherwise would have.
00:39:28 ◼ ► The interesting thing about this is that like in Big Sur, there was a sort of undocumented PLS thing that you could set to reduce the delay on the animation for the hover.
00:39:39 ◼ ► So it's almost like someone inside Apple at some point, I don't know if that's been there since day one in Big Sur either way, understood that it was annoying to have to wait for that hover animation and said, well, we'll just have a PLS key.
00:39:50 ◼ ► So if you really don't like it, you can set the animation time to zero and then it'll just be instant. Right.
00:39:54 ◼ ► That reminds me of another kind of like bandaid on a bad design. It's bad design to hide that icon because look, is the icon useful? Then show it.
00:40:02 ◼ ► What advantage do you get not showing it? Ah, less visual clutter. We don't want visual clutter. Okay, I understand not wanting visual clutter, but if you pursue that to an absurd degree, you end up hurting functionality.
00:40:14 ◼ ► You end up hiding too much UI. Tons of people. Casey was excited to learn about the proxy icon, but if it's not even visible on the screen, even fewer people are going to discover it.
00:40:24 ◼ ► And that's a shame. And honestly, is the visual clutter really killing your UI? Like, like what are you even aiming for? Do people just bask in the minimalist aesthetic? I didn't think that one icon is going to hurt anything.
00:40:33 ◼ ► So I'm glad that in the follow up tab, they don't say we just made the animation shorter or you made it instant by default. How about you just show it all the time? That's great.
00:40:42 ◼ ► And it does it in, I'm not sure which apps it does it in. I try, like it does it in preview. It does it in the finder. The non-browser style finder windows always showed it, but now the browser style ones show it as well.
00:40:57 ◼ ► And then where you enable this, it's not a plist hacker and it's not on by default, but you have to go to accessibility system preferences, accessibility display and under display.
00:41:07 ◼ ► There is an option to show window title icons. I mean, arguably it is accessibility as in, Hey, more people will be able to use this because now people will see it.
00:41:17 ◼ ► And you know, it's not super obvious that you can do something with that icon, but seeing the icon is really important first step in thinking about what maybe you can do with it.
00:41:26 ◼ ► And again, I know this is an obscure feature, but it's been in Mac iOS for decades, right? It is a power user feature, but you only really need to show somebody this feature once.
00:41:36 ◼ ► And it pretty much works everywhere you expect to see that again, with the exception of Safari tabs, because when you see an icon nexus and text and a title ish thing on Mac OS, you can usually grab it and do something with it.
00:41:48 ◼ ► Again, just grabbing, you get the URL in Safari because what else are you going to do with it? Right? But if it's a file, if it represents a file, like a document window or a folder, you get the thing.
00:41:57 ◼ ► Well established UI. This is by the way, predates Mac OS 10. Like this is a classic Mac OS thing, I think.
00:42:02 ◼ ► Oh, I didn't know that. But it's like, it's a powerful feature. It's a useful feature. It's one of the advantages of using Mac OS. It's a thing that you can do on Mac OS in a natural way that tries to be consistent from app to app.
00:42:14 ◼ ► And then, you know, apps that change or subvert it for no big gain, like the Safari one of like, well, we have to jam everything into one bar because vertical space is important.
00:42:23 ◼ ► One of the other things we're going to sacrifice on the alter of that is the proxy icons, which is a shame. Or hiding them to say a visual clutter, which is kind of like just sweeping that feature under the covers, making it so people won't even know it exists.
00:42:34 ◼ ► I'm not sure that's like, you know, is that an accessibility feature or are you just fixing your UI?
00:42:41 ◼ ► Yeah, because like the reason why this is better this way is because of what we were talking about last week about stability of the UI. Every time you have something where you have like, okay, on hover, these things are going to change.
00:42:54 ◼ ► Something's going to move, something's going to appear, something's going to disappear. It's confusing, it's jarring, it's unstable, and it makes things harder and more annoying to use.
00:43:03 ◼ ► What you want is for the controls that you use most often to be shown exactly when you need them, which is like, it could be any time. So you might as well show them all the time unless there's some really good reason not to.
00:43:14 ◼ ► And in this case, like, I mean, obviously, whoever is in charge of this design obviously is not giving in to the concept that it's better this other way.
00:43:28 ◼ ► Instead, they have yielded or been forced to yield. Okay, well, we can make an accessibility argument that all of this excess animation of stuff moving around, kind of in the same vein as the reduce motion option.
00:43:42 ◼ ► Maybe that can be, you know, maybe that's, you know, a bad thing for some people. So maybe we can make this not have this motion of this hover state zooming in and out.
00:43:51 ◼ ► This is like the tiniest amount of motion to reduce. It's like literal 16 point movement.
00:43:55 ◼ ► Right, but I'm guessing this is shoved into accessibility because of the internal politics of pushing back on this part of the design.
00:44:03 ◼ ► Clearly, the people who are in charge are so minimalist right now that this kind of thing cannot just be the new way things work.
00:44:12 ◼ ► So I think the accessibility option is like the thing that the people on our side of the argument were able to get through.
00:44:20 ◼ ► Obviously, I'm sure there's all sorts of like, you know, pressures and politics inside about this because, you know, whatever we complain about, people inside Apple are also complaining about it.
00:44:30 ◼ ► But it's just a question of who wins the argument and who has control over it at the end of the day.
00:44:34 ◼ ► So this option shouldn't exist. They should just fix the design. So it's always this way because there seems to be very little upside for it to be the way it is in Big Sur now.
00:44:45 ◼ ► Having these things hidden and they zoom over when you hover over like this one spot in the window that you wouldn't even think to hover over normally.
00:44:55 ◼ ► It's kind of the same reason they did the changes as far as closed boxes because when this UI came at the same time as they introduced the UI in the Finder and other windows, where the title bar does not have its own row for itself.
00:45:09 ◼ ► Right. One of the reasons proxy icons worked and by the way, the chat room is confirmed that it was in classic Mac OS, at least one person has anyway, is that the title bar in classic Mac OS and in Mac OS X for most windows for most of its life goes from edge to edge on the window.
00:45:25 ◼ ► And you might look at that and say, well, what a waste of space where you get an entire row that all that vertical space and the only thing you're going to put in there is the title.
00:45:34 ◼ ► The reason it's good to have all that vertical space is first of all, sometimes the windows aren't that wide.
00:45:37 ◼ ► They might be narrow and second for document windows, a very common case, the title of the document is there and document titles can be long, 255 characters or whatever the limit is.
00:45:47 ◼ ► So you'd want to see the full title of the document not truncated because that's an important thing for you to know, especially if you have similarly named documents.
00:45:54 ◼ ► If you're a programmer, you may find yourself with similarly named documents, although these days are all wedged into an Xcode tab or a sidebar that you can't expand wide enough.
00:46:01 ◼ ► But anyway, even with that, when you've got the whole width of a window and that window is pretty wide or even just page size, you can use a 255 character file name and still probably have room for a little icon, for a little 16 by 16 icon.
00:46:20 ◼ ► Big Sur introduced in the Finder a UI where, OK, we're not going to give the title bar its own row.
00:46:25 ◼ ► Instead, we're going to see this sounds familiar, take the title bar and combine it with the toolbar and now all of a sudden horizontal space is at a premium because we've got the configurable toolbar with all the buttons that you can configure in there, plus the title, plus the proxy icon, plus maybe a search field.
00:46:39 ◼ ► If it's like there's lots of stuff all in one row now and suddenly the title doesn't have all the space that it can stretch out.
00:46:46 ◼ ► And just like in a document in the Finder, it's kind of important to see what folder is it that I'm looking at here, the full name of that folder.
00:47:07 ◼ ► But then it sort of snowballs into, oh, and by the way, proxy icons are gone everywhere.
00:47:11 ◼ ► We're not going to put them in the title bar preview windows, like just hide them everywhere, because once we've done this hide show little animation thing, let's just make that the new standard across the entire user interface.
00:47:20 ◼ ► All because they decided we've got to save some vertical space in this toolbar, so we're going to combine the title bar plus the toolbar, right?
00:47:32 ◼ ► In some apps it works, in some UIs it's an improvement, but in this particular case, they were, you know, the compromise, the cost of using this UI was an awkward hover state for a feature that, you know, I guess enough power users use that they have seen complaints about it.
00:47:49 ◼ ► I don't think in this case the solution is to go back to title bar on top all the time, and by the way, in the finder, the only, it doesn't do that in the non-browser finder windows.
00:48:01 ◼ ► The finder windows that don't have sidebars have dedicated title bars, but the ones that do have sidebars have the combined ones.
00:48:07 ◼ ► When you do the show window title icons, it shows them everywhere, which is as it should be.
00:48:12 ◼ ► But I do understand why they hid it in the first place, it's just that they sort of took that ball and ran with it and they should have said, okay, we'll hide them as an option in this one mode of finder window, but across the whole rest of the U.S. we'll leave it as is.
00:48:30 ◼ ► We are sponsored this week by Burrow. Burrow sets a new standard in furniture with easy to move modular designs, timeless American mid-century and contemporary Scandinavian styles, and premium durable materials like responsibly forested hardwood, top grain Italian leather, and reinforced metal hardware.
00:48:50 ◼ ► It's hard to find good furniture. It's really hard. Believe me, I've tried and sometimes I've hit, sometimes I've missed. It's really hard to find good furniture.
00:48:57 ◼ ► Burrow is good furniture. They have innovative product design, their in-house design team takes a research driven approach to make sure their furniture fits your lifestyle, and translates to things like simple mounting guide posters for their index wall shelves in a tool-free assembly process.
00:49:12 ◼ ► And they make it easy to buy from them. There's no like weird warehouse stores and high pressure showrooms. Look, what year is this? They replaced all that with a modern, easy to use website.
00:49:22 ◼ ► Of course, right? That's what you actually want and lets you create and customize your own furniture right from your home.
00:49:28 ◼ ► It is shipped to you for free. Every order, no matter how small or large, has free shipping.
00:49:34 ◼ ► That can save you over $100 from most of these places when it comes to something like a couch.
00:49:39 ◼ ► And it's backed by world class service. Sometimes you need a little help, everyone does sometimes.
00:49:44 ◼ ► The Burrow team is always available to lend a hand from custom orders to delivery scheduling or rescheduling. They're there for you.
00:49:51 ◼ ► So thank you so much to Burrow. You can get $75 off your first order at Burrow by going to Burrow.com/ATP.
00:50:00 ◼ ► That's B-U-R-R-O-W Burrow.com/ATP for $75 off. Burrow.com/ATP. Thank you to Burrow for sponsoring our show.
00:50:15 ◼ ► I would like a quick, can I challenge you gentlemen, a quick update. How are the latest betas on iPhones specifically?
00:50:24 ◼ ► Because in a couple of weeks I will have all travel or interesting related things done for the summer.
00:50:30 ◼ ► And so I was thinking about maybe committing my carry phone to a beta, be that either the public or the developer beta.
00:50:47 ◼ ► Seasons where you'll feel your phone heating up in your pocket in the middle of the day for no reason.
00:50:52 ◼ ► Like what's going on? And you pick it up and it's like at the Apple boot screen. Like okay.
00:51:00 ◼ ► This year so far it has been totally fine. Again, it's only a couple of weeks. It's only one person's experience.
00:51:07 ◼ ► But I've also heard from a lot of other people that anecdotally it sounds like this is a pretty good year for the phone.
00:51:14 ◼ ► At this time I would not necessarily recommend the watch beta. As with all watch betas, you can never downgrade.
00:51:22 ◼ ► Upgrading to a beta on the watch is usually not a good idea unless you're developing a watch app.
00:51:31 ◼ ► And when I do get notifications, they often times will only stay at the first part of the slide up where it shows you what the notification is from but doesn't show you its content yet.
00:51:43 ◼ ► It will get stuck on that. The bigger, more pressing problem is that the watch beta seems to be unreliable at updating the sleep screen.
00:51:53 ◼ ► Now, you might think, who cares? Well the sleep screen is what shows the time. And I have caught it multiple times in the last few days displaying the wrong time.
00:52:04 ◼ ► Off by like 15 minutes until I do a wrist raise and then it refreshes and updates the time.
00:52:11 ◼ ► So that's a bit of a problem on the watch beta right now. So I wouldn't recommend the watch beta.
00:52:16 ◼ ► But the phone, oh I haven't, I don't think I've even used the iPad beta so I can't speak to that at all.
00:52:27 ◼ ► There is a little bit of oddity and a little bit of annoyance to the new focus feature.
00:52:33 ◼ ► So, you know, as a quick reminder, the do not disturb feature and the automatic do not disturb scheduling and everything has now been rolled into a much larger, much more featured feature.
00:52:50 ◼ ► You can now set like sleep and work and focus and all these different modes that you can create your own.
00:52:57 ◼ ► And each of those has its own settings for when it's automatically engaged, what kind of apps or contacts can break through the focus mode and everything.
00:53:06 ◼ ► Notifications, now like the first time you get a notification from an app, it will now ask you like, is this time sensitive or not?
00:53:14 ◼ ► And its time sensitive ones will break through and they'll be displayed with a label that says time sensitive like as part of the notification UI.
00:53:23 ◼ ► I have found this system so far to be a little overwrought and a little bit burdensome.
00:53:32 ◼ ► I don't know necessarily if it's just me getting used to it still, but it has been a friction point for me using iOS 15 so far.
00:53:42 ◼ ► Now, I don't think they're going to change any of that because this is like a headlining feature of iOS 15.
00:53:47 ◼ ► And I think the concept of having a lot of control over do not disturb and being able to create these additional modes, I think it's a good concept.
00:53:54 ◼ ► I even said, I said as much during our DWC episode, like I noticed they were, when they were talking about this, I said, oh, that's great because do not disturb has been so great for me.
00:54:02 ◼ ► But in practice, what this does is add additional levels and complexities to do not disturb so that it is no longer a simple feature.
00:54:12 ◼ ► It is now a complicated feature. And seeing the time sensitive labels on every notification from like calendar reminders and stuff like that, it's a little much.
00:54:30 ◼ ► I haven't had any like apps that don't work on it right or anything like that. So everything seems okay.
00:54:37 ◼ ► Yeah, I can speak to the iPad and it's been pretty solid for me. I mean, I can't think of any specific things that have been a real bugbear.
00:54:45 ◼ ► So it's been fine on the iPad, but I've been very reluctant to put it on my phone and I won't be putting it on my phone until travel is complete.
00:54:52 ◼ ► But that time is coming sooner rather than later. And so I was curious how bad it was and sounds like not bad.
00:54:58 ◼ ► So sometime in the last week or two, I forget exactly what it was, Apple just out of the blue released an accessory.
00:55:05 ◼ ► And for the first time in a fair bit of time, other than AirTags, I suppose it's an accessory that I'm really interested in.
00:55:11 ◼ ► I haven't got my hands on it yet and I don't think anyone has, but Apple's released a MagSafe battery case.
00:55:22 ◼ ► And I've seen them many times. I've held them in my hands a handful of times, but I've never really cared for them.
00:55:28 ◼ ► It didn't seem like it was something I really wanted. And part of that was because early on in my iPhone life, I would buy bespoke battery packs.
00:55:39 ◼ ► That would be, you know, cases that would wrap around your phone and would plug in via the lightning connector and it would charge your phone as required.
00:55:47 ◼ ► And for a while I really liked that, particularly around WWDC time, but after I replaced my fourth bespoke battery pack or something like that, it occurred to me, this is wasteful and silly and there must be a better way to do this.
00:56:01 ◼ ► And Apple's older battery packs, I think, were the same story. They were fit specifically for particular phones.
00:56:09 ◼ ► And so, again, I find it to be kind of wasteful and I've just used a battery bank, as some people call it, just an external battery pack that you connect via cable.
00:56:18 ◼ ► But that's clunky in its own way. You have a cable hanging out. Let me tell you, it is super cool to look like me in general, but I look incredibly cool when I have a cable going from my back pocket to my front pocket so I can charge my phone from the power bank that's in the back.
00:57:05 ◼ ► Right, that's not the problem. You just made the point emphatically that it's not a case.
00:57:13 ◼ ► It is in fact a rectangular solid that sucks onto the back of your phone through the magic of magnets.
00:58:33 ◼ ► So this will match up with the little circle and line that are embedded in the back of your phone that has MagSafe, right?
00:58:47 ◼ ► If you plug it in and lay it sort of with the MagSafe part of it facing up on your desk,
00:59:15 ◼ ► A regular MagSafe cable, like the regular ones Apple sells with the wires attached to the MagSafe puck,
00:59:27 ◼ ► And so you can, and we do in our household all the time, put your AirPods case on them and it will charge.
01:00:19 ◼ ► And in that case it behaves kind of like the Apple's battery cases have always behaved.
01:00:49 ◼ ► your phone will charge the battery pack from the current it's getting from the lightning port.
01:00:55 ◼ ► - Right, and I think no other third party battery pack things can do that, is that correct?
01:01:19 ◼ ► So if you plug in the battery pack, whether it's laying on your desk or wherever it is,
01:01:32 ◼ ► And people have been sad about that, but I kind of feel like as long as it can keep up with the phone,
01:01:37 ◼ ► it's not like, because it's a battery pack, it's not like you're waiting around for it to charge.
01:01:41 ◼ ► I guess maybe if you're like, oh, I just want to go on this little manta ray on the back of my phone,
01:01:53 ◼ ► with the idea, the whole point is that I'm gonna use my phone with this thing on the back of it,
01:02:13 ◼ ► I glance at the price and I say for that price, it quote unquote should come with a power adapter and cable on it,
01:02:24 ◼ ► and it doesn't seem like they're passing the savings on to me and who even knows, right?
01:02:28 ◼ ► But on the other hand, the reason Apple would give for this, and I think it is somewhat legit,
01:02:33 ◼ ► is that if we give these things to everybody, a bunch of people will already have the cables and adapters that they need,
01:02:41 ◼ ► and these will just go to waste and end up in a drawer somewhere and end up getting thrown in the garbage, right?
01:02:46 ◼ ► I don't know about that, because the big fancy, what is it? Is it 1520 watt charger, the USB-C charger?
01:02:54 ◼ ► I know, but like the general philosophy is if we include the successor with every single one of our products,
01:02:59 ◼ ► if you like, what they're trying, I feel like what they're trying to do is not just sort of give you by default all this stuff,
01:03:08 ◼ ► because you will inevitably end up with an excess of stuff, because even though you say,
01:03:19 ◼ ► because not all of your devices are plugged in at once, usually, unless you're like traveling a lot and you really need them.
01:03:28 ◼ ► I feel like it is a reduction in waste. That's not just an excuse. That's a real reason.
01:03:31 ◼ ► The problem is, because Apple's products have such high margins, when they take these things out,
01:03:37 ◼ ► like even though there's like nothing to compare it to, they just look at the price and they say,
01:03:44 ◼ ► And it's not like with this battery pack that Apple has ever had this product existing before
01:04:08 ◼ ► Or some kind of thing where they adjust the price to psychologically make people think,
01:04:14 ◼ ► But of course, Apple would never do that, because that just is a value game that they don't do with their pricing, right?
01:04:22 ◼ ► But particularly with this thing, I'm kind of on board with the idea of I'd prefer this stuff to be a la carte, right?
01:04:34 ◼ ► Obviously, with the camera, it's not a great analogy, because you save money by not buying it with a kit lens.
01:04:37 ◼ ► But doing it a la carte, I mean, especially with things like adapters and cables and stuff,
01:04:54 ◼ ► But rolls of paper towels in the U.S., someone came up with the idea that instead of having paper towel sheets be whatever size they were,
01:05:05 ◼ ► This person's brilliant idea was, "Let's make them rectangular. Take the existing square and cut it in half."
01:05:22 ◼ ► Like, "Is this what you get paid for? How many years did you come to think of this thing?"
01:05:32 ◼ ► because they feel like they're not wasting as much, but it's like, "Oh, I just need a half sheet for this one little job."
01:05:37 ◼ ► And also, makes people use more paper towels, which is great for the paper towel companies,
01:05:51 ◼ ► The customers think they're being frugal, but in reality, they're using more paper towels than they were before.
01:06:04 ◼ ► But anyway, this is kind of the opposite of that, in that I think Apple is trying to do a good thing,
01:06:21 ◼ ► because you look at the price, and it is an expensive price, we'll compare it to competitors in a second,
01:06:25 ◼ ► and you're like, "$99 and it doesn't even come--not just the charging brick--doesn't even come with the cable?
01:06:31 ◼ ► It's just, like, I get it out of the box, and I'm like, "What the hell am I supposed to do with this?
01:06:35 ◼ ► I can't do nothing with it. I can use the charge that it came with me from the factory,
01:06:41 ◼ ► But again, people would say, "Well, you can't do nothing, because this product is useless without a phone.
01:06:50 ◼ ► To me, I think for this product, I wouldn't expect this product to come with a cable or a charger.
01:06:55 ◼ ► What's interesting, for the same $100, you can get a HomePod mini that does come with a cable and charger.
01:07:03 ◼ ► And it's kind of funny, if you think about what components are necessary to make a HomePod mini,
01:07:11 ◼ ► The profit margin has got to be so much higher on the MagSafe battery pack than on the HomePod mini.
01:07:27 ◼ ► And they can get away with this, because it's an accessory, and accessories are always very overpriced.
01:07:34 ◼ ► Honestly, I'm sure we'll get to this in a second, but I think this is going to have an even smaller appeal
01:07:54 ◼ ► which basically looks the same as the Apple one, as a rectangle you stick on the back of your phone with MagSafe.
01:07:58 ◼ ► It costs half the price. It has a larger capacity battery. It doesn't do reverse charging.
01:08:08 ◼ ► Third-party ones can't show the battery level in the system UI like the Apple one can, which is kind of annoying.
01:08:33 ◼ ► Apple's accessories, like look at their leather cases, or literally any accessory for any of their products,
01:09:20 ◼ ► The friction is helping so that only the sandwich closing force is an issue, I suppose.
01:12:19 ◼ ► I think the other reason I haven't bought one is because when am I ever going anywhere for the most part?
01:12:33 ◼ ► Well, speaking of Marco, though, like that was a question I had that I haven't really seen answered.
01:12:42 ◼ ► which I guess means that it has to be small enough to fit on Marco's little baby phone?
01:13:07 ◼ ► and like the height is limited by like how far, how close can we get to the camera blob
01:13:16 ◼ ► Yeah, that's interesting because like they could make a bigger battery, especially on the Max, right?
01:13:27 ◼ ► There's lots of different trade-offs you could make in terms of how it feels in your hand,
01:13:32 ◼ ► Obviously, this is, you know, if it's sized for the mini, they just made one for all the phones.
01:13:53 ◼ ► But, yeah, I mean, maybe this will be another excuse that Apple will use in two years to get rid of the mini.
01:14:13 ◼ ► And so if the mini wasn't there, which again, I like the mini, so I hope they don't do this,
01:14:19 ◼ ► If the mini gets eliminated, they could theoretically then make a future like, you know, MagSafe Plus or something,
01:14:49 ◼ ► Right? There's a lot of room, especially vertically on the Max to make a bigger battery pack.
01:14:57 ◼ ► But I feel like, remember when Apple came out with a battery pack that looked like just a regular case,
01:15:20 ◼ ► But Apple's is more like, you feel the edge of the phone, and then on the back of the phone is a lump.
01:15:35 ◼ ► If it's a smoother transition between the edges, it's less likely the thing will catch,
01:15:40 ◼ ► which is even an issue when it wasn't magnetically attached and it was just a lump, right?
01:15:48 ◼ ► So I'm actually really curious to see people start reviewing these when they get actual things.
01:16:00 ◼ ► I think probably one of you should buy this just so we can talk about it on the show more.
01:16:17 ◼ ► What I like about the MagSafe being used for this way is that, you know, unlike a battery case,
01:16:30 ◼ ► until the edges start peeling off, or like for this entire trip I'll just leave this on."
01:16:35 ◼ ► Whereas the MagSafe, you can so easily pop it on and off without having to like take a whole case off the phone.
01:16:40 ◼ ► You could theoretically just leave it off the phone, but have it like in your bag, ready to go for if you need it.
01:16:50 ◼ ► and then you can pop it off when you're done super easily, like way more easily than a case.
01:17:00 ◼ ► It's like it will lay flat. Like, if you look at it, you might be wondering which is the top and which is the bottom.
01:17:04 ◼ ► Like, is this a charger that sits on my desk, or is it a battery pack? It's both. It's nice.
01:17:09 ◼ ► And the other thing about it is, like, with all of the case ones, because they were cases,
01:17:22 ◼ ► because you need some part of it to kind of tuck around under your phone and plug into the Lightning port,
01:17:26 ◼ ► and then it would have to have its own Lightning port offset from that that you would plug into.
01:17:35 ◼ ► but it doesn't sort of change the dimensions of your phone vertically or horizontally, which is nice.
01:17:39 ◼ ► Yeah, I can definitely see myself picking one of these up before my next trip, whenever that happens.
01:17:46 ◼ ► Maybe I'll have the iPhone 13 mini at that point, and I'll have another small battery to top off.
01:17:51 ◼ ► But, like, I'm not going to jump on this right this second because I just don't have a need for it,
01:17:56 ◼ ► but certainly if I needed a battery pack for my current iPhone, I'd get this one, no question,
01:18:14 ◼ ► There's lots of reasons why I might want one, but we'll see down the road, like, whenever I actually need that.
01:18:33 ◼ ► It did happen to be white. I honestly would have chosen black over white if I had the choice.
01:18:50 ◼ ► Visit linode.com/atp and see why Linode has been voted the top infrastructure as a service provider by both G2 and TrustRadius.
01:18:58 ◼ ► From their award-winning 24/7/365 support that every plan level gets to their ease of use and their setup,
01:19:05 ◼ ► it's clear why developers like me have been trusting Linode for projects big and small since 2003.
01:19:12 ◼ ► I think I've even been there for most of that time. I think I've been there for about 10 years and I just love Linode.
01:19:19 ◼ ► This website for this podcast is hosted there because we have a bunch of custom software running on that.
01:19:23 ◼ ► It's fantastic. You can deploy your entire application stack with Linode's one-click app marketplace,
01:19:29 ◼ ► or you can build it all from scratch and manage everything yourself with supported centralized tools like Terraform.
01:19:38 ◼ ► including GPU compute as well as block storage, Kubernetes support, and their upcoming bare metal release.
01:19:54 ◼ ► They're always the best value. As technology gets better and they're able to offer more for less, they do.
01:20:08 ◼ ► Go to linode.com/atp, create a free account with your Google or GitHub account or just your email address,
01:20:21 ◼ ► Thank you so much to Linode for just being an awesome web host that I host all my servers on
01:20:31 ◼ ► I wanted to, as we were talking about this, I thought this might be a good excuse for a kind of like state of MagSafe topic.
01:20:39 ◼ ► You know, we're almost a year into iPhone MagSafe. We're not going to be talking about the old MacBook charging thing.
01:20:49 ◼ ► Right, yeah. Possibly very soon. But anyway, so I wanted to just kind of review like how is MagSafe doing?
01:20:57 ◼ ► You know, so are we using it, you know, what's it good at, what's it not so good at, you know, a year in?
01:21:04 ◼ ► So I'll start. I use it for all of my bedside charging and I even have those incredibly expensive flip open,
01:21:16 ◼ ► like little MagSafe wallet things that charge the phone and the watch for when we go upstate to our family's place up there.
01:21:23 ◼ ► It's been pretty good. I've been pretty happy with it. Oh, and I also have it in my car. I believe I've mentioned that on the show.
01:21:30 ◼ ► I converted over my ProClip USA car mount from the old Lightning one to the new MagSafe one.
01:21:37 ◼ ► And so I'm using MagSafe pretty much all the time my phone is being charged except when it's at my desk and I plug it in for Xcode development.
01:21:47 ◼ ► But otherwise, like, that's the only thing. Xcode debugging is the only reason I'm plugging it into Lightning.
01:21:59 ◼ ► I did mention when I mentioned the car MagSafe charging that heat and charging speed in the car are not great.
01:22:07 ◼ ► And it is able to keep up with the phone like running waves and GPS with the sun shining on it.
01:22:18 ◼ ► And occasionally the screen has to dim too because it's so hot I can't even show the screen full brightness.
01:22:25 ◼ ► I really am glad that I have a car that's nice and has car play so I don't have to worry about these sorts of things.
01:22:38 ◼ ► Another day. So in the car I have found it to be incredibly convenient so it is worth those shortcomings of charging speed.
01:22:46 ◼ ► As a bedside every night charging thing, I think I mentioned before how I use double-sided suction tape on the bottom of Apple's MagSafe puck as my bedside charger.
01:23:00 ◼ ► Which is interesting. I think today, I think Elevation Lab just announced a stick-on MagSafe holder.
01:23:08 ◼ ► Well, I basically have been doing this for a year. I just bought that micro-suction tape and stuck it on the bottom of Apple's thing and stuck it on my nightstand.
01:23:16 ◼ ► It's held for a year. A few inches away from that I have an Apple Watch charger that's held the same way.
01:23:22 ◼ ► And every night I stick the Apple Watch charger on its thing and I slide the iPhone onto its thing and it's fine.
01:23:30 ◼ ► That being said, the ways in which this could use improvement besides the heat and charging speed in the car being a bit of an issue.
01:23:40 ◼ ► For me, it's still a little hard to align the phone onto the MagSafe puck. To really line it up so it snaps into place.
01:23:49 ◼ ► It takes a little bit more wiggling around as I'm reaching over trying to put it on the nightstand, trying to go to sleep.
01:23:54 ◼ ► I'm a little tired. I have to move it around before it snaps on. So that, I think, could use some improvement.
01:24:03 ◼ ► I don't know if it's reasonably possible to do that much better. It could just be the reality of magnets.
01:24:20 ◼ ► Getting a rectangle into a shape-sorter type hole, you just get it into the rectangular frame and you don't care about the magnet being aligned.
01:24:31 ◼ ► The problem with the MagSafe thing is there's no borders. It's just like, "Oh, you have a circle and I have a circle and you just have to line them up."
01:24:38 ◼ ► You never know when you went past it or gone too far. You just have to wiggle it around.
01:24:49 ◼ ► There are third-party chargers out there that probably do give you essentially a soap dish for your phone.
01:25:05 ◼ ► You can just shove your phone over and it would just slip into it because it's got some curved sides to it.
01:25:10 ◼ ► You're the one pulling out the micro suction tape, so if you want to have an arts and crafts project, you can start making a little corral for your phone.
01:25:20 ◼ ► The difference is that when I'm done with the suction tape, you don't see anything except the charging puck.
01:25:47 ◼ ► You have devices like iPads that can only charge via USB-C unless they're certain models, in which case they only charge via Lightning.
01:25:53 ◼ ► Then you have phones. We've had Qi for a while, great, and you can use a MagSafe charger to charge any Qi compatible iPhone, even the ones before.
01:26:02 ◼ ► You've got to play with the alignment a bit and it will be limited to either 5 or 7 watts. I don't know which one they went with on that.
01:26:15 ◼ ► The MagSafe charger seems like it was an opportunity to maybe start unifying some of these things, and they didn't take that opportunity.
01:26:33 ◼ ► I don't necessarily know that I would replace every Apple Watch charger with a larger MagSafe puck, but it would be nice if you happened to only have one of those things with you, or if you happened to only have one of those things free at the current moment.
01:26:53 ◼ ► Before we move on from the Apple Watch, I've been thinking about this. I was thinking about the same thing the other day, looking at watch chargers and stuff like that.
01:27:01 ◼ ► It's so annoying that you have to have a separate watch charger, but I think given the current design of the Apple Watch, which I assume is not arbitrary with the domed bottom sensor that presses into your skin to do all the measurements, I think it's important for that to be domed.
01:27:16 ◼ ► With the dome like that, I don't think it's feasible or maybe advisable to have a perfectly flat surface charging the domed watch.
01:27:26 ◼ ► You know what I mean? Because I don't think you could get close enough to contact the parts that you need to contact.
01:27:32 ◼ ► Because the farther you are away, the farther you separate the two coils from each other or whatever from charging, the worse it is in terms of efficiency, and at a certain point it just doesn't work.
01:27:41 ◼ ► Especially with a dome type thing where it can wiggle around, I kind of think that the little dome-y indent part of the watch charging is essential.
01:27:50 ◼ ► I get what you're saying about the charging standard, but if you really wanted to be standardized, you know they have to be flat for the phones because it's not like they're going to put little domes on the back of the phones.
01:27:57 ◼ ► You're going to have to have the flat chargers for the phones. I guess I can make the camera bump into the charging bump or something.
01:28:05 ◼ ► Could they theoretically have a little domed cutout in the middle of the MagSafe charger?
01:28:11 ◼ ► Yeah, but maybe. I feel like once you have that cutout, that moves the coils in the center farther away from the phone, which doesn't have a dome that's sticking out.
01:28:23 ◼ ► I think they kind of go all the way around like crop circle things. Anyway, what I'm saying is this is all based on the assumption that the dome on the watch is not arbitrary.
01:28:32 ◼ ► I believe, my guess, if I had to put money, I would say it's not arbitrary. It's kind of important to have that dome there because it has to press into your skin for all those sensors to work well.
01:28:47 ◼ ► So I kind of see where they might have some kind of limitation. But everything else you said is totally true.
01:28:53 ◼ ► It's just kind of an accident of history of when these devices came out and somewhat the watch too.
01:28:58 ◼ ► They weren't all released at the same time. They weren't all conceived at the same time. So now here we are with all these different standards.
01:29:03 ◼ ► Less of an excuse for the iPads, which probably should all be USB-C by now, but Tim Cook likes to sell those same designs for years and years.
01:29:11 ◼ ► So we'll eventually get there. But the watch is the worst one, I think mostly because at least Apple's watch. Does any third-party cell watch chargers? I don't even know.
01:29:22 ◼ ► So there are a few battery packs that have an Apple watch thing off to the side and they look like it's Apple's part just shoved in there.
01:29:32 ◼ ► I haven't seen anything that looks noticeably different, like with a different finish or different color or anything like that.
01:29:39 ◼ ► So it seems like there is an MFI program for that, but it seems like it's not used very much.
01:29:46 ◼ ► See, also MagSafe. That's a bigger problem with MagSafe too. I don't know if the MFI program is actually going yet. I know they announced one.
01:29:55 ◼ ► I don't know if there's actually MagSafe stuff being developed under the MFI program, but I haven't seen any. I don't think any of it is actually out yet.
01:30:09 ◼ ► The worst part about the watch charger is the attached cable. I feel like if Apple started selling just the little watch thingy, like if they had a little constructor set of charging things, and this was kind of like, well, you have the cable and then you have the thing you attach it to and you could attach it to the flat puck or you could attach it to the watch puck.
01:30:25 ◼ ► But Apple's penchant for attaching the cable permanently to, like, I was just looking at a picture of a keyboard the other day and thinking about, do you realize that Apple permanently attaches the keyboard to its wired?
01:30:37 ◼ ► Am I misremembering? Does the wired Apple flat aluminum keyboard have the cable permanently attached to one? I think it does, right?
01:30:47 ◼ ► Anyway, it's such a limitation because travel, like you were saying, any kind of thing where you're like, let me just get my charging stuff, to always have the absolute one-off unitasker and the good eats parlance watch charger that is inseparable, attached to its cable, which is either way too long or way too short depending on the context you want to use it,
01:31:06 ◼ ► versus having a somewhat unified charging infrastructure that you could all label as magsafe where you had, like, pucks or landing domes or dishes and then you had bricks and then you had cables. All sold separately. Apple should love it.
01:31:20 ◼ ► Yeah, so for me, I do use Qi charging. The only time I plug in my phone for the most part is occasionally CarPlay. That's this thing, Marco, where your phone appears on your car's infotainment system. It's really nice, you should check it out sometime.
01:31:35 ◼ ► So I plug it in for CarPlay occasionally because now I have that dongly thing that I use for short trips. I'll only usually plug it in for longer trips. I'll plug it in for CarPlay, plug it in for development, and that's usually it. On my bedside table, I have Qi charging. I do not have magsafe.
01:31:49 ◼ ► So this magsafe battery pack that I ordered five, ten minutes ago will be my first true-to-form magsafe device, and I'm looking forward to trying it, but that'll be it. But I'm all in on Qi. I definitely use Qi all over the place. I just don't have any magsafe yet.
01:32:04 ◼ ► Yeah, wireless charging hasn't really connected with me. I did buy the magsafe puck when I got my magsafe phone, but it was never a thing that I wanted to do. I didn't want to suction it down. When it wasn't suctioned down, it felt too slippy. It just didn't fit into the way I have things on my bedside.
01:32:22 ◼ ► So I've got the puck there on my bedside, and like I said, I just put my AirPods on it. That's all I do. And even the AirPods, I still feel a little bit of like... it's not really empathy for the machine, but it's empathy for thermodynamics, whatever the hell.
01:32:35 ◼ ► I don't like the idea of it being less efficient and also potentially producing heat that could shorten the life of any of my batteries. It's probably fine. It doesn't actually get that warm, but every time I pick my AirPods off the little charging puck and the case feels warm, or I take out the AirPods and they feel warmer being inside, I'm like, "That's not great."
01:32:55 ◼ ► They don't feel hot. I don't really care about the AirPods because the battery is so small and they charge so fast, but everything else I just plug my stuff in still, which I also don't like because we have so many lightning devices in this house, and so many kids.
01:33:11 ◼ ► And I look at the little lightning connectors and you see the little brown marks from scorching or whatever that is? Yeah, that one pin that shorts out from charging. I don't know if it's shorting or it's corroding. Just go, after the show, go look at all the lightning cables in your house and look at the little tiny connectors and see, do they all look uniformly shiny gold with no discoloration, or do one or two of them have little dark brown smudges on them?
01:33:36 ◼ ► And when I plug in, I always try to pick the good, of the 17 cables that are there, pick the good one with the least of the scorch marks because I don't want that sort of infecting my beautiful phones.
01:33:46 ◼ ► And even on my nightstand, my kids charge their crap on my nightstand too because my cables are always nice and always available and don't have scorch marks. Anyway, I still prefer wired mostly just because it charges faster, it charges more efficiently, all those reasons.
01:33:59 ◼ ► And I don't mind plugging it in. And speaking of things that I can do in the night without fidgeting around, I'm surprisingly good at getting a USB-C or lightning connector into the appropriate little place on phones and iPads in complete darkness.
01:34:17 ◼ ► I think most people are pretty good at it. By the way, if you ever struggle with that and you're like, "Oh, it's so hard, I feel like I'm scraping up the bottom of my phone, I can't find the little thing." The trick is, because you're human and your mind-body connection is used to dealing with objects in space, you have the cable in one hand, let's say your right hand.
01:34:34 ◼ ► Take your left hand, feel for the little hole with your finger or thumb along the bottom of the device, feel for where the hole is with your thumb, and then just take your right hand, don't think about it, just take your right hand and stick it into the thing that your left hand just felt.
01:34:49 ◼ ► If you overthink it, you're just going to miss again. But just trust me when I tell you, if you have good proprioception or whatever, and most people do, feel for the little hole and then just stick it in where you felt the hole.
01:35:01 ◼ ► You don't have to do any sort of weird, "Oh, I'll move my thumb out of the way at the last second." I swear to you, just feel for the hole and stick it in the hole. It'll work great.
01:35:10 ◼ ► Anyway, I do that and I can do it in complete darkness, so I haven't had a need for a wireless charger. I'm not sure when I'll come around on the wireless thing.
01:35:18 ◼ ► At this point, I would be kind of upset if the rumors of the wireless charging only iPhone. I'd get over it, it would be fine. My whole setup is predicated on a stack of devices, like iPad, iPhone, my AirPods, all this stuff kind of stacked up with all these cables snaking up and they just all plug into the bottom of the devices.
01:35:40 ◼ ► You can't really stack them with wireless unless you do a sandwich layering where you do like, "Charge your device, charge your device, charge your device, charge your device." I don't want that stack.
01:35:50 ◼ ► So I'll be sad if and when the wires go away someday, but for now I'm pretty dedicated to wires.
01:35:57 ◼ ► I like having wired as an option. If I need to fast charge for some reason, it's great for that. Obviously I mentioned Xcode development where you want as much speed as you can get and as much reliability as you can get, it's great for that.
01:36:10 ◼ ► I especially love, like you mentioned, the kid case. Kid devices are treated a little more roughly than many adults treat their devices. A problem that we have had in our household, I mentioned on the show before about my kid's iPad mini and the iPad mini charge port seems to have a flaw.
01:36:32 ◼ ► I've heard from multiple people that the current generation iPad mini and even the one before it I think, it just has a bad logic board design flaw where the lightning connector apparently just like torques itself off the board in even regular use over time.
01:36:49 ◼ ► Certainly with kid use, that's going to be accelerated and that has been the case for us. We've already had to do an Apple Care replacement during the last rung of the current iPad mini.
01:36:58 ◼ ► In that kind of context, I would love an iPad mini case that plugged into the lightning port and just had a big chi coil on the back of it.
01:37:09 ◼ ► Then I could just turn it into a wirelessly charged iPad. Now, that's not going to fix the case where he's using it as it's sitting there at 2% and all of a sudden, "Oh crap, I have to charge!"
01:37:20 ◼ ► He wants to keep using it during charging. That's not going to be great for that but just to have less wear and tear on the port, that would be great.
01:37:29 ◼ ► That's where I love in my current all wireless charging or mostly wireless charging lifestyle, it's great never to have to pick pocket lint out of the lightning port to get it to charge right.
01:37:42 ◼ ► Or never to have to worry about, "Am I wearing down those pins?" Never having that one pin that's the one that always gets slowly charred and blackened over time as crap builds up on it.
01:37:54 ◼ ► It's great to not have to worry about that and to save so much wear and tear on the port.
01:37:59 ◼ ► If you're in a context where that's important, like kid devices, I would just love to see more options like that.
01:38:05 ◼ ► For me, bring on MagSafe for iPad mini especially. That would be amazing. Or for any iPad, frankly. That would be a pretty strong factor in me buying whatever's next for my kid.
01:38:15 ◼ ► I feel like wired charging, especially as the device size goes up, is just so much more convenient because you don't need a big flat surface to mate with your thing.
01:38:24 ◼ ► We have one of those folder filing cabinet kind of charging things where you can put a bunch of iPads vertically.
01:38:30 ◼ ► That wouldn't work with wireless unless you had these big giant fins because there's just these little fins where you put them in the slots and then connect them with the wires.
01:38:38 ◼ ► You mentioned about the cable. Aside from kids using their devices with the cable attached and destroying the cables, A, because there's bad string relief because kids are monsters.
01:38:48 ◼ ► But B, also just pulling on the thing and torquing it in the design floor and a little scorching and everything like that.
01:38:54 ◼ ► You mentioned pulling lint out of the things. I have to say that for my personal devices, having used lightning since it existed in many, many devices, none of those little scorch pins have ever caused any problems.
01:39:06 ◼ ► I've literally never had a cable that stopped working. I've never needed to pick lint out of any of my lightning ports ever.
01:39:12 ◼ ► None of them have ever failed to work or broke over time. Granted, I'm very gentle with my devices so that doesn't say these things don't happen.
01:39:19 ◼ ► But I'm just saying that my paranoia about the scorch marks and displeasure with all the stuff happening, practically speaking, hasn't actually caused a problem in my very careful usage.
01:39:30 ◼ ► But I do know many other people who do have that problem. And this is probably why Apple is even interested in a connector-less iPhone.
01:39:39 ◼ ► Just to eliminate all the people coming into the Apple Store saying, "My thing doesn't charge anymore."
01:39:44 ◼ ► And then having them go in there with little dental tools and pull out the little lint. It's not a design flaw, but it is a weakness of having any kind of plug.
01:39:52 ◼ ► And the phones are thin. You can't really fit a giant, beefy plug on there because they're small phones.
01:39:58 ◼ ► So something has to give at some point. And I think all wireless is probably inevitable and I'll understand it when it happens. But for now, I'm still going with the wires.
01:40:06 ◼ ► They better fix Xcode. Anyway, thank you to our sponsors this week. Linode, Memberful, and Burrow.
01:40:14 ◼ ► And thanks to our members who support us directly. You can join us at atp.fm/join. And we'll talk to you next week.
01:40:23 ◼ ► Now the show is over. They didn't even mean to begin. Cause it was accidental. Oh, it was accidental.
01:40:34 ◼ ► John didn't do any research. Marco and Casey wouldn't let him. Cause it was accidental. Oh, it was accidental.
01:40:45 ◼ ► And you can find the show notes at atp.fm. And if you're into Twitter, you can follow them.
01:40:55 ◼ ► @C-A-S-E-Y-L-I-S-S. So that's Casey Liss. M-A-R-C-O-A-R-M. Auntie Marco Arment. S-I-R-A-C. USA. Syracuse. It's accidental. They didn't mean to. Accidental.
01:41:20 ◼ ► Tech.com. So long. So Casey, I know that you're working on an app. And I know that you've had some motivational challenges after working on the Apple Watch component.
01:41:40 ◼ ► Yeah. You are not alone. Everybody who has ever developed an Apple Watch app has generally run screaming from the process. And it is extremely demoralizing, extremely frustrating, and just a massive slog that just crushes your soul and makes you never want to be a software developer again.
01:42:01 ◼ ► But I'm also here to tell you that because WatchOS is such an incredibly hostile and limited environment for apps to run in, most people don't expect perfection on the Apple Watch. And also, you can't achieve it anyway.
01:42:19 ◼ ► That's true. You do what you can to give an okay watch experience for most people most of the time. That's going to be the best you can achieve. And so you have to just decide at some point, like, all right, this, I've reached a plateau. At this point, I'm just banging my head against the wall. I'm not getting significantly better. Or the platform won't let me get significantly better past this point. I will just consider this acceptable and move on.
01:42:48 ◼ ► It is not you being a bad developer. It is not the world of software development telling you that you shouldn't even bother doing it anymore because lots of other things do that. I mean, if you want that kind of feeling, try doing web development.
01:43:00 ◼ ► But in this case, the Apple Watch is a terrible software development platform. It is made to be as punitive and awful to iOS developers as possible. It will represent a massive part of your negative reviews, by far the most crash logs. And there's not a god damn thing you can do about that.
01:43:23 ◼ ► And so you just have to kind of set it aside and just accept, like, this is going to be a source of problems for me and my customers, but I'll do the best I can. In a way, it's very zen-like.
01:43:37 ◼ ► Right. So I feel like I need my support group. And for the listeners particularly, I think I should back up a smidge and at least obliquely talk about what I'm building. So months and months and months ago, I noticed Erin doing some arithmetic with regard to something on her phone and her watch.
01:43:58 ◼ ► And I can't get too specific, but it was about health things. And I started doing this and I was like, what are you doing? And she explained. I was like, well, why? I could like, I can fix this, you know, like I have the technology, I can do this.
01:44:11 ◼ ► And so the core of this app, which I'm tentatively calling GoalTender, the core of GoalTender is to do a little bit of arithmetic and give you like a status report. And that's really all it is.
01:44:24 ◼ ► And on the surface, that's like a week or two worth of work. I'm on like month eight or something like that. And part of it is because I've just been deeply unmotivated because of all things COVID.
01:44:36 ◼ ► But now that, you know, our family, the adults are vaccinated and the kids are slowly starting to reenter society, I'm starting to feel better about work or I was starting to feel better about work in general.
01:44:50 ◼ ► And I'm starting to get out actually get some real work done. And I am incredibly lucky and incredibly privileged that I can like coast on this for months and not have been fired and not have put myself in dire financial straits.
01:45:05 ◼ ► Like I recognize that if I had an actual job, I would have been fired long ago and it would have been a real honest to goodness problem.
01:45:13 ◼ ► So anyway, so I've been working on this way too long and I already feel guilty about that. Right. And so I've heard my imposter syndrome is already like, you know, peeking around the corner saying, hey, man, hey, remember me? Hey, what you've been doing the last eight months? Oh, nothing?
01:45:30 ◼ ► So that's, you know, in the back of my mind already. And the app, again, being at least slightly oblique, the app needs at least a month worth of health data to do the arithmetic it needs to do.
01:45:45 ◼ ► I wrote pretty much all of it, I thought, and then I was noticing that the data was wrong on the watch app. So not I'm not talking about complications or anything, just talk about the watch app, which is super duper simple and was working actually reasonably quickly because I was just reusing Swift UI views that I was using in the iOS app in the watch, which is great.
01:46:06 ◼ ► Like that's that's when Swift UI is good. And it took a little tweaking here and there, but by and large, it was relatively multi platforms. That was great. But then I realized I was dropping data. I didn't know why. And then come to find out the watch only has 10 days of health data.
01:46:22 ◼ ► Oh, for the first 10 days of the month, it works great. And after that, it's a mess. So now I'm in a situation where I only have all the data I need on my phone.
01:46:34 ◼ ► In order to get the data to the watch, it needs to come from the phone, which means what am I now relying on a hundred percent for the watch Marco?
01:46:58 ◼ ► There are not enough curse words in the English language to properly classify how it is to work with watch connectivity.
01:47:07 ◼ ► So now my entire app, even the even the watch app. So I'm going to get to why I keep specifying between the differences. But I'm having major issues with my complications. My complications are complicated.
01:47:19 ◼ ► And that's a big, big, big problem. But even the watch app, which is almost entirely under my control. Like yes, the API is weird. Yes, you know, SwiftUI is weird in its own right.
01:47:30 ◼ ► But by and large, I don't have a lot of excuses on the watch app. That is entirely under my control with modern watch development.
01:47:41 ◼ ► But for me, I don't have too much to complain about, at least on the surface, with regard to just straight up watch development.
01:47:49 ◼ ► But once you sprinkle in watch connectivity, it's a nightmare. So why is it a nightmare?
01:47:52 ◼ ► Well, first of all, you can't really test on the simulator because some of the things are implemented in the simulator, both the iOS and watch simulator.
01:48:01 ◼ ► Some of them just plain aren't. And that's not a joke. Like you can find, I'm not going to find this for the show notes, but you can look in the documentation and legitimately in the documentation, it says,
01:48:09 ◼ ► "Well, just don't try this thing in the simulator because we didn't friggin' bother. Just don't."
01:48:14 ◼ ► And there's all sorts of weirdness with the watch simulator and watch connectivity framework in particular.
01:48:19 ◼ ► Like, I think what it's trying to do is insert little arbitrary delays in any watch connectivity communication between your simulated phone and simulated watch app to try to simulate watch communication in real life being sometimes delayed.
01:48:34 ◼ ► But the result of that is that oftentimes watch connectivity communication in the simulator just never gets delivered.
01:48:45 ◼ ► But it makes it nearly impossible to do substantial development in the simulator for any apps that communicate between the watch and phone apps.
01:48:55 ◼ ► Bingo. Okay, so now I've backed myself into like a corner within a corner. So first of all, even though the HealthKit APIs do exist on the watch, it'll only work for the first 10 days of the month.
01:49:06 ◼ ► So that's a non-starter. So I already need watch connectivity. It's not optional. I need watch connectivity in order to get the data I need onto the watch.
01:49:17 ◼ ► And then beyond that, I'm doing all of this stuff with HealthKit data. And that is, of all the APIs that Apple has, of all the ones I've worked with, and I've at least glanced off the outer atmosphere of most API, like most of the higher level APIs.
01:49:32 ◼ ► Like, I haven't done any of that crazy stuff with like matrix math that you're doing, Marco. But I'm talking about the high level APIs. I've glanced off the outer atmosphere of most of them.
01:49:41 ◼ ► And a lot of them have legitimately good test harnesses or things you can do. Like location services is a great example. Like you can put in, I believe it's a GPX log. It doesn't matter if I get the details wrong.
01:49:52 ◼ ► But you can basically put in a log and tell the simulator, go ahead and use this to simulate like a car driving, you know, which is the sort of thing you want.
01:50:01 ◼ ► Well, with HealthKit, it's like, good luck. Like if you really want, you can put the simulator onto your legitimate iCloud account, your actual iCloud account, and it will sync up all the health data and then just hope for the best.
01:50:16 ◼ ► Which is not really a great option. And then there are people that have done like open source things to extract and then import health data, but I couldn't get any of them to work.
01:50:25 ◼ ► And the one I found that looked most promising used CocoaPods. And with respect to anyone who likes or uses or wrote CocoaPods, f*** CocoaPods. I hate it.
01:50:33 ◼ ► In any case, I'm backed into one corner because I'm relying on health data that doesn't exist.
01:50:38 ◼ ► Now then on top of that, I'm relying on watch connectivity, which means I pretty much have to debug on device. Between these two things, I have to debug on device.
01:50:48 ◼ ► I cannot reasonably describe how impossible, and that, I use that word constantly as a, what is it, hyperbole? I use that word not literally all the time.
01:51:01 ◼ ► It is not literally impossible, but it is nearly impossible to get a watch app to debug successfully more than once in Xcode.
01:51:11 ◼ ► I have tried everything. I have tried rebooting everything. I've tried turning things off, turning things on. I've tried hooking up with a USB-A cable. I've tried hooking up with a USB-C cable.
01:51:30 ◼ ► And so, now I've put myself in the situation. The goaltender is at its core two SwiftUI views. That's all it is. That's literally all it is. It's two views.
01:51:42 ◼ ► Of course, there's a bunch of superfluous stuff around the outside. It's two views. That's all it is.
01:51:49 ◼ ► And I've been working on this way too long, in part because I guess I'm a s***ty developer, but in part because it's just all of this is infuriating.
01:51:59 ◼ ► And I realize that Apple does incredible work in so many ways. And some of Apple's best work targeted at developers is when they're living in the same world we are.
01:52:15 ◼ ► When they are, as we like to say, dogfooding. Apple very clearly does not dogfood watch development like we do.
01:52:25 ◼ ► And I've spoken to some birdies within Apple who have confirmed that they have fancy little cases with fancy physical harnesses where they have fancy physical f***ing connections to their watches.
01:52:36 ◼ ► So they don't have to worry about all the things we do. In the defense of Apple, it is kind of a miracle that you can debug-ish a watch.
01:52:45 ◼ ► So that's the other thing. Anytime I've successfully gotten a debugging session insofar as I'm seeing log messages arrive in Xcode, as soon as I interrupt execution and attempt to step to the next line, it's done.
01:53:02 ◼ ► Nope, nope, nope, nope, nope, nope. So I looked at Erin just a day or two ago, it might have been two days ago right before we recorded actually, and she looked at me and was one of those things where your spouse just looks and knows something's not right.
01:53:15 ◼ ► She looked at me and she's like, "Are you okay?" I was like, "Yeah, I was thinking about Goldsender." And you know what it made me realize? I really don't like that part of my job.
01:53:24 ◼ ► And I said that kind of to be funny, but I got thinking about it. And sitting here today, right now, in the depths of despair, I really legitimately am not enjoying this portion of my job.
01:53:37 ◼ ► I love the portion of my job where I talk to you two, even when you drive me nuts, which does happen, but I really don't like that portion of my job right now.
01:53:43 ◼ ► And so there is probably an argument that I should just abandon this whole darn app in the first place.
01:53:49 ◼ ► But now I've got some cost fallacy knocking on the other door behind me. There was the imposter syndrome coming in door number one, then there's some cost fallacy coming in door number two.
01:53:58 ◼ ► And I really want this app to exist in the world. Whether or not another human being buys it, I'm lucky enough that I don't really need to worry about that.
01:54:06 ◼ ► But I think it could be useful to some people. But at the rate I'm going, I feel like it's an insurmountable thing that I will never be able to get over.
01:54:16 ◼ ► And it makes me feel like, as much as I'm kind of being silly and goofy, it makes me feel like a piece of garbage.
01:54:22 ◼ ► It makes me feel like I legitimately don't belong doing the job I'm doing. Because this doesn't seem like a terribly difficult thing to write.
01:54:31 ◼ ► It is literally at its core two SwiftUI views. Why is it this challenging? Oh, then I keep putting off and it doesn't bring up.
01:54:43 ◼ ► Because this thing, it's kind of sort of two graphs, right? It's not literally graph. You could call it a graph, I guess.
01:54:50 ◼ ► It's basically two graphs, or gauges is a better way of putting it, I guess. Two gauges.
01:54:55 ◼ ► And if I were a consumer, I would say, "Wow, this app is two gauges. Wouldn't it be sweet if I could put those gauges onto my watch face?"
01:55:08 ◼ ► And so that's the other tough thing about iOS development these days, is that you start with an app that is two gauges.
01:55:16 ◼ ► I'm not saying this over and over again to sell myself short. I do think there's value in this app.
01:55:25 ◼ ► And yet, then the next thing you know, well, you need a watch app, because you might want to see your gauges on your watch.
01:55:31 ◼ ► Well, then you need complications, because you might want to see the gauges on your watch face.
01:55:35 ◼ ► And of course, I started going down the road of, and then kept getting distracted by the watch.
01:55:39 ◼ ► What else are you going to need? Widgets! Because what if you want to see your gauges on your home screen?
01:55:43 ◼ ► And so this little app that has started as two gauges is now spidering all into all these different technologies.
01:55:52 ◼ ► And on the one side, I'm really glad, like even if I never release this, I am really glad that I'm experiencing in more depth,
01:56:07 ◼ ► I am happy to be experiencing it more and more, but I feel like almost every step of this process has made me increasingly miserable.
01:56:18 ◼ ► And if I was a smarter man, I would just walk away from the whole damn thing and try something new.
01:56:22 ◼ ► So in summary, I would love for Apple to either dog food the stuff that they make us do, or be whatever like physical thing that they undoubtedly have that they can use to do the development that they do.
01:56:40 ◼ ► At this point, I would pay them $11 billion for one of them so I can have one too, because oh my gosh, it genuinely has made me hate my job.
01:56:55 ◼ ► No, and there's multiple angles to this. I'll try to tackle some of them in the time we have.
01:57:01 ◼ ► So first of all, totally agreed. If they sold a wired development Apple Watch, I would pay $1,000 easily.
01:57:14 ◼ ► So listeners, if you've ever tried to debug an app, or even just build and deploy and test an app on an Apple Watch, for me to do that with Overcast, it is I think about a three minute long process every time I want to change anything.
01:57:29 ◼ ► Suppose I want to run something on the watch, which, spoiler alert, audio is not well simulated in the simulator.
01:57:36 ◼ ► The way audio behaves, things like audio interruption handling, audio output handling, output routing, background handling of audio, almost none of that is correctly implemented in the simulator.
01:57:48 ◼ ► Sure enough, I'm going through the same crap of like, alright, change something, build and run, try to figure out, like recently I had a problem of trying to figure out why audio interruption handling was not working correctly on my standalone watch playback.
01:58:02 ◼ ► When audio interrupts other audio on iOS, and the other audio has its volume reduced, so you hear like the alert and then the volume goes back up, that's called ducking in audio terms.
01:58:13 ◼ ► And so I have, for years, I've had a utility app called Duck that just has a picture of a duck, and it has different buttons in the app for different time intervals, and when you click one of those time intervals, it plays that amount of time randomly picked from Tighten Up by Archie Bellendrells.
01:58:31 ◼ ► And it's a way I test interruption handling in Overcast, because you need a different app to interrupt the sound to test the interruption handling in Overcast.
01:58:42 ◼ ► So I went through the trouble of making a watch version of Duck during this last few weeks, getting a little duck-sized icon for the watch version as well.
01:58:54 ◼ ► And SwiftUI made this very easy, by the way. Thank God for SwiftUI, because I'm telling you, Casey, in the days of WatchKit, oh my God, it was so much worse.
01:59:03 ◼ ► Oh, I don't have it. Oh no, I know, and that's the thing, that's the other thing. Like, I know that I am living the comparatively easy life compared to what you and Underscore went through.
01:59:12 ◼ ► And actually, and that's the other thing, like, how Underscore has a single hair on top of his head, much less is actually legitimately successful at this, I have no idea. He must have...
01:59:27 ◼ ► He has, he must be the most patient and persistent person I know, to develop as much Apple Watch software as he does.
01:59:36 ◼ ► Well, that's his disposition to begin with, and I am quite obviously the opposite of that, but still.
01:59:42 ◼ ► Part of it is also experience, where if you do, you know, this is your first watch app, and you know, this is Marco's fifth version of the same watch app.
01:59:49 ◼ ► But listening to you talk about your woes, Casey, and like, oh, it's only two SwiftUI views, and like, I'm thinking, like, presumably, like, if you forgot about all the data, and just put, like, hard-coded fixture data in, you would have no problem making a complication, a widget, a watch app, because it's not like the part you're tripping over is, oh, I can't get my SwiftUI view to render correctly.
02:00:13 ◼ ► It's all about data flow, right? And in the case of data flow, both in your case and in Marco's case, it's like, well, in your case, this is not your data.
02:00:22 ◼ ► It's from the health APIs, and so you're at the mercy of the health APIs, and then you're at the mercy of the stupid watch connectivity APIs.
02:00:29 ◼ ► Like, if you could just get the data to where it needs to be, it's not like you're struggling over the rendering of it.
02:00:34 ◼ ► And, you know, if you did something like, you know, little experimental watch faces where the only input is the time, there's no data flow, and it's easy and probably relaxing and fun to do.
02:00:44 ◼ ► And then in Marco's case, he's dealing with system APIs because he's trying to play audio, and he doesn't control the entire audio stack from top to bottom.
02:00:50 ◼ ► There's other audio things that can go on, so he's got to handle when he's interrupted and when he's resuming, and then he's got his own data flow, which is probably better than dealing with HealthKit, because at least he controls those APIs.
02:01:00 ◼ ► But as evidenced by the seven versions of the watch app he's made, eventually he's like, look, Apple, you are no longer involved in the data flow.
02:01:06 ◼ ► I'm going to get it from the server myself, because all the other ways I tried have been terrible.
02:01:10 ◼ ► So, like, I'm not, like, this is, you know, both of your things are terrible for reasons that are kind of predictable given the strengths and weaknesses of the watch.
02:01:19 ◼ ► And it just seems like if you had a simpler use case, your own data or just the time or something simpler, like the ones they do in the WWDC demo where it's like they gloss over the part of where the data comes from, and they're just like, look how great this is.
02:01:34 ◼ ► Watch development is really easy. Like, you just do this, and you can put this, you can use SwiftUI and put your views up, and you do a timeline for the complication, and it's just like assume that the data is already available in these variables in your views.
02:01:46 ◼ ► It's like, but that's the hard part. Like, how does that data get there? Where does it come from? Does it have the correct values? How do I make a fake set of it when it's complicated data, you know, all that other stuff.
02:01:56 ◼ ► And that fabled debugging thing would be great for you to figure out why the hell your data isn't getting there, because you could finally debug, but in the end, your data isn't getting there.
02:02:05 ◼ ► And the debugger would just sort of reveal the brokenness of the APIs versus you just wondering why it's broken, but what you really want is for, to have a way to get the data.
02:02:16 ◼ ► Like, say for instance in your case, Casey, that there wasn't the 10-day limit. You would not be suffering this much, right? Like, you do the complication, you do the widget, you do the thing, it would be like, oh, the data's just there, it's on the watch, I just render the views, and so I feel your pain.
02:02:30 ◼ ► But it's not because, like, I think you're just, like, Marco, you're just running into the worst of the sharp corners of the UI. There's no amount of skill that's going to get you over other people's broken APIs.
02:02:42 ◼ ► Yeah, and that's the funny thing is, for the first 10 days, it just so happened that I finished, like, the first cut of complications and the watch app on like the second day of, maybe it was July, maybe it was June, whatever it was, it was like the second or third day of the month.
02:02:56 ◼ ► And then after the 10th day, I realized my complications aren't updating, or something was wrong, and then I started digging and realized, oh, oh my God, that the reason why is because the data is not there.
02:03:06 ◼ ► So like, to your point, Jon, at the time, it seemed like, you know, something had gone awry, where, but everything else up until that point was working great.
02:03:16 ◼ ► And then it was only upon that limit being discovered that I realized, oh no, now everything is different, and now I've got to use watch connectivity, like, I was already lightly using it for a couple things, but I've got to really go all in on watch connectivity, and now I've got to pass all sorts of data back and forth, and it's just a mess.
02:03:32 ◼ ► So there are a few tips I can give you here. So number one, for debugging, I already told you, but I'll tell the listeners too, if you use a USB-C to lightning cable, for some reason, that tends to work better.
02:03:46 ◼ ► Like the one that goes to the phone, that, you know, not even the one that goes to the watch, obviously, because we can't have those, the USB-C to lightning cable for some reason is more reliable and faster for me to debug.
02:03:54 ◼ ► I don't know why it's not USB-3, I don't know what the reason is, but that is a thing for me. As for the actual debugging process, I too can rarely get a debug session to work on the watch.
02:04:06 ◼ ► Typically what happens is, I hit build and run in Xcode, it takes about 90 seconds maybe, where it's trying to install to watch, like first it has to compile the app, which is now, you know, because it's Swift UI, it takes forever.
02:04:22 ◼ ► So it eventually gets there, compiles the whole rest of the app too, the whole phone app and everything, tries to install to watch. Sometimes that step succeeds, sometimes it doesn't. Sometimes it just errors out with some, like, you know, nonsense error that doesn't mean anything.
02:04:37 ◼ ► Sometimes it says it installed to watch, and then sometimes it says running, and it never runs. Occasionally, I will get it to actually run in the debugger through Xcode on the watch, maybe one out of three or four runs, it will actually get that far.
02:04:54 ◼ ► Oh man, I would kill for that often. Oh my goodness, I would kill for it to be that often.
02:05:09 ◼ ► I would go down at my watch, like 10, 15 minutes later and see, oh it's running, oh my god, and then I'll like jump back to Xcode and like take over the session. But it's so slow to get to that point and get there so rarely. Oh, and I've had the same experience with you.
02:05:24 ◼ ► So try to actually like set a breakpoint and try to either debug it by even just reading what a variable value is, or trying the PO to print an object or whatever, or try to do a step or step in or step out, forget it. That breaks the session almost every time.
02:05:40 ◼ ► So don't even bother with that. The best you can do is see live log messages. That being said, you can also use a custom logging framework or make your own like I did.
02:05:54 ◼ ► Yeah, and then, so what I do is I have my own custom log framework, and I use it in the iOS app too, that I log my own events to. And then I have in only my, I have a code that checks for is user ID equals one.
02:06:11 ◼ ► Then show a button in my watch setting screen that submits my log to my servers. And then I have a page on my server in my admin page that I can go look at my own damn watch log.
02:06:25 ◼ ► No, no, no, hold on though. I think it's important that we really pull on this thread for a minute, and I'm not trying to be funny. It is better and faster for you to write custom code to package up log files and send them across the internet to a server under your control that is easier and more reliable than using the development environment that you are developing the app for this device with.
02:06:56 ◼ ► Literally today, like you saw in a Slack channel we're all part of, I was looking at, okay, how can I start, you know, collecting log information, writing it to a file, and then like, my next step was going to be like uploading it somewhere, doing something with it.
02:07:07 ◼ ► But my first step was like, let me collect all these logs and then I'll figure out how to put it somewhere. But I am writing my own logging system. And yes, I'm sure listeners, there's some logging system that I should be using that is like open source or whatever.
02:07:20 ◼ ► But one way or another, I am writing my own logging system because it seems like that is the most reliable way for me to be able to tell what's going on.
02:07:30 ◼ ► For a brief window of time, when it came to complications, I was firing off, there's an app that I really like called Pushover, which I think I mentioned in the past.
02:07:38 ◼ ► And what it basically does is allow you to send pushes by like email or by an API call.
02:07:45 ◼ ► And I use it for some things like, for example, if I'm doing some long running operation on my computer, I have a shell script where I can just say, you know, call the shell script with a message and it will send a push notification to my phone/watch saying, okay, that thing is done.
02:08:00 ◼ ► So I was briefly, when I was debugging complications, using Pushover to start sending myself push notifications.
02:08:07 ◼ ► Oh, such and such a complication just got updated, such and such other complications just got updated, etc, etc.
02:08:15 ◼ ► But my point is that was the most reliable thing I could think of at the time in order to get myself better visibility into what's going on on the watch.
02:08:25 ◼ ► Now, I do think, and I haven't looked into this, I think there's some like certificate or something you can put in that will get you the ability to use like console.app on your computer to start reading logs coming off the watch.
02:08:41 ◼ ► Okay, there you go. I was so skeptical that it works that I didn't even really bother looking at it.
02:08:45 ◼ ► It works about as well as debugging. Like you can get it to work occasionally, but it's not.
02:08:51 ◼ ► No, so here's how you do watch development. First of all, you know, whatever coping mechanism you need to do afterwards, do whatever you need to do.
02:09:00 ◼ ► So first of all, yeah, write your own logs to your own thing and somehow get that onto a server for debugging purposes so that you can or somehow get that to you for logging.
02:09:12 ◼ ► And you're going to be doing print off debugging. You know, this is like, we're not going to have interactive debuggers going on here.
02:09:20 ◼ ► So once you have the log file feedback loop working, here's how to increase the speed of the deployment cycle. Never build and run on the watch.
02:09:31 ◼ ► If you build and run the phone app, like onto your phone, you will see if you go to the honeycomb screen on your watch, when you hit build and run, the second it launches on the phone, you can see the spinner start on the, like, you know, the pie slice progress bar.
02:09:48 ◼ ► You can see that starting on your watch icon. As soon as you deploy to the phone, the phone pushes the update to the watch and that happens way faster and more reliably than building and running directly onto the watch from Xcode.
02:10:01 ◼ ► So you have a fast feedback loop with logs, that's your fast feedback loop for code changes. Just build and run on the phone and watch the watch update and you'll see it's fast.
02:10:10 ◼ ► And that's it. And it sucks that like, I wish we had better development tools. I wish the tools we had actually worked and I wish the people at Apple use them the way we have to or gave us an option not to.
02:10:20 ◼ ► That being said, watchOS continues to feel like it has a staff of like one intern total that has, you know, permission to work on it part time.
02:10:28 ◼ ► So like, well look, look at how much changes in watchOS every year. It's not a lot. You know, it doesn't seem like they have a lot of resources over there allocated to the watchOS development cycle.
02:10:41 ◼ ► And so maybe we don't want the watchOS team to have their jobs be made harder. But you know, ultimately it does suck that the job that we are trying to do making apps for this platform is made so much harder by the lack of reliable and good development tools and workflows.
02:10:59 ◼ ► But that's the reality of it. There's not much you can do about it. So the other thing I will suggest regarding your data transfer issue. Now this is a little sensitive because health data is sensitive.
02:11:10 ◼ ► I was just thinking, I don't know what you're going to say it, but I was just thinking earlier that if you could just get that health care data and like shove it up on a server somewhere and then pull it over the internet back to the phone.
02:11:20 ◼ ► But I was like, Bob, that's health care data. You can't really do that. So I hope that's not what you're going to suggest.
02:11:29 ◼ ► It's funny you bring this up because I had this exact same thought. The problem I have with that though is that I don't know for absolute certainty that your watch has internet connectivity. Right? Or maybe I do and I don't realize it.
02:11:46 ◼ ► So that's the thing is if I rely on the internet to transfer data, then I think I'm creating a different set of problems for at least for myself slash a potentially large subset of my maybe customers.
02:11:59 ◼ ► If I ever get this thing out the door in that, you know, not everyone will always have a reliable internet connection and this data could change as often as, you know, every 10, 20 minutes.
02:12:11 ◼ ► And so it seems like that may not be the best answer, but at the rate I'm going, it's the answer I'm going to have to choose to take because I can't get any other freaking thing to work.
02:12:20 ◼ ► Yeah. I mean, you could also end up doing both. Like one thing you could do is like have the phone package up the last X days of data as like blobs of data.
02:12:32 ◼ ► Have the phone try to send it to the watch with like a blob ID on each one and then also add those to cloud kit and have the watch attempted to sync with cloud kit and just try to get the same IDs.
02:12:45 ◼ ► And you know, if it already has an ID from one of the other sources, it'll, it'll ignore it, you know, and just do, I mean, this is terrible.
02:12:52 ◼ ► Like you shouldn't need to do any of this garbage, but people who have remotely functional watch apps do crap like this.
02:13:00 ◼ ► This is what we have to do. Like it's there. It's full of bad hacks, redundancy, weird ways to try to just brute force stuff through because it's, it's such a punishing and unreliable environment.
02:13:16 ◼ ► Yeah. It's funny you bring that up. So I wrote a front end, which I actually am kind of proud of, even though I'm sure it's technically incorrect, but I wrote a front end to watch connectivity that basically anything you want to send,
02:13:27 ◼ ► it will send in all three of the different ways you can send it because that's the only way I can reliably assure, well semi ensure it will be there.
02:13:36 ◼ ► So like, well, I forget what it is off the top of my head cause I haven't looked at this code in a couple of weeks, but it's like there's immediate messages, which you can even have replies to,
02:13:44 ◼ ► but that only works when both the watch app and the iOS app are running simultaneously. If I think I have that right, I might have that slightly wrong.
02:13:52 ◼ ► No, it's, it's not quite the, the watch app is able to wake up the phone app, but not vice versa.
02:13:56 ◼ ► That's right. That's right. That's right. Yep, yep, yep, yep, yep. So you can have like immediate messages. You can have, what is it like user info updates. And then there's like some of the application context, which is like, yeah, that's
02:14:09 ◼ ► another thing I can recommend any message you get from one of those, like if like the application context, save that in a file that way next time your application launches, if you don't, if you can't get a new one, use that second thing I can recommend put a date object or a sequence number.
02:14:28 ◼ ► Yep. Yep. I did. I did. Yeah. Either, yeah, either a data or, or a sequence number in each one of those dictionaries because the system will occasionally deliver them to you out of order or deliver you stale data. So you have to be able to reject stale data as it comes in.
02:14:48 ◼ ► So, so yeah, I mean, I, I'm going to be going away somewhat soon and I'm going to be stepping away from all this for a few days and I suspect when I come back, I'm either going to abandon this whole damn project or maybe hopefully have a renewed vigor in order to get through all these problems.
02:15:05 ◼ ► But it's funny because a lot of times, especially it's, it's happened a lot to me in the last year or two, it kind of went away for a long time, but it's starting to come back. I'll have friends that are not technical who will say to me, Hey man, I really want to make this app that does this. How long do you think it would take?
02:15:21 ◼ ► And admittedly, there's a lot of other problems with goaltender. Like I, I started it at a time when I had no motivation. I wasn't doing a good job of getting work done, et cetera, et cetera. But like all those caveats aside,
02:15:36 ◼ ► That's true. Except that's not exactly the kind of goals it's tending, but nevertheless,
02:15:43 ◼ ► Well, that's also true. But, but you know, I look at goaltender, which is, I don't remember exactly when I started it. I'm too lazy to look up the git commit history, but it's been months and months and it's an app that's two views.
02:15:55 ◼ ► And then I'll have people come to me and be like, Hey, I want to automate this incredibly complicated process that involves lots of real world physical objects. That can be done in a couple of months. Right.
02:16:05 ◼ ► And I'm like, dude, that's, that's a million bucks in two years for 10 people. And they'll look at me like, what?
02:16:13 ◼ ► And it's like, yes, you don't even know. Like it's, this is why software is expensive. Partly because not a damn one of us knows what we're doing, but partly because it is that complicated. It's a lot easier to mess up.
02:16:25 ◼ ► It's a lot easier to reset than say civil engineering when something goes wrong, but it is incredibly complicated.
02:16:31 ◼ ► And if there's anything we do as a profession is we insist on making things more complicated with each passing year.
02:16:39 ◼ ► So I'm sorry for venting. I appreciate you letting me vent, but it is just, it is soul sucking. And it is at the point that I'm really strongly thinking that maybe I should just abandon this whole idea and just try something new.
02:16:53 ◼ ► Well, I mean, on that front too, like there's, you know, you can see both ways of this. Obviously, as you mentioned earlier, like because you're not super dependent on the income from this app, you can abandon it.
02:17:05 ◼ ► You have that freedom. You're a person, you're an adult, you can make your own decisions like this. You can just say, you know what, this is not working. This is not worth it. I don't have, I can abandon it.
02:17:13 ◼ ► You can also not abandon it, but not release it. You can just use it for yourself. Like I never, I'm not going to release duck. I use it. It serves a purpose.
02:17:23 ◼ ► It's not the only app I have like that. Like that I have, I have my coffee ratio app. I have town painter, my app about tracking my walks on the map of fire Island. I actually just rebooted that as a, as a running map for me this summer.
02:17:37 ◼ ► I'm not going to release that because it's an app that really needs a watch version to be useful to the public. And I wrote it when I was not wearing an Apple watch. And so I wrote it to like start a workout and be a walking workout from your phone, like entirely on your phone.
02:17:54 ◼ ► There is no watch app for this workout tracking map. Like it, it screams for a watch app and I'm not going to make one because it's not, it's not worth me taking that time right now. And I'm not motivated to, and I hate the watch like for software development.
02:18:08 ◼ ► So, so I'm not going to do that. So I'm just not going to release this app. Like it's not worth releasing. The other thing is you can release it and not have some of these features and just say, you know what, here's, here's what it is.
02:18:20 ◼ ► If it's useful to you, great. If it's not, oh, well, like, you know, not every app has to like, you know, you, you're putting a lot of pressure on yourself to say like, all right, well obviously this needs a watch app. Well does it? It might not.
02:18:32 ◼ ► Obviously this needs to be a widget. Does it need to be a widget? Maybe. I mean, that might be nice, but is that required or it has to be non-existent or dead? Like it's like this, you know, this was a, you know, two extremes here.
02:18:45 ◼ ► There's a lot of middle ground that you could pick and the world won't end and you know, it might not appeal to everyone. Some people might write to you saying, why doesn't it have this feature or I'm going to, you know, withhold my stars or my purchase until you add this feature.
02:19:00 ◼ ► And that's fine. You, you don't have to add it. You don't have to please all those people. You can have an app that's really good for your need and it might not ever be useful to anybody else, but you can still release it and just see and it, you know, maybe somebody will find it useful.
02:19:13 ◼ ► But you don't have to put all that pressure on yourself that it has to have every single little tiny thing. But moreover, you don't have to work on something that you don't want to work on.
02:19:21 ◼ ► If you want this app to exist badly enough for your own purposes, for your own satisfaction, get it to where you want to get it and release it or don't like it. Just use it for yourself for forever. Like I do with all my, with my, my little garbage apps, you know, that, but yours is better than that.
02:19:35 ◼ ► But your app is way nicer than duck by the way. But, but it's also way nicer than town painter.
02:19:42 ◼ ► Yeah, I think, you know, hearing you talk about it and thinking about it, I think if I were to go middle ground, which at first when I started thinking about it, I was like, no, I don't want that. But the more I'm, the more I'm talking to myself and listening to you, the more I think, well, maybe there's something for that to be said for this.
02:19:56 ◼ ► I think the middle of the ground is no watch anything. So I think, you know, the iOS app is, is done for the meaty things like IAP I haven't touched in a couple of the things I haven't touched.
02:20:06 ◼ ► But the main, the main meat of the iOS app is done. And I think I can get widgets done pretty quickly. And I think that's manageable because I'm not relying on all these things that are making me miserable.
02:20:19 ◼ ► And so I think that the halfway solution to this is to release it as an iOS only app, no watch support of any sort.
02:20:28 ◼ ► And then I think the next step would be see if I can get the watch app. So the watch version of the iOS app working. If I can get that working, then maybe I'll go and try to bite off complications again.
02:20:40 ◼ ► But there are there is some middle of the road here right now. I'm just so miserable about it that I need to step away and reevaluate.
02:20:47 ◼ ► If you, if you, the listener have ever used a watch app that worked for more than five minutes, you should have paid $11 million for that app because that is the pain that the developer or developers have been through in order to make that app work.
02:21:02 ◼ ► Yeah. And this is why I don't offer a complication for overcast that serves any kind of useful function.
02:21:07 ◼ ► The only complications I have are either the icon that you tap it and it launches the app because that works every time, or I have a complication called overcast date that works only for the solar face and I think one or two others that you can replace the date on those faces like the day and date like, you know, wed 12.
02:21:25 ◼ ► You can replace that with my complication that does the exact same thing but launches overcast also for faces that have very few complications slots and you want one that launches overcast.
02:21:35 ◼ ► Right. Right. That's it. And I currently on my own personal watch, I have my own complication called overcast solar that replicates the the path of the solar like the like the shape of the solar face but like with like a line art style.
02:21:49 ◼ ► So I can use it on my infograph modular face and the big center slot. And I'm thinking maybe maybe launching that at some point, but that's it's all kind of worms.
02:21:58 ◼ ► So that requires location to be able to show your sunset. So I'm probably I'm probably never gonna actually do that but but like my complications are that simple and useless because making something useful is nearly impossible as a complication that works reliably.
02:22:16 ◼ ► I don't even currently I use no third party complications on my watch except for the little overcast, you know, throwaway ones because even things like weather and even like like carrot weather carrot weather is the best Apple Watch app I've ever seen.
02:22:34 ◼ ► And it is as far as I can tell, it is like the best watch app that somebody could make as a weather app. Carrot weather does everything it can do to be a reliable, consistent full featured watch app with complications.
02:22:50 ◼ ► And even it occasionally I've had like I've caught it showing stale data, and I'm not blaming the developer. He did everything you could possibly do. Complications are buggy. And only Apple's complications seem to be exempt from certain system bugs and system thresholds of like refresh intervals and stuff like that.
02:23:09 ◼ ► Only Apple's complications work reliably. No one else's do. Even my simple one, my overcast date that literally generates a timeline into the future as far as Apple requests because all I'm doing is showing the day and date.
02:23:24 ◼ ► So it takes no memory, it takes no CPU time, it runs into no limits. Even that is buggy sometimes. Even that will like refuse to update, which is really a great, it's a hilarious thing when you wake up in the morning and it says it's Wednesday and it's actually Thursday. That's a lot of fun.
02:23:42 ◼ ► And so if even that, if even watchOS won't even let me get that reliably showing, nothing else stands a chance. And so complications on the watch that are not made by Apple are always going to be inherently buggy and limited.
02:23:57 ◼ ► And there's always going to be a risk that they're going to be showing out of date data and you won't realize it. And that basically invalidates the value of lots of complications possibilities. And so it's better to just avoid relying on them at all.
02:24:10 ◼ ► Yep. And that in this case for Goldsender, I'm in a situation where I'm relying on health data. And so I cannot predict the future with any sort of reliability and complications are really, really made or the API is really centered around the idea of you being able to predict at least a little while into the future.
02:24:28 ◼ ► Like it does support say weather or something like that where you're a stock ticker, for example, where you, you cannot know what the future will bring, but it's very clear that Apple really wants you to try to predict in the future as far as possible because they, the watch legitimately is constrained and they constrain third parties on the watch extremely aggressively.
02:24:52 ◼ ► So I do to some degree understand where Apple's coming from, but I am again painting myself into like the corner of a corner of a corner of a corner because now I'm relying on watch connectivity for data that's in health kit that I can't predict into the future.
02:25:08 ◼ ► And I only have 10 days of it, you know, and the watch is just, it's a mess. So I need to wrap it up, but it's been, it's been very challenging and I would really, really love for this to get better in the future.
02:25:22 ◼ ► I think what you should do besides obviously take a break and, you know, re regroup and decide how and if you want to proceed with this one thing that might be a fun like palette cleanser here to kind of get you back into thinking you're a software developer again is if you have any other ideas for some really stupid, simple little throwaway thing.
02:25:45 ◼ ► That was goaltender for God's sakes, but yes, I hear you. I hear you. Work on something, work on some other app that is simpler. Like just any, any other idea you've been working on or thinking about anything like a single screen app, but just not one that involves these tar pits of despair, like the like watch.
02:26:06 ◼ ► Right. Like if you can avoid like just something that's like a simple, like fun Swift UI thing using your prescription Swift or combine or whatever with like a single iPhone view, that's going to be great.
02:26:17 ◼ ► Like it's a fun little like developer palette cleanser. Something like that can, can really kickstart motivation. Like whenever I'm in like a pit of despair with whatever I'm working on, having a little distraction that I work on for like two or three days usually really kicks me into high gear again.
02:26:34 ◼ ► And it's like a nice break and it, I find it helps a lot with motivation and self esteem and psyche and everything else. Yeah, I'll probably do exactly that.