merge conflict 359 === [00:00:00] James: Frank, let's talk about something old that's new again cuz I'm excited about it. Which is Amazon. What? [00:00:09] Frank: You can't be excited about Amazon. That's like being excited about a piece of grass though. I guess maybe that's, that might be worth it. Okay, before I diverge, why are you excited about Amazon? [00:00:20] James: The Amazon app store? [00:00:24] Frank: Oh, the thing I keep saying I should get my apps on and make sure my apps are on, but my apps aren't on. Yes. That store. [00:00:36] James: Oh. That story? Yes. Okay. So when we think about Android development, it's very unique. When you think about iOS development or Windows development or Mac development, the part there is like you ship it to an app store, but for. Android apps. There's a plethora of different app stores that you could ship your app to. The main one is Google Play, which we've talked about and where all of my apps and your apps exist today. However, there are these Amazon devices, I don't know if you've heard of them, Frank Krueger called, yeah, fire Devices and they're tablets and bajillions of people own these tablets and do you know what else Frank? Also, bajillions of people own. He's looking at me for people not watching, uh, windows devices. [00:01:28] Frank: Oh, okay. Well, yeah, that's, that's probably more than a bajillion, but yeah. Okay. Did you know [00:01:35] James: that if, if you have your app, your Android app on the Amazon app store, it can be on all those fire devices and also could be on all those Windows 11 devices? Cuz you can install Android apps. Through the Amazon App Store, which is on Windows 11, which is something that I just did, Frank. [00:01:58] Frank: Okay, so that's why it's new to you, James. That's why we're talking about, cuz I swear we talked about this a year or two ago. Time has no meaning anymore. We never talk about anything and sadly I kind of forgot, but I was thinking I should look into this. I'm. Very curious what the experience is like because an Android app is very different from a Windows app and as native UI app developers, I'm really curious in how, how it, how, how, how they feel, how, how the app feels under Windows and all that kind of stuff. But maybe first I, we need to backtrack a little bit. You said there was a plethora of stores. What, what, what other stores are there? Because I'm, I'm a big dummy. Um, I know about the Google Play store. I did know about the Amazon store. Can you just name one or two others, just so I don't feel like a big dummy anymore? [00:02:50] James: There's a Huawei store for Huawei devices. Okay. And then there's probably [00:02:59] Frank: other one. Is there a Samsung store? There's always a Samsung store. I think there [00:03:02] James: might be a Samsung store as well. Yeah, there. There you go. So does Samsung. Okay. Does Google have a product? Because Samsung probably has something very similar to it. [00:03:11] Frank: Okay. Anyway, uh, just, I was just curious. Um, what, what other stores, what other markets, what was I losing out on? Okay. So yeah, totally losing out on Amazon because I never wanted to read the docs to see how to submit to them. I believe I signed up for a developer account and everything, though. I, maybe I even got into the console. So let's start there. What was, uh, what's the developer console like? [00:03:35] James: The developer console is pretty, it reminds me of Google Play. From five or six, seven years ago, like very simple, uh, which is, that's a good thing. It should be [00:03:46] Frank: simple. AMA Am. Amazon product pages aren't known for being great, so I think simple's good in this case. [00:03:55] James: It's very simple on the, you create a new app and when you go into an app, it has, here's the current version, add a new version, um, live app testing. So manage test users in app purchases. App services. So app services would be, uh, real-time notifications, maps, single sign-on device messaging along with Amazon and promotions. And that's it. [00:04:22] Frank: Nope. I mean, it's, it's more than I was expecting, but I guess, I guess, uh, and app purchases are table stakes. They, they've been running this store for a while, so they must have had all that integrated. I remember the old problems with like being off of the play store were like Google Maps. Do they have, uh, so you said Amazon has their own mapping service. That's roughly it. That, that's blowing my mind. Itself. I didn't know Amazon. I, I wonder where they're getting their data [00:04:48] James: from. Well, let's specifically talk about that because you, you could just take your Amazon or your Android app and shove it into a release, however, There are things just aren't gonna work. It might work, right? If you did file Hello New World and submitted that app. Yeah. Or let's say you did a to-do app, right? Mm-hmm. Or let's say you did, uh, my Animal Crossing app, which just talked to web APIs in the backend, right? Yeah. It's just an Android app. It doesn't use any services. It doesn't have any sign on. It doesn't have any push notifications. It doesn't have, uh, in-app purchases. In-app purchase. It's just, just here. It's an app. It's a paid, it's a paid app. Frank loves paid apps. Imagine you have an app that's paid like an app, like Eye Circuit should be, and it it's, and it's not doing anything besides being a wonderful app that you pay money for and you get a thing. You could take that app today as long as it doesn't use any Google services at all, and you shove it into the Amazon app store and boom, it just works and it'll get approved. You resubmit it and you're good to go. [00:05:58] Frank: Okay, well, we, we gotta talk about the submitting process, but I mean, that sounds fine. I, I was hoping for that and that, that's why I generally had the policy, especially around eyes circuit of no dependencies. So the, that, that's the way I live. So I'm, I'm pretty sure my app would go over pretty well. Pretty too well, uh, I do worry about some things though, like, uh, the skinning of the apps and everything, but I guess the skinning of androids are wild and various throughout the world, and I don't test on a million devices anyway, so it's. They'll probably be okay on the Android devices also, and by the way, I never did comment back on this because when you moved along, I love me fire devices. I'm a big fire device fan. Uh, I have a couple over here and I used to give them as gifts all the time until I realized a lot of kids already had fire devices. So then I wasn't able to give fire devices as gifts anymore. So now I gotta find a new. Product. [00:06:56] James: Uh, and I'll say this, like taking that, let's say you just have an A P K or an Android, um, app bundle, an aab, both of those formats are supported, which is great, and um, you don't need to sign it or do anything. They'll resig everything. They manage it just like Google does, which is a big improvement done. [00:07:15] Frank: So you, you upload it unsigned. They don't even check your developer's signature. [00:07:20] James: They're gonna, it says here that they're just gonna re-sign. It doesn't [00:07:23] Frank: matter. Okay. Uh, you know, it's less secure, but it's easier. So great [00:07:31] James: you, they got it. Doesn't even matter. So that's pretty nice. Um, now you drop it in and then you can, you can decide what devices you wanna support. So to read the manifest and it'll say, Hey. You know, do you want to, we see that it can support phones and tablets, this version of Android. So my app that I submitted is my skiing app. It supports 20 Android tablets and phones. It says Okay, 11 that are unsupported probably cuz they're older versions of Android that I don't support. It does not support fire TV or automotive because I don't have that in the manifest. [00:08:06] Frank: Let's get technical for a minute. Um, how, how do you declare your minimum version? You're declaring a minimum Android version, I assume not, uh, fire version or [00:08:14] James: anything like that. That is correct in the Android manifest, which actually it shows you in the portal, which is a nice feature. Uh, it'll show you what permissions you need and then additionally it will show you, uh, in the Android manifest, there is a minimum SDK version. It says Fire TV devices are based on Android level 22, uh, five Os six is based on level 25. And then, Some other mink. So, so mine is 21, which is almost all of 'em. Oh, so these are like real old fire devices [00:08:47] Frank: that must be real old fire devices. Yeah. Okay. Yeah, I, I was curious, which, um, because I was saying about bumping mine up too, so 20 21, 2 [00:08:57] James: 21, Point two. Point two. Yeah. Uh, and then there's this thing which is non-Amazon Android devices, which is fascinating. It says 100 plus supported, 112 unsupported because the Amazon app store, like I think it ships on devices that don't have Google Play type of thing. They're not Amazon devices, but they might be like little set top boxes or like little tablets or whatever. [00:09:25] Frank: Are they including any of the Echo Family of Dingus devices, are they listed under any of these? Like I'm thinking the one with the screen. Would that support any apps or is that [00:09:36] James: still app free? Um, let me look. Well, so this is kind of cool cause I can click on it. No, this is all Fire HD devices. This says all the way back to 2014, my thing support. So we're talking nine years. Um, it says non-Amazon devices. There's some devices from asus, from Blackberry. It says Google. Okay. I mean, I don't really know. I guess it says there's one on here. So maybe these are ones that they've tested the Amazon app store on or like it works on and you can control if you're like, no, I only want this app on. Yeah, on these devices you, you can toggle what devices it's available on, which is like really granular, but then there's a checkbox, it's a magical checkbox, which is Windows devices, and you just flip it on. [00:10:24] Frank: Uh, cut. Okay. So when, when you were talking about the other devices, I was, this, I was about to interject and say, well, that is business synergy. That is good capitalism, the way they're like getting their products into other people's products, so their products could be in other people's products. And then you ended it with, and then there's a checkbox for the ultimate in corporate synergy. You just. Click the checkbox. Is it instantaneous? I love instantaneous check boxes. Or do you have to hit apply? It would be less famous. [00:10:52] James: It's a, it's a UI toggle. So it's a toggle, right? It's an instantaneous toggle. What's my favorite? I [00:10:58] Frank: love it. Okay. Does I, can I have the store open side by side and toggle and see it removed and added to the store? That okay. I dunno. I didn't, I didn't. Just that [00:11:06] James: I love [00:11:07] Frank: single clicky wise, I love them. Um, remember when Mac Catalyst first came out in Xcode? Apple was pretty proud of and for, to their credit, should be a single checkbox. You check the box and you got a Mac Catalyst app. I love single checkbox ui. Um, you know, that's funny because. Kka is a win 32 app and uploading that thing to the store is, it's a little bit of a pain in the butt. It's a little bit of work because it's a win 32 app, and the store wasn't really designed for win 32 apps in the beginning. It's totally possible you get the right search and you do the right thing and it, it uploads. And so I, I'm just a little bit jealous that you click the check mark and now you're on Windows, but Okay. Please continue. [00:11:52] James: Well, and some people may be wondering, well, James. You are Azamara and Maui developer. You've built Windows applications and ship Windows stores to the apps, to the Windows Microsoft App Store, like my stream timer. Why wouldn't you just do that for the other ones? And the good question is this is I just didn't design my my skiing app or my cadence application for Windows devices or tablets. I just didn't do it. I didn't add it on. Because I kind of made it a mobile first, you know, design and that's where I tested it. And, um, I could go do that and do, could go through that process, but maybe I just want my app to be on there and like not have to do anything else. Like, so I just did it mostly as an experiment and. Um, no. I went through it and it was cool. Stop [00:12:44] Frank: backpedaling. This is, this is the real world. If you can put yourself on a marketplace that you're not otherwise at, I mean, if they're yelling at you being, I'm like, why don't you have a Windows version? Just say, because my time is limited and resources are limited. Yeah. If you can check a checkbox and be on another market. I'm saying this to myself, everyone, but I'm gonna say it to you. Go click the checkbox. Cause a free market is a free market. Be be in that market. Um, I, I don't like this idea that, and okay, it's my fault too because earlier in the episode I was, and I do wanna get back to the look and feel of these apps as a native developer. I, I like the feel of native apps and I, I want to get to that, but, Um, I would rather the app exist in the market first and then you can refine them Oh, and feel afterwards. Well, [00:13:34] James: it's get it the same thing, right? Which is like, why are iOS applications available on Mac? Or if you do a Mac Catalyst checkbox, they're available even easier as, because I'd rather be in another market if my app works and is there, right? Like in fact, I'm in two markets, cuz now I'm on fire devices and I'm on Windows devices. Like I'm on with one dry drag and drop. I'm on two markets. It's kind of cool. [00:13:58] Frank: Okay. I got, I gotta get to work. Okay. Yep. Thanks. Now you're [00:14:02] James: convinced for me the rest, I, I have never submitted an app faster to an app store in my entire life because Frank, all I did was drag and drop it in it processes. Mm-hmm. There's availability and pricing. So this is just a free app. I don't have anything. It's just free. That checkbox description. Wait, [00:14:19] Frank: James, it it, it didn't complain that you don't have an iPhone 5S screenshot. [00:14:24] James: No. Oh, okay. We'll get [00:14:27] Frank: there. Hold. Okay. Okay. But that's gonna be different from your iPhone seven screenshot. [00:14:30] James: Oh, exact. Okay, so we'll get there. So description, easy peasy, copy paste. There is images in multimedia. Okay, [00:14:40] Frank: we'll we'll get there. And Frank, [00:14:44] James: I was like, oh, I'm clever. I will just take my, my images from the Google Play Store and I will put them into the Amazon App store. Because they're Android apps. [00:14:58] Frank: I, yes. And this is also going back to what I said, like when, when I think of the Fire ui, it's, and no shame. It's a very simple ui. I like it cause it's clear, like, yeah, uh, that might also be my fault. I keep buying the kids additions of these things, but I, I like 'em. It's, you know, a solid gray rectangle with a solid blue rectangle at the bottom. You know, what's a button? You know, what's a text box? I like the nice, simple ui. Um. That's kind of what I always imagine you as an Android looking like, and so I'd assume that you could reuse your screenshots. I, I like you, I'm clever slash lazy, and would try to reuse the screenshots. How'd that go? [00:15:40] James: And, uh, you would be mistaken because they have very, very specific taby. Dimensions that they really want because all of their devices are tablets. So they're all 1280 by 800, 19, 20 by 10 80. 10 80 by, or 1280 by seven 20, right? So they're all these dimensions. So what I did, Wait, wait, [00:15:59] Frank: can I interrupt because this is, this is a new trick I've learned everyone, and, and I want to see if you applied the same tricks. I'm, I'm gonna say it first. Um, so back in the day when, when you were on the Apple App Store there, there was a guideline that said your screenshots have to be actual screenshots from the app. Like, yeah, the top left pixels, the top left pixel on the phone. The bottom right pixel is the bottom right pixel. Somewhere in the last 12 to 20 years that I've been doing this, that guideline got relaxed to the point where absolutely no one does screenshots anymore. Yeah. What you do is a cute little color gradient background, and then you squeeze your other screenshots into, fit into that color background and put some clever little AI generated text on there. Yeah. That's what you should do. So what I'm hoping you did is that exact problem if you just reframed all of these, the cute little AI generated text background. [00:16:49] James: Now I actually have those cute. One's already for my cadence. So when I go through that, that's May, what I may do, be what I do for those. However, Frank, what I did is I ran my app on Windows 11. I went into fancy zones and I made a 1280 by seven 20 zone, snapped my app to that size and then took a screenshot at 1280 by seven 20 on three different screens. And I uploaded those photos. [00:17:14] Frank: Wait, I'm confused. Um, So, okay. We, we skipped over a huge part of the development cycle and went straight to distribution. You were able to test these apps on Windows, like you could run them in the way they're gonna run when someone purchases your app. [00:17:31] James: I went into Visual Studio. I typed, I installed the Windows subsystem for Android Barista. Mm-hmm. Which automatically connects and boots up the W S A I hit debug and it just mm-hmm. Worked on my machine. [00:17:46] Frank: Okay. Absolutely fantastic because that is a large, okay. There's just what? A house of cards anyway. Wonderful. So what, what, what's wrong with your, your, your screenshots? Like were, were they accurate to the pixel? Because I've tried to do that before and I get into the game where you're like trying to crop. Like, did you manually crop? Because like I would try to move the cursor to the upper left and you're off by a pixel, but I, I use a touch pad, so it's really hard. And then you move it one more pixel and then you drag, but then, oh no, the lower right corner is not in the view. And does this app support? So anyway, James, uh, Was that really easier than just going out and purchasing 10 fire devices [00:18:30] James: that that was, that's definitely, it was way easier. Took like five seconds. So that's what I did. I just uploaded some images, uploaded my app icons, Frank, and that was mostly it, to be honest. There's content rating. And then I hit submit and then I submitted it to the app store. Now you're really app store. I love it. We skipped cuz you were so interested in it because we skipped over all the hard parts. This was the easiest, fastest part of the entire process. And once I had that apk, I was like, this is great. Right. Let me just honestly, bingo bango done. Totally good to go. Simplified. I loved it. Not a problem. That's how it should be. [00:19:05] Frank: Do you remember, I mean, the app store was always notorious for its long review cycles, but it was a simpler days. We didn't do the test flights. You, you, you got it working on your phone. There was only one kind of iPhone out there. So you knew it worked on everyone else's phone and you uploaded it and it worked on everyone else's phone. Yeah. Cause there was like an iPhone out there. But I, I like that, that, that sounds very pleasant. Good for you. Yeah, it was [00:19:30] James: great. What were the bad parts? Okay, so now my cadence will be a little bit trickier, but the, the skiing app that I have is still a little bit tricky. Now, I got lucky Frank because for my maps in the skiing app, as we talked about, mm-hmm. I am using Maps Sui, which is not Google Maps. [00:19:52] Frank: Right. Nice forethought. Look at you not taking a dependency on one of the America's largest companies. [00:20:00] James: Yes. So I have not using Google Maps, which means I don't have to worry about that little kink in the system because like I mentioned earlier, there are services that don't exist. So realtime notifications, single sign on maps, security profile thingy, device messaging log with Amazon, those are services you need to do Additionally, [00:20:22] Frank: Sorry, did you have to upgrade that library at all or did the one that you have already just [00:20:27] James: work smoothly? Just worked like, but nice. Good. Yeah, just worked. And now the reason I am using that is because it's like a topological map and I'm doing drawing on it and I don't not, I don't really need Google maps. I want all my maps to look the same. And it's more about the route on the map than anything else. But it is nice cuz I can pick profiles and do stuff. And, um, that was nice because, um, This app was a ZA Forms app originally, and uh, the, the support was not added in ZA forms, but it's there now in Donna Maui to do all the, the geometry and drawing on a app. Right? So it's like, well Masui supports Donna Maui as well, so it's like, oh cool, just bingo bango, good to go right now. The biggest thing though is, uh, in-app purchases and you know, if there's one thing I love Frank, is I love a good in-app purchase. [00:21:23] Frank: Well, okay. I like in-app purchase. What I don't like about in-app purchase is testing. Yeah. So I wanna, I wanna know how the, the testing process goes with this, because, yeah, for me, I write in-app purchase code once every two years and always manage to completely forget it by the next time I have to write it again. Um, That's writing it, I mean, testing. So how was testing in-app purchase? [00:21:54] James: Well, so the fascinating part is this, Frank, is that I have an in-app billing library now. I think someone else also has one that also supports Amazon in-app billing. Ah, I don't support it myself, but there's interfaces that you could do it. Now, this application had subscriptions. It had single purchases for donations. There wasn't like a promo, it's a skiing app. It's more of a donation based app. When I get to my cadence, I'm putting in the store, it actually is an app that I have a pro mode in general. So we'll figure out what I need to do there. But Frank, what I decided to do is a little. Conditional compilation, a little, a little, uh, condition and a little defined stance called Amazon release. And if Amazon release just conditionally compile out all of that in-app billing code. Just get outta here. Bye bye. Gone. I don't even need you. So, okay. So I cheated Frank because this app, I just stripped out all the NF billing and I decided for this release. I'm just gonna get it onto the app so it's free. Okay. It's free, it's out there into the ether. Frank, uh, in general, I'll tell you what I'm gonna do for my cadence and we'll see what if you approve or not, but this was cool. I went into Visual Studio. Open the CS prod, copied the release, put a new, you know, constant release Amazon. So I could do pound if release Amazon, anywhere that I use my in-app billing code. I stripped it out. Additionally, one thing that I'm really proud of, Frank Ruger, I'm not gonna lie about it, is I used conditional compilation in the CS prod. Uh, for multiple things, literally [00:23:38] Frank: get nasty. I'm so, don't, don't do too much of this. People don't do, I'm, you can't avoid it with.net seven and eight cuz we, we, we try to merge everything together mm-hmm. Into all those. James, can I tell you, uh, you were just sparking memories. I was going through my own code and I was just removing if silver light all throughout my code. Mm-hmm. Because you know what? That was like 10 years ago. I don't need those. If deaths anymore, I can remove those now from my code. It's, it's never silver light anymore. But at the same time I was thinking about that and I was like, you know, this is all sounding very silver lighty. This is like how I felt when I was taking my apps and trying to make a silver light version of it. It was a very. Basic platform in the beginning. And the, what I'm actually thinking about are, um, for the Windows phone, it was roughly the same app. Those were basically silver light apps. Yeah. They were just running on the phone. So that's why I built apps for that. And so this is funny. This is really bringing back memories of those days. You getting yourself onto the Amazon family of devices and, and Windows. Yeah. And Windows compared. Okay. It's there. I just realized that I compared Windows too, [00:24:50] James: but, okay, we'll talk about Zoom UI one week, and now we're talking about the next. So I just said, Hey, remove these new get packages if you know this item group, if you're, if it's, yeah, if it's not released. So both my in-app billing plugin and my store review plugin, because that is googley stuff in there. Um, [00:25:06] Frank: so I, I love CS Pro hacking, but everyone, it, it's great. You, you can pull off Absolute Miracles with a CS prod file. But the i d E is just gonna get angrier and Ang angry at you. From then on, you'll pass a threshold at some point and Visual Studios just gonna be like your CS Pro makes absolutely no sense to me at all, and I'm giving up on you. So you haven't hit that limit. I'm just telling you people, there is that limit out there. [00:25:32] James: Don't hit it. I also did one this, I'm really proud of this one. As I said, if it's the Amazon release, I have all of these. I have this page in every app that I copy and paste, and it's called Purchases page and a purchase view model. And its entire purpose is like I click 50 times and I go into the screen and I can like see all the history and do stuff. So I did, if the item group is Amazon or is release Amazon, compile, remove. And then I did a bunch of wild cards that say remove the purchases view model. And then I did compile or remove the purchase page. Oh, and don't forget that zl, that's AML page. Yeah. So embedded resource remove purchase page.star or whatever. So I like str. I like, I literally conditionally compile out pages fully of the app because you know, there's. XML includes and I'm like, get outta here. Yeah. Pages that I don't need anymore. And then honestly, besides that, Frank, it was a few things. So it was removing code to, um, conditionally compiling out the code that did the NF purchases, did the checking, all this other stuff. Same thing with the review. And I submitted my app. But I also forgot to remove the ui, so, so they actually tested it, they tested the app. Mm-hmm. And they're like, Hey, there's a bunch of buttons that say purchase subscriptions. They don't do anything. So I, I then gave all of my elements names and I hid them If, If it's the Amazon release, I said hide these UI elements in general. [00:27:00] Frank: Yeah. Did you have like a, a global variable that they call it all just bind to very easily? Like I, I would just put that in the app resources, what platform you're on and then everyone could just bind to that, but, uh mm-hmm. I'm curious, which UI did that surprise you or you just forgot about that? Like, was that UI you didn't [00:27:20] James: remember? I just forgot, I forgot that the settings page, I forgot that the settings page just was like, I, I was, I was like, oh yeah, I have a, I've removed the code to do stuff. Yeah, sure. But I forgot, I forgot to remove, it's the ui [00:27:34] Frank: ui. It doesn't care about your code. It's gonna render the UI, whether it has code [00:27:38] James: or not. Uh, and then I also had to remove some of the pages, like review this app or leave feedback that went into the Google Play stuff. So I removed some UI elements to it. So I think the setting screen's a little. All over the place at this point. I didn't really look too hard, but, uh, beyond that, they accepted it. And it's in the app store. It's live right now. Can you believe it? [00:28:01] Frank: Bravo. Bravo. Um, I'm a little bit jealous because I wanted to do a few small app releases this year and I can't believe you beat me to another platform. So, and congratulations, [00:28:11] James: James. And I'm gonna do. I'm gonna do my cadence and I'm gonna put my cadence in there. I'm gonna start with my Cadence Pro, and it's gonna be a, you're gonna love this. You're gonna love it, Frank. It's gonna be a paid app. I'm gonna, I'm gonna zero down. I'm just kidding. I'm gonna remove all of the, all of the in-app purchases and it's gonna be a paid app. Cause I just don't want to imp re-implement it cuz I, I don't, I don't know. That's [00:28:42] Frank: interesting because I would, I would have to have that debate, um, going onto that store because yeah, the, the world is definitely moving onto subscriptions. We've talked about a million times on the show, but at the same time it's Amazon. Aren't you just used to purchasing things on Amazon, like that model Sure. Is still the Amazon model, so [00:29:02] James: I don't have anything I'm gonna do. Interesting. I'm, I'm gonna go real old school. I'm gonna start with the pro version, Frank, and then I'm gonna release a free version. And the free version will have a button that says Upgrade to Pro, and then it will open the app store. So you buy the pro version. [00:29:21] Frank: That's classic. Wow. Are they gonna allow it, baby? Yeah, they're gonna allow it, it's gonna be fine. They don't care. I like it. You know, that's, you know, it's almost better than freemium. I, well, you end up with two apps. The big problem is if you had, uh, data in the apps, you'd have to find a way to share the data. But like, even on Apple, you could do it all in an app group if you designed it in advance [00:29:46] James: and thought about it. And I have. Export, import so they could just export the data and import the data. [00:29:53] Frank: Uh, I was a little bit worried about your Bluetooth for that one, but then I was thinking about it. No, it's, it's, that's an Android library, right? That has nothing to do with, um, the store or the UI [00:30:03] James: or anything. So, and, and here's the cool part, and I haven't tested the Bluetooth yet, but I have to imagine it's gonna work because. I've tested a lot of APIs on Android apps, running on windows, like opening the maps, the connectivity. Yeah. Geolocation. These all work seamless. So it's like the, the, the window subsystem for Android. It happens. It, it'll work. So it should work. I'm excited. [00:30:30] Frank: I, I don't even want to think about how the hardware abstraction layer for that thing works. That, that just boggles my mind. But we'll assume it just works. I mean, somehow, like, I don't know. I, I've, I've used virtual machines for years, like, and those, I've always been able to talk USB or whatever and tap into the operating system, so it makes sense. Still, it's surprising. Uh, that's gonna be super cool, uh, because honestly there just aren't that many Bluetooth Windows apps because many Windows devices have the Bluetooth. Um, is it more common now, do you think? Like I, I, I guess all the laptops probably have Bluetooth. Do the PCs have Bluetooth? My [00:31:09] James: computer has it right here. [00:31:11] Frank: Pc. [00:31:12] James: Yeah, pc. It's built into like the wifi chips all now. It's all, it's all integrated. That's nice. On the mobile. Good. It's all there. Okay. [00:31:20] Frank: Yeah. Neat, neat. So the app has a chance, so, uh, we, we skipped over one other thing. Uh, it's just been at the back of my head. Do your, how do your apps show up in the Windows store? Because we, I, I made us jump straight to the developer console on the Amazon side. I'm curious how that translates on over to. What it looks like [00:31:43] James: on Windows? That's a good question. I don't know. So, so, um, that's a good question and I'm glad that you asked. Now, I believe I don't, oh, I'm gonna test it right now. So, my app is available on live and it should be there. This is live, everyone. [00:32:05] Frank: I'm very excited. Are you, uh, purchasing your own [00:32:08] James: app or not? This one's free. I just typed in the ski app that I have for Meisner. Well, cool. Okay, so it sh this is, this is. Cool. It just shows up and it says get it from the Amazon app store. So there must be some synergy between it. So when you enable it, you basically sign into your Amazon account and then it installs from the Amazon app store. So if you go to [00:32:33] Frank: purchase it, so thing I was wondering, I was curious if they were gonna like embed a WebView or something into the uh, window store, but no, they just tell you is there at least a button that'll kick you out to it? Yeah. [00:32:44] James: There's a button and it launches the Amazon app store and then opens your app and then you install it cuz the Android apps are installed there, but at least there's synergy between them. So it seems like mm-hmm. The compatible apps from the Amazon app store are at least indexed into the Microsoft store, which is nice. So. Great. [00:33:01] Frank: I was table stakes a little bit, but, um, I, I was, uh, that's good to hear. I Cuz otherwise, I mean, that's the whole point is to. Be in that marketplace, right? I mean, could talk about users and you wanna make the world happy, but marketplace, you wanna make sure that, uh, your beautiful ad copy, you're not AI written ad copy is available on the window store. Did all your screenshots [00:33:25] James: show up? They did. They did. Neat. They did. Now here's the, here's the [00:33:30] Frank: full circle. They started on Windows and got all the way back to Windows, all the way [00:33:34] James: back. Now you did ask something interesting, which was, Hey, you know, Amazon devices, they have a different UI look and feel, and same with Windows. There's a whole, you know, am, you know, windows apps look all different. Like how does your app look? It looks like an Android app, because it is an Android app. Is there a back button and [00:33:51] Frank: a home button? None of those, right? [00:33:53] James: There is, there's a back button on the top left. Does [00:33:56] Frank: it start out in portrait or landscape? [00:34:00] James: It starts out as a like square, square ish, like a window. Guess [00:34:08] Frank: that's a compromise. They couldn't decide portrait or landscape, so they went square. [00:34:12] James: Square. But if you are using, was that a [00:34:15] Frank: small screen? No, [00:34:16] James: uh, no. Just a wide, ultra wide. Okay. Yeah, just screen, just window. Just testing, [00:34:22] Frank: just checking [00:34:23] James: on you. And if you have multi window support as well, which you know, Things support like Maui and stuff, it'll support multi window stuff. I think because like, you know, when you run Android apps on a Chromebook, that's how they sort of start, they sort of start in a tablet esque view in a way. And in fact, the Amazon app store tells you to, and the Windows documentation also, it's like, Hey, you should optimize for tablet because just like a, like Apple does, right? They're like, Hey, you can run your iPhone app, but really you should probably optimize it for the tablet. Oh yeah, [00:34:56] Frank: huge. Especially on the Apple side, like going from iPhone to iPad these days is crazy. Like there, there's so much extra stuff you have to do an iPad and the architecture of your app can be wrong. So you just start. Start tablet focused. And that's good. Uh, I mean, in the Mac Catalyst world, I mean, this is basically the Mac catalyst windows now. Yep. So it's, we, we did, we, they promised this for, uh, windows phone apps. Remember? They had like a, a unity mode or something. Oh, it was gonna be wonderful, but we never got it. So I guess we're just gonna be happy. We have to be happy with Androids on Windows. Um, The good news is since you are conditionally compiling, you could refine the ui. I hate that there's a back button though. That would be a nice way to [00:35:46] James: figure out if you could get rid of that. Just Android has it. Now. I will tell you this really quick. Um, I wanna mention, you asked about the Echo Show devices and technically the Echo Show devices run Fire tv. So if I made my app TV compatible, they would be on the Echo Show. [00:36:08] Frank: So why wasn't it TV compatible or is it just a different sdk? [00:36:13] James: I think in the manifest you need to define something. [00:36:17] Frank: Okay. Might your feeling, there's a lot of TV devices out there, [00:36:21] James: it should all work. But I do feel like I'm doing a TV app, like I need, I should use TV look and feel and controls and testing [00:36:30] Frank: for your skiing app. I think that would look great on a tv. Yeah. Maybe No. You don't have enough pictures? I don't know. You need more [00:36:38] James: pictures? I'd have to test it and I guess I'd have to buy a, an Echo or a fire tv. [00:36:47] Frank: Chromecast fire. I'm, I'm all over the place. Fire tv. [00:36:53] James: Yeah, fire tv. Stick thing. There you go. Anyways, I think it's pretty cool. I will report back on my cadence. Yeah, progress and how that goes. But uh, I think it's just gonna work and it's not [00:37:08] Frank: bad. Yeah. Yeah. And thank you for this episode, because I'm kicking myself and I'm gonna be right behind you, buddy. I'm gonna be on that store too. It'll be very awkward for me though. I'm a little curious because there is a Windows version of like, I started and Kka. What would happen? Would there be two on the store? And then people would have to be like, Ooh, which one do I get? Don't like that. So I have to take that [00:37:34] James: through. In your, in your case, in that, in your case, you might submit it to the Amazon app store and then you might just leave the windows unchecked. [00:37:43] Frank: Yep, you're right. Okay. Good enough. But I just, um, [00:37:49] James: yeah, if they buy it, if they buy it, then they get it in two places. Then [00:37:55] Frank: they have two versions on that app that are slightly different. It's gonna be hilarious, [00:37:59] James: but they could buy it on the fire tablet and then they would also get the Windows version paid for. Cause it's tied to their Amazon account. Because it's the same app, right? It's it's the same app on Windows. And in this, so if you bought it on one, you get it on both. But not if [00:38:14] Frank: they're separate entries in two different [00:38:16] James: stores. Exactly. No, I'm saying if they bought the Android version of it. Yeah. [00:38:21] Frank: Uh, this question's gonna be a little more vague, so I apologize, but, uh, Android subsystem for Windows, what kinda hardware does that run on? Does that run on most things? I mean, as long as you can run Windows 11, it runs on all that hardware, or are there other devices? It doesn't. [00:38:39] James: Yes, it is on Android 11, or sorry, it's on Windows 11. It's running Android version 13 is what it's based on of. There's a bunch of release notes and specifically it is available on all Windows 11 devices. Okay. But only in select country. But it is a growing list. Oh. Of countries. [00:39:04] Frank: Interesting. Okay, so if the computer's good enough to run Windows 11, you can run these things. Got it? [00:39:11] James: Yes, that is correct. Okay, so it says it needs eight gigabytes of RAM and needs an S s D solid state drive, or s d recommended. Those are the same things. Recommended X 64, ARM 64, and oh, okay. It needs a machine that. And virtualization is turned on and that's it. And then it's just specific countries, but they have opened it up to a lot more countries outside the US so that is, it'd be fun for [00:39:40] Frank: sure. You only ship a arm version of the app. What kind of APK did you upload? Was it just arm seven, arm 64? No, it's arm 64. Did you have an Intel in there? [00:39:51] James: Um, I did, did I have an Intel? I did not have an Intel in there, no. I just shipped an arm version of it. Okay. [00:39:57] Frank: So, and the computer you're running it on is Intel, so they're at least doing some emulation. That's [00:40:02] James: fun. Yep. Hmm. Yeah, both. So I have an armed Windows device and an non armed Windows device. Yeah. And they both work great. Cool. Because, you know, I think of it like this, like when you run, I guess when you run the Android emulator, it's the. X 86 1. Yeah. But then it's, it's not running on an emulator, right? It's running on the window sub system for Android. Yeah. So it's like running Android things. I would be interested if, um, I guess if I, I didn't really read it, but I guess I sh I should test. X 86 ones, but the default out of the box, the default out of the box is not to ship X 86 Android apps at all. So they're just arm devices, so Okay. Must just run 'em. [00:40:46] Frank: Just the sign of the times. It's just weird. Arm 64 has become the lingua franca of apps. [00:40:52] James: Yeah. I like [00:40:54] Frank: it. Yeah. Anyways, uh, I, I'm assuming like Rosetta, they just recompile it at some level and stashed it away. It'd be fun to dig into the actual subsystem with, um, windy bug and get into the kernel debugger and see exactly which instruction set it's executing the app under. Um, I'm sure someone at Microsoft could tell us [00:41:16] James: I am. That's one thing I don't know I'm really, really interested in. So anyways, There you go. Yeah. Let me see your insult. It might, it must just be, I'm [00:41:26] Frank: I, well, you would assume on arm it would run the arm, but you never know. These things are crazy. [00:41:33] James: Yeah, I just, whatever. I had shipped it, it went, did the things. Uh, anyways, I think [00:41:39] Frank: it's pretty cool. Congratulations on the app release. That's number one. Uh, number two. Thanks for reminding us all. This is a possibility. And for making me feel guilty. Thanks. [00:41:50] James: Anything is possible. All right. Well that's gonna do for this week's. Amazon app store filled merch conflict. You can, uh, tweet at us. You can follow us. If you're watching us on YouTube, you can like, can subscribe, tell your friends about it. Um, you can listen to it on, uh, any podcast application. You don't wanna see our face. Or if you do wanna see our face, you can also see it on YouTube. There's lots of options to, to listen to this podcast or watch [00:42:16] Frank: this or watch podcast. I haven't really figured it out. Are you the AI [00:42:23] James: a robot, all right, that's gonna do for this week's merch conflict. So I, I should probably edit this, but here's what happens, folks live to tape. That's what's gonna do for this week's merch conflict. So until next time, I'm James Monte mc now. And [00:42:37] Frank: I'm Frank Krueger. Thanks for watching and listening. [00:42:40] James: Peace.