Pizza, Playpen, and Fastlane Funding with Josh Holtz
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.
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.
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.
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.
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.
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.
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.
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.