MIX-8 === [00:00:00] James: Welcome back everyone to Merge Conflict Your Weekly developer podcast. Before we get into this week's podcast, we gotta thank our amazing sponsor who's been really with us since the beginning, bef the before Times of Vision Pro. Uh, it is our good friends over at Sync Fusion. Listen, are you building apps for literally like anything on the planet you need, like, I dunno, controls, charts, graphs, you need like PDF processing, Excel, word. Pretty much any control that you can think of. Sync Fusion has you covered whether you're building mobile apps, desktop apps, or web apps with pretty much any framework in the world. Sync Fusion has you covered. I use them personally in my applications and I simply love them. They have great dashboard, uh, dashboard reporting and all sorts of these widgets integrate. Instantly into your applications just really saves you a bunch of time. Head over to sync fusion.com/emerger conflict to learn more about all of their amazing widgets for just about anything that you can possibly build. Sync fusion.com/merge conflict, and thanks to Sync Fusion for sponsoring this week's pod. All right, Frank, let's get into it. We tease the teaser, but Frank, it sounds like you are finally about to drop 35 bajillion dollars on a Vision Pro because somebody is. Sweet, sweet, sweet Vision pro apps, and you got all the sweet, sweet betas. It's beta summer and it's sizzling. [00:01:14] Frank: Don't hold me to it. I have not committed to spending the big dollars. I did commit to downloading the big gigabytes though. I'm like, I, I can do that much. I, who doesn't have 20 gigabytes to spare on their hard drive for yet. Another copy of Xcode and all the little devices and I, I, I run this app called Grand Perspective if you're ever looking to free up hard drive space, which I had to do because I was installing an exco. Oh no. Um, I wrote an app called Grand Perspective and it's just, It's a really nice way to visualize, uh, how much space is take, how, how much [00:01:48] James: it, it shows the [00:01:49] Frank: geometry of how much space something's taken up and this new Xcode. Yes, I got the beta and it came with the Vision Pro, and we're gonna talk about it, but all I noticed in my grand perspective is two new giant blocks taken up space on my hard drive. Boy, that Vision Pro does not come for free. [00:02:06] James: Uh, I love hard drive visualization software. Before we get into Vision Pro. I think on Windows they use like winds stat or something like that. [00:02:13] Frank: Yeah. Wind dur, stat [00:02:15] James: Wind. Yeah. Something like that. Whatever. Yeah. And it, it's just like all these squares and things, it's like blobs and it's helps you find huge files. It is amazing, but it's just like, oh wow. Yeah. And you know, and I also say this, we had some people comment about different, Um, laptops and things that we were talking about recently, and you know, when you're going through and you're putting together your laptop and you're like, ah, yeah, like extra $200 for one terra button instead of five 12, or, you know, or for 2 56 versus five 12, you should probably always just get the bigger hard drive. Like, let's just be honest about it because the thing when I used to build desktop computers back in the day and still do as my main, main, main driver is, oh, I just need another hard drive for. Installing Exco I slap in a hard drive, right? But you can't do, you, you can put, plug it in, but it's not the same. Right? You, you need, you just get the bigger, hard drive. Just spend the money. All the ram, all the hard drive. [00:03:06] Frank: I have two external hard drives hooked up to this computer, and I, I make the mistake all the time. I, I always bump up the cpu, I bump up the ram and then I have no money left over for the hard drive. And you know, what you feel the most though in the, in the long run? It's that hard drive. Like you get a good and. Cpu, you're not gonna notice the difference between 3.6 and 3.8 gigahertz. The [00:03:30] James: thing and things just, especially as a developer, but even as a, a non-developer user, just things as you use them more, the space just seems to go away. I did a deep dive one, one time on my computer at work cause I was running outta space like, where is this? What happening? Yeah. And it was like, My Outlook archive, my word archives, my PowerPoints that are like, oh, this PowerPoint. My messages, [00:03:56] Frank: my messages, my messages is 10 gigabytes. It's [00:04:00] James: ridiculous, right? It's like, oh, my, I, what am I playing on paying for on iCloud? Oh, just my iMessages. Great. You know, and, and there's not really good purging things at the, at the end of the day either to really clean stuff up. [00:04:11] Frank: Since I just said bad things about Xcode, let me say a good thing about Xcode in the new, um, Mac os, if you go to settings, general Storage, it'll bring up a list. And in that list one of them's developer. If you click the I Icon in developer, it'll bring up all the little things that you can delete from Xcode pretty safely, delete from Xcode. You'll be amazed what you have there. Like, I've been using this machine for so many years that I just had like five years worth of iOS simulators, uh, that are like, yeah, I don't need to test on iOS 10 anymore so I, you can delete that simulator. So they actually make that pretty easy to delete that stuff. [00:04:55] James: Well, good. You've deleted it. You've installed the X Codes and the Vision Pros. Let's talk about development. Like what? Yeah, where are we at? Talk, let's talk about, let's get into it. I'm excited. I have no idea. I haven't installed it at all, so I'm ready. [00:05:08] Frank: New simulator baby, new SDK baby. Um, they, they actually do a piecemeal, now, I don't know when they started doing this with Xcode, maybe somewhere in the 14 line. But when you download Xcode, it's actually small now three something gigabytes, and then it'll ask you which SDKs you want and visions the sdk. Uh, the SDK internally looks like it used to be called xr. So you're gonna see a lot of xrs around in source code and things like when you're trudging around. But uh, yeah, so you'll bring up Xcode, you'll download another seven or eight gigabytes to get the vision os and you get a new simulator. I, I, I love simulators. They're very important. Um, I remember I did a lot of watch development in the early days on the simulator. I did a lot of iPad development on the, did I do simulator? I feel like I had like early apps for that one anyway. Yeah. And [00:06:04] James: it was like, yeah, the only way when a device ISN sent out is to simulate or emulate, right? Like, yeah, you gotta have 'em, you gotta collect them all. And this is actually a new install process. I'm excited cause I, I kind of wanna install it now, just experience it because the last time I think it, maybe I, maybe it was 14. I, I have to have 14 on it at least. But maybe cuz it's like, oh I already have those installed, I just reinstalled it. But yeah, I kind of like this new mechanism which seems more like Visual Studio like Hey, what workloads do you want? Which makes all the sense in the world like let me be selective of what I want. Yeah. I don't need, and I don't need Tvo os if I'm never developing a Tvo OS app. [00:06:43] Frank: Yeah. Compliments to them. It, it's broken very simply. It's iOS TV V os watch os and now Vision Os so beautiful. Just pick which ones of those you wanna do. Yeah, I didn't, I didn't pick watch this time and I felt guilty. It, it was a guilty little checkbox staring back at me there. I'm like, I really haven't worked on any watch apps. You can, anyway. [00:07:04] James: You can always go back. All right, so are there templates, like need some, are there templates in this thing? Like what does it look? Cuz you know, when you install stuff, usually there's always like a template, right? Like the MAUI one is like button clicker shows you some stuff. There used to be more in Xamarin, Forms like mm-hmm. In Xcode there's, there's like, for iOS, there's like always like the page and the tabs and a bunch of other stuff like, What are the, what are the vision pro like templates? Like is it just like, here's the spinning cube cause that's like, you know, the default, like here's the cube or is it just an empty space and the void? [00:07:37] Frank: The original one was spinning cube and then apple upped the game a little bit and they put a little jet aircraft in. That was the scene kit demo and the AR kit. One of a jet thing. That was awesome. Um. They, I've got, I gotta say I'm not, I'm not too impressed with the templates this time, but of course, yes, there are templates. Um, and the trickiest thing with Apple templates is they still do the wizard thing, where like you select a vision app, uh, and then they ask you a few questions with no help there, making you make some critical decisions without knowing what the heck any of these things mean. Like they ask you, uh, is, should you, uh, is your app in a window or a volume? I'm like, well, Define volume are, aren't we all in a volume? Is this a theoretical volume? And then, okay, so that's one decision, and then they're like, Immersive mode. Which immersive mode would you like? And you can have Oh, uh, mixed. Okay. Full. I forget what the other one is, but let's call it partial, because that sounds good. These are, you gotta make some, [00:08:43] James: yeah. These are like, and like, the, the interesting part I remember like in the beginning was like, do you wanna use core data or do you wanna use this other stuff? Like all these things like, and it architects your application and puts on all these things that are like, you're right. Or like fundamental to like, Okay. Yeah, I, I gotta just do file new, file new, like, now I gotta try all these mixtures cuz you're not explaining to me what any of this stuff [00:09:04] Frank: is. Right. So, uh, let me get these right, so you can have no immersive space. I'll, I'll talk about what that actually is. Uh, mixed, progressive, and full. The, those are your things. There's a lot and stuff. Wow, okay. Yeah. But that first one was really bothering me. Window or volume. So you know what I do with Apple because this isn't my first rodeo. I create the full permutation combination of all the options as a hundred projects, and then I just go look at what the difference is between all of them so I can see what the heck the stupid template is doing there. So I did that. I made, I made like 8, 8, 12, and I made a lot of projects and I ran every single one of them. And James there. There was no space spaceship to greet me. There are two balls, they just. Spheres, they just put two spheres on the screen and I'm like, not in a kettle. I'm not feeling immersed. That was the immersive space, but I, I wasn't feeling the immersion. But, but they do have, uh, W W D C. Demos, uh, samples that you can download from the developer pages that are a lot more informative than the template. So I did a mixture of playing around with the templates and um, playing with the demos from Dub dub. That makes [00:10:26] James: sense. You know. Yeah. And templates are always a struggle, right? Because, you know, there's a great debate seeing that I've worked very close with the MAUI team for a while and the Blazer team for a while. And just to hold on that team, I'm, I'm adjacent to, and I, I've written document, I've written multi-page documents on templates and so have other people. So I'm not the only one. Uh, but, uh, uh, templates are opinionated. They are controversial, uh, and. What one person wants is not at all what other people want at all, so you really can't get it right. However, there is something to be said to having. Samples, which are important, right? Which is like, and ideally I believe that Android studio does this. I think that they have the option to create a template or open a sample. Like when you're creating a new project, oh, do you just wanna open one of these samples and like here's a sample app. Yeah. That you can kind of go. I think that's what they do as someone correct me in some place where we can respond to something. Uh, and [00:11:30] Frank: I wish everyone did that. Yeah, exactly. If it's a sample, let me just name it my own thing so I don't have to use your silly name, because I am gonna copy large chunks of it because obviously I'm learning [00:11:40] James: here. So, yeah. And there, but there was no other like guided tour. Was there like a workshop or was there like, Hey, step one. Okay, step two, we're gonna add this thing. Was there any like training material? No, there wasn't. It's too new. There's this wild west, the [00:11:53] Frank: cliff man. The cliff, right. Okay. So like, Hooey, it is a cliff. Um, you have to familiar rise yourself with a lot of new technologies. If you're like me and have not been keeping up on reality kit because you're like, scene kit's fine. I don't have to use anything else. Well, you get to learn reality kit, which honestly isn't that bad, but it's different enough and they've actually changed things from iOS enough. You're like, oh, um, here's an API I have to learn. Can I make a really big complaint now though? Uh, sure. [00:12:29] James: You can do whatever you want. Your [00:12:30] Frank: POD APIs. James, let's say you have an API called AR kit. Uh, hypothetically yes. Let's say you're introducing a new hardware device into the world, hypothetically, and you wanna radically redesign this library. Yeah. What, what do you do? What, what, what, like, do you call it a, a new name? Maybe AR Kit plus AR Kit Pro ar Kit two. You, you do something like that, right? What would you [00:13:04] James: do? Well, it's tricky because you can't break people, you know? Mm-hmm. In general, you can't add a two to the end of every namespace. This is the, this is a conundrum and [00:13:17] Frank: it's right. It's completely breaking though. There not one thing is shared with the previous version. [00:13:24] James: I think you gotta give it a new name. Probably. Yeah. You gotta, it's like yet enough. I mean, ideally, ideally it could be the same. S D K A P I. But it's fully breaking. You could, you could introduce it, but then how do you pick, I mean, if it was a Noga package, now that would be ideal, right? Like I could pick one or two. Like, I mean, ideally in the world of do .NET, it would just be a newa package. Like, oh, do I want one or two? Right. That would be a different [00:13:53] Frank: version, right? [00:13:54] James: Or different. Yeah. Be version two. It'd be version two. Sure. Ah. Yeah, it could be sim siver, baby Siver. You can do whatever you want. Yeah. Uh, well, I don't know. Imagine a world, I mean, think of it like this, like Xamarin Forms, right? You know, gotta moved it down to MAUI. That's a whole different name, different namespace, different everything. Mm-hmm. Rights, all this stuff. And I'm not saying that, that, that, that, that you go from version four to five and things don't break. Yeah. But if you're saying every API is different, and even in that transition, not every single API is different. And they change everything. They changed the namespace, they changed the setup, they change everything. I don't, I guess, I guess it's a new name. Is it Reality Kit? Is that what they did? [00:14:31] Frank: No, no, they named it AR kit. Oh wow. Okay. Just AR kit. They kept the name, kept the name space, completely changed the api. I love it. So how can you tell the one from the other? You can't. Are they both in there? You go to the document. They're both on the system, but like you go to the Apple Docs. And you cannot tell old AR kit even existed. It has been erased from history. Mm wow. Which is depressing because, so that's weird. Just the whole, not calling it AR kit two, not giving it a new name. That's just weird what? What's up about, but here's my bigger complaint. There we, we AR kit was introduced without like a killer device to go with AR kit. We all thought, well if we write our apps for AR kit, then maybe in the future some kind of headset setter thing will come out and our apps will magically work with it because we took the time to make our apps work with AR kit. Yeah. But that's not what's gonna happen here. All the work anyone's ever put into writing an AR kit app, uh, throw it out the door. It's not at all compatible with the new system. Wow. Not in any way. Wow. I, I do have a hack in mind where I might be able to get it to be compatible, but it's a complete hack and Apple doesn't want you doing it, so it's very weird. Um, a, they made the decision to not support an API that. Seemed fine. And B um, they didn't even call it anything new or siver that thing. [00:16:14] James: Now is this the AR kit that is inside of Vision Pro? Which would mean like maybe the iOS AR kit is the old one [00:16:24] Frank: you wish. Oddly enough it there are many names now. There is AR kit for Vision os. That is a thing. Oh, okay. Yeah, that is definitely the new one. But there's also AR kit for iOS, which is also the new one. It has slightly breaking changes from the vision OS one. Got it. There's also AR kit for C. Which is a very simple C api. C AR kit has changed. AR kit used to be a view, uh, that would show the camera and you could put 3D objects into it, thus augmenting a realistic view of the world. That's what AR kit used to do. Now, AR kit looks for floors and walls and maps. That's about it. It doesn't do any of the rendering anymore. Hmm. And so they made those parts of the API available at a nice low level C, so like super easy to bind to from like C Sharp and all that. Super easy to call and all that. Which is fine. Yeah. But it's very strange, it's entire role. So not only is it a breaking change, the whole role of the framework has changed now in the future. The present. I don't know where we are in the summer to betas. [00:17:41] James: Well, and that's because what they said right, is you need to build Vision os apps. You're gonna need to know ar kit, reality kit and scene kit. Another kit, another [00:17:51] Frank: kit. Just well you need to know Swift ui cuz there's Swift UI stuff too. Well, well let's [00:17:56] James: go back. Okay, so let's go back to, to this cuz I feel like now what we're saying is we have. The windowed mode and the non windowed mode, is that me? Does that mean picking between Swift UI and not Swift ui, or am I always sort of in a blended mode between those two? Or what are those two modes? [00:18:13] Frank: Well, let's say in general an app has two modes. A windowed mode, which has itself two kind of styles or modes, and then the immersive mode where you're supposed to be able to put stuff all over, you know, basically randomly in the 3D space that the user is occupying. Uh, so that's the immersive experience. Basically, every app is gonna have those two modes. All the templates have it. All the samples have it. This is how you write a vision app. You have these two things making it. [00:18:45] James: Do you move between the two? They're both at the same time. Like they're either or. It is not a choice. They're on, they're [00:18:51] Frank: onscreen simultaneously. Oh, wow. Yeah. And um, so now going back to those options they made you choose right in the very beginning of creating an app, uh, you have your immersion options. So that mode where you can just put objects randomly in the 3D world, that's called the immersive space, the immersion mode. Um, in that mode you can choose whether you completely obscure ui, other apps that are running in the background window to apps running in the background. Only one immersive space can run at a time, which made me a little bit sad. Uh, apps can't mix. 3D objects, which makes me a little bit sad. Interesting. Um, Uh, I'll, I'll go back to window management in a bit, but just know you can actually have multiple windows up kind of in the world. Uh, but in the immersive experience you choose between the modes that will either always overlay those windows, uh, take the depth into account. I believe that's the mixed one. There is a progressive one that I have not been able to get work yet, but they say introduces portals. Portals. I like that. People [00:19:59] James: love portals. I like portals I'm [00:20:01] Frank: in, but I, I, the docs the game are very thin and I cannot get it to work. So I have no idea what they actually mean by that, but whatever. Um, what it's actually talking about is just, uh, how do the 3D objects you introduced into the users 3D world, how do those interact with the windows? Uh, that the things putting up there, because every app pops up in a little window. Like I was saying, and if you open multiple apps, you're gonna have multiple windows. And so we're gonna be living in a world with many floating windows around us. [00:20:33] James: Which way do they go? Which way do they go? Where's the apps? Where are they? Yeah. [00:20:38] Frank: Got it. Yeah. Uh, so it's not bad. It's funny. So the, the window mode, I have only done Swift ui. I haven't tried to get anything else working with it yet. Just lucky enough getting any of this stuff working right. Yeah. I should say the simulator's a little crashy, but, um, when it's working, it's all fine. It's actually a very, it's a very iOS looking user interface I find. Um. Buttons look like iOS buttons. Overall, it's just a gray, translucent world. It's very Windows vista, or at least what we were aiming for with Windows Vista. A lot of Arrow UI on that. Yeah, a lot of Arrow ui. I mean, it's, it's the, um, Oh, gosh. What, what do you call that? The, um, uh, vibrant views on iOS. Oh, yes. Yes. It's, it's the vibrancy pixel shader running, and it's the vibrancy pixel shader crashing all the time inside of the simulator. Well, [00:21:34] James: it's a lot of translucents, right? So it's translucents vibrancy overlapping over each other, which, you know, [00:21:40] Frank: math. Yeah. Yeah. Uh, so some fun things though. The windows are a hundred percent resizable, not a hundred percent, but you know, within limits. So they actually put a little ornament on the corner of it, and you can grab that ornament and resize the windows. They also have a little tab at the bottom, so you can, I thought the idea would be so that you could dock 'em to things in the real world. Yeah. But. I haven't fully gRED, you know, a lot of this is weird because I'm working in a simulator with a mouse and a keyboard and this, it's not a perfect reflection of how this is gonna feel with the real device. But man, I can knock at those windows to like docker lock to anything. I do not understand the point of the dual draggy thing. [00:22:26] James: Interesting. Okay. Yeah, yeah, I, I, I definitely know, I've definitely am visualized cause I've seen a photo or two of the. Simulator that's there now is the simulator. I guess it's just a space, but it's, it's just a, is it like a, does when you open the simulators like a fake bedroom or fake, like living room or something? Yeah, [00:22:49] Frank: I love it. Yeah, so it, it's tricky. What are you gonna do for the simulator? Because I, I've done Oculus things in the past and, um, I've done terrible ones that would actually show you the screens, and they're all distorted so that that's useless. And then you have the more decent ones like Unity that actually kind of put you into the game, and that's much better. And then it just feels like you're playing a first person shooter game. Yeah, but that's, that's correct. For vr. Yeah. But for augmented reality, it's a little bit weirder. Because you need an interaction between the environment and the virtual stuff that Yep. The apps running and all that kind of stuff. So Apple made the decision that although you have a first person point of view, um, the objects do lock into the world and they do snap to the world, even though I have trouble with it, they actually do, and all that that works. Uh, it, it's pretty. Good. Uh, the biggest problems are like they don't have good game controls. Like was, doesn't work. And there's a lot of modes you have to switch between to like rotate versus stray versus, you know, all these things. So like Apple play a video game and just use video game controls. Like these are solved problems, just video game controls. Anyway, uh, [00:24:08] James: yeah, that's funny because Yeah, cuz like how do you move around in this? And I'm imagining like, If it's a simulator, like there should be a mode where you can w a s D and just like move and stra around, right? Just like, here, I'm moving here, I'm moving here. Like, and turn your head and do this. So how do you operate in, how do you operate inside of the [00:24:25] Frank: simulator? Oh, it's horrendous. Um, I, I'm using a track pad, seems fast. Um, I've been using Pinch to zoom. Um, Moves you forwards and backwards. What? Um, up and drag up and not drag. Um, scroll up and down, scroll left and right. That straights you up and down left and right, which is annoying though because it, it defies gravity. It doesn't keep you locked to the floor like a video game would. And then you can switch between modes that let you choose what click and hold drag does. And you can choose between rotate. Fine. Why didn't you just make that like alter something, but fine. Yeah. And then stray and move forward and back, which I'm like, but you can already do those really easily. Why are those modes so it's just horrendous. And I should say, if you're in rotation mode, you can't click on things in the UI because. [00:25:24] James: You're moving. I know you can't. You can't, you can't interact with stuff while you move. It's impossible. [00:25:29] Frank: So, apple, please, here's my theory. My theory is Apple Engineers have had these devices for two years now, because you cannot build a reasonable app with a simulator. The simulator's a good shot. I get it. It's gonna be useful for getting the rough draft of your app in there. Yeah, you, it's, it's not good for anything else. Like I was trying to run some AR kit things. AR kit does, the floor detection, wall detection. I just wanted to run those basic things. Those do not work in the simulator. Oh. So there you go. Yeah, but I should get back. Sorry, go ahead. [00:26:03] James: Oh, I'm just saying like, you know, the problem with simulators is that there's simulators, right? And like there's gonna be like, there's so many things that you can't do on an iOS simulator that you have to do on a physical device. And not only things like you're talking about like with cameras and all this other stuff, but also some APIs. Like a lot of APIs just don't work on the simulator. So like I am curious, like inside of Vision os are there just like APIs that like just don't work, you know what I mean? [00:26:29] Frank: Yeah, I mean they flat like the APIs report. There's an is supported property on them, and it says false. So you're like, okay. Wow. Okay. Yeah, it's not like a bug that's turned off. Um, I, I do wanna get back to the little virtual environments because it's a interesting problem and it is a real difference between the Oculus because when you log into an Oculus, you are put into a virtual environment. Yeah, and that's what's being done in the simulator, but that's just a simulator. This is ar that virtual environment's gonna be real for the user. So it's a little bit funny that they actually had to build up these cute little virtual environments for the simulator, and they built a few of 'em, and I've been playing with 'em. They built like four, five. And so I've been going through all these environments, which to be clear, are just for the simulator. This isn't the Oculus. These environments will not. Should not be in the real device. There's no point for 'em. It's not augmented reality. So it's weird and they're cute. One's a museum. I hang out in the bedroom a lot. It's comfortable. But the museum's really nice. It's got some modern art in it. Modern arts half decent. That's cool. So I'm having fun with that. But also, um, the other thing I always do with a new simulator is you have to try every single app pre-installed on it and go through every single setting in the Settings app. So I've been having fun learning all the vision settings. I do have to say in the simulator, the default font is tiny. I know I'm getting old, but this is, this is not me being old. The default font is tiny. Uh, please go into settings, accessibility and crank up that font because it'll make your life so much better when you're [00:28:07] James: developing. Well, you need to have one of those crazy eight K monitors and put only the simulator on that eight K monitor and go from there. Uh, now, okay, so I love that there's these environments. Is there an airplane environment? Cuz that'd be hilarious. [00:28:22] Frank: No, I don't think so. But you're making me wonder because I, I got so locked into that museum. I actually, I did less exploring. One thing that did make me upset though, um, if you go to the settings, In general, there is another environment, and this is actually in Vision Os. This is properly a part of the device and yet none of those buttons. And they had great pictures. They had Mount Hood, a bunch of California things I've never heard of. That's cool. And a bunch of other mountains I've never heard of. But they had Mount Hood on there and you could click Mount Hood and absolutely nothing happens. [00:28:54] James: Oh, perfect. Nailed it. Yeah. Now can you install, can you just take like eye circuit and like install it? Does [00:29:00] Frank: that work? No, sadly not. Um, a um, ice circuit has that old AR kit dependence. I don't know what else to call old AR kit, but old AR kit. Yeah, no, I take that back. It does not. I mean, it does. [00:29:17] James: I don't even, well cuz if you remember does, if you remember right, when we, when you, when we in, when we got the. M one devices, there was a way for us to basically side load our apps onto that device to test them without making any changes. Right. So that was kinda my question is like, is there a way to side load an app that exists? Because they, they said all the iOS apps are just gonna run. So here, [00:29:45] Frank: over there. I bet you there is a way to do it, but James, I cannot figure it out because you would think it'd be pretty obvious too. So I thought, well, uh, maybe it'd make sense if, uh, a, a X app can't be sent over right away. You gotta play around with some tooling, get some things figured out. And I thought, okay, I'll just try it from the Xcode side. Yeah. I could not figure out how to deploy an iOS app. Two Vision os. Hmm. Which is very strange because even in the settings, uh, they have a little thing that says, uh, compatible with vision os via the iOS m it's the same little thing they say for like, not Maccas, or when you're running an iOS app on an M one processor. That thing, yep. Yeah. Um, so it's, it, it looks like it's there, it looks like it supports it. Uh, there are apps pre-installed on the device that are, that are obviously just the iOS counterparts. And so like I do have a feel for how an I iOS app feels on the device, but for some reason I cannot get anything to deploy to it. That's not an actual vision os and I haven't figured out how to build those outside of Swift ey yet. [00:31:01] James: Gotcha. Yeah, cause that's what I was curious about. I was like, oh yeah, can I just take one of my existing apps, shove it over there, give it a test? Oh, we could ship it on and do another thing. And yeah, I am curious like, do we need to re-release our app with a track box for it to show up like on, you know, we have a year or so or whatever, how long to go? So we got a lot of time to figure this out. But I was, I was hoping, because I do think that that's one nice perk about the M one s that we participated in. It was actually trying it out silo loading and getting things running. [00:31:29] Frank: So that was an experiment that I didn't quite finish for this show, and I did wanna finish it, but I had to download all of the betas and all the SDKs a second time to get them onto my M one processor laptop. Mm. And I was curious if they allowed the side loading on an M one because of who knows what. Apple's got the weirdest requirements these days. So I was wondering if it was a limitation of my intel Mac. So I didn't get to run that experiment. So it is still possible. Maybe you could get your iOS apps onto it via an M one, but I don't know. Yeah, and to be honest, I'm not, I'm not encouraged. I feel like, uh, at least this, this is beta two. Um, yeah. Maybe in the future though, allow it. [00:32:15] James: Nice. Well, what else you got? So we, you got some stuff up and running, there's spheres that are out there. You got some environments you're playing around with AR Kit slash reality Kit slash Swift ey. Like what? What is there to know? [00:32:28] Frank: Yeah. Um, the, the swift ey, there's not much to know other than it, it's the basic swift EYs. It literally, by the way, James, of all the controls they have, they have text box is one of the big ones that they have. They weren't nice. So my stupid example from last week rings true that there's like three controls in this thing, and text box is one of 'em. So I'm proud of myself. Nailed it for picking that. By the way, the keyboard looks a little bit ugly, but whatever. Aside from that, they introduced a new control that can just host a 3D object. It's nice. Um, I like that would've been nice when I was writing Ice Circuit 3D to have that control. Um, uh, the, the, the more interesting stuff is with Reality Kit. Um, so you really have to learn that if you've done any modern game development, it's very similar to that. They use an entity and component system versus. Object oriented polymorphism. It's like everything's an entity and then you just add different kinds of components to it to add state to it and add behaviors to it. Components to add state, uh, these things called, boy, I think they're just called services are the things that, uh, can actually run in your update loop and change the state of objects and do things like that. So you're supposed to write, write things that way. It's. Kind of standard for modern game development, how a modern game engine would work. I find it a little bit frustrating. I like to be a little bit lower level, but it works. Takes me forever to figure out how to do anything in it [00:34:02] James: though. Yeah, I was curious if it was gonna feel very game engine, and it's sounding like it is. [00:34:08] Frank: It is, but it's a very basic game engine. If I, it's, it's a bit basic to people. That's good. That's good. That's good. Start [00:34:16] James: basic, start basic. That's all I'm saying. You don't, you don't need to go to the extreme. Yeah. That's my opinion personally. If they want the apps, but they knew need an advanced mode because like, I am curious, like how did, like, you know, some of the stuff that they showed, how did you get to that advanced state without going beyond the, the sandbox that they were in? Yeah. [00:34:34] Frank: Well, one trick is to use a advanced game engine like Unity or Unreal or something like that. But now, now this is pretty cool and they've been working on this for a while. Um, they've been releasing an app with Xcode for a while now called Reality Composer, and this is every game Engine needs a level editor. This is the level editor for Reality Kit, and it's decent. It's not a 3D modeler. You can't use it for any kind of CAD stuff. But what it is, is a scene composer and a way to just organize assets for your app, and they make generating assets dynamically hard enough in your app and annoying enough in your app that you really do want to do everything in reality, composer. So a big, uh, big, big part of my learning has been just spending time in yet another CAT app to learn inside reality Composer, uh, learning how it works. It's an okay app. It's called Reality Composer Pro now. Ooh. [00:35:36] James: Pro version. It's pro. Yeah. Wow. That's pretty good. [00:35:40] Frank: It's not bad. Uh, I've, I've noticed funny little things like they have a whole modern shader editing pipeline in it, which is really cool. You create nodes and you connect 'em with cords and it's really nice UI and someone spent a lot of time really perfecting it. Yeah. And it updates the preview in real time. I mean, there's stuff game editors do, but it's just nice to have like a. Basically free app that does all this for you also. That's cool. And it saves all the files in U S D A, which is some Pixar or Disney file format that Apple has adopted. Nice, easy enough to read, easy enough to understand. So no problems there. I did have one hilarious problem though, so I'm going on and on about how I actually really love this pixel shader in it. Cause it's fun. It's fun. You drag things and then it turns red and does things. The moment I do even the most basic pixel shader for any of my objects, and put that over onto the simulator, the simulator. Crashes. The whole os crashes. The app doesn't crash, the whole os crashes. Wow. Every time I add even the most basic turn, the pixel red shader. Uh, so it's, it's annoying because it's definitely early betas, like the design tool is there. The design tool is better than the simulator, unfortunately. So, I don't know if I want to spend 3,500 hours, but I really want a piece of hardware just to see what all my designs actually look like on the real device. Yeah, [00:37:14] James: that's always the, that's the struggle, right? You're like, oh, I'm, I know. I'm only gonna be able to get so far and like is my vision, I. Gonna be able to be realized on the simulator or not, or do I need to actually get this hardware device? And that was a hard thing. That was a hard thing with watches. That was a hard thing with the, you know, different, you know, the new hardware that comes out is, is that, and this is, you know, it's transformative time to be thinking about it. Like, okay, is this a thing that I need to now invest a bunch of money in because it's the only way I'm actually gonna, so you gotta make that decision. And, you know, this is a business expense, but you know, you know, uh, it's still a big money's still not free business expense. Still not free. Yeah. And especially, it's not like they are, it doesn't sound like they're gonna have a developer program beyond coming into the store or wherever and testing it out. So, you know, they can't just like give you a discounted one and then you return it or whatever. So it doesn't sound like they're gonna do that like they did for the M one, which was pretty nice. Yeah. [00:38:09] Frank: Speaking of cheating. I don't know why I said that. That's not a segue. Um, you know, when it all comes down to it, the way you manipulate your UIs is you're building a, aside from the windowed world, there are these two universes, the windowed world and the reality kit world and the reality kit worlds, you're just composing together a scene. Scenes have entities, entities have meshes attached to 'em, some behaviors in the end, you can export that to. A U S D Z file. Hmm. You can take any old iOS device. Load up a U S D Z file. Uh, if you put the link in Safari, it'll even offer to put that into an AR view for you. Wow. So a really terrible way to debug an app or something I've just been playing with this idea is just export your whole scene graph to a file and open it on. An iPhone or something. And so I'm bringing this up because if it really does come down to that where they only let us look at these things in the store, I'm literally gonna do that. I'm just gonna export my app to a file, which is fun cuz it's. Graphics. It's, it's all built the way it, it can do that. Just export it all to a file. And when I'm at the store, I'm just gonna go to a website and open that file and see how my app looks in the real device. That's a [00:39:24] James: good, good hack. I like that. Well, anything else we need to know, Frank before we, we close it out or, or what do I need to do? Do I need to go install on everything? That's what I need to do. Is it go time or should, should I save the precious gigabytes or just waste them on another Xcode? [00:39:41] Frank: I'd say I, I haven't, I, I wish I could tell you like, go get this one demo because it would be super mind trippy and all that, but I've had such a hard time getting any of the demos to work it. Maybe wait for beta four. I think you will wanna try it out because the simulator will be good, but maybe beta four-ish, beta two is a little bit hot off the press. And now the next, the next topic for us to discuss for the rest of eternity is, What do people wanna do in a VR environment? What kind of apps should we even be writing for this thing? But, we'll, we'll table that [00:40:11] James: topic for later. Well, we will talk about that maybe next week. Cause I have several ideas, uh, in general on this, but I think it's a good point. Well, let us know if you've tried out the new X codes and the new vision os. Simulators and all that. Goodies. And what maybe are you building cuz what do people want build and what do they want to use? It's actually less of what do they want to build? What should we be building and more what do people want to use? Which is, which is fantastic, right? Look at your pm add-on. Um, but yeah, let us know. Uh, hit us up on Twitter at Merge conflict fm. You can also hit us up not on threads yet, but soon enough on threads. Um, you can find me on threads and on Twitter at james monte Magna or YouTube at James Monte Magna, or anywhere at James Monte Magna Frank. Krueger at Frank Kruger. Many places at Pro Clam and many places. The podcast at Merge Conflict fm on many places, including our exclusive Patreon, uh, membership that you can sign up for at patreon.com/merge conflict fm, and we put up bonus pods every single week. You can get going for as low as $2 a month that supports the pod, uh, and all the fees that, uh, are ensued. We use, we use zencaster, which is a great tool. We use Fireside, which is a great tool. We have to pay for very expensive FM domain name because I'm an idiot and decided to do that. Um, but yes, you can go over there, do that stuff. We talked about threads this week, so if you're interested in our thoughts on threads, then go ahead and check out the page. Let's gonna do it for this week's podcast. So, until, Next week. I'm James Montemagno. [00:41:35] Frank: And I'm Frank Krueger. Thanks for watching and listening. Peace.