Podchaser Logo
Home
408: Fine Tuning Minimal App Requirements

408: Fine Tuning Minimal App Requirements

Released Monday, 29th April 2024
Good episode? Give it some love!
408: Fine Tuning Minimal App Requirements

408: Fine Tuning Minimal App Requirements

408: Fine Tuning Minimal App Requirements

408: Fine Tuning Minimal App Requirements

Monday, 29th April 2024
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:00

merge-conflict-postproduction-for-recording-10-run-at-2024-04-29-034612-utc-mp3- === [00:00:00] James: Frank, Frank, Frank, welcome back to Merge Conflict. I just got back from a big trip, two weeks, many talks, eight countries, uh, 12 days, and some of those were just being on a plane for a long time. Back and forth. Um, I did learn that I should take less flights and try to not worry about getting points. So if I look tired, it's because I didn't get a lot of sleep last night and I was on planes for a long time. I went to Zurich. To Philly, Philly to Phoenix, Phoenix to Oregon. It's very long. It was too many hours on a plane, Frank. It's too many hours. By the time we landed back, it was midnight, which meant that it was 9 AM. We took off from our first flight at 11 AM the day before. [00:00:43] Frank: Well, I absolutely love jet legged James episodes. These are my favorite. Um, I assume we're just going to talk about airline snacks for the rest of the episode today. We usually focus in on some kind of travel topic when you do these crazy trips of yours. You were telling me about it. You went all over the place. Sounded amazing, but maybe a little bit rushed. If I had one critique of the trip, you went to amazing places, but I believe you spent about one hour in each one. That sounded like quite a trip. [00:01:17] James: Yeah. Some of them be a very minimal. Uh, you know, we took like a bus for a few hours to Lichtenstein. Then we took a bus, a few hours to Slovakia, uh, which is cool. We were in Prague for like 18 hours. It was like half work, mostly work, and then some vacation thrown in there as well. So I went for work and then needed to fill time in between and then tacked out in a few days as well. So it was all good, but it's not what we're talking about, Frank. No, we're not talking about that, uh, in general. No, we're talking about the lack. Of flexibility that we have over specifying devices, specifically on iOS, when it comes to releasing an app. Now we'll say this on Android, at least to my knowledge, it's still pretty verbose. You can select architectures, obviously you can go in and actually select specific devices that you want to support. So you could say only support pixel devices. Uh, there may be too many devices for you to actually figure out what the heck you're trying to do on Android. When it comes to iOS. We've always had a, uh, lack of control, if you will. We've been able to specify, is it on an iPhone? Is it on an iPad? Um, and that's pretty much it, I would say. There have been some flexibility as far as like, Requirements of hardware. But then I would also say not a hundred percent either. And that info P list, I would say that info P list is like flexible and yet not flexible enough at all. And it seems to be biting you, uh, in the behind as you try to release this, uh, new app of yours. [00:02:52] Frank: Oh, this is, yeah, this has been my nightmare because I don't know how to release the app. Like, solving this problem is going to get all the way into how I monetize this app because it's such an open ended question. Um, you know, I've been dealing with this for a while. I remember back in the day, remember we switched from 32 bit to 64 bit? Remember that? Yeah, That was fun. Yeah. We could specify, we're 64 bit only and for a while there that was great. Because I was like, ah, only running on the fastest phones, what was that like an iPhone 5, or 5S or something that finally had that. And that was the trick that you would put in your app. So that you're only running on modern hardware. Because, um, to Apple's credit, and I mean, I feel like lately they're slipping a little bit here. But, um, uh, modern versions of the OS would run on very old pieces of hardware. Uh, sometimes poorly, oftentimes poorly. Um, so when you get that old hardware, you're always a little bit nervous about upgrading. You're like, oh, please don't break anything. Um, so the problem is we could never really use the OS version as a signal of, um, look, I wrote an app that runs 32 ray tracers and multiple threads and also communicates with the White House data center. I don't know. I'm making that stuff up. Um, You just sometimes want to specify the old PC requirements. Remember as a kid, like, shopping for computer games, and the first thing I would, I would look at the box art, because the box art was beautiful, and the next thing I would, I would turn the box over on its side and look at the PC requirements to see if my terrible computer back home could run a PC game. I feel like I need that for iOS. [00:04:44] James: Yeah. You know, I think what's fascinating is that there's a lot of developer hacks, like you're saying. So one of the most common ones that we do use is just specifying what operating system, right? How far back do we want to go? However, that being said, that actually doesn't work super well on iOS today because that would actually go all the way back to the iPad. Sixth generation, which I think is an A 10 chip set if I'm reading this Correct. Right. Uh, which I believe if I go and pull up I sixth generation. When did it come out? Uh. If I can interrupt you while you're [00:05:35] Frank: searching, I think to kind of cut to the chase here, one thing I would love to be able to specify in the FOP list is I only run on M series processors because the world's a complicated place these days and you'd be surprised everyone. We are still doing low level programming in this year of 2020 24 and gosh, sometimes you just want to say, I need an M series something, but what did you discover? [00:06:03] James: Ah, so, okay. So it's. Uh, it just had its birthday a month ago, uh, and it was, uh, March 27th, 2018, so six years old. Um, [00:06:14] Frank: I mean, it's newer than my iMac. My iMac's pretty old. Yeah. It's gotten very old. It didn't start old. It just, it just got there. Right. So, um, it's tricky. Um, it, it would also get down to like GPU things, you know, like the, the chips will go through these phases and you could, um, there are options in the info P list. They're just not quite as granular as you want. Like you would like to say, I need an A15 plus, and that's just what I need to be able to run my software. Jokingly, um, for example, um, one of the big flags that you can put in there, and these days it almost means nothing, but it used to mean something, um, I'm writing a new feature for iCircuit to run, to do all its drawing, Using Metal. Metal, man. Um, so like no core graphics, no core animation. We don't need any of that stuff. We're just straight to the metal. Straight [00:07:26] James: to the metal. That's in the name on the metal. [00:07:30] Frank: So, Okay, so now I take a requirement on Metal. What does that even mean? When was Metal introduced? How long has Metal been out? So, um, going back a few years, in the Info. plist, you could say a hardware requirement of Metal. So that would be another quick way, um, to make sure that you're using modern hardware. And things like that. Um, again, because they don't give us a granular way to say what we actually need. Uh, just saying that your app requires metal was a way to cut out. What did it cut out? I think it cut out like iPhone 5, 6. Was 7? I think it brought you up to like an iPhone 8 or something like that. Uh, yeah. And it's hard too, cause [00:08:19] James: I don't even know if you're allowed to specify like, Oh, use Metal 2 or Metal 3, right? It's just Metal in general. [00:08:25] Frank: No granularity. Yeah. [00:08:28] James: So that, that seems to be like the main problem, like, because when I think about game development or app development or mostly game development on Windows, you know, there's so many settings that developers can put in place, uh, when they're actually. Not only just creating their application, but submitting their application to the stores and doing different processing. Um, you know, the thing I used to do when I used to go to the game store and pick up a box, I look at the minimum requirements, right? And oh, how much RAM do you need? What graphics card do you need? And there's an endless, endless, like endless matrix of things going on. Love it. But even when you, even when you, uh, open up. Just some software like OBS, you open up games, you know, things are different, optimized in different ways, but they often run through a like auto configurer, right? Which is like, Hey, I'm going to optimize myself for your network, for your computer. Right. And sometimes for your network as well, based on your outputs. So it does all these different tasks, uh, looking at what graphics card you have, what CPU you have, how much Ram you have, all this information that's going on, on your computer, and then can optimize itself, uh, accordingly. Okay. And some games and some things would even have like a tester. So you can say, I want to download a test. Like, is my computer good enough? Right. Even my computer, uh, or older computers is like good enough to run windows 11. Right. Does have all these things that have the requirements, right. To upgrade to the most recent version of what this is out there. Right. Uh, because just having windows 11 is a good enough. I can go to. I can go to Best Buy and I can buy a Windows 11 laptop for 200 with four gigs of RAM and a Celeron processor. It doesn't mean anything, just the operating system. So iOS 17 doesn't mean anything because my little iPhone SE or 10 S Xs. The Xs, you know, from years upon years ago, six years ago, there's 6-year-old devices, which is amazing for consumers by the way that they support Old Os is. But for app developers, it doesn't mean anything right? Anymore. You'd be better off on Android that only supports the latest Android for a few years. Surprisingly enough, you could cut it off, then you'd be really cut it, cutting edge. But I regardless, right? That granularity say you need this much ram, you need this much, or even to. To actually, there's not even really good APIs either to say, okay, Hey, well, how much Ram do I have? What process do I have? It, you can't, you can kind of determine that somehow in some APIs, but it's not, it's not like an official API, right? It's not like I'm like, Oh, am I running this processor or newer? Like what if a newer process come? Like, how do I add it into the list? Like there's all these. iPhone model lists, like there's just not, it's not, it's not great. Right. And there's so many variations nowadays. It's not there. And then additionally, I was like, okay, well, what if you want your application to work on iPad pros, right? Not iPad. You know, because more M1s, M2s, all these other things. And again, like you said, Has a vast array of RAMP and GPU and all these different in intricacies and all these things out there. So having that lack of granularity, you know, can cause a problem in 2024, right? I think eight years ago, six years ago, it wasn't as big of, big of a thing, right? It's like more like I wanted to be on iPad or not on I, right? And that was really easy to do. Or like you said, do I want it to be on modern devices? So it's, you know, arm 64 instead of arm 32. Easy enough. But nowadays we're, we're actually building super complex. Games and applications and neural networks and running LLMs on the device. You know, how do you optimize that? Right. So we were talking about your, your video app, right? I think that's what you're talking about for this as well as like, no, do something different. Well, even for that app, right. Where you want to run different models, like you'd almost have to put different modes. But how would you even put in a recommended mode? Right. That would be greenfield and you wouldn't have to update every single year when new devices come out or multiple times a year, right. Who knows? So it's fascinating. [00:12:21] Frank: Yeah, it's funny, talking about the video app, I was complaining to you, um, it's like, it's the classic trade off, I can have fast in real time, but a little inaccurate, and a little bit wobbly, or I could have very beautiful and accurate, At three frames per second. And it's a little bit annoying to put that kind of toggle switch in there. But, um, in the case of the vision, it's kind of a unique thing where there's only one piece of hardware. So I know exactly what I'm supporting. So when I say it's going to run well, it's going to run well. Cause everyone's got the same device. Everything's fine. [00:12:58] James: Well, it's, that's why video game consoles themselves, right? That, that, that is what they solve. Like, so that's what Xbox, PlayStation, Switch, they all solve. Nowadays, there's like two versions. You know, X and S, but in general, like that almost handles itself. But you know, in general, there's one or two devices to develop for as much easier to do than supporting every single Windows machine out there. And obviously Windows and Mac OS are doing a lot of things under the hood and like the APIs. But. Even still having the support matrix is very complicated for us to do it. And in fact, it's impossible in general for us to do, unless there's one device or two devices, like there's no way that Frank Kruger, you [00:13:43] Frank: could [00:13:43] James: possibly know how iCircuit runs. On every device that your consumers are running. It's, it's a literally impossible, right. Uh, to do. I mean, there are test services out there. Xamarin test cloud. Yeah, you get, you know, there's, there's these out there, but it's not quite the same, right. You're not really running it exactly the same in the same ways, or even the variations of how your users are increasing their font sizes, right. And doing all these different things that you'd have to take into consideration across all these different screens. So man, it's complicated. That's what I'm saying. [00:14:16] Frank: Yeah. And well, and you mentioned the giant pink elephant in the room, the operating system. Um, it is a wonderful hardware abstraction. We as software developers shouldn't care at all about hardware. We just code the perfect algorithm and just runs perfectly. But no, we, we. We have to care about hardware. It's too much. Um, games are kind of funny where you were mentioning the auto configuration screen. It's, uh, the operating system. Abstractions, like virtual memory. You don't have enough ram. Okay, we'll go out to swap. Um, you don't have enough. Uh, it, it's requesting 12 threads. You have two CPUs. Well, we'll multitask on that, on those two CPUs. You know, the operating system will abstract all that away, uh, up to your swap file size, I guess at some point. To the point where it can actually be a detriment. I want to tell a bit of a horror story here, but I do want to say it's kind of nice. Honestly, games have become commoditized because games used to be horrendous to configure and to get run on PC hardware. But yeah, I don't know, ever since, I guess the late nineties, early two thousands, Windows got good enough ever since Windows 2000 and Windows XP, Windows got good enough where most games just, they would run slowly. If you had bad hardware, but they would run after running low resolution or something like that. Can I set the context for my horror story? [00:15:40] James: I'm ready. I'll have a good Frank, Frank Krueger horror story. Oh, [00:15:43] Frank: actually I'll, I'll have to mention, you can actually query a few weird things about the RAM state in iOS. You can ask how much GPU memory is free. Oh, interesting. Weird. But it's a unified memory architecture on iOS. So you're actually getting the system memory. Oh, weird. Okay, so that's on iOS, right? That's hilarious. On Mac You can't do that. You can't query that information. No, that's not available. That'd be impossible to provide. But what you can query is the system's memory available. So it's just hilarious, like even Apple's inconsistent with like what you can query at runtime, like, uh, for all this kind of stuff. Yeah. [00:16:29] James: Yeah. [00:16:30] Frank: Uh, RAM. It's all about RAM. I remember looking at that Dark Forces box. It required 8 megabytes of RAM. I don't know how it was. Ooh, [00:16:38] James: that's too much. Turn back. Turn back now. I [00:16:40] Frank: had 4. I had 4 megabytes. How was I ever going to run Dark Forces? Okay. Uh, it's all about RAM again. It turns out iPhones are amazing. Like, they're super fast and the screens are super high res and everything. Turns out. Apple has been cheaping out on RAM for a long time. Oh no. And none of us ever noticed because you can only run one app at a time. And like, even as a developer, I was like, there's enough, you know, for my app. Yeah. There's enough. If you run out of RAM in your app, it's, we made a mistake. Like you really shouldn't be running out of RAM. in your app, especially because like the early iPhone models did not have virtual memory. So you would run out of RAM, you get that memory warning in your view controller, none of us actually handle. Um, and then they, they shut you down and that used to happen all the time. So we, we, we got good about handling our RAM and all that stuff. So I want to contrast the commoditization of games, where we all basically know how to write a render and put it on a screen, with the new wild, wild world of neural networks. Because it is a wild, wild world, and neural networks want two things out of a computer. All the computing horsepower it has, all of it. 99. 99 percent of it. It wants all of that. And it also wants all of its RAM. We got to come for your RAM because it turns out that processor is really useless without accessing data information. And it's got to be in the RAM. [00:18:18] James: Ah, so you're saying that the eight gigabyte, gigabytes of RAM that's on the iPhone 15 pro devices. Okay. You got me. That's not good enough. Perhaps. [00:18:30] Frank: It is. It is, in fact. But what I want to say is that the four gigabytes that is on basically every iPhone, I would say, well, we have an amazing audience. You're all wonderful people. I'm sure you have very advanced iPhones. Um, but I would say the majority of the iPhones out there in the world have four gigabytes of RAM. [00:18:54] James: Yeah. [00:18:55] Frank: And it stinks. Um, so you're thinking to yourself, ah, so you try to allocate that image and you get an out of memory exception or something like that. Well, this is where the abstractions provided from the operating system can actually cause. Trouble. Uh, I can allocate four gigabytes of RAM and it's going to True. Yeah. It's a 64 bit operating system. No big deal. It's just a number, man. We got virtual memory. They're always banking on you not using that memory because it can swap it in and out of actual RAM and things like that. Um, and, and don't we live in a world, James, where our apps are sandboxed? Like there's an operating system watching over them. [00:19:40] James: Yeah. At all times, at all times, make sure you do nothing wrong. Yeah. Kick you out. Done. [00:19:46] Frank: Yeah. [00:19:46] James: Close the app out. Done. [00:19:48] Frank: Yeah. We don't like ugly icon app closed. What if I told you that if you do like really high performance metal GPU programming on the iPhone and you're just allocating memory and you just tell it, Hey, here's a whole bucket of work. Go do this. Even though you don't have the memory for it, but go do it anyway. It's going to be like, I'm sure going to try shit. I'm sure going to try, sir. And it sure does try. And it destroys the phone. It turns into like a burning brick in your hand. Oh [00:20:20] James: no. [00:20:21] Frank: You like, you always wonder where is the microprocessor on this iPhone? This is a quick way to find out where the microprocessor is on your iPhone. Uh, it does that and the entire operating system comes to a halt. Springboard. So you can't even exit the app, touch interface, everything. You, you, you can't like shut down the phone because like the software to present the shutdown screen can't present itself because it is just so. You are using 100 percent of the hardware, the GPU and the RAM, and it all comes down to the RAM because the operating system is providing this virtual memory mechanism to make your call succeed. It doesn't have the resources to do it, and so it just gets into this terrible, terrible state. And that, James, is why I'm definitely afraid to release this app to people, because if you have the right hardware, it runs great. If you have the wrong hardware, it's literally going to burn through all your battery in your pocket. It's, [00:21:20] James: it's I, I mean, and most people have probably had this happen to them at some point on their iPhone in some application or so some OS thing is rare, but it does happen. I've had it happen on, uh, at least I would say at least once a year, but I would say at least once every other year where my iPhone goes into the state that it's like. I have no, I just, I can't do anything like, yeah, I can't get out of the lock screen because it can't present the lock screen. I can't, cause the touchscreen is not working. There is an emergency shut down type of system that you can do if you know the right button keystrokes to do, but if you don't else, it goes into like. Trying to like call someone, but it's like doing stuff. You can't see what it's doing. It's very complicated. I definitely have had that happen. Um, I'm pretty rare, but it does happen. And I don't know who the culprit is behind it, uh, often, but obviously if someone's using your app, that's a problem, right? And if they're going to know, and they're going to repeat it over and over again, which then becomes a scary part is our goal as app developers is to create a great experience for our end users. Because we're terrified that they'll give us a one star review and then take our application, right? Um, now that's not the same. Now, this is not, this is not a situation. I will, I will say this though, like MKBHD just did a, did a, did a video and many people did on like the, the humane the thing, you know, reviews and they, everyone had a lot of issues with the device. [00:22:47] Frank: Okay. [00:22:48] James: And a lot of people were trying to blame Marques that. Because of his review video, it's going to, you know, kill the company or whatever. Oh, doubt one doubtful because like when a lot of reviews came out, like, you know, what kills company bad products, bad products get bad reviews, right? Now, you know, usually it's usually what happens. I'm not, and I don't know, I haven't tried the pan. I don't know anything about the pan, but he did a great video, like breaking this all down. And I highly recommend if you've got like six million views. But that being said, the, the problem here is that your app could be amazing, but because you can't restrict. The hardware, right? You don't have the control. Then you run into this problem, right? So there's, there's this lack of control that actually could greatly hinder the end user's experience. That technically isn't maybe your fault. But it is your fault, but it's not your fault because you don't have that control. And that ends up becoming the problem, right? We as, I think, developers, at least like on Windows, you know, we've had a little bit more control. Even in the Windows, there's a lot of control over saying what architectures, what RAM, all different things. There's a little bit more control than there is inside that little info. plist that's out there. So then that puts you in this predicament. Uh, for Frank Krueger, which is do you just wait to release this app for another five years until iOS 19 doesn't support older devices, you know, that, that don't have M chips, like what will, you know, something else come out to solve it. XYZ. Uh, because again, we want to create great experiences for our users. So they give us great feedback and don't try to tank the app. Because again, that would be bad if a bunch of people buy your application and there's not a way you can't be like in the app description, only buy this. If you have a M processor, because here's the thing, most people have no idea what processor is in their phone, right? You can say, I guess, don't buy this. If you have an iPhone. You know, only supports iPhone 13. There's no way to lock it down. Right. And most likely Apple wouldn't even allow you to put something like that into the description to begin with, which is wild to think about. [00:24:53] Frank: Yeah. It's like, oddly enough, it's the pro models work. Like I don't, I don't even need the eight gig. I need six. It's the four that's not enough. I need six. So it's like the 13 pro, 14 pro, 12 pro, 13 pro, 14 pro. Like the pros have had it for a while. I think the 14. The pros get a lot of RAM for whatever. [00:25:11] James: I think the, I think the 14 got six and then the, and the pros as well on the 14. I had to go back on it. And then recently. It's hard. [00:25:21] Frank: And then the iPads can be a little bit bigger. Yeah, it's, it's frustrating. Um, right. So basically what this means is it dictates my, um, uh, my sales model. Like I cannot charge up front for this app because someone spends 10 for this app and all it does is destroy their battery and crashes their iPhone, you know. I don't even care about the one star. I just, I'm, I'm, I'm, I'm shamed at that point as an engineer. I have shame. I can't release an app like that. And so go ahead. [00:26:02] James: I guess, could you do a thing where like you support both modes, like old classic mode? That's not, well, I guess you can't like, yeah, we're not talking about eyes or we're talking about this LLM type of thing. Like you can't, you'd have to be like. You'd have to somehow detect what devices they're on. Like what you have to, since you know, the devices it doesn't support, right. You can say, Oh, is it in this list of older devices? Cause you don't want to, you can't just be like, Oh, it's here's the supported models. Cause there'll be newer supported models. You don't know the version number or the version ID of them. But you could say this, you could check for unsupported devices. Apple would probably reject your app for whatever this would be doing, but this would be the thing to do. You could have a problem. It's like, Oh, I've detected you're on an older device. We highly recommend that you upgrade to a new device before using this app or something like that. I don't know. I don't know. It'd be really uncomfortable. [00:26:57] Frank: Well, this is a little, uh, ancillary to the conversation, but it's an especially tricky situation for this one app because I was saying six gigabytes of RAM is fine. It's not. It's fine if you know the trick and the trick is unload every app in the background, lock your phone, bring it back up, Double check every app is closed, lock the phone again, bring it back up, open the app, because by then hopefully Apple has cleared out all its memory caches and virtual memory caches, and then you can execute the app. So yeah, on the HEB phone, uh, devices, it works much better. And there are dumber models. Um, I can download a smaller model that can fit into smaller amounts of RAM. The problem going with that is, Back to the earlier conversation, detection. Um, Apple won't tell you how much RAM the device has. It'll tell you how much free space the GPU has at a snapshot in time. So it's almost like in a background process, you have to keep querying, how much RAM do I have? How much RAM do I have? And looking for the spike and saying, Oh, okay, now's a good time. I can start allocating. The memory I need, and all that kind of stuff. That is not the kind of software I want to write. That is not reliable, robust software. That, that's terrible. Uh, so the good news is, um, as Joel Spolsky would say, hardware will catch up, you know, in, in, in two to four years. This won't be a problem as everyone upgrades their phones and everything. Um, we want to release the app today. And so my best guess is. I released the app as freemium because I can't charge up front for it, because who knows? And then I do my very best at detection in the beginning, even though it's going to be terrible and it's going to be random. And I'm just going to say, thanks for downloading the app. Please close it. Um, nothing to see here. [00:28:54] James: Nothing to see here. Please come back when you have a new, new phone. Yeah. And see if Apple allows that. That's [00:29:00] Frank: rude too. I don't, you don't even want to say that. Yeah. It's like, Hey. Thanks for the support, but, uh, this isn't going to work between us. [00:29:09] James: Uh, yeah, I'll be fascinated. I think that that's the best approach and I'll be fascinated. I think so. I mean, at least present them with something. It's like, Oh, like this application only works on these devices are newer. Blah, blah, blah. You know, you could say, Proceed at your own risk and continue. Uh, people love [00:29:30] Frank: that. People will, people will be like, yeah, got an iPhone. Let's go, let's do this. [00:29:35] James: Yeah. You know, I think, yeah, I totally agree. People love to buy the lowest, cheapest end device and then try to run everything on it, like even those little gaming handhelds that we talked about a ways back or like, uh, netbooks, or is that what they used to be called? A little tiny, like little [00:29:53] Frank: netbooks. [00:29:54] James: Netbooks, right? Killed them. [00:29:55] Frank: Yeah. [00:29:55] James: Yep. I have them, you know, people want to like run everything on them and, and like try to juice them and, and hack them and overclock them and do this stuff. Like, here's the thing. It just, it just doesn't have it. It's just, it's just not in there. You know what I mean? You can't do it. So don't try to do it. You know, like if you're going to buy a Surface Go, which is a very tiny machine, or you're going to buy a 200 laptop, set your expectations. You know what I mean? Like you have to do it. And it's bad because. Um, you know, when devices are supported for 6, 7, 8 years or however long it is, like, you know, you expect whatever's running when you got it to, to run later. And, and I mean, that's not the case. Like even me on my iOS 17 on my iPhone 11 that I [00:30:38] Frank: have. [00:30:39] James: Like it, it definitely, I can tell that it's not the same as when I had it two years ago. And Heather first, you know, gave it down to me and I'm sure when iOS 18 comes out, I think it might be the last version it gets. Maybe we'll see, maybe I'll get one more. Uh, but I don't know. That might be it actually for it. Yeah. But it's like, I'm already, I'm feeling it pretty heavy. You know what I mean? And, but. You know, I was just, I was just on this trip, you know, I see people with, with, uh, they got iPhone eights and sevens. I see the, I see the thumbprint on there. You know what I mean? I don't know how they're running stuff. It's magical. [00:31:17] Frank: I like that, uh, broken screens were like in vogue there for a little bit of time. So like everyone just had old iPhones with broken screens, just a little reminiscing about youth, you know, just capturing the good old days and all that stuff. Yeah. Know everyone. You need the newest, fastest piece of hardware because a revolution is happening and we're trying to put that revolution in your pocket. Your little pocket computer needs to be a super computer from the 1990s. [00:31:47] James: Yeah. But I think if you're just honest with people up front. Let me know how it goes, Frank. I'll be interested to see one, if Apple allows it and then. [00:31:58] Frank: Gonna, uh, now that you said that the tester, it's all going to come down to the tester who knows what device they're using. Yeah. That's it. Like what kind of devices are AppReview using these days? Yeah. Oh boy. Hope no nasty. What if they get the dialogue? Please go away. [00:32:18] James: Yeah. You'll find out. Yeah, we'll see. All right. Well, I think it's going to do it, Frank. Um, I just thought we were talking about this before the pod. We're talking about a lot of stuff. And then I was like, I don't know. I feel like we could talk about this for half an hour because as the app store opens up more as developers, I would like to get more control over what we're doing and just small things like APIs, little check boxes, just saying, [00:32:44] Frank: you know, it's all we need. Chalk this one up to, we complain about the app store yet again, because It is the store. As we were saying, the old game boxes told you the requirements right on it. I wish as a developer we could just put those requirements. Right up front, [00:33:02] James: bring an Apple. I'm ready. More checkboxes. All right. That's going to do for this week's emerge conflicts. You can find us everywhere on the internet and all the places. Just head to emerge. com dot FM. You can also find us on snarky comments and I will snarkily reply back to you. Um, if you're there, so check us out on snark snarkily. So, so, so, so snarky at James. Um, yeah, that's youtube. com forward slash at merge conflict. If I'm, you can see our beautiful faces and how tired I am. And, um, Until next week when I think maybe there's new iPhone hardware, apple hardware, new hardware down two weeks. Apple event is it May iPads, [00:33:46] Frank: then [00:33:46] James: it would be iPads or watches. May 7th. Two weeks. Oh, two weeks from now. Okay, guess we'll find out. Guess we'll find out. I think it's the iPad Pro with the M four chip. That's what the rumor is. Everyone go [00:34:00] Frank: buy that and then go buy my hat afterwards. [00:34:03] James: Do we even hat. [00:34:04] Frank: Is [00:34:05] James: that, is that, [00:34:06] Frank: they're only on the M3, right? Yeah. I think people are just guessing. [00:34:10] James: They're going to launch an M4 chip. In the iPad? That would be [00:34:14] Frank: ridiculous. Though the M1 iPad is amazing. Everyone, I think they've gotten pretty cheap. That's the iPad to get these days. [00:34:24] James: Boom. Yeah, it's a good, uh, I don't know, my MacBook Air is still pretty good. It's every time I get an M1, good chip, good chip, good chip. All right. See everyone till next week. I'm James Montemagno. And I'm Frank Krueger. Thanks for watching and listening. Peace.

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features