PodSearch

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