Speaker 1: 00:10 Frank [inaudible] update for you. Speaker 2: 00:13 Ooh, I love updates. Uh, did you see the new Pokemon movie? Speaker 1: 00:18 No, not yet. But you know it's on my list because I hear it's amazing. Speaker 2: 00:21 Yeah, I did too. And I think I might have to give it to the Nintendo mania and go see it. Speaker 1: 00:27 Yeah. Well I did see the new Avengers, which was pretty okay. Like a week. I think we might have talked about that last. There it was. It was okay. Spoilers. It was okay. It was fine. It was a movie. It was a movie. But you're making it worse. Okay. No, I have real updates. Frank updates for everybody. This is the update of the update for updating of updates for the updates. Speaker 2: 00:51 Good. I'm think I'm following along a cue the dramatic music go Speaker 1: 00:56 then in an update number one. So I'm a Mac developer officially because my app is on the Mac store. Speaker 2: 01:06 Oh, I'm clapping over here. Good job. Good job. So that's only one, um, rejection you got, that's pretty good for your first APP. Yes. Only one which is not too bad when it was actually five, so not bad. Sorry, you tracking your sales and your downloads. Are you monetizing? Are you looking for VC funding? What's going on these days? Speaker 1: 01:29 Not really, no. I would say, I would say that. Here's what happened is I ended up, I ended up um, being okay on the updates. If I would've read what they were telling me originally in the emails, I would have saved about two or three what it came down to in the small little update. Then we'll go to the other updates is that you and I sat down after the episode, did tons of stuff. I resubmitted the APP and then I forgot that you also have to implement the little red exit button of your app to and decide what that's going to do. So they kept sending me these rejection emails and I was like, no, I fixed everything you told me. And then I finally read it and they're like, you didn't fix the last thing that we told you. Please fix the thing. And I was like, fine, I fine. I'll fix it. I'll fix your thing. So I did it and I put it back and it's on the APP store. I'm very excited about it. And uh, yeah, it's there. Speaker 2: 02:27 Okay. Again, congratulations. But I want to dig into this a cause I think. Yeah, we did have a fun little pair programming session after the show. And by fun I don't mean fun, but we weren't debating what to do with the a little red ax because you're a single window application and most Mac applications are multi window. So the, when you hit the little red x, the window goes away because he can always get a new window back. No biggie. But in your app you have different rules. So what rules did you settle for, for your little red x? Speaker 1: 02:56 So I settled on just always exiting the APP. Just always get up, get out. Okay. Speaker 2: 03:03 Be like what we didn't do on a Mac. But the truth is even apple apps are doing that these days, especially like the news app and the stocks App. Now I blame those because those are actually Marzipan apps that well be talking about a lot more in the future, I hope. Um, and, and they have that funny style because they're single window also because they came from Ios. So it makes sense. So I got some just a little bit sad. That's why I keep saying so, so, so cause just didn't like that style in the past. But yeah, Speaker 1: 03:35 you know, I, I kind of, we sat down and we were going through a bunch of apps and we, you and I were like, um, actually a lot of apps are basically going this route. So for me, since my application is really just very simplistic, um, you know, you never really need to worry about opening and shutting it. You want to close, you want to close. I just did it and you know, as a very quick port and I have 10 downloads, frank, 10 whole downloads Speaker 2: 04:00 10 and I was going to say, you haven't been advertising well enough because I did see that you had a tweet saying, look, I'm a Mac developer. You're so proud of that fact, but you didn't say what your APP does or you know, give a sales pitch on it or make a cool youtube video with an awesome indie soundtrack. What happened to all that marketing and advertising stuff we talked about James. Speaker 1: 04:21 It's true. Yeah. I need to get on that. I would say the problem is is that build is coming up and in fact when this episode comes out it is build day one. So everything has has gone crazy in my life and I'm just happy that I got it out just to be honest with you. But I'm working. I do believe that there are a lot of opportunities to promote to get it out there. I did frank. I registered a domain name though. That's good stuff. Okay, so it's out there Speaker 2: 04:50 by like a twitch ad. Do they have that too? They have community ads. Speaker 1: 04:54 Well, I would want to somehow target the streamers. You know what I mean? And see how I could do it. Speaker 2: 05:01 Isn't that twitch? I thought I'm all confused. What do the kids use these days, James? Speaker 1: 05:06 They do use twitch, but the people that see that the ads are the people that are watching. Speaker 2: 05:12 Uh, yeah. But okay. It just felt like every time I've used twitch just inundates me with hats. I just thought everyone was getting all the ads. Speaker 1: 05:19 No, I wanna I wanna I want to somehow target the creators, you know? And that's a little bit harder to do. So I need to find, I need to create youtube videos. Like we were talking about needing to promote it properly. I need to, yeah, just, you know, do more promotion in general. Maybe you reach out to some of the streamers and say, hey, check out this app. You know, that I made. Maybe you'll like it, you know? So that could be a possibility. Speaker 2: 05:41 Okay, well congratulations on having a cool app. Can't wait to not use it because I have no idea what its purpose is. Speaker 1: 05:50 Not for you. It's for me. Let's be honest. Well, yeah. So, so things went well and that led me to do more updates. Now we've had episodes in the past where we've talked about us updating apps, the legacy code, crafty stuff. But I had an APP that I made originally over a weekend, six years ago is my meetup manager App. You are familiar with it, correct? Speaker 2: 06:15 Yes. Yes. Let me paint a picture for everyone. Many moons ago we had a great meetup here in Seattle and we wanted, I think we were using it for the raffle. That was kind of our excuse from the beginning, but we wanted everyone to check in to our meetups. So this was an app for people who were running meetups to know who actually came because oddly enough the website doesn't have a good interface for that. Maybe they do now. Have you checked your competition lately? Speaker 1: 06:40 I think that you can go onto the website and you can do some things for it but I am not convinced that it is as good as mine cause mine offers offline sync with psych SQL lite dash nets. So Ha. Yeah, Speaker 2: 06:53 exactly. I mean special purpose apps are always going to be general purpose websites. So this was a just a cool little thing and it was battle tested. We use it a lot. I think its biggest problem. James, if I could be blunt, is that you kept rewriting it. So what's the current state of it? Speaker 1: 07:11 Well, I originally wrote it really fast. This is before Xamarin forms came out, so I wrote an an MVVM cross and I wrote it really quick. It was very simplistic, it barely did anything. And then I as soon as Xamarin forms came out I was like this is a great test bed for me to port the Ui over for it so I could get it. I'm really maintainable across the different platforms and it has been my little test bed, which is a really fun way to kind of put it because with this I've not only integrated ads into it, I've done in APP purchases, I've transformed it into, you know, my material theming with like tabs on the bottom for everything. And I've had an offline sync so I've added all of these little bits and pieces to the APP over time. Like a lot of the code is six years old. It's just sitting there. Frankly, it's so old and crazy. And I went last weekend onto the store and I, I had stopped using it because we don't, we don't have our meetup anymore. I mean, we still have it, but we just don't run it. So we need to get on. Difficult question. Yeah. Yeah. So I, I went on and I was like, oh, I have a lot of one star reviews, what's going on here? And um, meetup.com change of their API. So my app stopped working completely. So Speaker 2: 08:32 boom. Yeah. Okay. So we both faced this, uh, we both have older applications and in a lot of ways it's good. I love that fact. My whole goal has always been to have a long sustaining business. You know, I want longterm apps. It would be terrible if I had to write a brand new APP every year. I don't think my brain could handle it, you know, coming up with a good idea every year. So it's good problem to have, honestly, to have these old apps until it comes time to update it. Because as we always talk about the tools change and the environment changes. And in this case, API has changed. Now we did talk about this. Um, I don't remember the resolution of it. So did you rewrite everything? Did you get it working again? Speaker 1: 09:14 So luckily enough, the API change, but it changed changing like weird ways. It changed where I could query pages of data, but now I can't do it anymore. And then it takes different parameters. They really sort of just muddled it around and he'd get the user data a little bit different here and there's a little bit different. Luckily the login process and the [inaudible] two doesn't change. So I'm lucky there. Yeah, that's always the worst vacation. That is the worst. So like for me it's like, okay, well that's not bad, but the problem is I have to go through every little this and that and this and that and try to figure out, am I coring? You're right. Can I just change the end point? Is the data coming back? So all the models change. I had to remap everything and only some of the APIs change. Some went to V3, some stayed on v two so they're like, we're not ready for these. Speaker 2: 10:12 Like, Oh Gosh, yeah, oh my God. Talk about over engineering. This is the worst kind of refactoring where you break public API APIs because he thinks this one's a little bit better. Yeah, and we all have APIs that we hate. People deal with a move on and don't move on by using semver and just updating the major version and saying, ha ha, we're going to deprecate this after a year. That's the worst. I want Api Apis that lasts, you know, centuries, millennia chains. This is what I want. Stop it with these version twos and threes. Speaker 1: 10:48 Yeah. It was really, honestly not a lot of fun to just remap my Api Apis, but then what happened on top of that is I can't just go and change a few API APIs. I need to update a bunch of stuff because Google has decided that you need to update all of their ads to get better ads. And of course if I'm going to update the ads, I've got to update Google play service and I got to update the support libraries. And you know what, I got to update all of my plugins. I got to update all of my Xamarin forms, right? So it becomes a spiral in general, which is fun and not fun at the same time. So in this regard, what ends up happening is, is that, um, I have to go update everything across the board and figure out what versions are here, what versions are there. I mean, luckily I do this for a living, but you, you do it for Speaker 2: 11:43 living. But let me explain to everyone that I get so afraid when I have to update these android support libraries. There was a point in my life, call it, uh, about two or three years ago where James had explained to me how these support libraries work, how the versioning works, who's responsible for what, oops, this one got renamed a little, but it doesn't get rid of the name to over here. And if you're using this build environment, it has that name. I understood it for like a year, but a year after that I've completely forgotten. And when it comes time to update these things, I just right click on the project and I say update all and I'm like, Oh God, be with me. Let's hope this works. So, uh, does that work? Is that still the way to do that? I think so. Now that is of course if you're using project references and not the old packages. Speaker 2: 12:35 Dot. Jason or packages that Xml or whatever, which is terrible. And luckily, luckily I had done this conversion in a past life and moved everything from PCL to net standard randomly. I don't know when I did it, but I must have randomly done it, you know, a year ago or something. So you sign to the future I saw into the future and I was like, I totally did it. And um, I got really, really, really lucky in that rush. Should we be? Should we be clear here about package references because I, I'm, I'm not sure this is fully understood throughout the community, but in the last um, big release that dotnet we all kind of changed our project file formats. So our new gets went from Reddit, um, using this packages. Dot. Jason, you know, it's been so long since I used it, I almost forgot its name, um, where we would list start dependencies, but that has since been put into our project files. Speaker 2: 13:31 Now the problem is I still don't feel like all the file new templates and all the visual studios use this new format. Some of them still use a package dot Jason. Or if you're like me and just have a million apps and a million libraries, chances are the majority of them still use that old format. So this is kind of a manual step you need to take of take, take your main route dependencies that you need, not everything listed in packages dot. Jason. That's it's problem. Let's do much Chad, take just what you need out of there and put that into your project file by hand. Yeah, that's what that, yeah, that's, you have to end up doing, if you're really lucky, if you're on the on windows machine, there is a right click convert to package reference. You're so lucky. Okay. I'm super jealous. Okay, everyone ignore what I just said Dude. That right click thing. Yeah, do that because I ended up doing that a long time ago and I'm pretty sure that that will stay around for a while. But what it does, it's very smart. So when you're updating these references, it ends up the old packages, there was packages XML and in packages Jason, which is only used by windows, so the package is XML, so a Xamarin use, so when you update those in that's in that file, it's like Speaker 1: 14:52 every single new get in every dependency. So when you go to update things, new get hates you. It's just like, ah, no conflict. Conflict. Conflict. Yeah. It's crazy. And the, the package reference in your cs Proj is very lightweight. It just somehow is much, much faster. So when you convert it, your life is just like so much better. It's not perfect. But the nice thing is that it doesn't have to reference dlls directly. So if you need to go update things, you can just open the CS proj and then manually edit the versions and say, use these versions. Don't try to figure out dependencies. I'm going to tell you what to use because I'm smarter than you. So you can do that. Yeah. Yeah. That was the worst part of pack, not only with packages chase than huge. It was long because it had all the trends. Speaker 1: 15:37 What are the come transient dependencies, whatever the ones that you don't directly reference. It had all those lists that and then your project file duplicate and all of that. With dll names, you're just like, oh my God, I don't want to change anything. Yeah. So that happened. Um, what a couple years ago now and I still haven't updated all my projects and now I'm feeling really rotten. I need to open open omal up on windows and do that. Right clicking. Yeah. Yeah. So it's actually really not fun to go through it, but it's worth it. I did it for, someone reached out to me on a the Xamarin chat room and they're like, I'm having this problem. Like send me your project, let's, I said, give me your project. And then they did a four ohm or just pointed out the project. I don't want to, I'm not going to make fun of anyone, but it's classic, right? Speaker 1: 16:25 You're up. Was, he was literally updating an old project. It was portable class libraries. It was packaged out XML. And I was like, let me just fix this for you. It'll take me 30 minutes. It's going to, you may take you, you may never do it, you know, I mean, you will be so much happier when I do this. And I gave it back to him 30 minutes later and he, he's, this is so much better. Oh my goodness, this is amazing. So yeah, I did it. And then even on the Mac side, there's just ide improvements. Honestly, when it detects this new package file format, the way it puts your packages and to the solution explorer and everything just becomes faster, restore becomes faster. And we've already mentioned the other pros. Plus it's the way of the future. We must adapt for the times, but I did end up building my app, frank, but before we talk about that, let's thank our sponsor this week. Speaker 1: 17:16 Tellerik the teller or a team at progress, you know them. They build all of those Telarc Ui for whatever such as, uh, you know, Xamarin such as asp.net asp.net core, WPF, winforms, UWP. They make all of the controls and components that you could possibly want. Calendars, charts, data grids, all that good stuff. Now, what's really cool, frank, is that they have the brand new teller Rqi for Blazer and I'm pretty sure when you go to their website, go to [inaudible] dot com you can click on Telerik Ui for blazer and then they're running a blazer app to show you the charts because why wouldn't you? It's all right there so you can go and tech check out all of their data inputs, calendars, anime to containers, column charts, Bar Charts, pie charts, all that stuff for blazers. You can run those absolutely anywhere. Just super cool. They've also updated all over their tellerik Ui for Xamarin, which of course I'm a huge fan of because I love building Xamarin applications. And they of course have all those things that you want, updated list views, engages calendars. They even have an entire conversational Ui that you can tie into your chat Bot backend, which is awesome. So they do everything for you. So I got to do is head over to [inaudible] dot com and just tap on whatever you're building, whether you're building a web app, a desktop app, a mobile app. They got you covered and over to tell her right.com and thanks tellerik progress for sponsoring this week's pod. Speaker 2: 18:44 Thanks Rick. What a great company. I Wa I have my own update requests from you on the previous Mac episode. I pointed out that maybe you didn't have dark mode fully implemented. Is it there yet, James? Update the update. Do we have dark mode? No, of course not. Oh Speaker 1: 19:02 No, I'm waiting on you to implement your Xamarin forms backend. Speaker 2: 19:06 That's right. That's right. Well instead I've been doing my own update. I had, um, I was very proud because I had calca converted over to the dark mode and I was recently, uh, someone pointed out some bugs on the APP. There are kind of embarrassing because they were logic bugs and you're like, Ooh, computers should be good at logic. Why is it failing at these? But they ended up being subtle bugs. But I noticed during that time, and I felt bad because I was making fun of you for not supporting dark mode, that I had some dark mode mistakes. Oh No. Yeah. So I had to do, I wasn't planning on it, but I had to do a lot of dark mode updates myself and boy, it just gets harder and harder every time, like the subtle little bugs. So not going to make fun of you. Even though I did start to make fun of you. I just wanted an update to Noah if you are dark mode yet. Speaker 1: 19:56 No, it didn't happen. You know, I think it's one of those things that I'll get around to for sure. Now that being sad. Um, I'll wait for you to put the back end and then I'll update my package and I'll remove that info. P less flag. Boom. Okay, boom. That's it. Frank. Just work for a month. Well, you know, I think the next problem that I had is maybe something that you ran into during your update process is like, I finished the APP and then I realized that one, my entire CD, ca CDI, see I CD pipeline was destroyed. Like it didn't work at all anymore and you go update it. But more importantly, once I fixed that, submitting an APP to an APP store, like a year or two later, like I haven't done updates in two years, the entire APP store is all completely different. I have to use new screenshots, new in this thing, the whole 10 yards. Did you run into this when you did yours? Speaker 2: 20:52 Yeah, I did. I, it was a while ago though, where they, uh, they revamped it. So for a while they had revamped the Ios side, but the Mac side was still pretty old fashion that hadn't changed for a while. And then I forget when, but they lit up the changes on the Mac side, which is still frustrating because we've got the new Ui and I thought, Ooh, we're finally going to get test flight for Mac. I really want Beta support for Mac apps. And that's nicely built in for Ios. They didn't give us that, but they did give us a funky new Ui that we had to learn and a bunch of news screenshot requirements and things like that. But let's skip it, the apple part for a moment. I want to go back to the CIS CD pipeline. Yeah man, mine was broke too. Speaker 2: 21:34 What is up with CGI? I mean we use get, we have versions everywhere. We have, I don't know, config files, but somehow we still keep breaking these things. So my excuse, and this is a little bit embarrassing. Um, I had an APP and in order to compare I have calca and in order to compile Calca it had two repositories. So my SEI would have to download two repositories, compile them together, pop out the APP. That's great. Except, uh, I circuit also uses one of those repositories. And I had changed some code and broke the code over here and James, I had to use, get some modules. That's the end of the story. And it's so sad. I swore I would never use the modules again and I'm just like, oh, forget it. I'm just going to use a sub module. And that got my CICT working again. Wow. Speaker 1: 22:22 Yeah. So for me, I was using APP Center for everything because these apps are pretty, pretty simplistic. Uh, as far as just being like, it's just an APP. There's no backend, there's no sub modules, anything like that. Now, there was a few things on my end. First, all my certs Speaker 2: 22:39 expo. Yeah. All of them expose. Sure, sure. Yeah. Two years. I wasn't thinking. Yeah. Yeah. You have to update your app at least once, or I would say at least twice a year, just so that you're not dealing with your [inaudible] going out of fashion. Speaker 1: 22:52 Yeah. Now, and the cool thing is obviously if you don't update your app in two years, your app in the APP store continues to work. You just can't rebuild your app with an old circuit. You need to get a new sir. Speaker 2: 23:03 Yeah. Yeah. Now that, that's not hard. Right? Once you know how to do it, we've done it. It's no, it's not you. You know what? At this point I've done it so much in my life. What's that thing where like, yeah, uh, yeah. Okay. I never went to Stockholm Syndrome or something like that at this point. It's fun for me. I'm like, Ooh, it's that time of year or time to go get a new third and try not to lose it and try to remember how to do this process. You know? I've been doing this for like almost 10 years now, so it's just like, it's like my Christmas, it's like, Ooh, new cert time while I was using some messed up James, Speaker 1: 23:33 I, here's a good one for you. So the Ios one is like, all right, I got it. It's like Ios cert updates. I got it. And then I went and my android build was failing on APP center and I go, what's going on here? And I, this is one of the first apps. Even before APP center was a release that I was building, so this is was like on some old legacy something and the key store was just vanished. Speaker 2: 23:56 So I'm like, Oh, where's my key store? I've got to go hunting to a fear. There's this case every time I'm about to submit an android APP. I'm like, how do I submit android apps? And I go, I Google, how do you submit an android? And it's always like, oh, do this thing with your keys sort Mike. I vaguely remember when a key store is, and then I go look at my file system. I use spotlight search. I'm like, uh, I circuit Keith store and then a file comes up. I'm like, thank God passed frank. You named it something valid and something searched of all because otherwise I forget how to do that thing every time. Now has that improved at all? Like are we still using key stores that are fun? We signed and hidden away somehow. We are still doing all of that. But frank, there's a big but the but is that right? Speaker 1: 24:42 You can give your key store to Google. Speaker 2: 24:46 This I like, yes please. And then this is, this is essentially what apple does. This is what we talk about with certificates and profiles and all that. This is apple managing something a secret. Now the difference Speaker 1: 24:59 though is that you give your cert, your key store to Google in the Google play council and then you can submit to them your application. It could be signed with anything or not signed it all and they reassign your application for you so you don't have to worry about it. Speaker 2: 25:18 I love this and all you have to do is trust Google. And I love to be that first person that's like, I don't like Google, I blah blah blah. But the truth is they're a big company. They're not going to be sued into oblivion if they start giving out things like this. So I'm not worried about Google managing my keys, sir. Honestly, I'm more concerned about me managing my keys store every time I do that spotlight search and like please God, let something come up here. Now I will say that I had to go through a bunch of little Speaker 1: 25:47 hoops and ladders here. So one thing I had to do is I had unconnect all of my, this is a fun one too. I had to disconnect all of my apple logins to APP center and two visuals here for Mac because they had redone all of the two way authentication, two factor auth, so I had to like disconnect and reconnect everything and get one time password codes and all this. Speaker 2: 26:13 It was crazy. Wait, wait, wait. We're talking about this. All right, because I spent hours on this and this technically happened, I think it was like the middle of February, the end of February. Apple started requiring, and I want to be clear here on the language two way authentication. Yes. Now that is different from what I knew from the past, which was two way verification. They sound so much alike. How? How could you possibly get them confused, but here's the deal. Authentication pretty much just tied to iCloud to think of it that way. You have an apple Id and somehow that apple id gets associated with what they call a trusted device. Here's my problem, James. The only device that I want to be trusted is my phone. The rest of my devices, I delete them too often. You know they're dev machines. I'm, I'm doing all sorts of terrible things to them. Speaker 2: 27:05 They're running Betas, all that. I don't want them to be trusted devices. I don't trust him period. But my problem is that my main apple id is a personal email address and yet my developer, apple id is like a work email address. I keep them separate because from time immortal I decided that I'm going to keep them separate and I'm stuck with that decision for the rest of eternity. And here's the issue. How do I get my stupid phone to be a trusted device for this other apple id? And you search this on the googles and they say, oh, just log out iCloud on your phone. And I'm like, I am never locking out of iCloud on my phone. It deletes too much. It runs rampage through the operating system. Don't ever sign out at iCloud on your phone. So how do you do it, James? How do you do it? I want to know did you have this trouble or not? Speaker 1: 27:56 Yeah, so I ran into a different issue which was around test flight. So we talked about, we talked about my issues where my g mail account is tied to a bunch of other teams and the application loader wouldn't allow me to upload so I created yet another account that is an APP admin that I can log into. I can't do search with that account but I can manage all of my apps, log into the APP. La Cation loader uploaded there, but I ran into a different problem which is I got the app there eventually via the same mechanism and I have to kind of testers on my test flight. I have my Gmail and my Xamarin account, which are two different iCloud accounts and for some reason test cloud refused to show me anything. If I was logged into my Gmail account, it has nothing would show up and I'm like, what is going on? It's blank and you can't log in. And how it works is that you have to login to eye to the store with the account that's used. And then I cloud with a different account. So on my phone, on my iPhone six which is like the oldest one in the world, I love it. My, I go to my apple ID and it says I cloud@gmail.com store@xamarin.com I have literally two different log ins. I'm like, I've, I have no idea how that works. I'm so puzzled and confused. Speaker 2: 29:24 Can I tell you, okay, so I have to tell you how I solve my problem. And it doesn't sound like you got to apple ids on there my way, but I can tell you one way to get to apple ids on there, please. Uh, yeah, I had a, I think this came from, I'm more, I read the website, [inaudible] dot com this trick is terrible. It's absolutely embarrassing and apple needs to fix this. But I started on a Mac because again, I didn't want to log out of iCloud on the phone and on my Mac I created a new local user account. Why did I do this? Because he can only associate an apple id to a user account. It's a one to one thing. You can't have multiple. And there was no way in heck I was going to log out of my iCloud account on my computer. Speaker 2: 30:07 I mean my desktop would disappear. I'm using iCloud for my desktop. I don't want to even think of what would happen if I logged out. So create a brand new user, just the throwaway account log that all in. And when you're, um, first loading up the oms would that user, it presents a login with your apple id. Now it turns out you can use your developer id as an apple id. So then I log in with my developer Id. Great. So now my Mac is a trusted device, but that's not good enough because I'm not always going to be by my Mac. So on the Mac you, um, I'm sorry, you're all signed into the back. Okay. So now we go to the phone. So you've created a valid iCloud apple id. Now thanks to your back. Now you've got to go back to your phone and you create a new email account. Not like I'm, I'm not adding an iCloud account by Ashley. That's what you say. So you go to settings, accounts, add account, I cloud login with your iCloud, they magically give you five gigabytes. They magically give you, you know all this stuff and then your device can become a trusted device because you've logged into it there and you verified onto your Mac. And so now your iPhone, like my iPhone would have my personal personal apple id and also this work apple id. What a terrible process they put us through. Speaker 1: 31:31 It's really complicated because in, I guess in an ideal world what we really need is you have to have an actual iPhone and a Mac that is not personal at all and is only for work purposes. You know, because for me, I use my Mac multipurpose, I use my iPhone multipurpose, I don't have multiple islands that have one and it's all over the place. It's really bananas. Speaker 2: 31:58 It's especially bad because apple acknowledges that this is a problem because in the fac there is a question and the question is do I need to devote one piece of hardware to being a developer piece of hardware basically, and a trusted authentication device. And Apple in the responses? No, no, no. You can use one device with multiple accounts. Period. Next sentence. Next. Next question. And you're like, oh, but how, and so, um, it is good news that you don't have to have that I'm sharing a device and I actually have a couple of devices that are authenticated but they don't make it easy, that's for sure. Speaker 1: 32:40 Do you know how many accounts I have linked on my android phone? Speaker 2: 32:45 Like with the um, the Google play store? You mean that way? Yeah, just, just phone, just logged in on the phone. Oh, I mean Google accounts are a dime a dozen. So I think, um, I usually have about three logged in and about four or five available. Like when I hit sign in. What are you up to James? Speaker 1: 33:06 So on my phone I have five on my browser have nine. So nine Speaker 2: 33:11 that you're logged in, like active. Like you could just click over to it real quick. Speaker 1: 33:15 So at anytime I can click over to any of my different accounts on the play store on this, the Nice thing here, which makes sense. Okay. Here, here's the nice part that Google Gout, right? Apple, you got it wrong because I can log in with five different GML accounts in. Now when I go to log into GML and I need to do the two factor auth where it pops up on my phone to, do you want to approve this? All five of those accounts work on the same phone. Speaker 2: 33:44 Whoa. I don't have that. I don't think I'm quite that quite that good but hmm. Congratulations. I will say a Mojave has a new nice feature that if you're on one of those web forms, it's like enter the security code and then you get that text message. It auto fills James, it auto fills. It's like I'm living in the future. It's the best. In fact, I had 'em messed up my accounts so badly one day. Actually I blame Google, but whatever won't mention that I was actually on the tech support phone call. You know what it takes for me to call tech support? I have to admit complete defeat to get to that point a lot. And Yeah, and I'm doing a screen share it with apple and he saw that thing just autofill and he's like, no, no, you got to type that in. I'm like, no, no, it auto filled. He's like, yeah, but I don't trust it. I'm like, you're an apple support person and you don't trust the auto. So it's new, magical technology and not everyone believes in it yet, but it's totally there and I love it. So that's why I don't need to say stay signed in James. I just get those codes super fast. Speaker 1: 34:53 That's pretty good. And I like that. Ah, yeah. It, it's, it's only gonna get worse too because there's going to be added security. There's all these things. I ran into the same thing when it was updated in this app. You know, apple had done the, what does it, what does it called? The APP transport Speaker 2: 35:10 protocol. Transport security. A t. S this is where, um, if you want to talk to a web server, it has to be done over SSL. If you want to talk non SSL then you actually have to give an approval list of which domains you're allowed to talk to. Yes. And this is kind of a good feature. This is preventing, I mean I don't know how an ios would get attacked, but technically someone could attack the phone, try to make web requests Speaker 1: 35:38 out of your thing. I don't fully understand the security concerns here, but I assume really smart security people decided this was a good idea and therefore it is. Yeah. So that is that is it the perfect explanation and you know on Ios there's always been this workaround, which is you can just say approve everything does just do everything. How many are apps do that? I think a lot of mine too, but for good reason, like continuous, I want you to be able to make a web requests. Uh, some other ones just have some half baked in. Web Browser is built into all this. I needed to be able to do that. How about your apps? I think that meetup manager has to, but only for ads. Maybe. Maybe I don't need to do it anymore. But I think that those get served up randomly. Luckily meetup.com is https, so it doesn't matter. Speaker 1: 36:29 But when I develop local, like I do a lot of these demos for running things a locally. And for some reason I have a hard time getting my https certs installed for asp.net like local development. So I'm like, I'll just locally do non non https. I'm on my machine. Like I'm, it's fine local host. So I, I'm sorry dude. Our discussions always get back to certificates. Huh. Uh, I was having that same problem because when you run a kestrel vocally it does like a developer signed certificate or SSL, but chrome's like, no I don't, no, I don't believe in that cert that sir, it's bad. So it's always weird getting these things installed, especially on Ios. Um, it feels like they move the certificate section on every version of the operating system. I can never find it. Yeah. So I just go turn it off. I don't even want to on some debugging right now. It's fine. So I did that, which is totally fine. Totally gravy. Because I, when I Polish my backend, that's https, not a big deal, but I think most of my apps are totally fine. However, doing all these demos and doing this app, I found out that another company has gotten on board the a t s train. Speaker 3: 37:47 Okay. Speaker 1: 37:48 Does it start with a g and ended with a, yeah. Are that you're going to say in Google, but yes. Uh, she uh, yes, the, the, the Google we know and love has decided that they also want to get on the security train. And if you build your app against Stk 28 and target 28 and Ron on a device that's 28, Oh, the three 20 eights, that's what you gotta do. Uh, then you will run into the exact same issue. Um, but it's even more stringent. Speaker 1: 38:28 Okay. Like I feel as if on Ios, I feel like on Ios, like images work. Okay. Or it's like it's else, but like, Google's all like, Nah, fam, nothing works. Nothing. No. No. Okay. So help me out. I always forget how android targets work. Is that the minimum target or is that just target? Target? No. So there's a 28 so there's a minimum and a target. So there's minimum, which says allow it to run on this old device that is the Min Sdk version. Okay. Got It. So that's good because that's different. Yeah. That that's like, you know when you go into, when you go into your info p list and you set run on Ios 10 that's what that is. Yeah. Yup. That makes sense now. But they have a target thing too, just to make you confused or you're going to have SDK 28 with a target of 27 just to, you know, uh, play dice with the Gods a little bit. Speaker 1: 39:27 Yeah. And in that case, that means that you can use the latest Api Apis, but then what you're doing is you are tricking android to say, actually, my app is really only ready for Api 27 so don't light up a bunch of new features. It's like this weird trickery thing. And Yeah, you could do that. I believe on Ios if, no, I don't know if you can, I don't know if we have that. We don't really do that. Now the real question, James, could I target 30 and built with Sdk 28, uh, probable Lee Fan? Like I know I'll be fine, you know, in, in two years. Yeah. Light it up. I'll be fine. Best practice is target STK compile always the same. That's the best practice. Okay. I liked the future version. Now android does something, of course a little bit different, but very similar. They do have it. Speaker 1: 40:23 It's called network security config. You have to create a separate XML file. You define everything inside of it. Bingo. Bango like the Info Pilas it's not too bad. Yeah. Um, are there attributes you can put on your, uh, main activity yet? Or is it really an XML file? It's an XML file. Then you add that attribute to your application node and it's nice you, you have to basically say, I allow clear text traffic and then you can do include the subdomains. If you say, um, you know Claire M. Dot Org and then you can say include sub domains. So it could be like blog dot [inaudible] dot org or you can say, don't, don't do that. You know, there is no star, but you have to manually put everything in there. So yeah. All right, so let's get back around to this. So you're updating apps. It sounds like you've done ios and android. Speaker 1: 41:12 Are they submitting them? When are you going to be done submitted? They update in the APP store and I already got my first one star review. Frank. No on Ios or android on Ios because you know they're vocal. So we have a very high standards. James, you know, I, I mean what a one star, what did it do? Did it just crash? No, I did find a crasher that I just fixed and submitted a new update while we were popping casting. But um, here was the issue, the meetup.com Api, they used to take a, a bullying in or some, there was some sort of metric that would say, um, you know, load more pages. That doesn't work anymore. So I'm like, okay, give me 200. So it gives me the 200 either upcoming or past events. So like I tested it on all my meetups, everything looked great and the ones are, his review was, my group has an ongoing recurring event. So I only see events that are in 2020 and the APP, Speaker 2: 42:20 Oh uh, I was going to think like, did their events started in like 2010 and that's why you're not seeing it or it's because it's, it's future dated. That is so odd. Speaker 1: 42:30 Yeah. So I say, give me like descending order. So give me the latest ones. But uh, what you can do now is you can say there's like another attribute that you have to put in some weird time code that says, give me all of the new ones from this date back. So I say give it to me two months in the future and back and now what you're telling me. Yeah. Speaker 2: 42:52 James is that data paging technology that we all figured out in web 1.0 is no longer in use. Like you can't just say, give me the top page, next page, next page, next page, next page. Speaker 1: 43:05 So that's what I used to do in v two and then I read their documentation for v three and they're like, we use standard paging, use the offset. I'm like, I am don't work self Speaker 2: 43:16 ah, technology. This is when you just scream at your monitor. That sounds terrible. Okay. Yeah. A One star. Well, sounds like we're going to have to get all of the merge conflict listeners to download this app and give you a valid score. I didn't say five stars. I said a valid score and I guess everyone's going to have to start a meetup so we can use your app. Speaker 1: 43:40 That's true. Well you know what I did when I just submitted this new new update, frank? Hmm. I went to the bottom of the ios submission page and you know what is there, which we've talked about reset ios summary Ratings. Get outta here. Absolutely. Five by one star. Back to zero star. Speaker 2: 44:03 Yeah. Honestly, I would rather see ya on rated APP. I know one star App for sure. Yeah. So we'll it, we'll do our duty. James, what will help you get some stars? Speaker 1: 44:13 Yeah, so it's good. I'm happy. It does look like I do now since the last update, I have one four star, so I'm very happy about that. Speaker 2: 44:22 Oh, Bravo. That's much better. I remember this. Uh, people are always critical of the SAP. Uh, people have very high standards, especially on Ios. I want Speaker 1: 44:32 to see what your ratings are different between android and Ios. Yeah, it's one of those apps where I made it for myself, so it does one thing really well and people are like, you should do this. It should do that. It should do this. I'm like, no, this is what I want it to do. So you should listen to them. Come on. You could have had the premiere meetup APP. I rule the meetup market. I'm, no, I added offline support, which was the number one top requested feature. It was fun to do. It was, I had the worst. The problem with that when I did that feature, which was a while ago, I had honestly the worst database schema that I'd ever created my life. And now I have like all these tables. I have no idea how any of it works. It's really been Anna's, so where are you experimenting or were you just having an off day? Speaker 1: 45:21 We'll remember. I wrote the entire app in a weekend originally. So the original database Schema was like all these crazy things and when I write an APP and a day, I have like two tables. That's how I read symbol, not I don't, I don't normalize it all. Usually that's kind of what happened for it's fine. That's kind of what happened. Yeah, and then I was like, oh gosh, and then I figured it out. It's really snappy, but I'll tell you the, here's the positive. I've been complaining a lot now updating this application while I did go through some of these hiccups, the APP is like a billion times faster at the ads are a billion times better. The CIS system is so fast, so flawless that I literally fix the bug, did a, I build and submit it to apple all in the last 30 minutes while we were recording. Speaker 1: 46:11 Frank, that is no joke. And I paid attention to you while I did because it's so seamless. Okay. Don't believe that last part. But otherwise, knock on wood shop, I will pull up my apple portal right now and show you frank. Uh, yeah, I meant the part about you listening to me. I didn't believe that. Oh No, no, I definitely did not listen to you the entire time. The listeners now, I never listened to you, let's be honest. Yeah, yeah, yeah. Uh, but the real question is when we get the update on the update on the update on the update next year to find out if that's the ICD is still working because you know what, something always slips in that death certificate. That's what it will be. We already know always in a year we'll find out if you updated your cert or not. We so we will, we will, we'll see what happens. Speaker 1: 46:54 Frank. Well, anything else about updates of an updates or was this just the James Complaining being ridiculous episode? You know what, when APP developers get together, this is exactly how we talk. I've been sure what the topic here was other than we're updating our apps and we just want to talk about that process because that's what we like talking about. So thank you all for listening to that. When APP APP developers get together, that's what it's going to be called this episode. Well, frank, I love getting together with you every single week and doing this podcast. It's been honestly, absolutely astonishing. Where at one 48, two more episodes and then our listener calls, we're reaching a million downloads. We're up there. We're getting really close. Speaker 2: 47:35 Um, can we have an album made up the record? Isn't that a million? Yeah. Gold. Platinum. That's planned, right? We're a platinum amazing. We're a ways off. We're, we're, we're just zoning in on it. We're getting closer, but we're real people. Tell your friends. Yes. They must listen. If they can listen to our entire back catalog, all 110 hours of a merge conflict, gold. You know, when I'm, you know, 95 years old sitting in the hospital, that's what I'm going to do. Speaker 1: 48:07 Re listened to all the episodes of me and you. Speaker 2: 48:09 Yeah. Relived those glory days. Speaker 1: 48:12 Back in my day when I was developing apps, when APP developers get together, Speaker 2: 48:17 uh, I mean, I'll be in Vr, but it'll still be fun. Yes. Oh my goodness. Speaker 1: 48:22 Yeah. All the things. All right. Well Frank, let's get outta here. I got to go prep for build. I gots to get out of here and I've got to end this episode sometimes, but thank you for being amazing as always, and thanks to our sponsor tellerik progress for making awesome controls and keeping this podcast going, and thanks to all of our listeners more than anything for being awesome and spectacular and telling your friends about the podcast and writing in and following us on Twitter and doing all the things we can't thank you enough. So I think that's going to do it for this week's merge conflict as always. Speaker 4: 48:50 [inaudible] Monto Magno and thanks for listening. Piece.