Welcome to Pragmatic. Pragmatic is a discussion show contemplating the practical application of technology. By exploring the real-world trade-offs we look at how great ideas are transformed into products and services that can change our lives. Nothing is as simple as it seems. Pragmatic is part of the engineered network. To support our shows including this one head over to our Patreon page and for other great shows visit theengineer.network today. I'm your host Bick Hudson and I'm joined today by John Chichie. How are you John? I am fantastic and how are you doing? I'm good. Excellent. So here's the thing. This is an episode. This is an episode with a subtle twist. Perhaps it's not so subtle because you did the intro read. This episode is all about you, Vic. Yeah. So, if you're not uncomfortable yet, I'm sure we can arrange that. So, let's see how we go. One of the things that it's been a pleasure to watch over the last few years is as you've dipped your toe into code development. And I've sort of seen you tinker, tinker, and I think start and abandon many projects. Yeah, a bit of that as well. But I've also seen a genuine passion. I see the podcasts that you listen to when you post about them. And, you know, and I know you well enough to know that you're pouring a lot of your time, your personal time and effort into programming, learning programming and doing it. And I think that it's awesome. I think it's wonderful. And I think that it's the sort of thing that I guess we need to-- I want to start at the beginning and explore your journey with programming. And why I think it's a good topic is that I think it's illustrative that programming can be for, I think, for anybody if they have a passion. So, with that as our premise, let's start with your story as it were. So, what was the first computer program that you ever wrote that you can remember? That would probably be Line 10, Print, Hello, Line 20, Go to 10. Awesome. So what kind of, that was obviously that's basic, but what, as in the language, basic beginners all-purpose symbolic instruction code, I think it stands for. What kind of a machine was that on? That would have either been, it was either an Apple II or an Atari. I think there were 800XLs, that sound right? I think so, yeah. I wasn't a big Atari guy. Those were the two machines that we had at school when I was in elementary school. And we kind of floated back and forth between the two of them, just tooling around with BASIC and had some stuff that we loaded off of floppy drives and cassette drives and things like that. Nice. All right, cool. No, actually, the Apple II is what we had at school. We only had like two of them for the whole class, and so you didn't get to spend a lot of time on it. But that's actually where I got my first exposure to it. And about six months, maybe to a year later, my dad actually got interested in computers and programming. And he bought an Atari computer that you just hooked up, you know, through the TV. Yeah. Yeah. Awesome. adapter that like the Atari game console had that plugged into it. And it was a lovely little green 8-bit display. Yes, I remember them. Monochrome all the way. I think it was green. It was definitely monochrome. Big block letters, not very easy to read. And he bought a bunch of basic programming books and stuff and we would type up programs and stuff into it and we had a cassette drive that you could save stuff to. Oh yeah, I have one of those. And it made all kinds of fun 56k dial-up modem type noises when you played it back in a regular cassette player. Oh, I remember that. Yeah, I remember getting tapes mixed up from time to time. I've actually heard that back in the day that a lot of people like in Europe and stuff, they used to bootleg software because they would broadcast that over the radio and then record it on cassettes. That's interesting. I hadn't heard that one. I don't know if it's true or not. I don't know if it would really work or not. It seems like it should, as long as the audio signal is clean enough that they get a clean recording of it. I'd say on FM that that would probably work, but on AM, I doubt it very much. But still, that's a fascinating idea. But I have heard anecdotes about it. Well, that's cool. All right. Fair enough. Okay, so those are the early years. And I think then you had a bit of a break and you didn't do too much, too many programming until your, shall we say, middle-aged years? Is that accurate? I played with basic programming and stuff like that. We threw the Apple II at school and then mainly more afterward on the Atari at home. And then Dad eventually went through like a Commodore 128 and something else. I can't remember. But yeah, somewhere around my teenage years, I made several bad life decisions and got distracted from the computers and programming for quite a while, actually. And I didn't return to them till later on in my adult life. So as I remember the timeline, roughly it was about your mid 30s, I think it was when you got had a resurgence in programming. And I was like mid to late 20s. Oh, mid to late 20s. OK, sorry. Yeah. All right. Cool. So when you did get back into programming in your late 20s, What languages were you diving into at that point? Because that would have been before your objective. I don't know if it's really fair to call it programming at that point, because I started getting back into computers, and I was playing with HTML and some JavaScript and stuff like that. And I played with that for a couple of years, and was more really a computer user than anything. But then I decided that I wanted to make better web pages and stuff, and so I started dabbling with server-side stuff, and I installed like a local copy of Apache and PHP and MySQL and started learning about making dynamic websites and stuff like that. My crowning achievement back in those days was I had a pretty sophisticated PHP and MySQL driven, my like a personal version of IMDB and I set that project up mainly more than anything simply because I wanted to learn about a relational data mapping and how you do relational databases and things like that. I also had a pretty extensive video collection and people are always like what kind of movies have you got and I thought it would be nice if I had something that you could just kind of browse through them with. Cool that's really awesome all right awesome yeah so so you did that never published anywhere but it was It was a great learning project. And then after that, I started dabbling a little bit in C++, just in my spare time. And then I went to college for a little while, worked on a computer science degree. About two years, but I was later in life and I had a lot of external commitments outside of school and a full-time job that was actually more than a full-time job. We do a lot of overtime and stuff. And it was pretty hard to manage that. And my computer science grades and all were always really good. And I tended to lead the curve in most of those classes in the major core classes. But I was having trouble finding the passion and interest for a lot of the other stuff. And in my second or third year, I'm out on extended sabbatical. And I still haven't managed to get back yet. But I do hope to one day get back and try and finish up that computer science degree. It wouldn't mean a lot to me to have that. So, OK, so when did you take a break from from the degree? How long ago? Is that about 16 years? Three or four years, maybe, maybe a little longer than that. I've been out of school. OK, all right, cool. So, it's really not that long. No, we primarily were working in C++ when I was there, and that's what we were working in. And they were just starting to transition to Java. as I was leaving. Maybe that was part of the motivation to get out, I don't know. That's probably not a fair jab at Java. But they were just starting to transition everything to that because it was, from what I understand, I don't know, I bailed on it really early and I didn't have a lot of interest in learning Java. At the time I actually kinda liked what I knew of C++ and I was pretty interested in it. But they said they were switching to Java because, you know, it's really purely object-oriented and I think C++ just kind of bolted object-oriented design on to C. Yeah, that's a pretty accurate way of putting it. Yeah. So, okay, so when you were doing, because you've done a lot of C++, then Objective-C, Objective-C, which has a lot of common typing and structures to C++ in many ways, I guess that was a relatively natural fit then, to flow on from that to get into iOS development. Yeah, yes and no. It was. It definitely looks somewhat familiar when you come from C++ to Objective-C but like the brackets that was that was a curveball. Yeah, true. That's always a curveball you know when people come to Objective-C from from other more traditional looking C languages and I mean Objective-C does look very C in a lot of ways but some things from it stand out in stark contrast like the brackets and the spacing you know with objects on the right and arguments and methods on the left and stuff like that. And then you get into nested bracketed calls and things like that. And that gets kind of messy as people get clever and try and really just crunch them down instead of, you know. You know, I'm sure you've looked at enough of it to tell. Oh, yeah. And it's always difficult to describe in words, you know, how code looks visually, but I know exactly what you mean. And I'm sure a lot of the programmers, listeners that are programmers would understand. but ultimately, I suppose what you described up until now is a bunch of, like say you've done some little side projects that for yourself in PHP and MySQL and you were two thirds of the way through a course and essentially focusing on C++, object-oriented programming. What was it that drew you into doing your first app on iOS that I guess, what was the first app that you did? Oh, that was more or less just because I fell in love with my iPhone and some of the apps that were there. And I just, I really wanted to make those. OK, cool. So, what was the name of the first app? I started out, I didn't actually jump directly into Objective C and making native apps. At the time I didn't have a Mac, I was still on Windows and there was was some cost barrier to Mac and there was also some old foolish Windows beliefs that Mac was all locked down and restrictive and you can't do any of the things that you want to do. You know, all the typical stuff that most people have never been exposed to a Mac belief about Macs before they get into it. And so I started out with just playing with like making dynamic web designs that were like made to look and act and feel like native iPhone apps even though they weren't really native code. You know, it was just a... the iPhone had this ability that you could... it still has it, but most people don't use it. You could save a bookmark to your home screen like an icon. Yep. And you could do some clever things with some metadata tags and some JavaScript so you can make it really look and feel kind of like a native app. Ah, yeah. There was a framework that was popular at the time. It was written in JavaScript and It was made by a, what's that guy's name, Joe, Joe Hewitt I want to say, although I might have that name wrong. He worked at Facebook for a while and he worked at Netscape and he did some work on Firefox. The framework was called IUI and I don't know if it's still got that name. At the time it was on Mercurial I think or I can't remember what source controller it was on. I think it's actually on GitHub now, if it's still in development. I'm not sure I haven't even looked at in a long time but I played with that a lot and and played with it and it was basically just a JavaScript framework so you could you could set up your little HTML iPhone app and it would be You could do it two ways. You could put all or most of it all in one giant HTML file and especially if it didn't need to be dynamic at all Then you could just throw it all into one HTML file and you could actually save it to your iPhone's home screen and then it would always run and it was pretty fast and pretty responsive. Or if you needed some server side stuff, then it could load page fragments, just HTML chunks from Ajax. >> Okay. >> And it would slide those in just like a navigation stack on an iPhone app. >> Sure. Okay. >> And I made an extension for it and contributed it way back in the day. I guess it's still sitting there. I don't remember. But I wanted to be able to, like in the navigation bar, I wanted to be able to customize the buttons that were up there without having them to necessarily be... That was a part of the framework at the time that was pretty much tied to the original HTML, and I wanted a way to be able to change them on the fly. And at the time I didn't really know anything about iPhone conventions or anything, and I kept calling the nav bar the toolbar, and the extension was called TBB mod, and it was basically toolbar button mod because that's what I thought that thing up there was called at the time. Wow how far you've come. It may still be floating around out there somewhere I don't know but and it's nothing really to brag about but that's what I did and after a while I just kind of got disenchanted with that and that project I don't know who's running it nowadays but I think it was ran by people that were Joe had left that project because he went to work at Facebook and he didn't have time for it I think he got bored with it too and And I don't remember the guy's name and I don't want to call him out anyway because he seemed like a great guy when I interacted with him and stuff, but I think his situation kind of mirrored a lot my own and he wasn't working on it full time and it seemed like the project was moving really slowly and so I just kind of got bored with it and moved on and then I finally got a Mac and started learning how to make real iPhone apps. Okay, fair enough. So what iOS version did you first develop on? - It would have been iOS three or four, I think. - Okay, fair enough, cool. Excellent, all right. So the first app that you actually wrote that was native on iOS, what was it? - Probably tip calculator or something. No, it was actually, where's my big nerd range guide book, I don't remember. It was, I was working through the big nerd range guide for, I think it was actually still called iPhone OS at that time, but it was like the second edition of the book, if I'm not mistaken. And they just start you out by making you making a little trivia quiz, I think. I think it was a little trivia quiz. OK. And it just had questions in an array and a matching answer array, that kind of thing. OK, fair enough. So, from that point, let's see, the ones that I'm aware of, I guess I'll start with the first big one that I'm aware of that was released into the App Store. And that's MoneyPilot. It's actually the only one that's been released into the App Store. I didn't want to I didn't want to point that out. But I'm glad you pointed that out. Yeah, it's fair. It's fair. I'm aware that you've developed several other apps, including one you're putting a lot of time into at the moment, which you know, yeah, you're free to talk about if you want to, it's your call. But yeah, we can talk about it. On the top. So okay, so before we get into what MoneyPilot was, Were there any others between that quiz and MoneyPilot that you put together? This tip calculator? Yeah, there was a tip calculator in there. There was a fun project that I liked in the Big Nerd Ranch Guy book called Home Pwner, and it was basically just an inventory system. And it was just to teach you about a more utility type app. And it was just, you know, it had navigation stack and detail views and master detail view controller kind of thing. And it also introduced me to Core Data, storing your home possessions in Core Data and stuff, and learning how to use the camera so you could take pictures of them and attach to it and stuff. And I really enjoyed that tutorial and that project. You can actually work on that one through a couple of chapters of the book, if I'm not mistaken. And then when I finished the parts of the book that talked about it, I kept on playing with it for a long time and just kept adding more to it. OK. Cool. I don't do anything with it much these days, but I had a lot of fun with that project and I learned a lot about Objective-C and making iPhone apps with that project. Cool. Okay. So just a little bit about the platforms. So you said initially you were very excited about the iPhone. And that was one of the main reasons you wanted to you actually ended up getting a Mac and so that you could do development specifically for the iPhone. Since the iPhone as a platform goes, technically, I've realized iOS, you program in iOS to accommodate other languages as well, or rather that like, so other devices, types of classes, I suppose. So the iPad is an example. The Apple Watch is, I think, different enough, but essentially, you know, it's the code still lives on an iPhone. And then of course, tvOS as well. So since those, since the iPhone first came out, which is the other platform that excites you the most out of the ones I've listed? I like playing with with developing for the iPad a little bit too. Not as much as I do for the iPhone. I think my passion really more than anything is for the iPhone. I have been doing like some tutorials and some sample apps for the watch. I'm I'm really interested in where the watch is going. I don't dislike where it is now as opposed to the current trend of really hating on it. But I'm really more excited about where it's going than where it is at the moment. - It is interesting. - And I look forward to that. Yeah. - It is interesting how many people are actually hating on the Apple Watch. And I find it to be quite disappointing, I think. - Yeah. Well, some of that, I do put some of that blame on Apple because you know when they first introduced it and they had the keynote on stage and they had Kevin Lynch come out there and he was showing off all kinds of things to do with it. I think they kind of hyped it up and in all fairness, they did misrepresent a little bit about the watch's capabilities. Not in what it could do, but how quickly and how efficiently it would do those. and when the device got into people's hands the user experience doesn't quite live up to what it was presented. I mean there are some things I love my watch I still wear it every day I've used it I consider it the biggest tool in the fact that I've lost 50 pounds in the last six months. It was the first thing that in actually like 10 years of gradual weight gain that that actually motivated me having those activity ring complications that was the first thing that actually motivated me to like develop a fitness plan to stick with the fitness plan because I had to fill that green ring every single day and I bought the water rower rowing machine so that because I'm an introverted geek I didn't want to have to leave the house to make sure I got my exercise and I could still fill that ring and I bought the water rower rowing machine which is a great machine I love that I'm gonna give them a free plug everybody you should try it nice it's it's if you're curious it's if you've ever watched house of cards it's the rowing machine Frank uses in House of Cards. >> I know exactly the one. >> Yeah, it's a great full body workout. They say it's actually a hybrid strength and cardio workout. I don't know that you're necessarily going to bulk up muscles on it. I don't think it's that kind of strength, but it definitely, it will definitely tone you up. It definitely has me. And you work your whole body with it and I really enjoy it. It's actually become, for the first time in my life, there's actually a fitness machine that I actually enjoy to use and I enjoy having regular exercise in my life. I had a hernia operation about three weeks ago to correct an inguinal hernia and I haven't been able to get on the rower and I actually really, really, really miss it. The wife goes there to use it sometimes and I just kind of listen and it's soothing to hear but I'm sad and pouty at the same time. I can't wait to get back on it. I got about one more week at the time of recording and then I'll be rolling again. So. All right, cool. All right. So that's not really about programming, but no, no, no, that's fine. It's all good. It's all good. I mean, the thing that I was interested in is to see which other platforms you're interested in developing for. So because since since you've done Moneypilot and after that, I'm aware of two other apps, significant apps that you've put a lot of time and effort into. And one of them, which I know you're, sorry. I have done so many. I've got my my App Lab folder open here in the Finder. And it's an AppStory podcast client that never came to market, partly because AppStory kind of is on a extended hiatus, which I haven't completely given up on finding the time one day to get back to it. But Oh, I hope you do come back to it because a lot of people have said to me is Yeah, well, and people, interestingly enough, it still gets downloaded a fair amount. Apple features it sometimes in the Hour of Code thing, even though there hasn't been a new episode, I think, in probably almost a year now at this point, maybe a little over that, I can't remember. The last episode was Carlos Rivas talking about Hours Tracker. Ah, of course. It was a good episode. Which was a good one, one of my personal favorites. I really like Carlos. We talk on Twitter all the time. Let's see. So there was the app story podcast client that never saw the light of day Although it did see some some beta users did play with it. There was Let's see My schedule which has been renamed to something else which I don't currently want to disclose the new name of it Which I had a few beta testers on that one that really enjoyed it One guy really likes it and and he he's pretty disgruntled that I haven't given it more attention It was basically just a quick way for people to enter their daily work schedule If if their schedule wasn't like a simple repetitive everyday nine-to-five if your schedule floated around a lot It was trying to address the issue of being able to enter that into a calendar system quickly And I haven't given up on that, but I'm not very focused on it right now Okay, then of course there was let's see There was obviously money pilot was before all of these and I worked Hard on money pilot for like eight nine months Maybe a little longer than that before I finally got 1.0 in the store and it really needs an update now And I've actually got an update for it that I've been using myself as a beta build for a long time But it works very well for my needs But I like haven't worked out all the edge case needs and things like that You know the things you got to you've got to stop and think about when it gets out into the wild and people don't use something exactly like you do or there's bugs to it and you know because I made it I know that you know if you try and do this it's going to crash and if you try and do that it's going to crash but if you do it this way first and that way first you know just little details like that that really need to be fixed before it's available for public that I can work around perfectly fine because I know it and but I really need to do that and I'd really like to get 2.0 of Money Pilot out there one day because it's a lot better than the 1.0 as far as the appearance and the design of it. Most of the backend code is actually the same. It uses core data to store everything and I actually think I did a pretty good job of setting up my model on that and there's a lot of relationships in it so that things aren't redundantly duplicated and it's easy to update and change like payees and payers and where things go and accounts and things like that. the back end is pretty sound and still holds up and I put a lot of work into like the UI layer for 2.0 and I just haven't got it out there yet. I need to. And then I got distracted with all these other projects. Let's see and then there was one that I never gave it like a formal name and I never really put it out into beta testing. I was working on it really passionately. And it was a project that was-- it was using-- it was when the geofencing APIs were still relatively new. And it would have been a project so that if you had a child and they had an iPhone, you could put this app on their phone and set up geofences so that it would automatically email you when they got to school or when they got home from school. - Oh, nice. - Yeah, and I was actually working on that. I was pretty excited about that. And then Apple announced Find My Friends. (laughs) - Yeah. - And they had push notifications built right in for that. And so I was like, okay, so that's probably a non-starter. And actually, knowing what I know about the app market now, I probably should not have bailed on the idea because this is often the case with Apple. I don't want to sound too negative about some of the things that they make, but a lot of the times, they're kind of like to dip your toe into something and to make sure the basic needs of something are met. And there's, at the time I didn't think that there was, but there's still a thriving market for things that compete with the built-in stock apps, as long as you have a nice presentation on it or a really well implemented version of it, or maybe you have a more robust feature set. And I think that it probably still could have been a viable product if I'd stuck with it, but because of the Find My Friends, I bailed on that one. - Fair enough. Well, ultimately, I think that that's, it's good to know that you can compete with Apple apps 'cause for the longest time, they were banning apps from the store that replicated core functionality. So at least now, Apple are letting people compete with them. - Yeah, I think that might've even still been an issue partly at that time so i i don't know i'm maybe it would have been a bad idea because of that like i'm not sure that there were i don't think there were still any third-party podcast apps or anything back at that time i think this was still back at the time when they were saying you know no duplication of functionality that's already built into the iphone i can't remember exactly when they started relaxing on that fair enough so let's see done the AppStory podcast client, we did the schedule app, we did the email mom that I'm home app. Let's see. I'm trying to see if there's anything of significance. Oh yeah, I made an iTunes affiliate linking project at one point. Oh yeah, that's right. I remember that. Kind of like what Blink is now and I was pretty excited and enthusiastic about it. At the time, I liked it and I enjoyed working on it, but then I come to decide that it was when I had first started making AppStory podcast and I was networking with a lot of podcasters and some bloggers and creative types of that nature and was looking at the fact that we were all using affiliate links for things and was looking at an easier way to store and use them and share them when you needed to. I enjoyed working on that project. I liked doing it, but I ultimately just decided that the market for it was kind of niche and it would be too small and I didn't think that it would be profitable to put a lot more time into that, so I kind of abandoned it. And then I believe as far as I know, Mike Voorhees, Michael Voorhees, no, John Voorhees, John Voorhees, I think he's doing pretty well with Blink from what I understand and I'm glad to see that because it's a product that I definitely thought should exist out there. And he's done a good job with that app. It's a nice app. So, I'm glad somebody filled that niche. And it's just another thing that maybe I shouldn't have bailed on that I did. Are you seeing a pattern here? Yeah. Well, this is one of the things I want to talk about. But let's just keep going through the list for the minute. Okay. What else you got? Oh yeah, an e-juice calculator app that I had started on, which is for e-cigarettes, there's a pretty thriving do-it-yourself community about that, and basically a lot of them like to make their own juices for it. And I started working on a recipe book, essentially. And so you could store your e-juice recipes and stuff in it, and you could share them and stuff like that. and Apple doesn't let any of those in the store, so I abandoned that one. Okay then, fair enough. Yeah, I think they let some apps like that in the store, mainly like catalog purchasing apps. You can buy things and supplies and stuff, but they specifically said they didn't want any formula calculators or anything in there, because they don't support the idea of vaping and smoking, and you can't put smoking things in the store and stuff like that. like that. Although they do have drink cocktail recipe things in there, so I don't really see if there's a whole lot of difference in that. Well, yeah, and they've also got coffee apps in there too, about how to time your AeroPress and stuff. But yeah, it seems a little bit odd, but never mind. Yeah. Okay, fair enough. Well, my personal stance was, you know, I'm required to have, you know, a 17 plus, you know, a mature age rating thing on it or whatever, that's fine. I, you know, I have no problem with anything that's going to prevent children from picking up bad habits that they really shouldn't. But grown adults should be able to do what they want to do. That's a different story. I abandoned that project because there was essentially no viable market for that. I knew for a fact Apple wouldn't let it in. Okay. Oh, well. Fair enough, then. What else on the list? I think, and those, I don't know if I actually have the chronological order on all of those correctly. Oh, that's okay. That's fine. I think that my observation was that you sort of like, you do a bit on one and then you sort of like, sometimes you'll come back and tweak a bit more and so on. So, it's sort of hard to be definitively chronological. So I think you get a pass on that. That's cool. Yeah. And then I think this pretty much brings us to mowing meter. I don't think there was anything of significance other than before that one. I think the rest of them were just things that I had started and abandoned. Anybody that's been in my former beta groups that I've forgotten something, then feel free to shout at me on Twitter and let me know. Nice. So, on the subject of mowing meter, I have actually beta tested mowing meter, despite fact that I don't have a mower anymore, but I still tested it and I thought it was kind of nice. I heard you were considering perhaps actually moving beyond beta test and releasing that maybe someday. Is that true? Yeah, I'm actually considering just dropping in the store as is. Mowing meters is a project. Actually, I have a lot of passion for it. I think I want to do a little bit more to the UI first because I'd like to do something about the ultra skeuomorphic field of grass that's in the main UI. I think it makes it kind of hard to see some of the text labels and I've heard some feedback about that. I started mowing meter because it actually started as a joke between some friends of mine because I've got a friend, Scott, that's, you know, he dabbles in IOS and he wants to learn how to make apps and stuff too. I was telling him about that we were talking about the APIs for motion tracking that are available in the phone and The states that it can track and monitor and how it does it and I threw together Like in a half hours time I threw together a really quick like a real-time pedometer app that and it would tell you like if you were walking if you were running if you were sitting in a vehicle and if the Vehicle was moving and if you were walking or running it would tell you how many steps you were taking and they would filter in a couple steps at a time. And I enjoy mowing my yard. (laughs) I'm not ashamed to say. For many years, it was the only exercise that I really got. And so I kinda had a little bit of a passion for that. And I'd always been kinda curious, just how much exercise you actually get out of mowing the yard. And I was looking at that little sample project that I had built and sent to him so he could compile it and put it on his phone that he could play with it. And I was like, you know, I don't know that it would take a whole lot more work to make this a workable, usable, real-time pedometer. I mean, there's a lot of pedometers on the store, you know, obviously, probably the most prominent would be David Smith's Pedometer++, which is a great app. But it doesn't serve the purpose of, you know, how many steps did I take while I was mowing the yard? Or running the weed eater, or gardening, or whatever. It didn't have the ability to narrow it down. It just told you your steps for the day. And I was looking at it, and I was like, you know, I think that it wouldn't take a whole lot to kind of polish this up a little bit and turn it into something that could answer those questions for me, and I'm sure other people were curious about it too. And if nothing else, it could just be fun. You know, something that's just fun to play with. So I threw it together, and I started testing it myself. I did a few mowings myself with it, And I refined it a little bit more, and I added a few more options to it so that you could track a few different activities. And at the request of my brother-in-law, I added the ability for it to use-- you could tell that you were on a riding mower, which kind of defeats the purpose. But I was adding GPS functionality into it anyway, because I had-- at the time, the 5S was still brand new. And that was the first phone that actually did step tracking. And I still had a lot of friends that didn't have the 5S and they were just using 4S and 4S and they essentially couldn't play with this fun new toy that I had made. And if it was going to be a real app in the store, you could take the approach of making it free or whatever and telling people don't download this if you don't have a 5S, you need a 5S for it to work. You could even make it so it just doesn't show up to devices that didn't have step tracking. The nature of the app was always more than anything, more than a serious fitness app, it was meant to just be fun. So I wanted it to be accessible to as many people as possible and so I was adding GPS distance tracking into it so you could use it on an older device and it would just track distance using GPS. And since I had that in there anyway at my brother-in-law's request, I added a riding mower mode in there so that he could track how far he went on his riding mower. So I added that to it and then I added a list of other activities that you could do in it. It started out just playing mowing. That was all it would do. I saw one of my testers, shout out to a guy named, he goes by Phone Boy, he was actually just using it to track walks around the neighborhood and stuff. And so, you know, because he wanted to know, you know, like much like I said, what about the other pedometer apps, you know, he's like, how much did I do on this walk? And so he was using it for that. So I added like the ability to do, you could tell it you were trimming trees and shrubs and you could tell that you were doing weed or trimming, you could tell you were gardening, you could tell that you were mowing or raking. And then I added to it, you could do like running and jogging and it didn't do any calories. That still doesn't do any calories or anything like that. It'll just tell you how far you went and how many steps you got. It does do a score, which is mainly just for fun more than anything. And I was kind of proud of the scoring system. I need to tweak it for like running and walking because it's not fair in that respect. But I wanted a fair way because ultimately one of the things I wanted to do for it, and I still do want to do for it, is put Game Center in it so people can challenge each other and it can have a leaderboard. And I was trying to think of a fair way that you could score mowing the yard because there's a lot of variables in there. Some people got flat yards, some people got hill yards, some people have self-propelled mowers, some people have riding mowers. So I was trying to think of what's a fair metric that I could use that would test everybody. The first thing I did was decide, well, if it goes into Game Center, then there would be different leaderboards for the different classes of mowers. to have people using push mowers, people using a self-propelled walk behind push mower, and people using riding mowers. I would just filter them all out into their own respective leaderboards right off the bat so you don't have people competing against riding mowers and killing themselves trying to beat their score and so forth. What I ended up with is I just basically based it on average speed. - Okay. - You know, just distance over time, which gave me a really low decimal score. And then I just decided on a nice constant multiplier that I liked for it, which is either 1024 or 2048, because binary numbers for the win, yo. And so I do basically just the average. It would be the average pace, because it calculates your score just by how far you've gone and how long it's taken to do it. So it's really more of an average pace and then it just multiplies it by that multiplier and spits you out a score Mine is usually somewhere between like seven eight hundred to at max eleven hundred one day I do know one guy that had a self-propelled mower in my beta group He but the the clutch on his self-propelled mower was broke. So it just always goes You don't stop with it It drags you around the yard and he is getting like a 13 or a 1400 point score because he just basically didn't stop. But I figured, you know, if I just score it on speed, you know, distance over time, and, you know, a class division of what kind of mowers, then how big your yard is doesn't matter anymore. Whether it's hilly or flat, I guess that would maybe kind of matter somewhat, but it's not as big a factor as if, you know, it doesn't matter how long it takes you to mow the yard. your average pace is what's determining that score. And I think that was the most fair way I could do that. And if anybody's got better ideas, feel free to shout them at me, because I do hope to put this thing in the store one day. And I may just drop it in there sometime soon. I never quite got the Game Center support in there. And at the time, I was just going to put some iAds in it with an in-app purchase to turn those off if you didn't like them. Of course, that's kind of moot at this point. from what I hear, it's completely going away. I originally thought it was just going away for developers to use to promote their apps, but now it looks like it's just completely going away. Yeah, it's days and numbered it seems, unfortunately. Yeah. Which I'll just say, it is unfortunate. I think that it's filled that niche for people that didn't want to deal with all of the- The part about it that disappoints me about it is, well like for this particular ant mowing meter, you know, I made it, you know, it was just a fun passion project more than anything. And to be honest, I enjoyed making it and even if I never put it in the store, I'd probably keep it installed on my phone and I still use it every time I mow the yard. So I don't have any regrets at all about the time that I spent putting in it. But if I want to put it in the store and maybe make just a little bit off of it, iads was a good way to do that without having to import some creepy third-party frameworks into it and jump through a bunch of hoops to get their stuff working and who knows what else they're sucking down. And I'll probably just put it in there completely free now, maybe put a tip jar in it or something like that and if somebody wants to throw me a little 99 cent tip or whatever they can. But it would have been a good alternative that wouldn't have had to rely on creepy third-party stuff to put in there. So I'm kind of sad to see that go, not just for myself, but for developers in general. Because there's a lot of people out there making a lot of free apps, and they want to make some money off of it, understandably. And unless they're doing scammy, gimmicky, consumable in-app purchase stuff, which I probably-- that's not fair. I shouldn't say it's always scammy and gimmicky. Some of the consumable in-app purchases are legit. There's subscriptions to useful services and things like that. But unless you've got some sort of reoccurring subscription in there or a reoccurring in-app purchase in there, then ads are pretty much your only way to make money off of it. And even with the in-app purchases, there's a lot of people that just won't ever buy those. And they'll use free apps. And I don't begrudge them for that. Everybody has a different value they place on things. But there's a lot of people that'll just download a free app and they're perfectly happy to use it. And they'll never consider an in-app purchase. And they'd never consider a paid app. And so your only choice in that case is if you want to try and recoup even just a little bit a few fractional cents per use is with ads. And some people, the iAds as far as ads go, were relatively nice and tasteful and they weren't quite as abusive and obstructive as some of the third-party frameworks. And so I'm sad to see developers that are working in that environment and that are catering to those markets. I'm sad to see them lose that non-creepy alternative. - Well, I do think that a lot of people are going to miss, are going to miss iAd. The people that seem to be okay with it going away, the ones that either have never really used it or are big enough in other ways that don't need to, would not be the target audience. - Yeah. - So. - Well, some people just have philosophical disagreements with the concept of using ads and stuff like that. Some people are like, give it away or sell it, do whatever you want to do, but, and that's fine. Those are all perfectly valid points of views. I'm not criticizing or attacking anybody for their belief and their point of view. But for the people that are catering to that market and are using that method to try and make a little bit of money and to recover some of their development costs, I'm sad to see that avenue disappear. Because like I said, that was the only way you could put ads in an app to try and make a little bit of money that wasn't creepy. Yeah, exactly right. didn't involve importing third party code into your app that you had no control over. It was a few simple API calls, and Apple took care of it, and you didn't have to worry about what was happening behind the scenes with your app. You could trust it. So I'm sad to see that go away. But anyway, I will probably just put it on the store with no ads and maybe throw in a tip jar. I'd like to, like I said, I'd like to fix the UI a little bit and put it in there. But basically I ran it in beta all summer last summer and I had a decent handful of testers Some of them are still in there some of them are still using it and I kind of just let it expire and I back burned it During the the winter when I started on another more important project that we'll get to in a few minutes and in the spring I dusted it off and I put put it back out there and I opened a beta again and And I think my release notes in that beta said this should be the last beta before and it should be ready for the store soon and at the time I really believe that and I still really believe that and Here's here's the thing it's an objective C John There's a few more things I'd like to do for it and then just throw it out there and because If I may toot my own horn and probably hex myself and bring the the crash gods upon myself Mowing meter has actually never had a single crash in the wild At least as far as I can trust the iTunes Connect test flight crash reporting. So the code base there seems to be pretty solid and it seems to do what it does well and as far as I know there's never been any crash. And so I really should just throw it out there and like I said there's a few leasions I'd like to tie up for it. But I keep back-burnering it because, well, for starters, the next project that we'll get to, it actually grew from mowing meter. I guess you could say mowing meter was like its grandpa or its dad or something like that. The next project is definitely a descendant of it. The other project I feel is a lot more important, so I just spent a lot more time on it. And I've been diving headfirst into Swift for the past few months. I've really been enjoying Swift, really enjoying protocol-oriented programming and looking at things in that point of view and trying to train my mind to think in that perspective. Trying to throw some stuff up on GitHub, you know, some shareable code, some reusable code to show people that I'm, I mean, I do have some imposter syndrome, but I would like to show people I'm not a complete poser. I do know how to write a few lines of code. Because at this point, I don't know that saying Money Pilot, which went into the store three years ago and it's never been updated since. It's establishing much credit in that point. But I'm going to throw in a little bit of code up on GitHub that's mainly, they're smaller reusable chunks of the next project that we're going to get to. But I need to tie up a few loose ends on Mowing Meter and then I probably will just drop it in the store as is. I haven't done much with it because, like I said, I've been focused on the other project, it's Objective-C, I don't want to look at Objective-C anymore. I don't want to write Objective-C anymore. And I was the guy that for many months, I mean, if you dig in my Twitter history timeline, you can find a picture of Gollum that says, "We love our square brackets, don't we, precious?" Oh, God. Yeah, I sure remember that comment. Let's talk a little bit about your transition from Objective-C to Swift and how you found that experience. Well, I was, despite the Gollum impression and that we love our square brackets, I was never negative about Swift. I'd like to clarify that for the record. From the time Apple first introduced it, I was pretty enthusiastic about it and pretty excited about it. I was leery and I had reservations and I didn't jump on it until I think, I think Swift 2. No, Swift 1.2 because it was It was iOS 9, but it was I think it was when iOS 9 was in beta and I think it would have been Swift 1.2 then and so Thanks to a lot of the people that went before me that caught a lot of the flack and and saw it through a lot of The really rough times it's still not stable. There's still a lot of things happening fast moving in it, but uh The first few versions from what I understand were pretty rough And I was I was nervous about that and the rate of speed at which changes were being made The promise that there would that there would be binary compatibility, but not source code compatibility really scared the bejesus out of me because Like I love coding. I love making apps. I love making these projects I don't know that it's fair to call myself a developer. I probably if I'm brutally honest with myself I'm at best a hobbyist developer because I have another full-time job very much full-time job. That's not developing software So, you know, I'm still in a wave moments of spare time here and there when I can and you know it takes time away from my wife takes time away from the kids and family and stuff like that and I had to be judicious about how I try and spend my development time and I didn't really think that chasing down Code that used to work before the last Xcode update came out Fixing it so that it worked when the next Xcode update was the best use of my time So I just kind of watched Swift, I read some blogs and I was excited about some of the things that were happening but I didn't jump into it right away. But it seemed like around Swift 1.2 things started slowing down a little bit, things were getting a little bit more stable and so I started dipping my toe into it a little bit. Andrew J Clark actually was the one that encouraged me to get into it. But yeah, it looked like Swift was getting a little bit more stable and so I started dipping my toe into it and I really quickly started to really embrace it and to really love it and it wasn't long before I was looking at my brackets that I used to love and that I sent Gollum pictures about and I was thinking oh man I never want to see those again and at first it was you know just a passing joke I was like no hey you know I've worked in Objective-C for a long time I should be able to swing back and forth pretty flexibly and to be honest you know if I had a job doing this I could I could could. You know I was pretty fluent in Objective-C. I'm getting pretty fluent in Swift now. There's still a lot that I need to learn, especially a lot of the higher order stuff. And I've wrapped my head around protocol-oriented programming pretty good, but there's a lot of the functional aspects of it and some of the just the swiftiness of it that I'd like to get better at. And I am learning it and I am moving along and I'm not so dissatisfied with my progress at all. But when I got ready to dust off mowing meter this spring and put it back out into beta and to try and finish it up and actually get it out into the market it was all Objective-C and I opened it and it makes my eyes hurt it makes my head hurt and I just like I said if I were doing a if I had a development job and I had to then there's a financial motivation there and I'd be perfectly willing to roll up my sleeves and work on Objective-C but But right now, like I said, if I'm doing this as a hobby, I'm going to write what I like and I'm pretty enthusiastic about Swift and I'd like to try and avoid going back to Objective C. And so I was looking through the Mowi meter code base and I was like, "Okay, so let's just port it to Swift." And I'm sure that those— Are you seriously going to do that, Joe? Are you really going to do that? Well, that's the thing. Honestly, if I wasn't working on the other project that we're going to get to, probably, because like I said you know I'm just a hobby developer and it's nothing but time anyway. And because I do feel passionately about Moegneter, I do like it. I do love that little app. It's you know you can say whatever you want to about the UI needing some work but I love that app and yeah I probably will at some point hopefully dedicate some time into converting it to Swift. It's not a terribly large code base anyway. At this point it's not even so much the matter of not wanting to do it as much as not wanting to pull away from the current project to do it. Because my current project that spawned out of mowing meter means so much more to me. Okay, cool. So that's enough, I think about the build up. Let's just talk about it. So tell, tell me about why you wanted to do the app that you're doing now what it's called and what it's for. Go for it. Okay, it's a health and fitness tracking app. And basically, Mowing Meter kind of was a playful nudge to me to kind of put me in a fitness tracking mind. I mean, I had pedometer apps and stuff on my phone and I love David Smith's Pedometer Plus Plus. But Mowing Meter kind of sparked an interest in me and just general activity and general fitness and how many steps we could take while we were mowing the yard and stuff like that. And then later in the summer, toward the end of summer last year, I bought an Apple Watch Sport, just the cheap one 'cause you know, generation one, and I didn't wanna invest a whole lot into it. And I'm still not dissatisfied with that. In some respects, a lot of people say I got the best watch because like, I'd like to have the Sapphire lens that's on the stainless steel one, but like John Gruber in particular has said that, you know, he's worn a both, and he thinks that the haptic sensor, or the haptic motor in the sport is the best by far. He says he can feel it a lot better than he can the stainless steel models. - That's because it's lighter, but that's okay. I've covered that on the other side. - Maybe so, maybe so. - That's why, but anyway, nevermind, that's fine. - Yeah, so I got the Apple Watch and I got these activity rings on the face of it and started getting really fitness minded. At the time I was just north of 200 pounds, like 205. I have a family history full of strokes and heart problems and early deaths and my biological father died just a few years older than I am right now of heart problems and stuff. I just lost my mother a few months ago at what most would consider a relatively young age to strokes and heart conditions and things like that. And so I was thinking that I really needed to do something and because I haven't always been a big person. I hadn't always weighed like that. My family's got this weird metabolic curse. Basically we stay skinny till we get in our late 20s early 30s and I mean real skinny. Okay. And then over the years the pounds kind of just gradually add on and so I was like around 150 all through my teenage years in my 20s and then I started gradually picking up weight over the years and I was up to about 205 and my wife said that I was suffering from horrible sleep apnea, like to the point that it scared her sometimes. You know, the only thing worse than hearing an overweight person breathe is when you hear them stop breathing in the middle of the night and it takes a minute or so before they start again. And I was snoring really bad and that was just a nuisance, but she said the sleep apnea really scared her. I would get, like it had gotten to to the point to where just mowing the yard would really win me and I would have to sit down and take several breaks. I couldn't do a very large flight of steps without having to stop and breathe at the top of them. And I was in really, really bad shape. And I was looking at that family history and that future and I was thinking I needed to do something. I had to do something. And I had tried some diets and stuff in the past. I don't think I was, I don't know, you'd be the one to tell me more than anybody 'cause you've been through it. I don't think I was overweight enough that they would have considered me a candidate for surgery. No, probably not. I have tried some diet things and some low-carb diets and calorie tracking. I had tried some exercising and stuff, but basically, I hate running. Running sucks. F running. That's true. That's my sentiments on running. I know it's the fastest and most efficient way if you want to lose some weight, but F that. I'm not doing it. Running hurts. It sucks. I'm not an old, old man, but I'm not a young man either. running just screw that I'm not doing it. All right cool. Fair enough. So I got a bicycle but I never rode it consistently or anything but then the Apple Watch came out and and at first I kind of dismissed it and I was like I'm just gonna wait till version 2 comes out because you know we all know what version 1 of the iPhone was like and what the difference was between the iPhone and the iPhone 3G. So I was gonna just completely skip the Apple Watch altogether and but I was reading about it and and seeing people about it and I saw a post from people like Marco who was never a fitness minded person at all talk about how he was taking hops for longer walks and stuff if I'm not mistaken I think somewhere along the way he actually went ahead and either purchased a gym membership or bought a treadmill or both I can't remember I was listening to an episode of connected and hearing people like Vatici talk about standing out on his back balcony walking back and forth and people looking at him strange just because he wanted to you know he was so close to finishing his rings and he wanted to make sure that he got that and I was thinking about my mindset and my personality and I was like you know I think this is the kind of thing that would get me to actually stick with some fitness because you know I did those rings and completing those rings that's the type of thing since I got to watch I've not had a single night that I went to bed without all my rings full Wow That's impressive and I have done Well, and I have done some things that some people would probably consider cheating along the way there have been times when I've lowered my goal Okay Because I I just wasn't gonna make it and those circumstances would have been I had had it for a month maybe a month and a half and I was filling my rings easily every day using my rowing machine and work I'm actually on my feet for 11 hours walking and standing moving about so feeling my rings on a workday is no problem at all it actually pushes my move go up so high that I a lot of the times end up doing extra workouts on my days off just so that I can try and maintain a consistency there truthfully I should probably just let it double and triple my my goal on on work days because the days are so different and then just maybe tell it no when it wants to increase my goal every Monday morning but I can't seem to bring myself to do that. So I'd had it for about a month, and my wife and I went on a vacation. And I wasn't going to be at work for at least seven days, maybe nine days. I can't remember now at this point. So I knew that I would really, really struggle. And I wasn't going to have my rowing machine. So I knew I was really going to struggle that. So I dropped the goal for the first time for that vacation. I think I dropped it from like 920 at that point a day to maybe five or 600 calories a day. So I dropped it for that. And then I kept it there and it gradually worked its way back up over time. The next time I reduced my goal was when my mother died. Because I just couldn't bring myself to, there's no, on a day off, I mean, when I tell you this, it's going to sound like I'm complaining, but not really because I really enjoy my rolling machine and I've come to really enjoy my bike and even somewhat my stationary bike on a day off when I'm not at my day job I usually end up working out for an hour and a half just so that I can meet the same goal and so that and obviously mama died and there wasn't going to be any work so I wasn't gonna make any calories that way and I was not I wasn't in a place where I was gonna hop on the rowing machine or the bicycle or any of those things for an hour and a half to fill that damn ring. So, I lowered my goal quite considerably. Okay. And I just, I lowered it, and I left it there, and it gradually worked its way back up over time. I think it's the long-term trend is what matters, I think. It's like, you know- I feel so too, but I also know that it's not going to be a good night in the Hudson house the first time. And I know one day it's going to happen. The first night in the Hudson house that I don't get all those rings is not going to be a good night, because I'm such an obsessive personality. So, when mom died, I lowered that goal. And I think actually the way I determined the goal and the way I said it was I got on my rower for a half hour, so I'd fill the green ring. And whatever the calories I got out of that workout is what I made my red ring goal, if I'm not mistaken. Okay, fair enough. And since then, it's worked its way back up. And then when I had my hernia surgery a couple of weeks ago, I lowered my move goal. Yeah, because you mentioned that since then you haven't, you're still not healed enough yet to get to use the rower again. Yeah, the doctor really wanted me to stay off the rower for a full month. I have one more week of that, actually, as of today, next Thursday. Actually, if I wait literally one week from surgery or four weeks from surgery next Wednesday, I should be able to get back on the rower. He wanted me to stay off of that for two weeks. All I could do was walk for the first two weeks, which was fine. I don't dislike walking. It's not very time efficient for calorie burning. (laughs) I could burn calories a lot faster on my rowing machine. But I walked, and a very brisk walk, and that's how I filled my rings after my surgery. I would get out there and I do, like I was doing a three mile walk a day, and I got it down to about 50 minutes. I was doing about a 15 and a half minute mile. So that's a pretty good walk and that pleased me. But obviously because that's all the exercise I was getting, I had to lower the goal for that and I'm letting it work its way back up now. And I've been back on bikes and stationary bikes for about a week now. So I could do that too now and that's good. But anyway, so I got those rings. That was a big digression, I'm sorry. I got those rings and they really compelled the obsessive personality in me. After hearing those people, I got the Apple Watch I got started with those rings. They really appeal to my obsessive nature. I fill those rings every single day. Like I said, I've lost 50 pounds. Mad Fientist: Yeah, that's pretty good. Dr. Johnson: I've done some dietary changes, too, but the biggest difference has been exercise, regular exercise, being conscious of my activity and how much I'm actually burning. I cut out just about all drive-thrus and fast foods. Mad Fientist: Well, that's a good idea. We have an occasional pizza night every three, four weeks. And then our idea of a junk food treat night these days is Subway, Casey List, ding, ding. But yeah, that's pretty much. And then the rest of what we eat is usually at home. A lot of chicken, fish, some occasional red meat every couple of weeks. I'll grill us a steak, but mainly chicken and fish and stuff like that. salads, vegetables. So those are the dietary changes I made. And I'm sure they contribute a lot to the weight loss too, but I think more than anything, it was just the fact that I went from no regular exercise whatsoever to at least a guaranteed half hour of brisk exercise every day. Wow. And I don't hate it. I enjoy it. I look forward to it. Like I said before, I miss it. and so the watch and those activity rings actually helped me to make those positive changes. And I'm hoping that they're going to be lifelong changes and I think the fact that I've missed my rower so much after three weeks without it is a testament to the fact that maybe possibly I have made some hopefully lifelong changes. So I love the watch and I loved using it as a tool for that. Some of the apps that Apple gave us to go with it and some of the third-party ones weren't quite living up to what I really wanted from them. Like the activity.app that comes when you pair a watch to your phone for the first time. It meets the job. It gets it done. I don't personally feel like it's very pretty to look at. I think that there's a lot of scrolling to it for not a lot of data display. I'm sure that I'll have some people that say there's a lot of scrolling to the current app that we're getting to that I'm building to. But I still feel like it's a little more dense and I like what I display in my app a little more. I'm doing more than just your activity stats. I'm also incorporating a lot of Health Kit stats into it because being aware of that stuff was obviously a big part of my weight loss efforts and my efforts in making these transitions. And I have thought from day one, before the Apple Watch ever existed, from the time it launched in iOS 8, I'm glad that Health.app is on the phone. I'm glad that HealthKit APIs exist. I applaud anything that encourages people to track and monitor these things, to like you said, watch the trends and hopefully move them in positive directions. But in a lot of ways, I think Health.app is atrocious too. I look at elf.app and to me it looks like a scientist's dream. Here's all this data. It's nice and neatly categorized into the way a scientist would try and go through it and look at it. They do have a dashboard in there, but it's kind of clumbersome to add your data to it and to pick and choose which you want to show up on the dashboard. And the dashboard display itself doesn't show a whole lot of detail. once you tap it and you start driving down into the details then you're looking at the other plain scientific view that I didn't like from the main health data list. So I wanted something that could kind of combine those two apps. I wanted something that could you know track my activity from the watch and incorporate stats from Health Kit which started out with obviously I threw my heart rate in there just because that was fun and you could do it because of the watch. But I wanted my weight in there and body fat and BMI because I've actually got the the widening scale that connects to Wi-Fi and it uploads your weight automatically every day. So I just weigh myself every day and it automatically uploads it and I could watch that and I could analyze it and I've got you know trend indicators in there that tell you how your weight compares to the last time you weighed in and how it looks for the week and your body fat you can see what that is and all the usual activity things from the watch app, your exercise minutes which I was finally able to actually add the green ring exercise minutes in it with iOS 3 or 9.3 that just came out recently. Before that, that was either a non-existent API or just a private API, it wasn't public, we couldn't use it. But active calories, stand hours and then I had a step count originally, it just showed you today's steps versus yesterday's steps and how they compared. I made some... I didn't completely abandon the activity apps way of displaying some things. There's some aspects of the progress rings that I really like. Like I said, I get a good feeling out of completing those. So I've created my own version of the progress rings that I kind of like a little bit better. And some... definitely one of the things that I didn't like about activity app was the hourly breakdown the way it showed you how your calories... the stand hours one wasn't too bad as far as being able to look at the hours but still it's pretty hard to like if you missed a stand in the middle of the day and you're trying to figure out which hour that it was that that was kind of tricky because the way it's just so dense so I made some hourly indicators that I think are a little easier to read and little they stand out a little better there's a little more spacing between them and I think it I've done kind of a heat map thing with some of them like the active calories has a heat map and your steps has a heat map the the stand hours is just a tri-state status indicator it just basically there's a no status hour an idle hour and a stand hour much like the watch has but they're easier to read than activity dot app and then I was looking at active apps like MyFitnessPal and stuff and I religiously log everything I eat, well most everything I eat, occasionally I slip and I don't put some stuff in there and I do occasionally have a cheat night where I'll splurge off my diet a little bit and I don't know that anybody's going to have long term success with dieting and healthy eating if they don't occasionally splurge. I think if you completely deprive yourself of any and all kinds of fun food and eating on occasion, I think that's a recipe for disaster. I don't know that anybody can really truly just give that all up for good. But I like the way that that My Fitness Pal factored in, you know, your daily activity. You know, you obviously have a calorie goal, but you've also got daily activity and workouts, and I like the way that they they stack those on top of your daily calorie goal, because, you know, if you exercise a lot or you burn a lot of calories, you can eat a little bit more. But I didn't like the way they displayed it, so I made this fancy little dietary calories pie chart in my app, so that you could actually get a really good visualization of how much you've ate, how much is left that you can't eat, whether you've gone over, how much extra you earned from exercise. And that I think that covers most of it. And I had a request to get blood glucose readings from Health Kit in there, which I put in there. And that's still a a pretty basic cell but I'm gonna improve that and make that better over time. It's all in Swift. I've put together and structured it in a way that's from, I'm not a software developing engineering expert, but from all my experience in it, it's the most modular piece of code that I've written. It's some of the proudest code that I've written and I've constructed it in a way so that once Once I get the initial version out there, it's not going to be a tremendous effort to just gradually add more stat types to it over time. And I've made it configurable so that the user can just completely hide the stat types that they don't care about and they can stack these sections of this table view that's showing their stats. They can stack the sections and the cells that are in the sections. They can stack in the order so that they can look at what's most important to them first. Okay. How long have you been in beta test for this? 'Cause I know I've been playing with it, but I'm thinking back as to how far, how long it's been in beta. - I started on it in the winter of 2015, sometime just a little before Christmas, I started actually taking it seriously. It grew, like I said, there's not really any technical mower meter code in there, but there's a lot of ideas for mower meter, mowing meter that are in there. So I ported a lot of that code from mowing meter to Swift and started this project entirely in Swift. Well, as entirely in Swift as an app can be at this point. I started taking it seriously as far as it being able to read and display data to me from HealthKit in December. I used it privately for a while with just a bunch of cells with just basic text labels that basically just told me what I had done for the day. So do you have a timeline for when you're planning to release this out into the App Store? When it's ready. I know that's not really a good answer, but... This app... That's an answer. I don't want to take forever. I don't want it to be another project that I abandoned. I definitely will not abandon it. I can guarantee you that. But I don't want to rush it and half-ass it either. I want it to be good. I want it to be right. I'm really proud of where it is at this point. I'm getting ready to open it up for a little bit more of a public beta to get some more testers in on it. I'm working on a list of your workouts in there right now. So you can view your workouts and stuff. I plan to add a watch kit to it. Initially, and maybe permanently, what I want to do is I want to have a workout tracking app for the watch and a quick way to enter Health Kit stats into the watch because we can't all afford those expensive withing scales that upload your body weight, you know, things like that. That seems to me like a good fit for the watch, those kind of apps. So you can just get in, enter your weight stat real quick, or maybe enter your body temperature real quick, things like that. Workout tracking. I'm not sure that I'll ever port this dashboard functionality to the watch. I don't think that I've seen some apps that try to do this and I'm not gonna name any because I don't want to single anybody out and they're dealing with a very limited platform For the most part with the exception of the built-in activity rings app They're they're very limited and they suffer from poor performance or poor implementation and I guess probably is fair to say in some cases. And I don't think that with the current watch the way it is, I don't think I could make this dashboard and make it look right and be satisfied with it. So I think the watch app is primarily gonna be for data entry, workouts and health stat entry. But like I said, I'm really proud of this dashboard that's in the iOS app. And like I said, I'm adding the workout list to it. And I've got some other things that I'm not gonna tell anybody about just yet because there's a few key features want to add into this that to my knowledge nobody else is doing yet and I've played with them a little bit and I think that I can make them work well enough that I'd be pleased with the results of it and I think a lot of people would see it as useful. But the app is called Health Up Display and there's a very minimal website for it at healthupdisplay.com And I just recently made a new icon for it, which I think is much better than the original icon. And I'm not a designer. I don't claim to be a designer. And I'm sure some people may not like this icon too. But I've had pretty good feedback from the beta testers that I have. I'm about to put a form up on the website to start doing some broader beta testing. Because it's reached a point now that I feel comfortable showing it to people. It's not something that I feel like I need to be shamed of and guarded against people finding out about at this point. I feel like it's I'm pretty proud of where it is. It's still got a ways to go, but I'm really supercharged by it. This has been I still use a lot of other apps to enter health stats and stuff, but as far as my dashboard to see how I'm doing and what's helped me to stay on track with my fitness efforts. Since just before Christmas, this app has been the primary one for me. Awesome. All right. And I think it's in a good place to start sharing it and start getting some more beta testers and start really putting it through the ringers. I've really received mostly positive feedback from the testers that I have, some critiquing of it, some useful feedback ideas, some of which I've actually incorporated. And so I'd like to start getting a little bit more feedback on it, getting a few more people using it just to see how it holds up. And I don't really have a timeline for when it launches aside from when it's ready. And I know that's a terrible answer, but like I said, I don't want it to be half-assed. I want it to be a good app when it goes out there. And I have a few business model ideas that I'm toying with, but I haven't decided yet. So I don't really want to talk about that publicly at all either. - I have one more question I'd like to ask you though, before we call it a show. And I guess it comes back to something I alluded to at the beginning, and that is how it relates to- I see in your timeline you listen to a lot of podcasts about programming. How many hours a week do you think you're listening to podcasts about programming, would you guesstimate? Oh, well, let's see. Most of them I listen to during my commute. So, that's about an hour and a half each day times four to five days a week. And then obviously when I'm mowing, when I'm just working around the house or a lot of the time steering, depending on what exercise I'm doing, I'll listen to a lot of them then. Probably at least 10 to 15 hours about programming. Wow, that's pretty impressive. I think. I think. So, well, some of those shows are bi-weekly. Some of them release more than others. But yeah, I really enjoy development podcasts. Cool. I just I can't I can't code as often as I'd like and I don't have a job where I do it professionally and so I kind of like to stay connected to it and Right now while I'm really enthusiastic about Swift and really diving into that. I'm really interested in anything that That that touches on that and talks about that and that's most of what I'm listening to these days are developer centric podcasts Some stuff about TV and stuff a few other assorted tech podcasts But mostly development shows I think are what are dominating my queue right now And I think that's probably what's dominating my Twitter timeline I don't I don't tweet them as often as I used to I used to tweet every single podcast I listen to a lot of the times if I'm just busy or it's an inconvenient time I don't bother tweeting it anymore I try to There's a few podcasts that I like to kind of support I make sure that I tweet them out when I listen to them that kind of stuff. I might get the app finished quicker if I didn't do quite as many podcasts. I'm going to say that now because I'm sure somebody's going to say it at me. Just to wrap up, I just want to ask one last thing actually. That is, what advice would you give somebody who's interested in learning how to program for iOS? Where would you suggest they start and what do you think they should focus on? So the first thing is if you don't already have it, get a Mac, because you can't do iOS development on Windows. Second is to just get some books, get some tutorials. There's a lot of different resources online, some of them free, some of them that you pay for. I don't really recommend any of them that you pay for right up front initially. I mean, I'm perfectly fine with buying a book. I wouldn't sign up for anything with monthly memberships and stuff like that, or even annual memberships initially at first. Get into the free stuff or maybe pick up an inexpensive book you know 50 bucks or less. So roll up your sleeves, start writing some code, get into it, some tutorials. There's a lot of free stuff. I mean aside from the Mac you can get into this completely free from the web. Just get in there, start learning, get some absolute beginner tutorials, roll up your sleeves, write some code. As soon as you get the basic fundamentals under your belt. Keep working on more intermediate tutorials and maybe even some advanced ones. But start thinking about a project, that app that doesn't exist that you'd like to exist or that app that exists but isn't quite what you think it should be and your own version of it. For me personally, and I've heard from a lot of other people, I don't really think this is bad advice to say. You can follow tutorials and stuff all you want until you're blue in the face and you can learn a lot from them but retention of that knowledge is kind of hard when you're strictly just doing tutorials and you won't retain it you won't really learn how to truly think about applying it and to structure your your code and your design patterns and your data structures and things like that pick a project that that means a little bit to you that you'll be enthusiastic about and start Start working on it, even if you're not ready for it. Because having that goal will push you and it will give you a motivation and it keeps it from being repetitive, just like tutorials and stuff. I find having a project, and this is how I have so many projects that have been abandoned and a broken string of app children along the way, but pick a project that you're interested it in and do tutorials and stuff and seek out Stack Overflow is a great resource. I don't necessarily advocate copy paste coding by any means, although there is plenty of it out there. Pick a project that would be an app that you'd like to exist or a better version of an app that does exist and start trying to solve the problems of that project. you get stuck along the way, find a tutorial that's addressing some aspect of that or a similar implementation of it. Or go to Stack Overflow when you run into particular problems and look at other people's solutions and even GitHub is a good place to find code. And a lot of that is open source and you can use it for free and you know you just got to be careful with your license attributions and stuff. I'm kind of careful myself, I don't really like to import a lot of third party code into my app and in this app there's currently nothing in it that I didn't write or that Apple didn't write. It's not that I have anything against people doing that, but a lot of that times you've got this black box and the black box isn't so dangerous if it's not like a library that's been sealed up that you can't get into if it's open source and you can get to the code and you can understand the code that's in there or at least begin to understand the code that's in there so that when things don't work right you can roll up your sleeves and you can try and troubleshoot it and you can try and fix it, then I'm not necessarily against that. But if you go looking for a lot of black box solutions just because they can fix something that you don't know how to do and you don't understand, it may get your app or your project working right for that moment. But when you run into problems with it down the road or you outgrow what it can do for you down the road, you haven't done yourself any favors as far or or there's an OS update and something in that framework breaks or causes other side effects then you haven't done yourself any favors by importing these massive libraries of code that you don't understand and so try to judiciously export third-party libraries into your code favor the open-source ones when you can actually get to the code versus the ones that are just a static library that's all sealed up and packaged and it's truly just a magic black box. But you know just just start working on a project and and move toward your goal and if somewhere along the way you get disenchanted with that project and you lose interest in it well it's perfectly okay to hit file new and start a new Xcode project and start a new one. Hopefully you'll get some of these out though even if they're just free apps in the store and you can you know show your friends and family that you made them and maybe other people will like them too. But uh it's a I don't think anybody should unless you're going to school and you're getting a degree and you really want to do it as a profession I don't think anybody should get into it thinking this is going to be the thing that changes their life and gets them rich quick at all because while that does happen to a few select few it's really rare and it doesn't happen don't get into it thinking you're going to get rich in the App Store. Get into it because you love coding because you love programming you have an analytical mindset you love challenges of problem-solving and things like that just do it for the love of the code more than anything do it for the love of the code and if you got the love for the code and you've got a good project that stimulates you and challenges you then you'll probably never get bored with it and you'll have picked up at worst case scenario a great lifelong hobby and maybe possibly even could turn it into a lucrative side business or if you're one of the lucky few, then maybe you can actually turn it into a company and a business and make a living solely off of it. Or maybe some of these endeavors could possibly get you a job somewhere else because it's GitHub and apps in the store for a developer. That's kind of a resume and a portfolio to show that you know what you're doing. Cool. Awesome. All righty. Well, thank you very much for sharing all that, Vic. And if you'd like to talk more about this, you can reach Vic on Twitter @vichudson1 or you can follow Pragmatic Show to specifically see show announcements and other related stuff. Pragmatic is part of the Engineered Network and it also has an account at engineered_net that has announcements about the network and all of its shows. And you can check them all out at engineered.network today. People are really loving Causality and Analytical. They are solo podcasts that I do. looks at cause and effect of major events in history and Analytical is, well, just listen and you'll figure it out. If you like Pragmatic, there's a good chance you'll like it too. Both of the shows are about 30 minutes each, so they're pretty easy on the ears and they slot in nicely. So make sure you check those out. And if you'd like to send any feedback about the show or the network, then please use the feedback form on the website and that's where you'll also find show notes about this episode. If you're enjoying Pragmatic and you want to support the show, you can like some of our backers, Brian, Ted and Virginia, and Chris Stone. He and many others are patrons of the show via Patreon, and you can find that at patreon.com/johnchiji or one word. If you'd like to contribute something, anything at all, it is all very much appreciated. So as always, a special thank you to our patrons, and thank you to everyone else for listening. And of course, thank you especially today for sharing all of that background and history and knowledge. Thank you so much, Vic. Thank you for having me, John. Sorry, everyone. [Music] (upbeat music) [MUSIC PLAYING] (upbeat music) (upbeat music) (upbeat music) (upbeat music) (upbeat music) (upbeat music) (upbeat music) [Music] Don't apologize. I felt it was in order when I looked at the time.