Under the Radar 34: tvOS 10, macOS 10.12 and Swift 3
00:00:00
◼
►
welcome to under the radar a show but
00:00:02
◼
►
independent iOS app development I'm
00:00:04
◼
►
Marco Arment and I'm David Smith under
00:00:06
◼
►
the radar is never longer than 30
00:00:08
◼
►
minutes so let's get started so for the
00:00:10
◼
►
last few weeks we've been covering WDC
00:00:13
◼
►
announcements platform by platform and
00:00:15
◼
►
this week is kind of like the cleanup
00:00:16
◼
►
week because we're gonna talk first
00:00:18
◼
►
about TV OS and Mac OS and then and then
00:00:21
◼
►
some bonus stuff after that and we're
00:00:22
◼
►
kind of lumping this together because
00:00:24
◼
►
honestly from the point of view of two
00:00:26
◼
►
iOS developers there's not a whole lot
00:00:28
◼
►
of new stuff in TV OS or Mac OS that's
00:00:31
◼
►
really relevant to us I guess let's
00:00:34
◼
►
start out with TV OS I mean neither of
00:00:36
◼
►
us have a TV app but we've both kind of
00:00:38
◼
►
looked at it considered it even gone to
00:00:40
◼
►
the TV OS Tech Talks this past winter so
00:00:43
◼
►
David what do you think it has anything
00:00:45
◼
►
changed in regards to like is anything
00:00:48
◼
►
in TV OS now going to make it more
00:00:51
◼
►
appealing or more relevant or more
00:00:54
◼
►
compelling for us to make apps for it I
00:00:56
◼
►
don't think so I mean it it's a it's a
00:01:00
◼
►
strange thing to have an Apple platform
00:01:03
◼
►
that I really don't feel much drawn to
00:01:05
◼
►
making App Store for which because I
00:01:09
◼
►
almost so many other platforms I've
00:01:10
◼
►
always had an app available and ready on
00:01:14
◼
►
the first day like that was just sort of
00:01:16
◼
►
been my thing for I did it for as close
00:01:18
◼
►
as I could for the iPhone definitely did
00:01:20
◼
►
it for the iPad for the watch and I did
00:01:25
◼
►
it did for the Mac App Store even - if I
00:01:26
◼
►
remember right but it's there's
00:01:29
◼
►
something on the TV that just doesn't
00:01:30
◼
►
really appeal to me or feel compelling
00:01:33
◼
►
and I think a lot of it's just the TV
00:01:35
◼
►
and this is in large ways that Apple
00:01:38
◼
►
kind of is pitching it is TV OS is like
00:01:42
◼
►
the future of TV is apps but the
00:01:45
◼
►
implicit in that in some ways is that
00:01:46
◼
►
the apps are reflecting the previous
00:01:50
◼
►
content that was shown on TV and I think
00:01:53
◼
►
there's a lot of unless you have a you
00:01:56
◼
►
know you serve this your content creator
00:01:58
◼
►
or a producer you know your network your
00:01:59
◼
►
a TV network or a movie station or
00:02:01
◼
►
something or your a game producer
00:02:04
◼
►
someone who you know alternatively be
00:02:05
◼
►
playing on a game console there's not a
00:02:08
◼
►
lot there I mean maybe I'm just not
00:02:10
◼
►
creative enough and I think in general
00:02:12
◼
►
this has been borne out like
00:02:13
◼
►
I don't hear a lot of talk from about
00:02:18
◼
►
interesting TV os apps that aren't from
00:02:21
◼
►
networks and largely it's just a
00:02:24
◼
►
slightly more convenient way to access
00:02:26
◼
►
content that you previously would have
00:02:27
◼
►
have a you know have access to some
00:02:29
◼
►
other way and the changes we see in TV
00:02:31
◼
►
OS this year seem lined up with that
00:02:33
◼
►
like there's really not much there which
00:02:35
◼
►
fair enough to t be OS was announced in
00:02:37
◼
►
between the last watc in this one and so
00:02:41
◼
►
there's less time for things to have
00:02:42
◼
►
changed but the biggest change is the
00:02:44
◼
►
single sign-on thing which is useful and
00:02:48
◼
►
awesome if you're a TV network or
00:02:50
◼
►
someone who needs to a way to
00:02:52
◼
►
authenticate whether someone has bought
00:02:53
◼
►
a cable package that's a very narrow use
00:02:56
◼
►
case and so generally it's like cool I'm
00:02:59
◼
►
glad there's more stuff happening here I
00:03:01
◼
►
suppose but in general I'm like yeah
00:03:02
◼
►
that's kind of it'll keep doing its
00:03:04
◼
►
thing and maybe I'll check in with it
00:03:05
◼
►
periodically but I don't see much there
00:03:07
◼
►
for me do you see anything there for you
00:03:10
◼
►
for you do you have over the two of us
00:03:13
◼
►
you have the closest sort of need or a
00:03:15
◼
►
reason to be there insofar as you make a
00:03:17
◼
►
media consumption app which you could
00:03:19
◼
►
reasonably imagine existing on a
00:03:21
◼
►
television do you have any plans to go
00:03:24
◼
►
towards that though I I still I'm kind
00:03:27
◼
►
of waiting and seeing on that because
00:03:29
◼
►
you know I mean as you mentioned like it
00:03:31
◼
►
really does seem you know when the TV
00:03:33
◼
►
first came out and when when we when we
00:03:35
◼
►
first were hearing that we were gonna
00:03:36
◼
►
have access to make apps for Apple TV
00:03:38
◼
►
and there's gonna be this new TV
00:03:39
◼
►
platform but this new crazy remote that
00:03:41
◼
►
you can't hold and everything I thought
00:03:42
◼
►
a lot of people thought wow this is
00:03:45
◼
►
gonna be really great you know once we
00:03:47
◼
►
figure out stuff we haven't even thought
00:03:50
◼
►
of before like apps that with that right
00:03:52
◼
►
now as we think about it you know
00:03:53
◼
►
beforehand I was like if we're apps that
00:03:55
◼
►
right now we can't even consider that we
00:03:57
◼
►
haven't even thought of and there's
00:03:58
◼
►
gonna be something really cool that you
00:04:00
◼
►
can do in the TV now that we can put
00:04:01
◼
►
apps on it and and I think so far that
00:04:05
◼
►
has proven not to be the case yet that
00:04:08
◼
►
you know so far we we as like an
00:04:10
◼
►
industry of app makers and tea and Apple
00:04:13
◼
►
TV users we really haven't figured out
00:04:16
◼
►
anything else to do on TVs then we
00:04:17
◼
►
weren't basically already doing before
00:04:19
◼
►
you know maybe now we're doing things
00:04:21
◼
►
better and maybe we're doing things you
00:04:24
◼
►
know on different platforms you know
00:04:26
◼
►
like before there were no games
00:04:28
◼
►
the Apple TV now there are games for it
00:04:29
◼
►
not a ton of them they aren't all great
00:04:31
◼
►
but there are games for it you know but
00:04:33
◼
►
we're still basically using TV to watch
00:04:37
◼
►
video maybe occasionally play some music
00:04:40
◼
►
and play games like that's mainly what
00:04:42
◼
►
people use their Apple TVs for so as you
00:04:45
◼
►
mentioned like if you're not you know
00:04:47
◼
►
watching video is is tough if you're if
00:04:50
◼
►
you're not a Content owner like there's
00:04:51
◼
►
not there's not a whole lot for non
00:04:53
◼
►
content owners to do because for the
00:04:56
◼
►
most part there's no good source where
00:04:59
◼
►
you can get video content to play in
00:05:01
◼
►
your app like there are video podcast so
00:05:03
◼
►
you could make a video podcast player
00:05:04
◼
►
but those are pretty it's a pretty small
00:05:06
◼
►
market of both of content and a viewers
00:05:09
◼
►
relative to something like YouTube or a
00:05:11
◼
►
TV network so like there's not a whole
00:05:13
◼
►
lot for you to do in making like a video
00:05:16
◼
►
consumption app if you if you aren't
00:05:18
◼
►
like a video producer we're working for
00:05:20
◼
►
a video producer and then most of the
00:05:23
◼
►
like most people I know who are indie
00:05:25
◼
►
developers make either some kind of
00:05:28
◼
►
media consumption app or what I would
00:05:30
◼
►
generally classify as productivity apps
00:05:32
◼
►
or utility apps like I don't know a lot
00:05:35
◼
►
of people who make games and I don't
00:05:37
◼
►
know a lot of people who own TV stations
00:05:39
◼
►
and TV networks so the vast majority of
00:05:42
◼
►
apps of programmers I know who are like
00:05:45
◼
►
working for themselves and not not
00:05:47
◼
►
contracting for somebody like a media
00:05:48
◼
►
company I don't really see a lot for any
00:05:50
◼
►
of us to do on the Apple TV there is
00:05:53
◼
►
that one area that you mention of media
00:05:54
◼
►
consumption like what else is there
00:05:56
◼
►
besides the video that you Mabel to get
00:05:57
◼
►
on there and you know I like I know
00:05:59
◼
►
people who make RSS readers I don't see
00:06:01
◼
►
much of a use for that on the TV
00:06:02
◼
►
especially given there's no web kit but
00:06:04
◼
►
even if there was I don't think that
00:06:05
◼
►
would solve the problem so then then I
00:06:07
◼
►
guess that boils down to okay what about
00:06:08
◼
►
audio you know I make an audio playback
00:06:10
◼
►
app I don't need to worry about where
00:06:12
◼
►
the content comes from because it's free
00:06:13
◼
►
and open because it's actually the last
00:06:15
◼
►
useful medium so sorry getting political
00:06:18
◼
►
there so there is a good question of
00:06:21
◼
►
like well is there a use for overcast in
00:06:23
◼
►
the Apple TV and no question there is a
00:06:25
◼
►
use for overcast for some people some
00:06:28
◼
►
people have asked for it but for the
00:06:31
◼
►
most part most people don't use their
00:06:33
◼
►
TVs as far as I can tell most people
00:06:36
◼
►
don't use their TVs to just play audio
00:06:38
◼
►
content and then do and then sit there
00:06:40
◼
►
with nothing else happen
00:06:41
◼
►
on screen you know most most TV media
00:06:44
◼
►
consumption is video and because I don't
00:06:47
◼
►
even play video like even the world of
00:06:49
◼
►
video podcasts I'm not in so because I
00:06:51
◼
►
don't even handle video at all and I
00:06:53
◼
►
don't really intend to to change that I
00:06:56
◼
►
don't I just don't think there's enough
00:06:59
◼
►
reason for me to be there to justify the
00:07:02
◼
►
the fairly sizable amount of work it
00:07:04
◼
►
would take you know the the whole like
00:07:06
◼
►
bottom half of the app like the day
00:07:08
◼
►
delay or the sink layer the audio engine
00:07:10
◼
►
I got those built in running on Apple TV
00:07:12
◼
►
you know back when the SDK first came
00:07:14
◼
►
out with a couple hours of work I mean
00:07:16
◼
►
that was that was the easy part because
00:07:18
◼
►
I was already it was already you know
00:07:19
◼
►
all I oh s code the hard part is the
00:07:21
◼
►
entire TV UI which all basically has to
00:07:25
◼
►
be written from scratch but you pretty
00:07:26
◼
►
much can't use any code or this you
00:07:29
◼
►
can't use most code that you wrote for
00:07:31
◼
►
iOS on TV OS because things just work
00:07:33
◼
►
differently they're structured
00:07:34
◼
►
differently the input is completely
00:07:35
◼
►
different the navigation is completely
00:07:37
◼
►
different so you basically have to write
00:07:40
◼
►
the entire UI layer from scratch and I
00:07:43
◼
►
just I started doing it I made like the
00:07:46
◼
►
login screen stuff and and after making
00:07:48
◼
►
login and registration and everything I
00:07:50
◼
►
was like you know I really am not
00:07:52
◼
►
enjoying this at all and what's the
00:07:54
◼
►
benefit really gonna be here like a
00:07:56
◼
►
podcast app has a lot of screens way way
00:07:59
◼
►
more than you might think if you haven't
00:08:00
◼
►
built one and yeah I could just pour it
00:08:03
◼
►
over like a subset of functionality but
00:08:04
◼
►
it doesn't really I don't know it
00:08:06
◼
►
doesn't seem worth it unless there is
00:08:07
◼
►
really strong demand and I just haven't
00:08:10
◼
►
seen evidence of that I've seen evidence
00:08:12
◼
►
of a few people who want it but but not
00:08:15
◼
►
most and I think is a tricky paint
00:08:17
◼
►
platform to because I was even trying to
00:08:20
◼
►
imagine if they have a pose likely sold
00:08:23
◼
►
more appletv fourth generations or Apple
00:08:26
◼
►
watches and my guess is they've sold
00:08:28
◼
►
more Apple watches like and that's even
00:08:31
◼
►
in and of itself as a relatively small
00:08:33
◼
►
and narrow audience certainly compared
00:08:36
◼
►
to something like iOS which you're
00:08:38
◼
►
worried about it's you know it's just
00:08:39
◼
►
immense and massive and so I think of
00:08:43
◼
►
some like TV OS and it's like and
00:08:44
◼
►
usually if you have a relatively small
00:08:47
◼
►
addressable market you have to be able
00:08:50
◼
►
to charge a lot for an app phone afford
00:08:53
◼
►
to sort of make sense financially and
00:08:55
◼
►
shirred like in general in the AppStore
00:08:57
◼
►
that's always been kind of a tricky
00:08:58
◼
►
thing to have or you know there's always
00:09:01
◼
►
been a downward force on pressure
00:09:03
◼
►
pressure on prices and so it's kind of a
00:09:05
◼
►
strange thing to feel like well if it's
00:09:07
◼
►
there's only I don't know a few million
00:09:09
◼
►
of them in the world and of those how
00:09:12
◼
►
many people are looking for third-party
00:09:14
◼
►
apps that aren't just you know major TV
00:09:17
◼
►
networks or things like that and so in
00:09:19
◼
►
general it may just be fine for it to be
00:09:21
◼
►
a platform that there isn't a lot of
00:09:23
◼
►
interest from people like us which seems
00:09:27
◼
►
like that's probably fine that's okay I
00:09:28
◼
►
maybe it's you know it's for other
00:09:30
◼
►
people it's cool it's you know I I have
00:09:33
◼
►
one in my house and I use it but it's
00:09:35
◼
►
not a platform that I expect to really
00:09:37
◼
►
dive into and till there is something
00:09:40
◼
►
changes to where that became to come as
00:09:42
◼
►
compelling and I don't really know what
00:09:43
◼
►
that change could or would be but as it
00:09:45
◼
►
is now I don't expect that to change in
00:09:47
◼
►
the near future right I mean and you
00:09:49
◼
►
know one obvious big thing they could do
00:09:50
◼
►
is the app store environment really
00:09:53
◼
►
needs some help on the Apple TV it is it
00:09:55
◼
►
is a very limited difficult to browse
00:09:57
◼
►
app store there's still no convenience
00:10:00
◼
►
is like like web links to Apple TVs so
00:10:02
◼
►
like if you if you convince somebody to
00:10:04
◼
►
go look for your Apple TV app you they
00:10:06
◼
►
can't just click a button and buy it
00:10:07
◼
►
like from their phone or computer they
00:10:09
◼
►
have to like go to the Apple TV which
00:10:11
◼
►
they might not even be near at the time
00:10:12
◼
►
they might be reading Twitter like on
00:10:13
◼
►
their phone away from home or something
00:10:15
◼
►
but they need to go to the Apple TV at
00:10:17
◼
►
home if they remember to do that go to
00:10:19
◼
►
the App Store search for your app find
00:10:21
◼
►
it's like there's there's no like link
00:10:23
◼
►
or buy for later or anything like that
00:10:26
◼
►
so a lot of that could could help this a
00:10:28
◼
►
little bit but also you know I just feel
00:10:30
◼
►
like you know you as an Apple TV user
00:10:32
◼
►
mean an Apple TV use I mean I've used
00:10:34
◼
►
the Apple TV every day for years and you
00:10:36
◼
►
know now and of course we got the new
00:10:37
◼
►
one immediately and I mean using that
00:10:39
◼
►
every day since it came out the Apple TV
00:10:41
◼
►
is our primary TV connected device the
00:10:44
◼
►
vast majority of the time TV is on
00:10:45
◼
►
that's what we're using so as a user
00:10:48
◼
►
though I hardly ever go to browse the
00:10:51
◼
►
app store on the Apple TV like that's
00:10:53
◼
►
not what I'm sitting down there to do
00:10:54
◼
►
I'm sitting down in front of the TV
00:10:56
◼
►
usually to play video content in like
00:10:59
◼
►
two or three apps and I think for most
00:11:02
◼
►
people that's probably the biggest use
00:11:04
◼
►
cases like you're not sitting down to
00:11:06
◼
►
browse through the app store and buy a
00:11:07
◼
►
bunch of crap and see what
00:11:09
◼
►
you like you're probably sitting down to
00:11:10
◼
►
watch TV and even if you were sitting
00:11:14
◼
►
down to browse I think what would I be
00:11:16
◼
►
browsing for I'd probably be browsing
00:11:18
◼
►
for games so like I and and when I have
00:11:22
◼
►
the handful of times I have browse the
00:11:24
◼
►
App Store on Apple TV that's that's the
00:11:25
◼
►
only and I was I was only looking for
00:11:27
◼
►
games I was not looking for like I
00:11:28
◼
►
wonder if there's any podcast players
00:11:30
◼
►
that never even crossed my mind it was
00:11:32
◼
►
only about okay I'm at this thing I
00:11:34
◼
►
either want to watch TV or play games
00:11:35
◼
►
and that just might always be the case
00:11:39
◼
►
like that that might never actually
00:11:40
◼
►
change with with the Apple TV and that's
00:11:42
◼
►
okay that's just how people use their
00:11:44
◼
►
TVs most of the time and if the TV never
00:11:46
◼
►
ends up becoming a like general-purpose
00:11:49
◼
►
computing platform that's okay we have
00:11:51
◼
►
lots of other journal purpose computing
00:11:53
◼
►
platforms that are really good and
00:11:55
◼
►
really compelling and and so that you
00:11:57
◼
►
know this not everything needs to be one
00:11:59
◼
►
obviously you can say a lot of similar
00:12:01
◼
►
things about the watch honestly but but
00:12:02
◼
►
I think the TV is even more limited
00:12:04
◼
►
because it's like this fixed thing in
00:12:05
◼
►
your house that you're accessing through
00:12:07
◼
►
this you know distant remote with very
00:12:09
◼
►
few very little interaction possible and
00:12:11
◼
►
and you just kind of want to sit back
00:12:12
◼
►
and watch TV or play a game so I think
00:12:14
◼
►
if you're a game maker the the case is
00:12:16
◼
►
fairly compelling to you know if you can
00:12:18
◼
►
get your game ported to the Apple TV
00:12:20
◼
►
without a whole ton of work it is almost
00:12:23
◼
►
certainly worth doing that but if you
00:12:25
◼
►
are pretty much any other kind of app
00:12:28
◼
►
besides the TV content producer I I
00:12:31
◼
►
think you can safely avoid it for now
00:12:32
◼
►
our sponsor this week is Pingdom start
00:12:36
◼
►
monitoring your websites and servers
00:12:38
◼
►
today with Pingdom go to Pingdom comm
00:12:40
◼
►
slash radar you get a 14-day free trial
00:12:42
◼
►
I mean you use offer code radar checkout
00:12:44
◼
►
you get 20% off your first invoice
00:12:46
◼
►
payment focused on making the web faster
00:12:48
◼
►
and more reliable for everyone who has a
00:12:50
◼
►
site or runs a service they offer
00:12:51
◼
►
powerful easy-to-use tools and services
00:12:54
◼
►
for monitoring your site and its
00:12:55
◼
►
performance for example you can monitor
00:12:57
◼
►
a server a database an entire website
00:13:00
◼
►
and it's such a breeze to do it they use
00:13:02
◼
►
more than 70 global test servers that
00:13:04
◼
►
emulate visits to your site checking its
00:13:06
◼
►
availability as often as every minute
00:13:07
◼
►
and they give a detailed performance
00:13:09
◼
►
metrics they can alert you when it's
00:13:10
◼
►
down after one minute it and of course
00:13:13
◼
►
you can customize out if you could have
00:13:14
◼
►
a flaky site and you already know that
00:13:16
◼
►
but they can alert you immediately or
00:13:18
◼
►
after a certain period of downtime or
00:13:20
◼
►
with certain thresholds being crossed or
00:13:22
◼
►
for certain stray
00:13:23
◼
►
doesn't appear on the page like I
00:13:24
◼
►
straighten saying everything's okay or
00:13:25
◼
►
your footer or whatever else it is
00:13:27
◼
►
incredibly useful I've used Pingdom now
00:13:29
◼
►
for what seven years was it something
00:13:32
◼
►
like that yeah and I think I'm six years
00:13:34
◼
►
I'm just behind you on that yeah I mean
00:13:36
◼
►
it's it's such a good service for
00:13:37
◼
►
monitoring your stuff and anybody else's
00:13:39
◼
►
stuff too like we used to use it to
00:13:40
◼
►
monitor changes to the WTC site back
00:13:42
◼
►
when you had to like Russia and it gets
00:13:43
◼
►
tickets you can you can monitor any URL
00:13:45
◼
►
you don't have to own it it's a really
00:13:47
◼
►
great service we love Pingdom I love
00:13:49
◼
►
Pingdom check it out today go to Kingdom
00:13:52
◼
►
comm slash radar and use code radar to
00:13:56
◼
►
get 20% off your first invoice use
00:13:58
◼
►
Pingdom you should not learn that your
00:14:00
◼
►
site is down by people telling you on
00:14:02
◼
►
Twitter you should already know and you
00:14:03
◼
►
should be fixing it before anybody sees
00:14:05
◼
►
it thanks a lot to Pingdom for
00:14:06
◼
►
sponsoring our show snow one the other
00:14:09
◼
►
platform that i've a seem like made
00:14:10
◼
►
sense to just briefly touch on is mac OS
00:14:14
◼
►
and it's mac OS is an interesting
00:14:16
◼
►
platform and so far as i use it
00:14:18
◼
►
constantly but i don't develop for it i
00:14:22
◼
►
develop on it and so there are a variety
00:14:25
◼
►
of interesting changes happening to mac
00:14:27
◼
►
OS its name it has a new file system and
00:14:30
◼
►
there's a few other like sort of user
00:14:32
◼
►
facing things but the only thing that
00:14:34
◼
►
actually caught my attention in this WC
00:14:37
◼
►
on the mac that i think i'm excited
00:14:39
◼
►
about as a developer is the new console
00:14:42
◼
►
app which is a bit of a low-level thing
00:14:45
◼
►
i suppose to be excited about but i got
00:14:48
◼
►
a chance to play with this when I was in
00:14:49
◼
►
WTC and it is going to be
00:14:52
◼
►
extraordinarily useful to be able to
00:14:55
◼
►
don't you know keep track and diagnose
00:14:57
◼
►
problems when I'm debugging to have the
00:14:59
◼
►
new console app on Mac OS Sierra because
00:15:03
◼
►
essentially the thing that caught that
00:15:04
◼
►
it can now do and this is part of this
00:15:06
◼
►
whole new re are connecting they've done
00:15:08
◼
►
if the way console and logging works in
00:15:11
◼
►
and the various platforms but easy you
00:15:14
◼
►
will be able to get the logs from your
00:15:18
◼
►
devices so like from your watch or your
00:15:20
◼
►
phone or your iPad streamed to your Mac
00:15:24
◼
►
if you have a debug session if you're if
00:15:26
◼
►
you if you have a sort of a development
00:15:28
◼
►
session and active and once they're in
00:15:30
◼
►
the console app you can start to do
00:15:32
◼
►
clever and interesting things with them
00:15:33
◼
►
like you can start to
00:15:35
◼
►
filter them down based on particular
00:15:37
◼
►
keywords or but I find this is really
00:15:39
◼
►
helpful for me and watch development
00:15:42
◼
►
where watch development you can get
00:15:44
◼
►
really really annoying because a lot of
00:15:47
◼
►
the things that you're trying to do you
00:15:50
◼
►
you don't want to be connected to Xcode
00:15:52
◼
►
while they're happening so all the
00:15:53
◼
►
background refresh stuff like you want
00:15:55
◼
►
it to be running off on its own and then
00:15:58
◼
►
you reporting results as it goes and you
00:16:01
◼
►
want to see like okay every 15 minutes
00:16:02
◼
►
it woke up and refreshed itself so right
00:16:05
◼
►
now what I end up doing is I you know
00:16:06
◼
►
have my iPhone connected to my watch
00:16:09
◼
►
connect to be a lightning port and then
00:16:12
◼
►
Xcode open to the devices tab and then I
00:16:15
◼
►
have the full and complete console log
00:16:17
◼
►
from the watch shown there and then I
00:16:20
◼
►
need to go through and like take that
00:16:22
◼
►
file save it to a disk run it through
00:16:24
◼
►
grep to find the various relevant things
00:16:26
◼
►
and kind of go through it's a bit of a
00:16:27
◼
►
nightmare in the new console you will be
00:16:29
◼
►
able to do that much more
00:16:30
◼
►
straightforwardly I can just say like
00:16:31
◼
►
show me messages from my app for my
00:16:33
◼
►
watch and they'll just stream live and
00:16:36
◼
►
it actually you know fuss with grep or
00:16:38
◼
►
anything like that so that's kind of
00:16:40
◼
►
exciting kind of nice very low-level and
00:16:42
◼
►
straightforward but I almost missed it
00:16:44
◼
►
in the announcements that that was
00:16:46
◼
►
coming but other than that I didn't see
00:16:48
◼
►
anything in it that was like really
00:16:49
◼
►
exciting or interesting to me I was like
00:16:51
◼
►
yep it will hopefully at this point all
00:16:53
◼
►
I want from the Mac is for it to be like
00:16:55
◼
►
stable reliable a place that I can you
00:16:57
◼
►
know sit down open Xcode and get to work
00:16:59
◼
►
and I think Mac OS Sierra will probably
00:17:02
◼
►
be that and so I'm happy yeah I mean as
00:17:05
◼
►
a user it seems you know I'm pretty
00:17:07
◼
►
happy with it as a developer I am a Mac
00:17:11
◼
►
developer slightly in in that I I did
00:17:14
◼
►
recently write a Mac app called quitter
00:17:16
◼
►
and now I'm working on another one for
00:17:19
◼
►
podcast post-production utilities
00:17:22
◼
►
basically but I because I'm structured
00:17:26
◼
►
like an elementary level Mac programmer
00:17:28
◼
►
like imagine if you were if you were
00:17:30
◼
►
learning iOS development and you started
00:17:33
◼
►
learning iOS development like in you
00:17:35
◼
►
know March that was the first thing you
00:17:38
◼
►
ever did it whatever was announced at
00:17:40
◼
►
the BBC wouldn't really be that
00:17:42
◼
►
important to you because you know you
00:17:45
◼
►
were alright you were at such an
00:17:46
◼
►
elementary level that like you still
00:17:48
◼
►
need to learn the basic
00:17:49
◼
►
that were announced five ten years ago
00:17:51
◼
►
you know I mean I'm you know if it was
00:17:52
◼
►
that old so like that's kind of where I
00:17:54
◼
►
am with Mac OS development where like I
00:17:56
◼
►
I'm still using like the basic stuff and
00:17:59
◼
►
any new things they introduced to the
00:18:01
◼
►
Mac first of all the Mac API doesn't
00:18:03
◼
►
change much these days anymore
00:18:05
◼
►
because it's very it's much older and
00:18:06
◼
►
has matured and you know the rate of
00:18:09
◼
►
change is much slower than iOS but
00:18:11
◼
►
whatever they would change would be so
00:18:14
◼
►
far above my head unless they radically
00:18:16
◼
►
revamped app kit which I don't you know
00:18:18
◼
►
III have doubts on whether they will
00:18:20
◼
►
ever do that
00:18:21
◼
►
so it's not it's not really relevant to
00:18:24
◼
►
me whatever they chant even know what
00:18:25
◼
►
they change but whatever it is it's it's
00:18:27
◼
►
almost certainly not relevant to me you
00:18:30
◼
►
know except there are stuff that share
00:18:31
◼
►
with iOS so as a developer cool I love
00:18:35
◼
►
there's no App Store
00:18:36
◼
►
let's move on so I guess the the last
00:18:40
◼
►
thing to talk about for like major wvc
00:18:43
◼
►
announcement areas is Swift
00:18:46
◼
►
now Swift is interesting because Minette
00:18:51
◼
►
you know ever since it went open-source
00:18:52
◼
►
which was what last fall it it was right
00:18:55
◼
►
before the end of the year I think
00:18:58
◼
►
because I think they I think it was they
00:19:00
◼
►
had said it but six in my head is that
00:19:02
◼
►
they had said we're gonna open source
00:19:03
◼
►
Swift this year and then they ended up
00:19:06
◼
►
open sourcing it in December like
00:19:08
◼
►
towards the end of December but it was
00:19:09
◼
►
along those lines right so ever since
00:19:12
◼
►
Swift has been open sourced there's you
00:19:15
◼
►
know we've can't we've seen the roadmap
00:19:17
◼
►
like they've they've developed the vast
00:19:18
◼
►
majority of it in the open so we've
00:19:21
◼
►
we've seen the roadmap and we know
00:19:23
◼
►
what's coming
00:19:23
◼
►
in many cases the community has input
00:19:25
◼
►
and and and influences what's coming
00:19:27
◼
►
which is great so there wasn't really
00:19:29
◼
►
any kind of surprise to announce at WC
00:19:32
◼
►
except it may be the playgrounds app for
00:19:34
◼
►
iPad but and that's that's big and
00:19:36
◼
►
that's good but I don't think it's
00:19:37
◼
►
really that relevant to existing Swift
00:19:39
◼
►
developers what what is new and Swift so
00:19:42
◼
►
I think the biggest things that and then
00:19:45
◼
►
I'm I know means this was Swift expert
00:19:47
◼
►
but the biggest goals are the best I
00:19:49
◼
►
could understand for Swift 3 was to get
00:19:52
◼
►
to a place where they would be able to
00:19:54
◼
►
maintain source compatibility going
00:19:57
◼
►
forward because in the first first
00:20:00
◼
►
versions of Swift just one swift to
00:20:02
◼
►
those jumps and from 2:00 to 3:00 in
00:20:04
◼
►
fact there have been a variety of like
00:20:06
◼
►
source breaking changes that I hear from
00:20:09
◼
►
a variety of people who are Swift
00:20:11
◼
►
developers where the new just like
00:20:12
◼
►
something new comes out and sometimes
00:20:15
◼
►
there's tools to help them with this but
00:20:16
◼
►
then they need to go and sit down for a
00:20:18
◼
►
day and like fix all the things to make
00:20:20
◼
►
it not broken anymore which is a little
00:20:24
◼
►
bit scary too like if you imagine if you
00:20:26
◼
►
had a project of any kind of
00:20:28
◼
►
significance and you go through this
00:20:29
◼
►
massive refactoring process to have
00:20:32
◼
►
confidence that at the end of it like
00:20:34
◼
►
everything works in the way that you
00:20:36
◼
►
expected it to work as best I understand
00:20:38
◼
►
for Swift three their goal was to get
00:20:42
◼
►
all of those kinds of changes done with
00:20:44
◼
►
at once and so now from Swift three
00:20:47
◼
►
going forward there should be very few
00:20:49
◼
►
things that are would would break source
00:20:51
◼
►
compatibility going forward that there
00:20:53
◼
►
may be things that change you know that
00:20:55
◼
►
I believe the binary format and things
00:20:58
◼
►
is not stable yet and things like that
00:21:01
◼
►
like that doesn't really matter
00:21:02
◼
►
practically it's it's an important thing
00:21:04
◼
►
they don't they're in general that's
00:21:07
◼
►
more of a tooling problem than a
00:21:09
◼
►
developer problem like there's certainly
00:21:10
◼
►
some overlap there but in general that's
00:21:12
◼
►
fine the nouns for three they've gone
00:21:15
◼
►
through and they've done all these
00:21:16
◼
►
things like they've changed the way
00:21:17
◼
►
things are named so they got rid of a
00:21:20
◼
►
lot of prefixes they did some really
00:21:22
◼
►
cool and clever things to take c.a.p
00:21:25
◼
►
eyes and make them look swifty which I
00:21:28
◼
►
thought was really clever so like now if
00:21:30
◼
►
you're working with core graphics which
00:21:32
◼
►
you've even felt awkward in Objective C
00:21:35
◼
►
now in Swift it actually looks really
00:21:38
◼
►
Swift and it looks really clever and
00:21:40
◼
►
clear to be able to you know you take
00:21:42
◼
►
your context and you call methods on it
00:21:44
◼
►
in a way that you would expect from
00:21:45
◼
►
Swift and I believe all that's doing is
00:21:48
◼
►
under the hood it's taking your swift
00:21:50
◼
►
syntax and like unwrapping it and
00:21:52
◼
►
turning it into this rip the old sort of
00:21:55
◼
►
for a very verbose C syntax but it's
00:21:59
◼
►
doing things like that so what you're
00:22:01
◼
►
trying to make the platform make it a
00:22:03
◼
►
really nice clear and concise language
00:22:05
◼
►
to start writing in and going forward I
00:22:08
◼
►
think the big things they're expecting -
00:22:10
◼
►
they're working on and for like this
00:22:12
◼
►
with I had no it's 3.1 or 54 or whatever
00:22:16
◼
►
roadmap we'll go get tore it's like
00:22:17
◼
►
they're gonna make the binary more
00:22:19
◼
►
stable work on generics slightly
00:22:22
◼
►
improved concurrency I think is
00:22:23
◼
►
something that I remember being on the
00:22:24
◼
►
roadmap but in general Swift seems to be
00:22:27
◼
►
in a pretty good place after you know
00:22:31
◼
►
it's two years in from it when it was
00:22:33
◼
►
first announced I think it's finally
00:22:34
◼
►
seems to have entered into the slightly
00:22:37
◼
►
mature phase of its life where this is
00:22:41
◼
►
probably a reasonable time to sort of
00:22:43
◼
►
start diving into it because it is what
00:22:47
◼
►
you're learning now isn't is unlikely to
00:22:49
◼
►
be on the sort of needed need to be
00:22:51
◼
►
unlearned a year from now I really
00:22:55
◼
►
should dive into it I just keep wanting
00:22:57
◼
►
to do things faster and with less you
00:23:00
◼
►
know with less time investment and so I
00:23:01
◼
►
keep falling back to it yet to see but I
00:23:04
◼
►
I do admit I am tempted to jump into
00:23:05
◼
►
Swift the summer I just haven't quite
00:23:07
◼
►
done it yet do you plan on anything with
00:23:09
◼
►
that so shocking yes this is actually
00:23:13
◼
►
one of these got so this last week I
00:23:16
◼
►
decided that I was going to learn Swift
00:23:19
◼
►
and I sat down with the like the Swift
00:23:23
◼
►
developer book in iBooks and I read the
00:23:26
◼
►
first sort of third of it which is the
00:23:28
◼
►
essentially like the language overview
00:23:30
◼
►
and I'm delighted to say that I am going
00:23:33
◼
►
to be me I have I'm a little nervous and
00:23:35
◼
►
saying it but I think I need to say it
00:23:37
◼
►
in order to make it actually happen that
00:23:38
◼
►
I'm going to be right
00:23:40
◼
►
my next app in Swift and if you all
00:23:43
◼
►
right anyway a follower of my work I
00:23:45
◼
►
tend to release a new app every summer
00:23:47
◼
►
at least at least one and so the next
00:23:50
◼
►
app I write is going to be an Swift all
00:23:52
◼
►
right congratulations earlier this
00:23:54
◼
►
earlier this week I think on Tuesday I
00:23:56
◼
►
went and went into Xcode you know file
00:23:59
◼
►
new project and for the first time ever
00:24:02
◼
►
changed the language drop-down from A to
00:24:04
◼
►
C to Swift and so I've been spending the
00:24:08
◼
►
last few days just kind of digging into
00:24:11
◼
►
how I would actually write an app in
00:24:13
◼
►
Swift and it's weird it's taken a lot of
00:24:16
◼
►
like it's just this really strange
00:24:19
◼
►
feeling and it almost makes me think of
00:24:21
◼
►
what I imagine people who switch to like
00:24:24
◼
►
try and learn a divorcée back keyboard
00:24:26
◼
►
their experience where it's like it
00:24:28
◼
►
feels really familiar
00:24:29
◼
►
typing feels familiar but it sorry I'm
00:24:32
◼
►
writing Swift and it looks familiar like
00:24:34
◼
►
I know all the API is like that's not
00:24:35
◼
►
like I'm doing something new that I had
00:24:38
◼
►
to learn like I know how you Ike it
00:24:40
◼
►
works I know all healthcare works I know
00:24:41
◼
►
how all these frameworks work but I have
00:24:43
◼
►
no idea how to call it and so I keep
00:24:45
◼
►
doing like I keep running off to Google
00:24:47
◼
►
and being like how do I do this in Swift
00:24:49
◼
►
how do I do this and Swift and it's like
00:24:51
◼
►
keeps learning the syntax and exactly
00:24:54
◼
►
like all the idioms for it but overall
00:24:58
◼
►
it's been pretty cool it's it's an
00:25:00
◼
►
interesting language because I think
00:25:02
◼
►
ultimately objective-c is a better fit
00:25:05
◼
►
for my mentality then Swift is I think I
00:25:10
◼
►
like Swift as a language and I can see
00:25:12
◼
►
its utility the thing that always could
00:25:15
◼
►
that kind of frustrates me with at least
00:25:16
◼
►
so far and now it's just certainly a bit
00:25:19
◼
►
of a noob with it at this point but is
00:25:21
◼
►
it seems to values correctness higher
00:25:26
◼
►
than I would value correctness which
00:25:28
◼
►
maybe makes me a bad programmer but the
00:25:31
◼
►
way I think about a lot of things is I
00:25:34
◼
►
you know I don't I don't write code that
00:25:37
◼
►
it has these little elaborate error
00:25:40
◼
►
checking things in it like I tend to do
00:25:42
◼
►
sort of like best effort and then just
00:25:44
◼
►
throw up my hands it's sort of that of
00:25:46
◼
►
the approach that I'll often take a maps
00:25:47
◼
►
and this just there in the nature of the
00:25:49
◼
►
way that I program like I'm just I go
00:25:51
◼
►
for a quick quick and I'm experienced
00:25:53
◼
►
enough that I know how to not write
00:25:55
◼
►
horrible code that's going to be very
00:25:56
◼
►
problematic and I mean I would this is
00:25:59
◼
►
the way that I felt my apps and if you
00:26:01
◼
►
look at my apps I wouldn't think you
00:26:03
◼
►
would say that they're you know like
00:26:04
◼
►
poorly poorly designed or created but in
00:26:08
◼
►
Swift there's all of these things that
00:26:09
◼
►
you just have you can't get around to
00:26:10
◼
►
everything has to be super correct and
00:26:12
◼
►
typesafe and the whole thing with
00:26:15
◼
►
optionals and like is this nil or is it
00:26:16
◼
►
not know and you have to always check
00:26:18
◼
►
whereas an objective-c I can be like I
00:26:20
◼
►
know it's not or I know that if it is no
00:26:22
◼
►
I don't care and that I there's like a
00:26:26
◼
►
philosophical difference there that I
00:26:28
◼
►
have to kind of get giving to and be
00:26:30
◼
►
like ok no it's fine that I have to be
00:26:32
◼
►
explicit about all these things which I
00:26:35
◼
►
imagine in a team environment would be
00:26:37
◼
►
huge and that you don't have all of this
00:26:39
◼
►
kind of like meta
00:26:41
◼
►
information that is just like stuck in
00:26:43
◼
►
my brain about how this function works
00:26:45
◼
►
because I'm the one who wrote it and I'm
00:26:48
◼
►
the only one who's ever going to see it
00:26:50
◼
►
whereas if you work in a team
00:26:51
◼
►
environment it might be more important
00:26:53
◼
►
to have everything you know like it's
00:26:56
◼
►
almost like self documenting in a way
00:26:57
◼
►
where all the conditions and things have
00:27:00
◼
►
to be so much more explicit but overall
00:27:02
◼
►
I like it it's been weird I like that
00:27:05
◼
►
there's a lot less code it feels like
00:27:07
◼
►
like I have more code per line cuz I
00:27:10
◼
►
often have to do a lot of extra kind of
00:27:12
◼
►
like casts and little checks but overall
00:27:16
◼
►
it seems like it's like method there's
00:27:17
◼
►
no header files and things overall like
00:27:19
◼
►
the code the lines of code count goes
00:27:21
◼
►
down and so it's been fun and I guess
00:27:25
◼
►
we'll check in in a couple of months at
00:27:27
◼
►
the end of the summer when I've actually
00:27:28
◼
►
written this app and it's not just like
00:27:30
◼
►
this terrible basic like learning my
00:27:34
◼
►
first uikit program I'm to see if this
00:27:37
◼
►
experiment succeeds but you know so far
00:27:40
◼
►
so good and I recommend trying because I
00:27:44
◼
►
think this is seems like the great time
00:27:45
◼
►
like I've been waiting if you one of our
00:27:47
◼
►
first episodes was about when we were
00:27:49
◼
►
gonna get into Swift and I think I
00:27:50
◼
►
remembers we were saying it's like well
00:27:52
◼
►
we want to do it when it's stable and
00:27:55
◼
►
it's a reasonable thing to take sort of
00:27:57
◼
►
to tackle and this we felt like the
00:27:59
◼
►
right time for me so I've taken the
00:28:01
◼
►
plunge alright well congratulations now
00:28:04
◼
►
now I'm like the last one so I will
00:28:07
◼
►
probably probably take the plunge myself
00:28:09
◼
►
soon but I have not quite there yet
00:28:11
◼
►
probably later this summer it's it's
00:28:13
◼
►
always you know it's like the year of a
00:28:15
◼
►
desktop Linux it's like I'm always gonna
00:28:17
◼
►
write Swift like starting next month so
00:28:19
◼
►
you just you need to do is write a new
00:28:21
◼
►
app right you just you need to just
00:28:24
◼
►
broaden your horizons think of something
00:28:25
◼
►
new to make and then just do that scary
00:28:28
◼
►
thing of changing the drop-down from
00:28:29
◼
►
Objective C to Swift and you know you
00:28:32
◼
►
can go from there yeah I mean I'm
00:28:35
◼
►
curious like do you think you're gonna
00:28:36
◼
►
be writing all or mostly Swift from this
00:28:39
◼
►
point forward even an existing code
00:28:40
◼
►
bases I doubt it I I expect to be
00:28:44
◼
►
writing Objective C and my existing
00:28:45
◼
►
products and Swift in my new things I
00:28:47
◼
►
think it's probably what I expected to
00:28:49
◼
►
because it's the Kyle
00:28:52
◼
►
contact shifting has been like the
00:28:54
◼
►
little bit I've done so far where I
00:28:55
◼
►
would like look at the way I did
00:28:56
◼
►
something previously in Objective C and
00:28:58
◼
►
then try and like Swift if I it like it
00:29:00
◼
►
really hurts your brain to they're so
00:29:03
◼
►
similar but so different that if I think
00:29:06
◼
►
I'm gonna want if I'm working on a
00:29:08
◼
►
particular project I want to just be in
00:29:10
◼
►
the Objective C mindset or if I'm you
00:29:12
◼
►
know own this one I want to be in the
00:29:13
◼
►
Swift mindset that jumping back and
00:29:15
◼
►
forth between them I think we just drive
00:29:17
◼
►
me insane like the number of times I do
00:29:20
◼
►
ampersand quote for a string things like
00:29:23
◼
►
that where it's like all or at a
00:29:25
◼
►
semicolon to the end of a line we should
00:29:28
◼
►
just you know habits I have for amateur
00:29:29
◼
►
chef C but in Swift I don't need them
00:29:32
◼
►
and so I think I would just drive myself
00:29:33
◼
►
crazy jumping back and forth so I'll
00:29:35
◼
►
just I have this one new project it's
00:29:37
◼
►
what I'm gonna work on in the summer and
00:29:38
◼
►
it'll be in Swift and we'll see how it
00:29:40
◼
►
goes awesome alright well we're out of
00:29:43
◼
►
time this week thank you very much for
00:29:45
◼
►
listening everybody and good luck day
00:29:47
◼
►
with your new Swift of vacation thanks
00:29:49
◼
►
and we'll talk to you next week bye