Under the Radar

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:54   I'm not

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:27   maker

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:15   the

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