WWDC 2016 TLDR. Improving Existing Apps with Modern Best Practices.

WWDC is a great source of newest and hottest stuff on all iOS/macOS/etc. software development topics. It is great that last years Apple stared to upload videos and stream it to general public. But let's be honest, as a busy iOS developer you have no time to watch all of them. If there only was a place where distilled digest of the main topics could be nicely outlined and condensed for you to skimm through. Well, you're in luck! This is my attempt on doing just that!

I'll admit I'm not going to be consistent or make it an ongoing series but I want to watch as much WWDC videos as my spare time allows. And I'll share everything I can about them when I do so that it ether gives you everything you need to know from a video at best or gives you some clue on whether you'd want to watch it or not at worst.

Ok, let's get started.

The first video I picked was Improving Existing Apps with Modern Best Practices presented by Woody L.


The session's agenda sounded promissing stating that it's going to be converting a topic of dependency injection but it didn't live up to expectations. Topics covered were too basic and obvious for some who's been around the block for some time.

One exception though was Live Playgrounds! They are very useful REPL that now can actually render UI! Nice!

Highlights and Takeaways

ditch OS versions older than 8 and set it as projects target.

Can't agree more. Supporting that last 2-5% of people who are still using iOS 7 doesn't make any sense. Those users most likely are not spending money and won't be good customers for you anyway.

- stop using deprecated API

Yea, duh. Super obvious. Deprecated is deprecated, and Apple typically gives you a reference on what to replace it with.

- fix warnings :) (treat warnings as errors)

Another obvious thing - warnings are pretty much like unhatched bugs, they will bite you eventually.

- prefer using locale-aware APIs rather than your own in-house sultion

Can't agree more - Apple has a lot of resources to handle localization and locale. In most cases no matter what you cook up in house or what pod/library you use it won't be as good as Apple's. Save yourself a trouble and stick to Apple's solution, you'll even get updates for free :)

- Add Pick, Pop, and Quick Actions

Nah, don't bother, most of the users are not even aware of those.

- Swift Migrator

A promising thing in theory, not so in practice. I'm yet to try it on a huge old Obj-C codebase. Will report the results.

- File Bug Reports

Apparently Apple is listening to us. Or they say so anyway :) I think it's good. Do it if you have time.

- Assets Catalogs

Duh, this is old news. If you haven't moved to Assets Catalogs yet than I feel sorry for you. It is an awesome tool to manage image assets. Hustle free and helps you with vector graphic as well.

- Dependency Injection

I was expecting to hear something really profound from Apple but it turned out that they went over simple beginner decoupling technicues like declaring delegate protocols and using weak references. Apple if you are going to talk about dependency injection then you better cover SOLID topics and pods like http://typhoonframework.org/

- Live Playgrounds

That was an exciting part of the presentation - Swift Live Playgrounds. Higly recommend to watch in detail but overall now you can import libraries and run your UI code in Playgrounds. That's going to change the way I develop and test things a lot!


The session is a general overview of tips and tricks and advice on nowadays development for Apple platforms. States a few obvious things and most likely not as useful for an experienced developer who either already knows about those things or has better solutions up his/her sleeve.
Swift Live Playgrounds are a useful tool though, check them out. Seem like it's going to be my go to REPL for Swift and even UI manual tests.

P.S. what's your opinion? Do you think that session was good and helpful? Would be happy to hear your thouhgts in comments below.