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.
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.
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)
[Music]
Don't apologize.
I felt it was in order when I looked at the time.