mergeconflict221 James: [00:00:00] Frank, what are you drinking Frank: [00:00:11] James today? I have, as I always have the bodies' OFA, which I think has already made an appearance on this podcast. James: [00:00:17] The Bodhi has made an appearance. And I will say, I am I'm I'm I'm, I'm basically supporting right now, the only basketball team in the specific Northwest, the Portland, Portland trailblazers with the Deschutes brewery, rip city lager, which is pretty good. It's very tasty. Frank: [00:00:34] Yeah. Yeah. That's a, that's an Oregon beer then. Is that right? James: [00:00:38] Do you like the Oregon beers? Um, I will say though, I'm not, I am a basketball fan. Uh, of anything from Cleveland, because that's where I grew up. I grew up in the suburbs, but you know, it's in and around the area. Um, however, you know, moving to Seattle, we don't have a sports team for basketball, which is sad. We had the Supersonics, um, and you know, for all the years of the nine plus years, I lived in Seattle. I was very sad in which we don't have a basketball Frank: [00:01:08] team. Yeah. Yeah. We had a women's basketball team. That was a pretty good one. And they were kind of like champs. James: [00:01:16] Yeah. Yeah. They were good. I've seen them live very good. Frank: [00:01:19] Uh, and we just got a hockey team, so that's cool. James: [00:01:24] I Frank: [00:01:25] have to crack a name. I don't approve of the name. James: [00:01:30] You know, everything in Seattle is very, you know, Puget sound themed. Right. Uh, so. I know we had Frank: [00:01:38] cracking and RC, but I guess so I don't James: [00:01:40] know. I was always under the assumption that there is a mythical octopus that lives. Is it under the West Seattle bridge or another bridge somewhere that is ginormous that would like come out. That was like the rumor? Frank: [00:01:56] No. Oh, I mean, it sounds good. Uh, I don't know this rumor, obviously I don't have good enough friends to give me great rumors like James: [00:02:03] that. Well about me. Frank: [00:02:06] Well, I guess I just received the rumor. I have heard that rumor James, such a good rumor from a very trust the source. I heard that rumor in James: [00:02:13] fact. Perfect. Well there you, now we know whether the cracking, well, one day, while, while we enjoy these brews, we need them because we have to answer questions. From you, the listeners, it is episode two 21. That's right. It's time for lightning talks. We got, you know, we got it hijacked by in a very, very exciting Apple event that everyone should go and listen to you and also watch on YouTube as well. You can watch that. Um, but every 10 episodes. Or so we do lightning talks. You can mail into the show, tweeted us or discord at us, and we will answer your questions. Sometimes we come up with our own topics, but this week one, two, three, four of six are from you, our listeners. We have some exciting news and we decided to break them down. How lightning talks work, lightning topics, topic talks. If I can, I've only had one sip of the beer, so I'm not Frank: [00:03:01] drunk doing great, man. Woo. You got James: [00:03:04] it. How lightning topics work is that each topic we attempt to summarize and break down in five minutes and then we break it down and in the middle, we have a beautiful sponsor break. So stay tuned for that because I am definitely excited. Frank, kick it off. Frank: [00:03:21] I am kicking it off. I am going to be blunt James, cause there's no way to sugarcoat this Swift on windows. What a weird topic. So it wasn't, gosh, Swift still feels new to me, but I think they're up to like version 20 or 23 years. Something like that. That's a lie. It's not, um, Swift has. Primarily Ben and Apple and Mac thing, though. It is been open source for awhile and with open source comes the possibility for anything. And in this case, we are getting Swift on windows to build user interfaces. How crazy the world has become James: [00:03:59] done. Done. Done. Yes. That is correct. I'll link to the blog on swift.org, but you are correct. Yeah. So these libraries. Um, or what, what actually the bundle here is compiler standard library and core libraries, including dispatch foundation and XC test. And, um, the main goal of this is flexible interrupt of Swift. And see, so the very first question you had is that one, they had a beautiful calculator demo is how did they build this UI? I mean, I could kind of understand that you could run Swift in some fashion. We've run. Everything on windows. Right, right. At some point. Yeah. And, and even you you've, you've put C sharp sharpen places that it's ridiculous, that C-sharp should even run. Right. And now C sharp really kind of does run everywhere and iPads and the browser in the browser. Right. Not just on the server, but now of course, Swift can come over. This is kind of cool because Swift is a very interesting language that I've, I've played around with you a lot more than me. Yeah. Your first question is what is that beautiful UI and Frank, what is that beautiful UI? Frank: [00:05:03] It's when 32 baby. Um, I, this is right up my alley because I am a diehard, wind 32 programmer. It's how I learned how to write gooey apps, basically on windows writing to that terrible, terrible C API. And. This is doubly up my alley because I love getting Lincoln to run places where they don't normally run, because there are opportunities there for interesting things. So you cited a dispatch and foundation. Dispatch is kind of their threading library foundation is everything else, but string class, the collection classes, you know, the important stuff and Swift has always been able to it talk to see APIs that was important to Apple because a lot of Apple's API APIs are C APIs and objective C. C could even be called from C. And so, um, not too big of a surprise that they were able to interrupt with one 32 because when 32 is just yet another giant C library. Uh, but it's so cool to see these technologies. Come together like this. Now, James, the sad part is if you had asked me if this was possible, I would have said five years ago. I'm sure someone's already done it. So I'll be a little weird here and say, Oh surprise. It took this long. Like I guess there just had to be an incentive for someone to build, um, a goodly app with Swift James: [00:06:26] where there's a will. There's a way, I mean, you know, Miguel was working on that, um, terminal C-sharp UI that we interviewed him on where there's a will. There's a way. Um, yeah. You know, I think what's really cool here is that it enables Swift modules to be used. Um, you know, basically they said they got stuff, working everything, except for app kit and UI kit, which makes sense. You'd have to, you could pour it over the, the API, but you're not going to port the, the rendering engine probably, but, um, yeah. I thought this was cool. You know, they're, they're showing off. Probably. You could just use like vs code. You can use a command line you're using C makes. So you're, this is pretty low level. This, this to me is exciting. Um, from a wow, that's cool that you can do that. But to me, I'm like, yeah. Um, I'm a, um, I'm an ID person. We all know this. I like to install. I like to do the things. I like the file new. I like the gooeys. I'm a goofy person, right. Um, yeah, but also Frank: [00:07:24] coming from a cross platform. API system runtime. We're just used to being able to run on everything. So it's not like, Oh, it's magic that this is happening, but Swift is native code. They don't have an intermediate language while they actually do, but they don't use it. And so they're native and that's why the tooling and all that. It gives you that very nice native VI experience where you have to use LLDB or GDP, you know, those old fashioned deep buggers, but. You know, if someone wants to, they can definitely, uh, improve the vs code extension and keep adding to it. But for me, just from a language person, I love to see more languages everywhere. I want to see everything available on every platform. James: [00:08:08] Yeah. I think it's a two. I think it's, it's good to get options and, uh, I think it's really neat. Definitely give it a look. I'm excited to see where it goes. Um, and you know, the funny part I'll make the final comment is someone was, was tweeting and I saw some stuff and I thought that like, Oh, I don't have to learn anything else. And I was like, okay, man, for 10 years, I've been able to run seashore on every platform. You know, I just, as a, as a side joke, that is 2020, but I've been doing this for 10 years. So, uh, but it is exciting to see more languages come up and you know, the other next, uh, you know, Front station foundation, frontier, Laura, the next frontier Frank: [00:08:45] going James: [00:08:46] is putting it all in the bra and the WebAssembly right. So I'll be excited to see the next it's evolution. There is more languages sort of feature parody each other, but let's get onto the next question. We got this written in. You can go to merge conflict.fm and you can actually contact us via email. And we read that this is from William. He writes in and says, Hey, James and Frank. Um, I'm a mobile developer and I'm considering Xamarin for my next project. There's a lot of buzz around at six and Maui and a bunch of other cool things that are happening, you know, what's the best way to go. And should I just, you know, create native UI? Should I go cross platform with Xamarin forms? I'm going to have to rewrite everything. Is there a better way to create the project? Should I use Swift on windows? They didn't ask that. Um, you know, uh, what does it look like? You know, w what should I do here? Um, I would say from a, I'll give you that this, I think Frank, and maybe also chime in here too. There's technology, that's changing all the time. There's always going to be a new version of something, right? Whether it's Swift or node or, or, you know, electron or yeah. Native or Xamarin or.net, um, there's new versions and a lot of companies, you know, we'll announce things a year out, maybe six months out. No matter what I always like to say, don't wait to start developing there's no, there's no need to wait. 18 months. I start developing something today, especially when the thing. Is not going anywhere. Right. So for me, I'm going to be building and using all of them, all my applications with Xamarin forms. Cause I, I like the toolkit, the performance, I like the tooling around it. Um, that's the stuff that I love to build with. And I'm as animal person, you can also use C sharp or F sharp, of course. Um, but for me, You know, that's where I would start, you know, and based on your application, you're going to have different needs. But to me nowadays, most everything can sort of be built in Xamarin forms are customized at the end of the day. We've talked about that on many pods in the past, but you know, going into winter 2020, I like to say it's even more true than ever. Frank: [00:10:51] Yeah, and it definitely up on a second, your there's no reason to wait. That's always kind of a bad idea. Um, work on the app, finish the applicated out as someone who is having trouble releasing an app, I highly encourage you not to delay. Like I have. Uh, but definitely, um, if you're debating between Maui and Xamarin forms, just write your happens, German forms right now, because when you decide to adopt my Maui, it's not going to be that much work. We went through, um, a change like this and Xamarin iOS once where we went from what's called the older classic API to the unified API. Hmm. That changed a lot of tight names. It changed a lot. Every namespace, literally every namespace chain. And so, but at the same time, it was for four hours to a day of work to port an app over. Cause it's just grunt work of changing a bunch of names. Um, so I would definitely say if you want to get going just. Just do it. Don't worry about the future. The future doesn't exist now. Exists. Nothing else. James: [00:12:02] I agree with that. Yeah. That's how I always look at it. It exists now today. That's the thing I want to use. I'm not going to think about the fall far, far out when the far, far out is actually something I can install and play around with. But until that thing's GA you know, and even after GA I might have this, you know, I think the nice thing about Xamarin forms at this point is that it's been out for over six years. It's mature, it's stable, there's a great community around it. And of course, that will all come along with the next evolution, whatever that may be. Um, and, and that's important to know too is like, you're not going to be losing things by, by starting today. That's another thing to think about too. It's not like it's a whole new. Completely different thing. 100% that it's, you know, you have to start over with, um, you're there. I mean, I'd also like to say try different things. Right? I love Xamarin, but you know, maybe Beulah Kotlin or something. The opportunity to, I dunno. I dunno. I dunno. Maybe he lost Collin. Frank: [00:12:58] No. Normally I would defend native UIs here first and say something like if you run in native UI, you'll never have, I have to work on it again, but that's not true. We're all doing like iOS 13, 14 updates and things keep changing, you know, the way. Pop over view controllers work keeps changing on every version of the iOS. It seems so. Yeah. The one big lesson is get used to change. Just learn how to code so that you can change things as easily as possible. James: [00:13:26] Sure. Literally I upgraded we'll talk about iOS 14 later. That's the very first thing I did is testing my app. Made sure everything was working good on iOS 14. And, um, we got 30 seconds of bonus question from William. He asked about clips and our feelings on app clips. You know, if, or if not Xamarin we'll support them, but I don't actually know what our support policy is or what's what's going on there with that. But I haven't seen app clips in practice yet. We have iOS 14. Thoughts on Frank: [00:13:52] Apple lips, a pandemics, a bad time to release a go out around and scan things with your phone too. But I have seen that, uh, Xamarin is at least gonna have embedding of Apple clips. So if you want to add app clips, you can make it up in, um, uh, uh, whatever it's called X code and throw that into your app for now. James: [00:14:13] Oh, love that. Love that. All right. Next question. Go. Frank: [00:14:16] Oh, right. This one comes from Thomas, my neighbor, and he's asking for someone starting out new and.net and they want to make like a way, because that's what you do. Uh, what do you do for a database access layer? And this one's, this one kind of went straight to my heart because I've done so much work with databases in the past. And I kinda. I kind of am always thinking about RMS object, relational mappers, whether I want to be or not, they're just there. I think it's like PTSD from being a web developer anyway. So I thought we could do like a fun little, um, just roundabout of names, some of our, uh, favorite or what. We like about them. Um, I don't want this to be, it'd be exclusionary. I'm so sorry if I don't name your RM. The problem is there are so many of them and I think that's kind of the issue. So, uh, I'll, I'll kick it off with one. I kind of love that I'm using right now. It's called dapper DAPP E R and it's from the good people over at stack overflow. It's your most bare bones pathetic or on the planet? But, uh, I think I've talked about in past episodes. I absolutely love using it. James, do you have an ORM? James: [00:15:30] Yeah. If you're going from the website of things, it's going to be different from the mobile side of things. So maybe I'll switch it up later, but. Uh, you know, I'm tried and true in the dinette space. I'm going to go with F Corp baby cause. Yeah. And any framework. Yeah, it's been around for a long time. If core, a lot of performance improvements it's built in to the box. Things just work elegantly with them, handles migrations D can connect to any database that you want. If it's a Azure SQL or SQL Lite or it's something else. Uh, yeah, it's, it's super nice. And Jeremy and the team. Uh, that are they're working on. It are super passionate about it. They have a entity and work up every other week on the Danette foundation, YouTube, a lot of cool stuff happening in that community. I never really got into web development too much, but when I talked to him, she's a web developer and she uses EDF any of court a lot and really enjoys that. So since it's in the box to look at census there, when you check a button done, Yeah, Frank: [00:16:29] absolutely. And that, one's kind of like the rolls Royce too, because it has so many features, you know, at first it was kind of small enough core compared to the E F, but it's just been picking up more and more features, a little bit of a learning curve. I feel with that one, but I want to give a shout out now to a classic in the dotnet space. L L B L Jen pro from France BOMA. Yeah. LVL, Jen. Pro, it's got a, it's got a long name, but it is one of the classic RMS that has, if I call the other one, a rolls Royce, this is just like a house on wheels. Um, you know, you have data table designers, designers for this and that. He's a performance freak, a brilliant programmer. I follow him on Twitter and his code is awesome. So shout out for a really cool ORM. L L B L Jen pro. James: [00:17:27] Nice. All right. I'm going to go with a tried and true as well from a good talented engineer. Oh, SQL light dash net. It's a great arm for it. All purpose for any single application powered by SQL raw under the hood SQL Lite raw, um, yeah, SQL light dash net. I've been using for over a decade at this point. Um, what library started as a file that you would copy from the internet has now morphed into a kind of gold standard in the mobile development space, at least for.net. Uh, and it. Deeply integrates and seamlessly integrates into mobile applications, but we have talked about it on this podcast. Yes. Before that you can use it for your websites too. Why not? Turns out. Frank: [00:18:16] It's a good little database that SQL Lite talking about good programmers, huh? Hmm. Yeah. Thanks. I appreciate that. James, a shout out to SQL Lite. We should have a bell for that one. Like the Marco bell. Yeah. Um, so I'm just gonna close off. I don't even know. Yeah. Okay. 30 seconds left. Uh, another old classic, just a, this one gets an honorary mentioned only because I haven't used it in forever, but I used to use it and hibernate. These are the classic old, uh, Or M's. They're all good, honestly. So just pick the one that you liked the most or a pay for LBN drop out LVL gen pro from friends FOMA to give him money. James: [00:18:56] There you go. Ah, well with that, let's take, take a breather and thank our amazing sponsor this week. Reagan. Have you ever wondered if you could be offering a faster, less buggy application experience for your customers? I know I have, my applications are super buggy and that's why I use Reagan application performance monitoring. All you have to do is plug this poppy in and it gives you the information. Yeah. You need at your fingertips to turn your buggy applications like mine into the next version that I just released with Reagan built in that are super awesome because Reagan has helped me find and fix errors and performance problems across my entire. Tech stack and even gives me the analysis down to a single line of code is causing the problems Liz. And all you gotta do is go to reagan.com and join thousands of customer centric, software teams that already use Reagan every single day to deliver flawless experiences for their customers. That's reagan.com to start your free 14 trial today. And thanks to Reagan for sponsoring this week's pod. Frank: [00:19:54] You know, every time Reagan advertises you usually opened by making fun of me saying how Bunky my apps aren't how much I need them. So I appreciate you. Didn't do that this week, James. Thank you. James: [00:20:04] You're welcome. Just wait until next week. All right, let's move along. Um, we got this one from, um, one of our amazing listeners. You're all amazing by the way, but from socket. Um, who we absolutely love. He's sort of bundled three different topics into one trick. Yeah. And he was like, Oh, look at all these things, I'm going to call it. Uh, what did I put it in? Keeping your code clean? What tools, what analysis? What? No. How do you keep it organized? Especially if you're working across teams or maybe even sharing that code on the internet and you would like some contributions to it, Frank. Frank: [00:20:41] Well, I have been all over the place here because, um, I started out absolutely despising, the new Rosalind analyzers. I was like, get out of my coat. I know what I'm doing here, professional coder up in the house. Um, but then it found a bug once and I was like, darn it. And I found a couple others, and then I turned on not reference checking and a billion others. And so I was like, fine, I'm going to. Okay. So my general rule is I hate coding against a clean standard because I think the standards can never be comprehensive enough to cover all cases. And so I find that they're stupid and bang stupid rules is stupid itself. That's sad nowadays. I have, um, come to terms with my enemy. So through a variety of editor, config things through a variety of, uh, Global suppressions dot CS. Have you seen that file? Um, uh, through, through those two mechanisms, I have been able to attain the beast to the point where I feel like it's only given me valuable feedback and not just blasting me with. Stupid suggestions. James: [00:21:56] Yeah. I, I, at this point have a standard.net, um, editor, config that I use, it's the same money using Xamarin essentials and that's sort of morphed over time. And, and what I do is I just sort of copy and paste that editor config everywhere. That has been the one thing that I really enjoy because. Um, it really helps when people contribute code code. When they open the project, it puts the project in the room settings, you know, in visual studio, MBS for Mac. Um, when, you know, if you want to use VAR, it gives them the squiggles that let them know you can kind of control that. I think as an open source maintainer, it's very little work, right? It's just as file your settings, your customization, you do it once and then you move it around to all your different projects. So I think as an, not only an open source maintainer, but just as someone that works on code. Often I really enjoy that. Um, and especially bringing it to older projects and now with visual studio, you can right click and have it fix all your problems across your entire solution based on these editor, config, uh, areas. So to me, that is the real hero. Um, in San Marino Central's we use, uh, both editor, config and style comp. I want to be, um, 100% sure. Let me bust it open here. Uh, yeah, I think we do that because they just offer a few different, different things, like some naming things and, and also. The style cop can really just Mark everything as, as a, as a error. You know what I mean? It can think can really spice up some additional things on top of the editor configs. I'm pretty sure we use use that there Frank: [00:23:39] as well. Yeah, there have been a lot of tools in the past style cop FX cop, and a million, a third party tool that you could buy. My biggest problem was that their default settings, because they want to show how fancy they are, is to just blast you with inanity. So, um, one that I absolutely hate is like, you have an F that has a result in the body. They're like, you could invert this if, and use the, uh, the question Mark operator, you know, and you're like, yeah, No, that code is much uglier. I prefer my code to look this way. And so I think it's just when it gets into, um, those kinds of things that I. I tend to turn them off. And that's where in the global suppressions file you can use attributes to within that project or within that assembly, I guess, uh, turn off those certain. So it's interesting what they do. Things are available in editor, config and what things are available as atrophy, beauty to the analyzers nowadays. So it's getting a little annoying having to look things up. Yeah. From what I've heard and dot, dot five, we're getting even more. Analyzers. So maybe it's more of those style cops. I, okay. So sorry. I know I'm going along, but I don't like the style stuff, but I liked the analysis stuff. So I keep trying to turn off the style stuff and let me tell me informative things about my code. James: [00:25:02] Yeah. And like I said, I think that the batter config is, is a nice balance in general. Uh, it's hard for me as a big library. No know creator was Amarin essentials and working on the team since it's mobile web, I'm going into our global suppressions. And like the biggest issue we have is that we always have like iOS Macko, STPs or watchOS. And like we do it properly, which is lower casing iOS. And it hates that. So we have a bunch of suppressions and different files, which is super annoying. And sometimes knowing like what to do and how to get around it is a little annoying, but in general, like I said, editor, config. That's my jam. That's just so good. Frank: [00:25:42] Yeah. And, and I like it. Um, I now have things tuned to the point where I can look in the right margin. And I generally want that to be empty where they put a little tick Mark for each little item and it gives you that little endorphin hit. That really means nothing to just see that thing cleared up. James: [00:26:01] Yeah, I agree. I agree. Frank: [00:26:04] Alrighty, is that it? You got anything else for that? James: [00:26:07] That's it. I'm Frank: [00:26:08] good. All right. Well, let's go on to, uh, my favorite topic of all of them is how do you feel about iOS 14? I won't say how I feel about it so far, but what are we a week into release a day into release time doesn't exist. It's hard to tell James: [00:26:28] we are, we are almost a week into the release, a time of recording. I did update day one. Did you update a day? One? Frank: [00:26:36] Yes, I did. Uh, mostly because my iPad is stuck on beta one and I was praying that it would upgrade, but Nope, beta one is still stuck. James: [00:26:45] Oh no. I updated a, both watch iOS seven and iOS 14. This was a very exciting release of iOS because bicycling bike riding came to maps and that's very exciting as the number one feature. No, I mean, that is a great feature. To be honest with you, that Google maps has had forever. Um, my biggest thing with iOS 14 is I feel as though it's a solid release, I haven't had any issues yet from my apps. At least I have really enjoyed. The cleanliness of the operating system by introducing the app library and by introducing smart widgets, I have now one homescreen and that's it just one home screen, which is, um, my fitness activity up top eight apps that I like the weather. Yeah, the bottom. And then four more apps, which are like my default on the bottom. I have phone messages, camera browser, basically for apps that I can't live without. And then everything else is in the app, Gary. And I basically ignore all of it most of the time. And I use it very similar to, um, search. Right. But like I can often, I often now know where things are at like, Oh, I know Robin hood is right here. And I go to town there instead of having like an endless list of scrolling apps in general. And for me, those were like the biggest things. There's probably tons of stuff in iOS that I'm really missing out on, but widgets are good. Every app doesn't support them yet. And the app library makes it a little bit more Android ID and it's good notification, Frank: [00:28:24] you know, it's funny because I think my home screen has become more cluttered. Now. I had refined my home screen down to like, Five apps and then everything else was shoved into a folder because it turns out I find everything by search nowadays. It's just so much faster. You pull down and you start typing whatever you want. And the Siri auto magic picker is usually pretty good these days. Yeah. Yeah. So with the Hinch action of widgets, my screen's just gotten more cluttered because I just started throwing a bunch of widgets on, but, uh, I think I've, I think I've limited myself to just one or two widgets. I've got the Apple random one that just shows you. Random stuff. I don't, no, what it's purpose is, but sometimes it shows you photos and I like it when it does that. Yeah. And then I keep, uh, my steps step counter on. Cause that's just fun to be able to have your steps right on the screen like that. So for years, app developers, we've wanted to be able to put data on the home screen. We finally can. So I guess I'm for it. But as an app developer, I'm also sad that we still don't have any interactive elements, but as an Apple user, at least it's something. James: [00:29:40] Yeah, that's true. I sort of think of them as a replacing the app icon, the use of a weather, you know, desktop. Basically icon and fitness. Now I no longer have them, so I can just always see the weather and hop into it. I am in like, with a lot of the animations that they did that kind of pop in and out. Um, some of the new widgets for like battery statistics that are there was the high level glance. I appreciate. Um, overall, like I said, it feels pretty solid. Watch a Wes. I've had my watch crash a few times, which is, Oh, I did have a problem with watchOS, which is. And only, you know, my was series three, which only has eight gigs of storage. And then the update required three.one, 3.1 gigs of storage. And on my watch, it said I had 2.5 gigs available B out of eight, five, even though it's available, obviously three are reserved. So. It's brand new. So I don't have, I don't have anything. In fact, I've uninstalled things I don't have. I don't install any apps everything's off. So I went through and I deleted all of the apps that I could read, download from the app store. And then I had three gigs open. I was like, Oh my goodness. And then I did something Frank, which is silly, but I restarted my Apple watch. I restarted it and magically a gig opened up just magically a gate opened up because it caches. Tons of stuff, obviously on the file system and swapping stuff out. So if you're like, I can upgrade that. That's how you upgrade. The thing is with Wachovia seven, with a series three. You'd really don't get much. You get sleep tracking, which is relatively subpar sleep tracking. There's not a lot of statistics or whatever on there. The wa the hand washing you don't get, that's only on series four. Um, and there's something else that I thought I was going to get, but I don't. Oh, the, the voice, like the loud noise around you only series four and, um, The only, the reason I want to upgrade is for fitness plus, which requires water later this fall, when I'll be activating that 30 day trial. That's for sure. If there is one, so. So Frank: [00:31:48] it's really tough being a fan boy. It's expensive. trains your psyche. You really gotta think about that stuff, but I love that the classic turn it off and turn it on. Again. I worked, you know, technology. It's never going end proof. That's always going to be the solution to everything. Um, but just to finish things off, um, I don't have. Your feelings on the watch yet? Cause I don't want to do anything with my watch, but I do like the new, uh, notification bubbles on the phone phone. They're much more out of the way nowadays. And I really liked the clipboard copy one, because then you can tell when you actually pasted successfully, honestly, James: [00:32:29] that's true. Also I message a lot better. Frank: [00:32:32] Is it always just message it, you know? Okay. Now there's one thing I hate about it. They have this new feature where you can pin your friends. James: [00:32:39] Amazing. Frank: [00:32:40] It's the worst, because then it hides the thread from that front. James: [00:32:43] It does. That is the words that pops up a little bubble on top of it. Although you are pinned on my little screen, but Frank: [00:32:49] Oh, I'm kidding. That's wonderful. So you'll never see my messages I had to unpinned people cause I kept missing their message. James: [00:32:56] Yeah. It's kind of, it takes a while to get used to it. It kind of like bubbles up something on top of them, but yeah, that is a weird one that is for sure. But I like it. Frank: [00:33:04] Yeah, I, I might give it a try again, but it just messes up with my flow. Cause my flow is, uh, someone sends me a message and then two weeks later I respond. So like I need that message. Yeah. James: [00:33:18] Well, I guess you need to not pin people then problem solved. I Frank: [00:33:21] got no friends James: [00:33:23] kind of friends. All right. Last one coming in from Martin. This is a very long email, but I will open up and he said, this contact form is for fan mail. I'm a fan. So I'm supposed to mail, right? So here's the mail. Um, this is a longer thread, uh, Martin lives out in insulin. Yeah. And he was writing in specifically about, Hey, you know, uh, as my side gig, uh, in my spare time, I'm an app developer. So my main income, um, but you know, I'm trying to get different contracts kind of feel in and out. And they always go through different, you know, um, app processes with clients. And then they always says, well, how much will that cost? And then that sort of a sticking point, you know, there's not an industry standard. And not only just app development, but for any development. Um, I know when he's a little bit worried that it won't be enough and will we ever be able to make that full time gig? Um, the funny part here is that he does say it's even harder to understand what to charge. If it's for family and friends. Frank, how do you feel about family and friend app development? I Frank: [00:34:21] have so much to say about this, but I want you to finish, but. Yeah, thank you. James: [00:34:27] Yep. Yep. Don't don't do friends and family. That's that's the key for any development, not just have development, but that was it. You know, he's asked around, did a lot of stuff. Do we have any insight or personal opinion on salary of independent developers? And I guess salaries is a little bit of a, you know, I guess just what app what's your cost? Frank: [00:34:45] No, this one, this one, we could do a whole multi episode arc on this question. So this is a fantastic question. This is obviously a very important topic. Can't do justice to it in five minutes. I won't even pretend to, but I will say that your, your struggle is shared by all of us. Uh, any. Independent developer is facing these same problems. Yes. Let me start by saying, um, you can't work with friends and family. It just never really works out one. You don't charge them enough to you spend way too much time on it. Three, it can damage relationships and things like. So for the longest time in my business, I've always had a pretty strict. No friends, no family involved in the business side of it, which, you know, pros and cons to all of that. But from the side of, of, um, picking prices for things, at some point you just have to decide, am I going to be a professional about this? Or is it gonna stay a side gig? If you want to be professional about it, you have to be a little greedy, unfortunately. Um, I I'll stop there, but I want to talk about pricing too. What do you, what do you think about that? James: [00:35:58] It's definitely hard. You know, like I said, it's not my side gig. I create apps in my spare time for myself, but I also struggle with this too. We taught, we did an entire episodes on pricing Island tracker on maybe switching it to an app purchases and to maintaining that and to maintaining the backend. And that's a struggle. Right. I think that even for me, that. It's putting a lot of time and a lot of energy into doing that. Um, I struggle with, well, what is my time worth at the end of the day, I used to have an old, an older company I worked for came back to me later on and said, Hey, we really want you to like update this, this project that you'd worked on, blah, blah, blah. And I, I gave them a very large number because my time was worth it. And I said, you know, my time right now, this is what it's. For me to put in this time and energy, which would be a way from my nights, you're grinding on this. And my side time, it is worth X amount. It was a, it was a ridiculous amount of money per hour. But to me, it was, this is what, my time at this point in my life, or this project is worth. I think that's another thing too, is for this project, like, are you passionate? Do you want to do it? Like, is there some revenue share that you can get? Is there, are you part of the business? Are you just someone writing code? You know, is it worth it for that get back in? They said no. And then I was okay with that because if they, if they, I knew that if they gave me the money, I wasn't going to be happy about it. Oh, Zambia, I wasn't gonna be a static about doing it. Right. Um, and, and, and so I kind of set my price high because of that, that I really didn't want to do it. So at the end of the day, uh, and that turned out okay for me now, what I've done at what I would have been, it would have been fun. I would have done it, but it was in my point in life, which was that it wasn't my main gig. Right. If it was my main gig, I would have negotiated back and forth. I always think. It's better to start a little bit higher than to under, under sell yourself, but whatever you think it's worth and the more you do it, I think the more you'll kind of figure it out, but this is all independent. Um, Not even just independent as small business, any marketing, any, any business at all, what are you going to charge for your product? We should have our friends, uh, Christina and Michael on who do a lot of, yeah, my branding and they have their own design studio. They quit their main gig to start their own studio. And I'd be fascinated to get some input from them, like how they look at it from a design perspective, which is also a competitive market too. Frank: [00:38:19] Yeah. Yeah. I'm going to go off on a few topics on this though. Um, one good thing that you should probably do is figure out what your personal budget is. Like, how much does your life cost? How much are you paying in rent? How much are you paying for food? And don't be conservative, like. Really be honest with yourself, just, you know, average up all your bank statements and figure out how much you actually spend, because then you know, your target for actually sustaining yourself. And that's a good place to start, uh, when it comes to, um, Contracts. A lot of, a lot of contract work is privilege work. So it's, um, either getting a good deal with these people because you have a good relationship with them and they want to pay you well, or it's a new contract and they want minimum money minimum of time. It's unfortunately that most people. What programmers to be, why car mechanics, they just want a time estimate and an hourly rate and a bill for that. But as we know, it doesn't work that way. Software can be tricky. Sometimes. Sometimes it can go well, sometimes it can go long. So as a contractor, you have to find ways to, um, Not pad your invoices, but yeah. Patch or invoices, you have to understand that you're going to estimate three months, but it could take six months. So you got to charge for six months. That's as simple as it gets there, but if you haven't built up relationships and that kind of stuff, it's, it's, it's hard. It's, it's hard to ask for that kind of money. So you have to, in the early days to survive, you take what you can get and. All that you can hope for in those cases is that word of mouth builds and that your skills build and that they're not undercutting you, that you can pay that minimum amount that you figured out before. And then my. Big suggestion would be when you're doing this contract work, stick with what, you know, absolutely things that technologies that you know, inside and out contract work is not an opportunity to learn something new though. Often when you get to the more privileged positions that will be, you'll be paid a lot and you'll be learning something. That'll be fantastic. But in the early days, no, you're going to be. Being paid small amounts. So you've got to pick a technology and get really good at that. And when you get good at that, then you might be able to start estimating your time better. Then you can start making more accurate, um, Um, whatever proposals, invoices, whatever, you can talk to people on a more realistic basis, and you don't have to have that sinking feeling in your stomach. So it's a tough thing. It's a tough thing. Um, you're a merchant and you are a slave to the market, unfortunately. Um, so the best that you can do is be realistic with yourself, set your expectations correctly and get good at what you do and don't go for wrong. Go goof around with friends and family. If it's a professional gig, it's gotta be a career. You've got to do it differently. James: [00:41:27] There you go. I think that's going to. Wrap up this episode of merge conflict with that amazing advice from our good friend and resident in house independent app developer, extraordinary Frank rigger. Listen, if you have feedback, maybe you are also an independent developer, had the same struggles as Martin. Send us a letter at merge conflict at IFM or go ahead and tweet at us or hit us up in discord. That's going to do it for this week's merge conflicts. So until next time, I'm James Montgomery, Frank: [00:41:54] Frank Cruz. Thanks for the James: [00:41:56] piece.