Empower Apps

Josh Holtz comes on to talk about a certain conference in a few weeks, the future of Fastlane, building kids apps with guided access and learning the other mobile programming language.

Guest

Related Episodes

Related Links

We talked about 

Social Media

Twitter Leo - @leogdion
Twitter BrightDigit - @brightdigit
LinkedIn - @leogdion
GitHub - @brightdigit
GitHub - @leogdion
TikTok - @brightdigit
Mastodon - @leogdion@c.im
Youtube - @brightdigit

Credits

Music from https://filmmusic.io
"Blippy Trance" by Kevin MacLeod (https://incompetech.com)
License: CC BY (http://creativecommons.org/licenses/by/4.0/)
Thanks to our monthly supporters
  • Bertram Eber
  • Edward Sanchez
  • Satoshi Mitsumori
  • Steven Lipton
★ Support this podcast on Patreon ★

Creators & Guests

Host
Leo Dion
Swift developer for Apple devices and more; Founder of BrightDigit; husband and father of 6 adorable kids
Guest
Josh “🍕 conf” Holtz 💪🚀
Hudson’s and Oaklyn’s dad 👨‍👩‍👧‍👦 SDKs at @RevenueCat 💼 Lead maintainer of @FastlaneTools 🚀 @IndieDevMonday 🙋‍♂ https://t.co/3b56M3Oqgv

What is Empower Apps?

An exploration of Apple business news and technology. We talk about how businesses can use new technology to empower their business and employees, from Leo Dion, founder of BrightDigit.

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.