Leo Dion (host): Welcome to another episode, empower Apps.
I'm your host, Leo Dion.
Today I'm joined once again by Josh Holtz.
Josh, thank you so much for coming on.
Josh Holtz (guest): Thanks for having me again.
Leo Dion (host): I will see you in person in a few weeks and
we'll be talking about that, but we'll get started talking 29 days.
I'll let you go ahead and introduce.
Josh Holtz (guest): All right.
I'm Josh Holtz.
I've been the lead retainer of Fastlane since 2018.
Core contributor since 2015.
Revenue Cat is my full-time day job right now.
I work on mostly things related to Apple App Store, Google Play.
It might be SDKs, it might be APIs front end, whatever it our team needs.
And then I'm also hosting a Swift and iOS conference called
Dish Dish Swift in 29 days.
I also work on Indie Dev Monday, which is a newsletter for indie devs.
And then I also have some indie apps.
Not everything always takes equal priority all the time,
but I switch off here and there.
Cause that does sound like a
Leo Dion (host): lot.
Yeah, it does.
It does a bit.
Yeah.
So you're, I want to talk a little bit, we got a lot of stuff to
talk about today, but I wanted to start off by talking about.
Fastlane and we talked about this a few months ago, but you, there's
been some stuff on Twitter about it, but just like, how does the
maintaining work and like, how is it funded and that kind of stuff,
because there's some questions about whether there's other ways that can.
Maintain and flexible.
Cause I know I'll just start off saying Fastlane's.
Awesome.
I love it.
So it's like pretty much the only way to do CI with
getting an app in an app store.
Yeah.
How what's like the future of Fastlane when it comes to main maintenance
and funding and all that stuff?
Josh Holtz (guest): Yeah.
So I'll give a little bit background history first on like Fastlane's
ownership and that kind of stuff.
I guess going back to 2015, Felix started Fastlane back in it was
actually probably like 2014.
But it was open source, just his it got big popular, it got acquired by Twitter.
And then under the fabric arm of Twitter and then Google.
Fabric for like fire based stuff and Fastlane came with it.
So Google took control in 2017, I believe and did a,
had a whole team around it.
Did a like huge, amazing version of it version two, which kind of combined all
the different tools into one major tool.
So that was super awesome.
At that time, fast, Fastlane and Google was also working on a CI product, which
is actually somewhat open source still.
It's archived on the Fastlane GitHub org.
But at that time most of the team was working on the ci, so I was brought
in as a part-time contractor to do the maintenance of the actual like tool.
So I did part-time maintaining through Google from 2018 to 2020.
My contracting gig ended after two years because Google policy stuff.
So I actually ended up becoming a Google vendor for a year and a
half and worked on Fastlane full.
But then I changed to work at Revenue Cat about a year ago or so.
Just cause it was getting hard to deal with getting that vendor relationship.
It was becoming quite difficult to deal with.
And I want something a little more stable.
So I'm still lead maintainer but I'm not working on it full-time.
F and getting funded by Google anymore.
But I was the only one getting funded directly since I was
working on it full-time.
We do have a pretty awesome core team.
But all of their time is donated has been by themselves
for the past five years or so.
But also my time in the past year and a half has also been
just out of my free time as.
There isn't really, hasn't been in the past a good funding setup for it.
Just because Google was, did have their own team to support it, and then it
was going through contracting to me.
But there really hasn't been like any sort of like public donation towards
it just because Google does own it.
So the current status right now is there are a bunch of maintainers.
I'm still maintaining it but there's just no one full-time
getting paid to support it.
Leo Dion (host): So there's I know there's been talk about
some full like mobile open source foundation and things like that.
What's the story with that then, as a possible way to, to fund.
Josh Holtz (guest): Yeah.
Yeah.
So there's a, so we've been, I've been trying a few ways.
One way it would've been to open like an open collective for it which is
like GitHub sponsors, but a little bit easier to split among bigger teams.
And I think Google does support donating to that.
So that was one of my options if Google wanted to donate to that, and then we
could split that among our core team.
But then Google theoretically not theoretically, Google still owns all
the IP and get repositories and stuff.
But another option is, which is what Google's working on, which is
super amazing, is donating Fastlane to the mobile native foundation.
Okay.
This is a open source foundation specifically set up for mobile stuff.
Hence the name created, I think it was created by Keith
Smiley, who works at Lyft.
It's been around for quite a few years.
There's a handful of projects in it.
A bunch of different people are involved with.
I think there's 50 different organizations and I've been trying
to get fast line in it for a while.
It's really hard because there's no like huge proponent inside of
Google right now to push that along.
So this is something that like I've been wanting to do for probably
about a year and a half, two.
But thankfully Peter Steinberger, about a month or two ago made some Twitter
noise about about it, like the, just our general maintenance speed right
now and stuff, which is totally true.
Like things have slowed down.
It's just because nobody is working on it full-time.
So he made some noise, which I wasn't ready for, but.
Absolutely loved it because it's what we needed to get it going.
So after he made some noise he opened a discussion on the mobile
native foundation, GitHub org.
And yeah, we actually got someone from Google or two on there
that actually said Hey, like there's actually moving inside.
It's going along.
It's getting in the.
Approval phases.
And there's just a lot of legal and PR involved with it, even though
ideally it should just be like here's the code, here's the domain.
That's pretty much all involved.
But there is just a lot of like enterprise stuff that is involved.
So it is gonna be a slow moving process.
But I don't think it's moving as slow as what I actually expected.
We actually heard movement within five days.
Nice.
Which Twitter noise happened on a Saturday.
We heard about stuff.
There was a holiday on Monday.
I think we actually heard movement on Tuesday or Wednesday.
So considering like Google size, like that seemed like incredible speed to me.
What so that's kinda the state right now.
We're in just a waiting phase of getting it all approved and then
hoping that it actually does get approved and then transferring stuff.
Leo Dion (host): What would you in, in, in the best scenario,
what would you like to see done?
With Fastlane?
Assuming everything moves smoothly.
Josh Holtz (guest): Yeah, so everything would get donated to mobile native
Foundation which actually is a sub foundation of the Lennox Foundation.
Okay.
So it has that foundation's whole support, donation system,
all of that kind of stuff.
So ideally we would have a bunch of different companies who use
it, support it donate to it.
We get this nice little fund.
It actually doesn't need to.
A lot.
But that would give our whole core team time to actually put aside and.
Do stuff.
So like we could probably pay somebody part-time, three quarters time for
the entire year to help maintenance issues, triage, keep things going.
If some big change happened, we could probably ramp up to one and a half
people for a bit to try and crunch new app store connect API changes
or Google changes of some sort.
So it would just give us a little bit more stability.
Or I guess not really stability but like a constant amount of
time actually being put on it.
And like our core team actually being rewarded is not the right
word but paid for their time.
Rewarded for their time.
Yeah.
Because right now Yeah, cuz yeah.
Yeah.
Which it should be Cause it's a tool that's pretty much industry
standard for CI mobile stuff.
Yeah.
And like it.
And like I would still do stuff, but I don't want it to be just me.
I don't scale well.
Like I still wanna be lead.
I don't necessarily need to be doing all the work all the time.
Money does not need to go to me.
I want to go to my team that actually can scale and just
help improve all the parts
Leo Dion (host): of it.
Yeah.
That's awesome.
Was there anything else you wanted to mention about Fast?
Josh Holtz (guest): I think that's probably the biggest news right now.
We definitely aren't releasing as as quickly as we need to right now.
But luckily like most things have been like stable June until tomorrow,
because I just said this, things are gonna I was just gonna say
June, but since we are mostly using.
Yeah, but since we are mainly using the App Store Connect API now for almost
all of our things like thing like the Apple side of things don't break as
often unless you're using Apple id.
And then there was a month ago where you got locked outta your
account, but that was a whole thing.
But like we, we definitely have a huge backlog of things we want to approve on.
There's a lot of issues and prs that are still coming in that we need to triage.
And once, once we can actually dedicate more of our team's time,
we can go through those a lot.
And if anybody who's listening to this does want to help things
move along, the money from like our users is not really the issue.
But if people do wanna help contribute, pull requests are huge.
Look at issues that you might be able to solve.
Like we definitely appreciate every contribution that comes through.
Even if you're not like a Ruby expert or anything like that, create the pr.
We will still help like.
Fix it, add commits to it and make sure it gets merged in.
But just having somebody who can help with that PR and test it themselves
because there's so many different use cases and things to set up.
Yeah, I bet.
Yeah, like just reviewing a PR isn't really just code.
We pretty much have to test every single pr even though we do have
unit tests, a lot of things are more like integration level where we do
it to make sure like that service does work correctly and all these
different build configurations, get the, this project set up the right way.
So having people.
Commit pr.
So who can also test those?
Makes things move a lot closer.
Awesome.
So that's a good way to contribute if you're a developer.
Leo Dion (host): I never thought about testing, but
yeah, that makes total sense.
If you wanna test out a pr, that would be a, that would be a great way to help.
Josh Holtz (guest): Yeah.
There have been some that are like 10 lines of code, but in order
to like, to test it, you have to.
Get a Catalyst app built for Mac and then have that get submitted
to the app store and wait for the beta to get approved.
And then you can do a thing like that might be an extreme example, but there
are times where like I, I had to test something after it got approved for
a test flight release, which requires it to do its processing and stuff.
So some tests may take up to 30 minutes and then when you have
other life stuff going on, you're like, I'm just gonna start this.
And then it's two days later.
So like some of those testings does it gets
Leo Dion (host): hard.
Yeah.
There are those of us who don't just do iOS apps, who have Mac and watch apps.
So I totally got it.
I totally get it.
So one thing I wanted to talk about is a little app you've been
working on that Involves kid stuff.
PlayPen.
You want to Yeah, I wanna, I've been interested in that, not
only as a parent and a developer, but just like how guided access
works and things like that.
You wanna talk a little bit about the app and how that adventure has gone?
Josh Holtz (guest): Yeah, for sure.
Yeah.
So the app is currently in a little hiatus while I'm doing Dish Dish
stuff, cuz that takes priority.
But I've been wanting to create like a kids app for some time just cuz I.
Two kids now.
One is my son's a little over two, my daughter is six.
And like I don't want to give them like screen time all the time because that's
apparently bad or something like that.
But they are gonna take control of your phone.
You're gonna be in a car somewhere and like you just need time to
sell them down or you're in airport or restaurant and you just need
to distract them a little bit.
So I was like, I wanna create a kids.
I have to just see that experience cuz all of my apps have been
developer focused and it's cool, but I want something a little bit more.
But I also wanted to create a
Apple Watch app as well.
Like I've never done that before, so I was waiting for
the right time to create one.
And then I was at Dub last year and it hit me like, oh, I can combine a
kids app and a Apple Watch app and solved two birds with one stone.
The problem that came from this was we were driving a lot to the l to my
mother-in-law's house last summer.
And my son couldn't really keep himself too occupied for the whole time.
So we'd l hand him our phone, he'd watch Sesame Street or something on
YouTube, but as soon as it ended, he.
Freaking out as I would too.
And the phone did have guided access mode on, so he couldn't hit next
or back or anything like that.
Yeah, he could just hold the phone and be fine.
But it was usually stuck where he was and it was just this repetitive process
of reaching back, grabbing the phone from him, unlocking it, going to the
next one or un pausing or something like that, and handing it back.
And I'm like, it'd be cool if we could just like remotely control what
he's seeing on this locked phone.
Okay.
And then like I was driving like one hand on the wheel and I.
I have a watch on my wrist, like I can give him the phone, just toss the
phone backwards behind me and then I can control everything from here.
So what PlayPen is it's essentially this app that has like little
mini apps in it, which is YouTube is the big one that I use.
You can.
Oh, you can choose photos on your phone to watch, or I have this
little soundboard that he can tap.
But it's these small activities that you can give to your kid, lock the phone,
and you can actually remotely control what is actually on the phone from your.
Okay, a watch.
So if he wants, if he's in the mood for Sesame Street, I can just tap my watch.
That'll start playing.
If he wants to do the soundboard, tap my watch, that'll start playing for him.
If he wants to watch a different YouTube, like Dino Train or
Blippy or something like that, I can do that all from my watch.
And like he's happy because he is watching or playing
with whatever he wants to.
I'm happy because he's happy, and then the phone's happy because it
is locked and it it's not he's not going in and deleting apps calling 9
1 1 or whatever kids do on the phone.
So it's his fun little parent utility that I created that
I thought was just for me.
But it turned out that a lot of people actually also liked it as well.
And my end goal is to have a whole bunch of different
activities for them to do, just.
YouTube, maybe little games, learning things, soundboards.
Nothing that is like super complex to make or for a kid to
use that is, they're gonna just be drawn in for the entire time.
Cuz springtime is bad.
But just that little like PlayPen time for when you're a parent
and you need that little break.
Break.
Leo Dion (host): Yes.
I'm quite familiar with that.
Do you okay, so couple of questions.
First, I guess first Dad questions.
How do you lock down what they can watch on YouTube?
Josh Holtz (guest): So the I'm actually using an iOS library I think it's called
YouTube Player or something like that.
So I actually make use of that.
So it's actually not through the YouTube app.
Everything is through the PlayPen app.
Okay.
And this YouTube player.
I think just ends up launching YouTube in a web view.
Yeah.
And then the YouTube API
Leo Dion (host): built around that.
The YouTube player API is totally JavaScript based, so Yeah, you
have to do a web view right now.
Yeah.
Oh
Josh Holtz (guest): Yeah.
And it actually works out pretty well.
Cause you can do playlists, you can make it untouchable.
You can go back and forth.
Thanks.
It does do a pretty good job.
There are times where it may.
It may end up like not loading properly, so you just have to
restart the view or the YouTube player thing, whatever it is.
Okay.
So yeah, I'm not really locking down into other apps.
I wish I could because then I could go between like HBO Go
Great and Netflix, but I'm pretty much only locked into what I can.
Display in my,
Leo Dion (host): so basically you set up, do you like,
set up a bunch of playlists?
Oh, this is my bluey playlist, this is my cocoa melon playlist.
Exactly.
And then you have an
Josh Holtz (guest): interface not cocoa melon, cuz coco melon drives me crazy.
But Miss Rachel Rachel, Sesame Street, Blippy, Dino Train
Leo Dion (host): accidentally ran into Coco Mellon last week, and
I've always avoided it, and then I have like my six month old was just
like absolutely enthralled by it.
So unfortunately that's an issue.
Yeah.
Josh Holtz (guest): It accidentally came on and my son just glued to the tv.
I'm just like, Nope, nope.
Yeah.
We got a, we gotta ban this from my,
Leo Dion (host): What else was I gonna say?
Oh, so the developer question is, I assume you're using, watch connectivity,
I guess to talk to the phone or, okay.
Yes.
Correct.
How is that experience and how is the whole I'm curious, as somebody
who's built watch apps, what's the experience with that and
building the watch app overall?
And testing it.
It
Josh Holtz (guest): actually wasn't as bad as I thought it was going to be.
Okay.
I didn't expect to use watch connectivity.
I thought I could just use like the shared preferences that were
shared over like an app group.
But it turns out that the watch app does not get those.
Okay.
So that was that was heartbreaking cuz that just seemed easy.
Cause then if that worked, then I could actually make it work.
Not just from watch to phone, but iPad to watch.
A little bit easier with just one system.
That didn't work out.
So I'm using watch connectivity, which means it on right now, it only goes
from to the watch phone to the watch.
I'm actually not bad cause I'm not actually sending there's not
a ton of back and forth really.
There's one huge object that gets passed to the.
That, that, that shows all the activities, all the options that you
can choose from, and then you really just press a button on the watch.
It sends like an ID over and then the app listens for that and then
just changes what's on screen.
I've had personally, I've had very little connectivity issues
between the watch watching the phone, but I'm not doing like a
lot of streaming back and forth.
Yeah.
I'm sure if there's a lot of streaming, a lot of.
Other requests that depended on other requests, like it would
probably turn into a disaster.
But as the way it stands right now, it's really just like when
the app loads, it sends one giant payload over of all the things
DO'S data, or do you, you just tap
Leo Dion (host): on the watch.
Do you send message dictionary or send message data?
Oh,
Josh Holtz (guest): man.
Probably dic.
I think it's probably dictionary.
Usually it's dictionary.
Yeah, that's a thing.
Or I make it a codeable and just send over the string.
Okay.
I'm not real.
I'm not really sure which one I'm doing.
It's been a while since I looked to get code.
Right now it just works the way it is, but Yeah, there was some playing around
trying to figure out like what format to do and all that kind of stuff, but
whatever one, I chose it, it seems.
Leo Dion (host): That's awesome.
That's awesome.
So that's something you'll probably finish up after what
we'll talk about next, right?
I assume Hopefully.
What are you gonna do though if you're not finished by June and
then you see there's a ton of stuff you can be doing with it for
iOS 17 and watch OS 10 and stuff.
Are you gonna be
Josh Holtz (guest): like then it's gonna get.
Ben's gonna get released in September and Eric, it's gonna
require people to use the new iOS.
Okay.
So that's if's some stuff's.
The good thing is, I, the good thing is I don't have any users right now.
Yeah.
And it is something that I made for myself, so I really don't care
like what the minimum version is.
If I can go back a version without losing too much, great.
I get a bigger customer base.
If I have to go up to The new version that's not released yet.
I really don't care because I don't have any users.
So that makes total sense.
That's the best part about being a developer and also worse about.
Worst part is I can make stuff for myself and I use it and
I, I'm not really looking for the big customer base at the
Leo Dion (host): moment.
Yeah.
It makes total sense.
Before we get into pizza, what's the developer experience with Guided Access?
Because I know, so my experience with Guided Access is the same, where
it's I'll, when we do screen time, it's like I put on guided access and
I put it on some app that they want to, or game that they want to use,
and then I give them an iOS device.
That's like my dad experience with it, but I don't know as far as
development, how guided Access works.
What does it give you?
What does it tell you?
Josh Holtz (guest): So I wish there was more.
I'm hoping for some more guided access things to be available
for the next iOS version.
Yeah.
But if it's not like I have a decent workaround and
explanation for the users.
So the worst part about guided access is mainly to get it using.
Like the way that most people probably use it is you go to
accessibility and turn it on to your, like triple tap of the home
thing or power button, whatever.
Yeah.
Power button to enable it for the current app.
Yeah.
But the best way to do it, and I also provide something for this in the app is
there's a shortcut action to start it.
Oh, okay.
So what I do is I actually have.
A play pen shortcut where you can choose where there's a, an
option to choose the activity that you want to open the app up to.
So it could be a YouTube playlist that you could choose the sound board.
So you can choose one of those and code that into the shortcut itself.
Okay.
Or you can have it prompt you with options.
And then after that, there's a builtin shortcut action to.
Guided access mode which is the easiest way to do it.
So I actually have a shortcut on my home screen that I just single tap loads,
PlayPen get guided access mode starts.
And I actually set the volume to 30%.
So it gets into this nice state of not too loud for him, but he can hear it.
This screen's locked and YouTube is up, and I just
toss my phone towards him and.
It's the phone's in the perfect state.
Got it.
Access is on, it's locked.
And then I can control stuff through my, through.
Apple Watch app.
That's awesome.
I would love if there was a way to, like in the app itself to enable it.
There actually is an API for enabling guided access mode
programmatically, but it requires like the enterprise mbm Oh, permission.
That makes sense.
So like the technology is there but just not for public use.
Do you so it would be nice if there was like a an entitlement
that you could gain for your app that, that, like just your guided
access, get this guided access mode.
Do you remember the
Leo Dion (host): drama from like a couple years ago
about MDM and like para apps?
There
Josh Holtz (guest): was like, there used to be a whole, I did a little
bit of MDM back in 2015 there.
There used to
Leo Dion (host): be like a whole bunch of apps, parent apps
where you can control your kid's iPhone and I think like Apple
was like, no, you can't do this.
You can't use the mdm.
That's probably, yeah.
So that there's like that backstory cuz I totally remember that we
had people like, oh, you should use this app for your kids so
you can control their iPhone and yeah, that's what they all did.
They all used MDM stuff to like basically do it.
And Apple was like, no, you can't do
Josh Holtz (guest): that.
That seems like way over-engineering though.
I it, yeah, it is.
Remember it is.
I that set up.
I had MDM set up for for a startup once where we had iPads and bars and stuff
like, so we had to use MDM to deploy new versions and all that kind of stuff.
And it was a headache.
I would not like it made, it makes sense on a business level.
I don't want to do it on a parent level, like that's, I'm already short on time.
I don't wanna, I don't.
Deal with MD and stuff.
Yeah, but I'm hoping that maybe they release this maybe as an entitlement
that you could do for your app.
It, it requests a permission to like, Hey, let me control this kind of thing.
Yeah.
So apps just don't do it automatically, but,
Leo Dion (host): I have that'd be it.
I so yeah, I have.
My six month old is my youngest and I'm my oldest.
I have a teenager now.
And now we're like starting to dip our toes into figuring out okay,
like how do they do their own device?
And that's when we start looking at like screen time.
So I had, I actually bought recently a family Mac.
I've never had a family Mac.
All my Macs have been for work.
Okay.
And like we set up an Apple ID so they, they can log in
and screen time on the Mac.
So I'm like starting to dip my toes into how to like,
restrict the phone and stuff.
And we're like this case we're not the yet.
I'm not.
Yeah, I know.
Oh, and it's Yeah, we're okay.
But I don't wanna get too much on the show on a personal sidebar, but we're
I've been trying to avoid buying any iOS device for them for as long as
possible, but now it's like we got broken Kindles and broken MP3 players
and it's man, if there's only device that can do all that for them, and
it's oh, but I don't want to do it.
I don't want to do it.
I don't want to.
It's like we got a high schooler who might text message us for rides
until she can drive and anyway, so yeah, I'm really interested in this
whole space and I feel like, yeah, Apple's kind of, it'll be nice if in
June they really expand that stuff.
But we'll see.
Yeah.
Josh Holtz (guest): Yeah.
Crossing my fingers that yeah, that, that happens.
And then I can punt the release of this until September and then bump
them in iOS version to whatever iOS version The next one is, I forget
what number we're on, but that's 17.
Leo Dion (host): 17, yeah.
S 17 and 10, or that's what, oh, yeah, because I've been
looking at rumors and stuff cool.
So should we talk.
Yes.
Next time can we talk about pizza?
Let's talk about pizza.
Next topic.
Let's go.
Josh Holtz (guest): Yes, please.
Leo Dion (host): Please.
Why?
Why the heck are you doing this, Josh?
You're not supposed to be doing this too.
You already have a full plate.
You can't have pizza on your plate too.
Josh Holtz (guest): I like self-inflicted pain.
There's just something fun about.
There's just something fun about causing myself issues
and then trying to solve them.
Leo Dion (host): So that's
Josh Holtz (guest): that's why I do what I mean.
Leo Dion (host): I'm, this is awesome.
I'm super excited about Dish Dish Swift, are you, is the sh is it sold
out or can people still buy tickets?
Josh Holtz (guest): That is, people can still buy tickets?
It is, we are nearing full.
So by the
Leo Dion (host): time we release this episode, it's, this might be sold out.
Unfortunately,
Josh Holtz (guest): it might be sold out, but there, yeah, it's, I
need to do some counts again and get like final numbers with everything
that we're putting into the room.
I did not expect the the number of tickets to be sold that we actually
had I got a space that was big enough for I think 300 people.
And like classroom styles, seats, so like tables, chairs, set up.
So you can have your computer there.
I was gonna be happy with 125 attendees.
That was my goal.
125.
Great.
Like we have a lot of space, like we can split the room for like meals
and conference and no, we're at.
Including speakers.
We're nearing like two 50 right now, and that's not including like
sponsors and that kind of stuff.
So we're pretty much nearing capacity which is amazing.
Yeah.
If this happens for a future Dish Dish version, I'm gonna
have to maybe get a bigger space.
But this is way, much, way more than what I could have
asked for the first year.
Leo Dion (host): Yeah, like what's been the experience getting this conference,
putting it together yeah, this is great.
Josh Holtz (guest): It's.
Like planning a wedding?
Yeah.
For the most part.
So like you, you get a venue, you plan food.
You, the only main difference is like sponsors speakers and
sponsors for the most part.
Yeah.
And I did have swag at my wedding, so I guess they're
that's not that's still the same.
But it was like yeah, it's.
It's pretty much in the realm of planning a really big wedding
which me and my wife did plan like four, four years ago.
So it was, it's been, it's pretty close to that.
The good thing is my wife is actually helping me with this
so like she's doing a lot of the venue, vendor kind of part of it.
And then I'm doing like speaker, sponsor we've been teaming up on swag.
So it would definitely not have been possible if she wasn't helping me.
It probably could have been cause I would've maybe
had to find somebody else.
But working with her, like in our same house has just
made this like an amazingly.
Thing to do since we started it in September.
Or
Leo Dion (host): The kids are helping too, I assume.
Josh Holtz (guest): They're not so what?
So no.
No.
They I have amazing kids, so like they, they're actually like super wellbe
behaved most of the time, thankfully.
So like, whenever we have to do something deepish related,
like they make it super easy to do just hand and play pen.
Yeah.
They're not exactly but yeah, they're they're not really like
contributing anything major.
But yeah it's been a fun, fun process.
A little bit stressful times with like AV vendors Oh, yeah.
And changing prices on us.
So that's probably been the most stressful thing is the AV vendor.
But besides that it's gone pretty smooth.
Finding a, like picking the venue we wanted in Chicago.
Was actually tough because Chicago is pretty, pretty widespread.
Yeah, that's true.
It's a pretty wide city and it, I would've loved to have it
downtown Chicago, like next to the lake, but like for a first
year conference, that's expensive.
Probably.
Won the price.
Just I couldn't do it.
We didn't really have any starting budget from previous
years, so it was all like, we were like personally backing it.
When we like picked a location.
But I also want it to be easy to travel to, like from
people that were flying in.
Yeah.
So I want to be closer to the airport, but there's no, there's not like a ton
of cool places to do it close to the airport cause it's pretty suburban.
Okay.
But the place that we picked is actually it is a hotel that's
close to the airport, but it is like an, a nicer, bigger hotel.
Does have a great place to host the conference.
They have.
Shuttle going back and forth between the airport.
Okay.
24 7.
And it's about two miles from the airport.
It's close to the train station, and people are taking the train, either
like from the city or to the city if they want to go ex explore that.
It's by like an intersection of three different freeways.
So if you're coming from the north, coming from the west, coming from the.
It's easy to get to.
So the, like the location was mainly Fort travel, making it easier for
our attendees to fly in and just be at the venue and then they
can travel downtown if they want because the train is right there.
It was hard because there's so different places, but also we were,
it's hard because we were very limited with what we were looking for in
terms of like price and location.
Travel Ease.
Leo Dion (host): What?
Oh, what's a topic?
Speaker, or what's a thing that you really want to plug
about this conference that you think is something people are
gonna be really interested in?
Josh Holtz (guest): I think the indie dev specific day is unique.
Yes.
I've been talking with some people for years it'd be cool to have an indie dev.
But the hard part, indie dev conference is like it there, the Indev
community probably feels pretty small.
And it it'd be hard to get people just to come for like
that kind of conference.
But the cool thing about our community is like a lot of the iOS and Swift
devs, do indie dev on the side, there might not be full-time indie devs.
That's not the right.
But they're like, it doesn't need to be like a pretty good
lap of Indie and iOS and Swift.
So I was, when planning this conference, most conferences start off with a
workshop of some sort, like a Swift workshop or something like that.
But I was like we already have two days of Swift.
Like maybe we can do an indie specific day on the front side, make it a
little more like indie, business focused indie journey and maybe.
Inspire more indie devs get indies together to finally
meet in, in one place.
So I was like, we'll just do a half day of it.
Yeah.
Like night, like four, four or five talks, indie focused.
And I think a lot of my initial attendees were indie devs.
That was a thing that actually drew a lot of the initial sales because it.
Unique.
So I think that's something that in future Dish Dishes, if we keep doing
'em, if we become if we don't lose money on this thing, which I don't
think we will, projections show like.
At least some small profit to go to our n Dish Dish v2.
But I think this indie day is probably gonna stay cuz
like it is our unique Yeah.
Leo Dion (host): I mean I remember release notes like that
was a great indie conference in Indianapolis, Chicago.
I went to those.
So it's nice to see something like that back again.
For folks like us.
Yeah, I agree.
I'm really looking forward to that as somebody who's
tried to be an indie dev to
Josh Holtz (guest): try to get same, I think my indie dev
experience is not very net positive.
I probably spent more money on stuff than I've made, but I don't care cuz.
It's fun and I think I'm gonna learn from this whole process as well.
So I have a lot of
Leo Dion (host): GitHub repos, so I have that day.
I don't, yes, I don't have, I don't have stuff in the app store, but
I have a lot of GitHub repos yeah, I'm looking forward to being there.
We're gonna be driving up from Michigan me and a few of the kids and.
I don't think Nice.
I don't think I announced it in the last episode, but I it
will be, it'll be a week long conference, as I think I've told you.
I conference travel.
Yeah.
Tra World, world Tour.
I want to do that.
I wanted to call it the Empower Apps World Tour.
So I will be attending Dish Dish, Dish Dish Swift, and then I will
be flying to Italy to speak at Swift Heroes, which I am really
looking forward to speaking at.
Josh Holtz (guest): Congratulations, by the way.
Leo Dion (host): Thank you.
That's awesome.
Thank you.
So yeah, and then of course the month after that I'm planning, I
am planning to actually go to dub up yeah, we'll see about that.
Yeah I'm excited.
Busy month.
Yeah, A month after.
A month after Italy yeah.
Yeah.
A lot going on.
Is there anything else you wanna talk about when it comes to Dish Dish?
Swift
Josh Holtz (guest): I just wanna thank all of the, like attendees and everybody
who has hyped the event because I never thought like I would host a conference.
I never thought it would be, it would I don't wanna say it's successful
yet because the conference actually hasn't happened yet, but at our
current stage, it actually feels like it's on the path to be successful.
With, we got an amazing set of 20 speakers coming from
us Canada, internationally.
Which is cool.
We have two coming from England, one from Austria, one from Germany.
Oof.
I think hopefully that's all right.
And then I guess two, three from Canada, which I guess is international.
But when I'm in Chicago, it feels like we're part of the same country-ish.
But in terms of attendees, yeah, we have I think 200, almost 210
tickets sold, which is insane.
At the last number we checked, there were people coming
from eight 18 different countries, which is also crazy.
We have people coming from Japan, India, Australia, and then a bunch in Europe.
That's amazing.
So that's.
That's insane.
There's a little bit of pressure there with people coming from
that far to to this conference.
I wanna make sure that it holds up.
We also have a lot of local Chicago ones coming people that I haven't met before.
So even though like they're close by it'll be cool to actually see them.
But yeah, like then, and then just thank our sponsors.
Like our sponsors have been amazing.
It definitely wouldn't have been possible without sponsors.
Hosting a conference in the United States is not
cheap especially in Chicago.
The sponsors are probably the ones that are really making this happen.
I'll just throw 'em out here quick, if that's okay.
Revenue Cat is the Super Supreme sponsor.
Supreme.
I didn't actually ask them to, yeah.
I didn't actually ask them to sponsor.
I was just like, Hey, I'm gonna throw a conference in or in April, may.
Is that.
Just because like work schedule stuff and the time involved, they're
like, yeah but also can we sponsor?
I'm like, oh, okay, that's cool.
Of course.
But that wasn't my initial goal.
I just wanted like approval in my work schedule to throw a conference.
But our Supreme sponsors then we have, I'm gonna see if I can do
'em all off the top of my head.
We have Code Magic One Signal Runway, emerge Ionic.
One second and Century.
Those are our supreme sponsors.
They'll all be there to talk to at the event.
We also have two topping sponsors which would be app figures and stream.
This is good.
And then we have the single slight sponsors.
Our happy scale, which is in indie app.
And then Michigan Labs, which is a like a consulting company
in, I think there's Detroit.
Yeah.
Definitely in Michigan, but I think Detroit.
I think that's all of our sponsors.
Hopefully.
I didn't miss any of them.
I did that off top of my head, but like without them
event would not be possible.
So super thankful that I was able to connect with them.
It'll I'm excited for all of them to actually be there,
talk to them, thank them.
Because without them, Dish Dish would not have happened.
For sure.
Leo Dion (host): Awesome.
Yeah, I'm really looking forward to it.
Before we close out, I have one more question to ask you.
It's an uncomfortable question.
Yes.
Yeah.
We might have people who just, I love these.
Let's go.
It's people might unsubscribe after I ask this question.
They might be very offended.
Trigger warning.
There's rumor on the street that you are starting to, like Kotlin what's, yeah.
What's wrong with you?
Josh Holtz (guest): No, what's just give backstory.
I'm not like a pure Swifty
Leo Dion (host): Obviously you do Ruby for Fastlane, so that makes sense.
Josh Holtz (guest): Yeah my programming history, I started off with visual
basic five, and then doing web stuff like basic JavaScript, html, css.
I did Java.
I've been doing Java since 2005.
What, six.
That's a lot of, that's a lot of years.
Ruby since 2009, 2008.
And then objective C, 2000, 2010, 2011, and then Swift in 2015.
So Swift is actually not like my longest language, obviously.
No, it hasn't been around.
Yeah, it is new, but yeah, but like I'm not a language purist.
Most people surprise if I say this, I might get some hate.
I don't actually love.
Oh, interesting.
I like building things.
Okay.
I like building things.
And code is, coding's the easiest way for me to do it.
So I don't hate, I don't hate coding.
I'm just not like code doesn't necessarily need to be the.
The best, the prettiest, the most efficient way of doing things.
I just wanna make things and have fun.
So total sidebar, but like
Leo Dion (host): Swift.
Like I definitely see this divide amongst developers of people
like, you don't hate code, right?
But that's not your passion.
Whereas there's people who like are really into building apps and
people who are into like, really.
Writing code and I totally get it.
And like I, I almost took you as probably more of the developer
type, but like it's inter, it makes sense if you're into indie apps that
you're more into building things.
Josh Holtz (guest): Yeah, I wish I could get into code, like helping
commit to like Swift and add things and improve there, but like that
stuff is just like way outta my.
Oh,
Leo Dion (host): also I, my languages, I just, my languages don't interrupt.
Don't overlap with yours at all.
I didn't never, I did very little Java in very little Ruby.
So those are two languages I never invested time in.
Whereas I've done C#, php, JavaScript type script.
Josh Holtz (guest): The php.
Yep.
Yeah, I think C Sharp's, the only like dot net's the only one I really haven't.
I did consulting for 10 years, so pretty much everything came my way.
I just didn't do.net because didn't run on Max for most of the time.
Yeah.
I don't think so.
So yes.
I guess going back to your question is like Swift and iOS and Apple
is definitely like the realm where I live in, I'm a user.
Those are the things.
I build for myself.
I love the Swift iOS community.
But for work we've been working on the Android version or the next SDK
of our Android version since I've been working on it since December.
We released it last week and Kotlin is the language that we use for that.
So I've been doing pretty much Kotlin on my full-time job since.
And like I've dabbled in it.
I've known I've been able to do like java level Kotlin stuff
pretty much if statements.
Okay.
In Prince.
Okay.
That's pretty much it.
But that's where I started off.
But I've gotten into doing a bunch of different things like like pretty much
I don't wanna say advanced Kotlin, but like more Kotlin style things.
And it's actually a really fun language.
It definitely doesn't feel like as heavy as Java.
It has a little Swift feel to it a little bit, but I feel like
it goes down a different path.
There's just a lot more to it than what I ever expected.
And in terms of like data structures and like different, like helper
methods that are built into things, there's a lot of things that just
ma they just are super easy to do.
Naming is super weird.
I had this I had this method that I wrote, I changed some
filters and some maps together, like functional programming.
See if I can find this method.
Yeah.
Just like stuff that I would do in Swift that would make sense, like a filter and
then a map, and then there was a first in there maybe, or something like that.
And this, and then Android studio corrected me to
use this method called f.
First, first map?
No.
Or not?
No.
It was like the weirdest method name, but it made my cogo from
like this people who are podcasting can't see it, but it like cut my
lines of code down to like half wow.
To like three lines or something like that.
So it was, it's really cool helper function that combined a bunch of stuff.
The naming is absolutely horrid, but.
It's fun to write Android Studio after you use it for a couple months
is actually a pretty nice ide.
Like I'm, I've been happy with it.
And that's not saying that I'm gonna go like ditch Swift and write Kotlin
or hand Android apps in my free time.
But it's been a lot more enjoyable than What I've thought it would be,
and if somebody is looking to get into something new, experiment with something
new, Kotlin I feel is a fun thing to do.
I'm definitely not.
What are
Leo Dion (host): the three things that you wish Xcode or Swift would have that
the whole Google Android ecosystem has that you're like, I wish we had that.
Josh Holtz (guest): The, Ooh, that is a, that's a great question.
I feel so or why is that hard to answer, android studio.
Yeah.
So Android studio.
When you go into it, it's just, it feels.
Bloated feeling with all of these tools and things like that.
You have these like side panels that can pop out.
Okay.
But so when you first go into it, you like, it's super intimidating
and it just feels, it feels gross.
It doesn't have this nice like u user experience feel to it.
Like Xcode is like nice and clean.
But like the tools that are built into Android studio, there are a
ton there and they're actually like super easy to use and powerful.
The.
Profiler is like just connects to any existing app that is up there.
You can view work requests super easily.
You don't have to do anything.
It sounds like they have
Leo Dion (host): instruments in the Android studio,
Josh Holtz (guest): proxy related instrument.
Yeah.
Instruments just feel more natural built into.
Emulator and ide.
So that's a nice thing that's super easy to use.
Log Cat which is the like the, I think the OS log level type of stuff.
Maybe if you're coming from Swift, like that's super easy to use.
Logging, filtering seeing what's getting logged is just easy.
But like the things that, that.
More complicated is there.
The Android emulators are just a little bit slower leggy feeling.
Okay?
There's so many of them that you have to do so many different Android
versions of those that you install, like six different, six different ones.
Testing subscriptions in the emulator is also tough because
there's no like StoreKit testing.
There is code, so you have to actually go through and have a Google account.
So there are things that definitely aren't fun, but there are things like
more from like a code standpoint, like tooling, profiling, that kind
of stuff that that, that is built in.
That does make it a little bit easier to do than what Xcode offer.
Leo Dion (host): Okay.
Interesting.
Was there anything else you wanted to mention about your Android experience?
Josh Holtz (guest): I've been teasing a Dish Dish Kotlin,
it's probably not gonna happen.
But I just kinda I just kinda like trolling.
Yeah.
But like it is a fun language.
I'm just not tied into the Android community.
So hosting a conference like that is, would be, it's
Leo Dion (host): like 80, 80% of hosting at conferences,
having the network for it.
So Yeah, that would make sense.
Josh Holtz (guest): Yeah, exactly.
Yeah.
But no yeah, I'm not, I'm definitely still going back to doing Swift io.
Full-time after this.
But Kotlin, is definitely fun.
If you are in indie looking to go cross platform, like you're gonna have fun.
It is gonna be a slow process.
There's a bit of a learning curve, but it does feel similar
enough to Swift, but it's not.
So you're gonna get stuck trying to do if lets and guards those don't exist.
But It's it's definitely a fun experience that I think
most people, if you are indie or just mobile dev, give it a
Leo Dion (host): shot.
It's fine.
Anything else you wanna talk about before we close out?
Josh Holtz (guest): I don't think so.
This is awesome.
Leo Dion (host): I'm really glad to have you on.
I think I tapped everything.
I think so.
Yeah.
This is fun.
Josh, where can people find you online?
Josh Holtz (guest): So Twitter @joshdholtz, Mastodon
@ joshgholtz@mastodon.social GitHub.
Also @joshgholtz.
If you wanna see my GitHub, commit history of stuff.
And there's joshholtz.com.
That one doesn't have the the D so that, that's weird.
That's the only place that's different.
Indie Dev Monday, Twitter Mastodon.
That's mainly where you can find me.
Indev Monday downtown.
We'll have all the links in the show notes, which I've
been mean is throw an issue.
Yes.
Indie Dev Monday is going through a small hiatus as well.
I need to actually post that, but I'm just waiting
through like Dish Dishes over.
I have some traveling I'm doing after that, so it'll
probably pick back up in summer.
But yeah that's where you can find me.
I'm not too hard to find.
Awesome.
Leo Dion (host): Josh.
I will see you in less than a month.
Yeah.
29 days.
That's right.
Yes.
Thank you so much.
Thank you very much for, This is great.
Thank you.
People can find me on Twitter @leogdion.
My Mastodon is @leogdion@c.im if you're watching this on
YouTube, please and subscribe.
I'd really appreciate it.
If you're listening to this on a podcast player, please take
some time to gimme a review.
If there's something you wanna talk about or if there's something you
want to hear about, let me know.
Please DM me or on whatever platform you prefer.
That's it for me.
I hope everybody has a good week and we'll talk to you in two weeks.
Bye everyone.