Welcome to another episode of Empower Apps.
I'm your host, Leo Dion.
Today I'm joined by Cihat Gündüz Cihat.
Thank you so much for taking the time to joining me today.
Oh, it's an honor to be here.
Thank you for inviting me.
Before we begin, I'll let you go ahead and introduce yourself.
All right.
So I am Cihat, as you said, and I do IO development since 2011, so
that's been like 13 years already.
And I'm an indie developer, full-time in developer since two years.
And I developed seven and published seven apps in the last six months.
Yeah.
And that's currently my thing.
I used to work for an app agency as the iOS team lead, and.
After that I worked for like a product company for two years
and built like an Android and iOS team as more like a manager there,
but also doing technical stuff.
Yeah,
Awesome.
So I've followed your material for the last year.
You had a really great article about Swift Six migration.
right.
And testing that stuff out.
And then I got to meet you in person in California.
This is my first post WWDC recording, so that's exciting.
And I got to see you at one more thing, but was this your first time at WWDC
I was at WWDC actually when Swift was announced in 2014 as
a student scholarship winner.
I.
So that was like, really, that was exciting times.
And now I'm back.
I was back this year for 10 years of Swift, which was amazing.
Like a good
Yeah.
We're doing our next episode will hopefully be with Desmond Blair,
who was a student scholarship not a student challenge winner.
Yeah, we'll be talking to him about that experience as well.
Yeah.
What was, I guess, how has the vibe changed?
Both like.
As somebody who's now more mature, I guess, and older but also just
the way WWDC is run drastically different than it was 10 years ago.
Actually I was in like in, it was in San Francisco back
then in Moscon West center.
And I was there in 2015 again without a ticket.
Because I felt like there's, there was the Alcon, which is
like an alternative conference.
I.
And I actually thought like it's, it was not like the
2014 experience was amazing.
I, I learned so much.
I met so many people and stuff like that, like 5,000 people
inside Moscone West Center and all of them are developers.
And also SWIFT was announced, so it was really exciting.
Everyone was sitting there and downloading stuff and trying things out.
And the next year when I was there for Alcon, I was a bit disappointed
because most people were still inside Moscone West and it was hard to like
really have the same feeling again.
Which is different now because Apple is not doing the full week thing anymore.
So they just have things for one day, and then people go to the
community stuff to the community events and stuff like that.
So I got to meet all the people who also had a ticket, which was amazing.
So I think it's like in that department it has I think, a different vibe now.
Even if you don't have a ticket, like if you have a ticket, also it's
not such a big advantage anymore.
Back then, it was a huge difference.
Just as a first timer, like I had an amazing time, like I'm totally
were there for the first time or you had a ticket.
No, I did not have a ticket.
No.
But like you said, it isn't as big of a deal as it would've
been a few years ago before I.
And just being able to go to so many different events I was like
hopping around everywhere, going to every little event I could.
And it was amazing.
I had, I talked about it in the newsletter, I'll link
to it, but basically, yeah, there's just so much going on.
It's hard to like.
It's hard to have any quiet time, honestly.
And I just, I was jam packed with stuff and social events and things like
that, so yeah, I had a fantastic time.
Yeah, me too.
I met so many people that I followed also on Twitter, Masterson, et cetera.
And yeah, like you included, I like people I really admire.
I really I follow their stuff.
I listen to their podcast too.
I read their articles and now I have a face and I have some feeling
of knowing who that actually is.
That's really makes a difference.
it makes a huge difference.
Was there any highlights you had from your experience there and one
more thing or any of that stuff
You mean like the events and stuff?
That's a good question.
I think like the people are the highlights, right?
Like all the people you meet and the friends you make.
I also learned, I didn't know that before.
I had a feeling that I'm based in Germany and I had a feeling that
there are not that many iOS developers here, but I'm totally wrong.
When I was there, like so many people were from Germany.
So that's something I learned and make connection connections there.
And yeah, the people is.
That's what it's all about.
I think if you go there, because the sessions, they're online, so you
could watch them online and yeah,
Yeah, that was one thing is I watched very few sessions
while I was actually there,
I didn't watch any, I didn't watch any IM the,
yeah, because it's like I could do it anytime.
It's not okay, that's that thing that's gonna be around forever.
It's the, it's meeting the actual people
two.
I visited the maybe the highlights in terms of events was the James
Dempsey concert, which was yeah, I was there for the first time.
I didn't even know James Dempsey really.
Like I heard the name a few times, but I didn't know who he was.
And it was a great concert.
And the songs are amazing.
Like he started with a song called Hello hello World.
And then he ended after we asked for one more song, he ended with one more thing.
So that was like the perfect circle there.
Yeah that I did not get to go to that I like get up early the next day, but
they had the some of the folks from Apple put together a community event.
And I got to go to that and meet some of the folks on the actual Swift
core team which was really cool.
I enjoyed that and the whole One more thing conference.
I'm super glad that was organized and happened.
That was really great.
It was like a good central meeting place for a lot of stuff.
For sure.
so I'm really glad I got to attend it and participate in it as well.
Yeah, it was great.
Like the panel you had with the three awesome speakers that was also great.
Like I think that's also one of the highlights from
the One More Conf itself.
Oh, thank you.
It helps to be a podcast interviewer, I guess.
So I had all the questions already from doing a recording,
so it worked out really well.
Yeah, and hopefully we'll have that video up in the
next couple months or so.
So definitely look out for that.
So we talked about all the things that you enjoyed.
So maybe now we're gonna get into disappointments.
You put together a wishlist a few weeks ago about.
Things you wanted.
And I, there's some really interesting thoughts that you had.
And I want to just let's touch base and see like where those things are now
and or what what things we gained that maybe are a little bit closer to that.
And we'll I wanna start off just, we'll just go over the list.
I'll put a link in the shout notes for people to look at.
But I really thought this was interesting, and I don't know if you
were the only one to say it, but a weather kit, like API for Apple Sports
that, that would be really cool.
Yeah, I think so too.
do you think so?
We didn't get that did we?
No, we didn't.
Okay.
We didn't.
Okay.
I just wanna make sure.
They'd almost need to buy like a company to do that, right?
Maybe.
Yeah.
I feel like that would have to be, that would have to be the thing is like they
would buy a sports API company and then in two years we'd magically hear about
some like new API called Sports Kit.
Isn't that how it usually works
With Build Buddy or workflow or any of that stuff.
Yeah I'm just not aware of all the companies they have already bought, so
maybe they had already bought something in that regard because they are so
I don't remember hearing anything about
No, they didn't mention anything.
But they are also invested into sports.
And especially now that I have the vision Pro and I've tried
like different experiences there.
I'm really convinced that the things that's going to sell the
Vision Pro most to like the average consumer is live sports and.
Or live events,
events in general.
Yeah.
But in general yeah, things where you have a lot of fans and those
fans are also willing to pay a lot of money to experience, get
the best experience possible.
I think for concerts, you wanna be there live, like you can't make it
better than the concerts itself, I think, because that's all about
the music experience as well.
But for live sports, I'm I have a different take on that because.
The thing is with the Vision Pro you can have 20 cameras spread across.
For example I'm thinking about soccer right now.
You have 20 cameras on the pitch.
All camera cameras on different places, and firstly, you can't sit
any as, as close as the cameras can.
Can be.
And when you are in the stadium, you can't switch the cameras either.
So it's for sure the better experience to be able to switch
cameras and be much closer.
And yeah I'm really convinced about that.
So I think it would make a lot of sense for Apple to create this third
party sports API based thing as well.
That's why I hoped for this new API, but we didn't get one.
Did they improve their immersive video when it comes to sports?
'cause I heard not very good things about that soccer video
You didn't hear good things about
out with
I love it.
I watched it 10 times or something like that.
Oh really?
I heard people were just like, oh, they cut too fast.
It was cut for 2D and not for immersive video.
But you really enjoyed it.
I loved it.
Like I have showed it, like my Vision Pro, I showed it to 25 people or so
because we don't have vision Pros here.
So people are really interested in trying it out
and everyone was really amazed.
Even ex soccer players, they were really amazed by the immersion
and, but yeah they believe that the future of watching sports is
going to be in like 3D like this.
Maybe that it was not cut perfectly, but in general, the people, they loved it.
Loved it.
Okay.
Number two, add zoom modifier to scroll view and swift ui.
Did that, did we get that?
I'm not sure.
I think we did because we have now a new modifier.
It's called on scroll, geometry change.
And we do get like the inset and stuff like that.
And I think what we can do now is somehow use that information that
we have now specifically on scroll views to create like a scale effect
on content that we have in there.
I haven't tried it yet, but I think you can now technically build a zoom
like modifier, but we didn't get the modifier directly, so we don't have
anything that's really easy to use, which I was really hoping for because.
So scroll use should be zoomable.
Like I have this crossword puzzle game where you have a crossword
puzzle at the end, and I just use a scroll view for that.
And then I have like contents there and all the people ask
me like, why can't I zoom in?
Because I wanna zoom in and also zoom out to see like more of the crossword.
A pinch and
Exactly.
That's exactly what they want.
And I, I just couldn't create it because there are like workarounds where based
on I dunno, a geometry reader and stuff like that for like images for example,
you can zoom in them, into them.
But with a scroll view, it doesn't really work because it breaks the idea
think we just need another view for that?
Like in UI kit, would you still use a scroll view for that?
You mean like a Zoom view or something like that?
It's like almost seems like a map.
That's what I'm hearing.
When you talk about like zooming and stuff, that sounds like a map to me.
Maybe.
I don't know.
Maybe we
I don't know.
maybe we need a new view, but I just look, I'm just
looking for an easy way to
How would you do it in a UI kit?
I would have a scroll view and then you can, I think you can
just change the, basically did you change the the offset and stuff?
And I think you can also zoom, I think there is zoom
offset or something like that.
I don't remember.
It's been a few years since I lost you.
U like it, but I know it's possible.
Okay, so fix swift data limitations on cloud kit.
I don't, did they fix that?
I don't think they did they?
I.
They added, they,
were not a lot of swift data changes other than the history
a PII was really surprised by
they focused on performance and software.
They added like index stuff, but they didn't do anything else.
Okay.
This is really cool and I wanna talk about this quite a bit 'cause I
think we have the same app idea here.
They, did they add anything for per what you have as persistent
windows and volumes and vision os?
Did they add anything?
They did add a new option in the settings app that you can
basically, and this is also opt out.
So it's basically by default it's turned on.
What happens is that you have the switch, which makes sure
that when you restart your.
Your Vision Pro, that's the apps you had last open that they reopen
and the window positions also stay basically where they were.
I tested this in the beta one, and the first time I tested it didn't work, but
now I'm testing it more and it works.
But it's not what I was wishing for.
What I was wishing for is that either the user or we,
as the developers can say.
For specific windows that those should be fixed, even if the user
decides to long press the digital crown, which recenters everything,
which is still not working.
So if even with the new option that you have, it still recenters all
the windows and then yeah, you lose the real augmented reality feature.
So you have a app.
You have a app or an app idea
have an app,
because you had the, okay.
What's it called?
It's called posters.
It's basically dynamic movie posters, which update every 15 minutes.
You just open them, you just place them on your wall, so
wherever you like to them to be.
And then the idea is that they stay open all the time.
And when you walk by, like new posters and then when you're
interested, you just click it, watch the trailer, or where it's
query or running, stuff like that.
Okay, because I had a, I have a similar idea where I can do photos on the
Like
So yeah, just pho little, like photos from your photo library.
Like you just post 'em,
That was my first idea
your wall.
That was my first, I wanted to build like 3D frames, so that look amazing.
And then you could just put your photos in there.
But then,
I found the frame design was too complex for me, and the posters thing
was easier to make as a first app.
okay.
Yeah, how easy is it to do something where it's like mounted on a wall?
Is that pretty easy or
there's no API like the interesting thing about Vision
Os is you have these two modes.
One is the shared space mode where you can have multiple apps open,
and the other one is the full space mode where only your app is open.
And if you're in the full space mode, you can use AR kit and inside AR kit
you get things like planes and walls.
So you could do the placement on walls.
If you are in a full space, but all my app ideas are more
like augmenting the reality.
So you can continue using the Vision Pro with other apps, with other
experiences while those things just augmented your reality, like adding
posters, frames and stuff like that, which needs to work in a shared space.
And we don't have an API to pin anything to the walls.
It doesn't work.
And also what I would expect is that vision always does this automatically.
If a user places a window very close to a wall, it should
like magnetically snap somehow.
That's how I would expect to work.
So how does posters do it?
It doesn't do it like as a user, you have to walk and
you just have to place it.
And then that's how it currently works.
It's not
I mean they're, it's probably a privacy thing more than it is a
technical thing, I would assume.
But still, like, why can't they,
with a magnetic
why can't they?
don't think so
Or just
the thing about the shared space is you don't get positions
of where your windows at all.
You don't know where your window is, or the only thing you know
is the size of your window.
So if they added like a magnetically attaching window thing, it
would not like the developer would not get any information.
So like with Arki, you could do it with AR kit, but then they can't run
any other app while they're doing it.
Okay.
That's how it
How easy is it to do it with AR kit?
If you are somewhat if you've used ar kit on io I iOS basically
it works pretty similar.
So it relatively simple.
But you, there's always, like with AR kit and all these, those 3D
things, there's some mathematical calculation involved, which is doable,
but it's not that, yeah it's fine.
Okay.
We can just do this one quickly.
Modal text input on T-V-O-S-I.
I'm just surprised they'd ever do that, honestly.
I just like same app again.
I have this crossword puzzle game and I don't, I didn't bring it to TD
os for the only reason that when you wanna type in some like characters into
the crossword puzzle, you get a full screen typing thing and this doesn't
work for a crossword puzzle game.
Yeah.
I mean, 'cause most of the time, yeah, I mean, could you kick it off to an iPhone
like you can with the Apple Watch, where you'd be like, oh, you wanna do this
text input, you can do it on your phone.
I could, I guess with my own app, but yeah, that's not perfect.
Like I wanna do it with the Siri remote.
Yeah, no, I get it.
Make string catalog editor mo more useful.
Why do you want this?
This would ruin your app.
Don't get sherlocked.
What are you doing?
The feature that I have in my app is okay I wrote this
before I had this feature in my app, let's put it that way.
And then I basically Rus Shanahan, who's the developer of happy Scale
basically paid me to implement this feature in my app, and then I made
it freely available to everyone.
That's basically why I have
talk about translate kit later.
I don't want to give too much away, but, okay.
We did not get Crate LLM app
No, we didn't even get any APIs for we, the only thing we got was you could
create these images and you can place this image creation UI into your app.
But you can't use the API directly.
When you say we get, we got it.
I mean,
We are gonna, yeah, we don't have it yet.
It's gonna, like they
don't have any of the Apple intelligence stuff,
they announced we're gonna
I'm assuming.
Yeah.
And I also feel like they're, if you ask them like, why don't
we have a create LLM thing?
They'd be like you're supposed to use these adapters and all this
stuff they talked about, which we don't have now, but I would assume
that's what we're talking about.
Yeah,
yeah.
So
maybe it's too
I don't want to talk about Apple intelligence 'cause I haven't played
around with it and I don't even know what it's gonna really be like.
So, improved source, I don't think we got that.
Did we
I haven't checked.
They, when they improve source control, they usually don't mention, they
just improve it and it's just there.
And I haven't tested yet.
Make swift UI previews work reliably.
I feel like they at least tried.
Tried.
They said one thing, which is that they're not building extra
for switch previews anymore.
So they're basically using the sim, the build that is already done of your
app for the simulator for the switch.
I previews as well.
That's what I said.
I haven't tested if it works more reliably, but like this
should help in that direction because my simulator always works.
Like when I built my app, run it in a simulator.
It always works.
And if they somehow.
Do something there also.
This is, at least it's the right direction.
I dunno if it's really improved though.
We'll
And I know they added a bunch of like new macros so that like things that
you would need to plug in like the swift data and a few other pieces.
Like it's much more easier to have like test data, I guess, in your preview.
At preview viewable macro, which like you don't have to create an
extra tructure if you have just some state you wanna change in
your period, which is awesome.
Uh, screenshots.
Explain what you meant by this.
Screenshots for 50 I previews.
What do you mean?
So my goal is basically to make it as simple as possible to create localized
app screenshots for the app store.
And the thing is that I, I used to use UI tests for creating
localized screenshots, but UI tests are, at first they are slow.
Second, they're not really reliable.
Like they, they just fail sometime and they don't produce the same result.
And what I already have though is I have all my views and I have for my.
Important views.
I have great previews already, and also can configure 'em because
I wanna see them in different states that they can be in.
So I can actually yeah, basically improve the design
with a quick feedback.
And so I, I already have everything there.
All I need is just a button to make a screenshot of the
current preview I'm seeing.
And the second thing that.
Actually Swift previous had at the start is changing the locale of the
preview you're seeing right now.
And the API is still documented.
It's all online on Apple developer documentation that it still works.
There is like this, oh, I think you set some locale or something, but it
just doesn't do anything right now.
So it's broken.
And with those two things like changing the locale and having a button to just
create a screenshot, I could create localized app screenshots very easily.
Okay.
Makes total sense.
Had an
we didn't get any improvements there.
not that I know of.
Okay.
Overall, as far as announcements are concerned, do you have any thoughts?
Last closing thoughts on your wishlist?
I'm a bit surprised that we didn't get any new framework that surprised
us because the last few years we always got something like a beat
swift data being, weather kit being,
Kind of got a framework, but
Which one
I would assume Apple intelligence is a new framework.
but it doesn't
The elephant in the room
It doesn't have a framework though.
Maybe, yeah.
Next year I guess we'll get a framework for that.
I hope at least
Yeah.
we'll see.
But yeah, otherwise I think the, they focus on more smaller
improvements and I really like most of the small improvements.
So I'm, overall, I'm happy with the API changes
so one of the sites that you run is WWDC notes.
You wanna explain what the site is and you, it went
through a redesign of sorts.
Yeah, I'll let you go ahead and talk about that for a bit.
Okay, so basically.
If you have ever watched WWDC sessions, you know that they can
be, sometimes, firstly, like videos as a format are already something
where you can't really search easily.
I know they have transcripts now, but still, if you wanna just know
if they talked about something.
The transcript, usually it doesn't really give a good idea.
You can't really skim it quickly.
It's really a long text there.
And the other thing is that you might not want to watch all those sessions
because you don't have the time.
I just watched a session today, which is 43 minutes long or 42 minutes, and it
was like I didn't have to invest all the time to just maybe find an answer for a
small thing that I was trying to find.
And WWDC Notes is basically a community driven website where
people who do watch some sessions.
They can just share their notes for the sessions that they wrote down.
And it is based on doxy now.
It was used used to like using a custom markdown format.
I think it was based on Johnson DE's library.
But I decided.
When I took it over last year because Federico used to do this
website, like he created it, but he's not working for Apple, which
means that he can't work on anything anymore that is outside of Apple.
And so he searched for someone who could take it over.
And I was I was the guy who had provided most sessions besides him.
Like he provided over 300 notes.
That's really amazing.
And yeah, I had 40 or something.
So he asked me if I could take over and I did.
And I felt I wanted to bring it all together in one repository because there
were a couple of private repositories to, for the website, for the Twitter
bot and stuff like that, and I decided I just do it in one repo and
I would migrate over to Swift Doc CI.
Which is a documentation compiler that officially looks like Apple
documentation, which I also thought maybe it makes sense as a ui.
And yeah, that migration just finished two days ago.
I migrated I the older sessions as well, like all the notes from the old website.
And now if you was, it WWDC notes.com, you can see the
new design and all the nodes.
They're already around 40 nodes for this year's session.
The community was really amazing to provide them very quickly.
So what was it like?
Transitioning to doxy?
From a custom, basically a custom website.
Okay, so there are a couple of aspects to this.
Firstly, I had to migrate the existing notes because I didn't wanna lose
any of the existing ones, which was surprisingly easy because the doxy
format is also based on markdown.
Like all the articles there are markdown and I just copy and paste it.
Basically, the markdown, the only thing I had to change
was the links to the images.
Because the old website, it had like links to images and they were
like in a folder named the same way the article was named, which
was also easy to automate this because everything was very similar.
But like the format was a little bit different.
And I just yeah, wrote a script, did that, and it just worked
that, that part was easy.
The more complicated part was getting Doc C to look like a proper
website because documentation is not exactly the same as like a website
where you wanna discover stuff.
And the old website of the WWC Notes project also had a great overview of all
the contributors, which I really liked, where you could see like all the people
that are behind this community project.
And this was something very important to me because.
It really shows that this is a community project, and this is the
most important thing for me about the WTC notes, is that everyone comes
together and provides this cool thing.
And yeah, I have to recreate this and I have to play around.
And the, there are like some directives in Swift Doc seat that are not really.
Openly documented.
If you really search for it, you can find them.
Like you can, for example, have multiple images in tabs.
You can have columns and rows and stuff like that.
But the most complex thing for me was if you have a documentation page,
for example, I wanted to have, for each contributor, I wanted to have
their own page where you can see which sessions they contributed.
And then when you link to that, I also wanted a preview with an image
of that person, which was like there is a way to do that in the, it's
called like in the, you can have a metadata directive there inside.
You can have a page image and stuff like that, but there's
an icon one and a cover one.
I had to play around a lot of with these things,
yeah, it's amazing.
If people haven't had a chance to take a look, definitely take some time
to look and maybe even contribute.
How much do you have left for WW 24 to contribute?
we have, so you can click on the missing sessions.
It's on the left sidebar.
And you'll see also the exact amount for of sessions missing for each year.
And currently the amounts missing for this year are just above some
above 80, I think 86 or something.
Whereas 30, 37 were already provided.
So we are already quite there for just two weeks, but we still need a
Yeah.
That's awesome.
Definitely people should take a look.
It's amazing.
And yeah, the sessions are a lot better than they used to be,
where they're like 45 minutes.
Period.
Like you can't make it shorter or longer.
Whereas now they're a little bit more flexible.
But this is a great way to just quickly take a look before jumping right in
and just get the meat of the talk.
So this is really great.
Thank you for putting this together.
This
For sure, yeah, that I didn't start a project the things go
ready to Federico who started this, but I'm trying to keep it alive.
But what I re the cool thing is what you don't get with the videos is links.
If there are things mentioned we can link to documentation, we can link
to stuff, which saves a lot of time.
And you can also copy and paste the code and stuff like that.
Yeah.
Yep.
Cool.
Was there anything else you wanna mention about WWDC notes?
There's a lot of things there, but I think it's too detailed.
Yeah, I think I'm gonna basically suggest a few improvements for Doc C to
the Apple team working on it, because there are a few quirks that I found
out, but yeah I think it's too detailed to dive in deeper on it right now.
So let's talk about Swift Six migration.
You had that really great blog post about getting people into
it and getting people started.
How has it been for you have you tried moving anything
over in the last couple weeks?
So the article that you're mentioning was like a year ago or something.
I also, I'm also the author of the Swift Evolution Monthly newsletter,
where I basically summarized the Swift evolution proposals that were accepted.
And as part of that, basically when the, when I read about
there is the new Swift.
Language modes and the new opt-in features that you can, there were
these feature flags you could opt in into things that are going to
be coming in Swift six already.
That was basically for me because I was so into this Swiss solution thing,
I felt like I could just summarize, I should just summarize as someone
yeah who has the knowledge to do that.
How to already prepare for Swift six.
So there is no.
Big issues with like migration right now.
And that was what the article was about.
And back then I actually tried it out and it didn't take much time,
but we didn't have as many data race safety features back then.
I actually watched the session, that's the last session
I summarized just today.
It's called Migrate Your App to Swift Six.
It's the longest session this year.
It's 42 minutes long.
Most of them are like 10 to 20 minutes, so you're right about the.
Various length, but 42 minutes long and it has a lot of details about SWIFT
six and tips, how you can migrate.
And I think it's really a good session also for like larger companies
even to have some strategy and some structure to the migration.
And they also basically say there, there's really no stress to do it.
And I actually just tried it out in one of my app just to answer
the question because I was assuming that you're going to ask it.
And I had no warnings basically regarding concurrency and stuff.
And then I turned on Swift six language mode or the
checked, the full checked mode.
To start with that
complete.
exact, exactly the complete mode where you get warnings for the
stuff that would fail in Swift six.
And I got around 20 warnings in my largest app in the crossword
puzzle game, which I think is
What what were the most of the warnings having to do with.
They're all about like some of them are about that in you I have basically
changed some properties that are in my views in tasks that are detached.
So they were like in a different thread.
They were not on the main actor.
I.
Not on main thread.
So what I need to do to fix that is just say main actor run.
I think that's the easiest solution for those.
And then in some other places I just got those I could actually open the project.
But I got those, the warnings that also were mentioned in the session,
which are basically that if you have like global variables and you
change them in some other context.
You need to either, either mark them as main actor or do a task
thing or yeah those kinds of things.
For me, what was surprising is I did a lot of this beforehand and I
ended up, I think because I had some extra experimental flags enabled,
I ended up with the issue with I.
This is a new thing, and I think it's still experimental or upcoming,
but you have to specify when you import a namespace or a module, you
have to specify the access level.
So rather than just saying import foundation, you'd say internal
import foundation or public import foundation or whatever.
So I had a ton of those warnings,
Is that, do you have a modularized app or is it just one target?
It's modularized.
It's all swift packages,
I think it's, there's also a difference between modularized apps because you get
more extra features and things to handle like this specific import thing which is
also not related to concurrency, though.
It's more related to making sure, yeah it's, I think it's about making sure
that you are not basically making the dependency that you have internally.
Also a dependency of the end product.
So if.
Yeah.
And I'm wondering too if it has to do with the explicitly built module
stuff that they added this year,
Maybe
like somehow, if it makes it easier to optimize.
So I don't know.
'cause I would assume, 'cause if you don't, if you're not gonna use
it publicly, then you don't need that module exported, I guess.
I don't know.
That's my theory, but I could totally be wrong on that.
Yeah, actually going back to my wishlist last year, I had a wishlist
as well, and part of that was that I want to have something built into
exco, to modularize to apps because the SWIFT package thing is more built
for public repositories and public packages, which is not exactly what
you need in apps where you maybe want to do some things differently.
But I think they're not gonna bring anything different than swift packages.
Cool.
So let's talk about one of the sessions, and I don't know if you
even had a chance to watch it, but we have some advancements in multilingual
apps that they brought this year.
A lot of it I think, related to the machine learning stuff more
expansions and things like that.
Did you get to watch the video by any chance?
Not the built mul multilingual ready, but I watched I think it's called
something like meet translation APIs or something like that, which
is also localization related.
Yeah.
So what's your impression of like the localization advancements this year?
Firstly, like I not talking the new API that I'm the video I watched the
video for with the translation APIs.
It was also, I think, released in 17.4 already.
I saw something from posted a master on or something.
But basically what it does is you can basically say, I have this text in my
app and I know it's not in the language.
The user speaks and I want to translate it.
And the thing that already works in 17.4 is basically a modal showing up.
Which is like a Apple built ui.
You don't have any influence with what's in there, but it
shows a translation basically.
And what they have now in iOS 18 as a new one, is also a direct API that
can, that you can use with your own UI inside your app, which is awesome.
But they're going to support, I think 15 languages or something like that.
The same ones that they support in the Translate app, which is great.
Good improvement there.
What do you so like you have, we'll talk about your fantastic app translate kit.
So first of all, I'll let you go ahead and explain it before I do,
translate kit is actually my third translation helper app.
But how that works is you basically just drag and drop you string catalog
into my app and it localizes it for you.
That's the basic idea.
Okay.
And it uses, basically you would set up different accounts with
different translation services.
Most of 'em are AI based, ML based stuff, then it will, you
would basically be calling those APIs to automatically translate
exactly.
Yeah.
That's
string catalog, right?
Yeah.
All of
do you think?
of the services are also, they have all of free tier.
And the free tier is so large.
Any size app you can translate for free.
'cause they were built for document translation with large text For apps.
This is not a big thing, so you can translate it,
Do you think do you think there's any gotchas with using these
services as opposed to a more like hand driven translation service?
Obviously the one problem you can run into is that you're
missing context specifically.
Specifically in apps.
You have short text, you have a button just with one word or two words,
and it happens to me all the time when I translate safe, like the word
safe, which you have in most of the apps to German, it translates as,
which basically means save money.
Which is a different word in German than Han, or which is basically saving data.
It's a completely different word.
And then it can miss the context and it happens all the time, which is
something would, could be fixed with an AI to where it give you some context.
You say this is an app.
This is about this topic.
And then you can add, additionally, add some glossary with some words that you
have come up with because you might have like tabs with different feature names.
And then when you refer to those tabs in some explanation text,
you wanna make sure to use the same words and stuff like that.
Those things can get missed in automatic translation if
you don't try to provide them.
One thing I'm doing in my app is I have do you know
the Apple Glossaries website?
There is like this website with
absolutely.
Yeah.
Basically Apple has provided in the past, I think they're
not updating that anymore.
The localizations that have inside iOS and Mac os themselves.
And what I did for the transit kit app is I basically read them
all that they have in there.
I accounted them, looked like, okay, which ones appear
multiple times and which ones appear in multiple frameworks.
So they're not only related to health kit, but they're more generally useful.
And I found 1,600 of those.
That I built into translate kit, which if you get a match for those
words, for example, privacy or save or
Okay.
I basically use apple's one translations.
Yeah.
That makes total sense.
That's awesome.
So is there anything out of this here that you're like, I wanna use that
in translate kit, or maybe developers should think about using in their app?
Yeah, the new translation, API is going to be my way to that.
You don't have to set up any of these third party frameworks to
get started with translate kit.
You will just be able to use yeah, with one click.
I'm hoping I haven't implemented yet, but I think it's going
to work that you just,
How do you judge, like whether certain APIs should be used over others?
Yeah.
I have four different services implemented.
What I've done is I've checked like which ones are, have the best
quality for which language, because in some languages also parameters
and stuff like that can get broken.
That's also one of the things that I fix in my app.
If you have like percent ads, percent, the LLD and stuff like that, I make
sure I match them across languages.
And check if they're available in all languages.
If they were available in the automatic translation, I ought to
fix them or I show you warnings.
Stuff like that is built in there.
And that's actually one of the things that Apple has improved
this year is in string catalogs.
You now get also this warning if you have a percent ad in one language.
And you have the percent d in another language translation.
They say, Hey, this is not matching up, which is a feature that yeah, they
don't do all the checks that I do.
So I do more checks.
And the string catalog editor, I have in translate kit that I
had already mentioned before.
This is a completely free feature, so this is, everyone can use that.
There is no, like my app is in general freemium, so anyone
can get started for free.
But this is completely free and it's, especially if you
are using string catalogs.
Together with translators, who own Mac, the cool thing is they can trans
download my app and just translate it and just use the string catalog editor
there and they don't have to install Xcode, this three gigabyte thing.
So for translators, it's also a great thing.
Yeah.
That's awesome.
Yeah.
Was there anything else you wanted to talk about today?
I dunno.
I mean, I like to talk about a lot of things that also you are
doing, but I think your podcasts are always like interviewing other
people and what have you been up to?
I would like to know that.
Sure.
You may as well know and let my audience know.
So yeah, I'm working on trying to get some new features into bushel.
And I just recently ran translate kit on it, so hopefully my
French, German, Spanish, Japanese, Chinese, Arabic audience isn't
confused by the interface to bushel when the latest beta comes out.
So yeah there's a few interesting new features with the virtualization stuff.
Supposedly you can sign in on Apple id, I still haven't been able to do that.
With bushels or with the visualization framework overall.
So I don't know where that is.
And then, yeah, I'm working on a refactor rewrite of my app part
Twitch, using the latest technologies.
What's it written in?
a fun pursuit.
What's that?
Is it an objective C?
No.
It's in Swift, but it's it's like an old version, older version of
vapor, older version of combine.
There's just stuff that it's like at this point it's
like I need to rewrite it.
So yeah, that's what's been keeping me busy.
I have a few other app ideas.
In the back of my head that I wanna work on.
And I think I mentioned before, but I stream every Tuesday morning, so if
people want to catch that I'll always be working on something interesting.
And Tuesday morning, 9:00 AM Eastern.
So what's that for you?
Like
Sorry, I lost you for a sec.
Can you repeat please?
what's 9:00 AM in your time zone?
It's currently 4:00 PM right now, so should
So 3:00 PM then Yeah.
You can catch me at 3:00 PM Eastern time and watch me work on
something interesting or weird.
So every Tuesday morning and maybe even Thursday morning so you can catch me.
Sounds great.
yeah.
Now that this is the first, you said this is the first episode
after WWC for you as well, I.
yes, this
So what was your favorite thing about the whole week?
You can check out my newsletter.
Oh,
I posted it all in there
good talk there.
spoilers.
Spoiler alert.
Yeah, you can definitely check that out in the newsletter.
I'll post the link to it.
But basically, one more thing was great.
The watch party was great.
The depth of DC community event was fantastic.
I mean, the whole thing was just, yeah, I want to do it again.
For sure.
It's, I've been to a few con conferences and stuff and those are
all awesome, but this was amazing.
Just being like, I mean, there is one more thing, but
there's so much going on.
It's like hard.
Like I said, it's hard to just have quiet time to work on code and
watch a video 'cause there's so many things going on at the same time.
Yeah.
How did your expert session on translating go or on, on localization?
Go.
On the one morphing conference.
Yeah, we had like tents outside and there.
Where there were like floating experts basically sitting around and
waiting for people to ask questions.
And the local, like I had three of those.
One was about localization.
Another was to about marketing and paywalls.
And the third was about WWDC notes.
Under WWDC notes day, I was sick actually because I was
meeting so many people, the time difference and all of that.
So I got sick on Thursday.
But the localization one was basically three people were there.
Who I could help.
I think a bit like I explained quite a few things.
They were like really happy about the things I could tell them.
Like they basically have a larger app and they wanted to migrate
to a newer system, modern system.
And I basically showed them why string catalogs don't have any this
wanteds actually, and I think they're also going to stop using third party
service they were using because now they can just directly send string
catalogs to their translators.
And they can just translate it for them in a nice ui, which is yeah,
it's a great improvement by Apple.
Yeah.
I did the Swift on Server 10 and there's a lot people interested.
So that's amazing.
I'm actually gonna start dabbling into Hummingbird and see how that works.
So stay tuned for that.
so Hummingbird is also still actively worked on.
Oh yeah, very much yeah.
Okay.
I didn't know.
I wasn't sure which ones are still active because they were more
like perfectly Swift was also very popular one, which I think
is not no longer being worked on.
Yeah, so there's a meeting Wednesday, I think.
I'm not gonna be able to share this podcast in time for that, but they
have a server side swift meetup that meets online on YouTube, so
you can always check that out.
Hopefully I'll put a link to that.
But they'll be talking about Hummingbird this week and I don't know what they'll
be talking about in July, but yeah, hummingbird's very active, so yeah.
Yeah, I've been using Vapor as a default, but I have to
check out Hummingbird as well.
Yep.
Yeah.
Were there any other apps that you you wanna plug while you're here?
Yeah, there is actually one that I'm working on right now, which
is in beta, but I'm planning to release it within the next few weeks.
It's called Freemium Kit and it's basically a revenue cap alternative
with native experience, let's put it that way, with like push
notifications and supports all Apple platforms stuff like that.
Awesome.
You can
Well, um.
App if you wanna learn more.
Cool.
We'll put a link in the show notes.
JHA, thank you so much for coming on.
It was great to meet you in person and finally have you on the podcast.
Yeah.
Thank you for reminding me.
Where can people find you online?
I'm on Twitter and Masteron and also on frets.
I will always named Cihat, which is J double E and then hut like Pizza Hut.
I.
Thank you again.
People can find me online at Leo g Dion.
My company is bright Digit.
I'm a mask on x, whatever you wanna call it.
I if you're watching this on YouTube, please and subscribe.
And if you're listening to this, I'm a podcast player, I'd love your review.
If you want to come on, if you have a talk coming up that you
want to preview or practice I'm the perfect place for you.
If there's something you wanna hear about let me know.
Thank you everybody.
I look forward to talking to you again.
Bye.