# Christmas Stuffing ## CocoaHeads Stockholm ### December 2016 Daniel Saidi · [@danielsaidi](https://twitter.com/danielsaidi)
# Korvstoppning ## Sausage Stuffing ### a.k.a. Cramming
# Let's go
# 1 ## Localized Strings
## Not only for localized apps ### Gather all your texts in one place
# Important ### Know the language you localize in
# SwiftGen Demo
# 2 ## Image Assets
# Demo ### SwiftGen
# 3 ## Fonts
# Important ### Remember to add the fonts in your Info.plist
# Demo ### SwiftGen
# 4 ## Storyboards
# Navigation-Driven Development
# One wrong turn..
# Demo ### SwiftGen
# Recap ## Strings, images, fonts, segues ### SwiftGen can help a lot
# 5 ## Dependency Injection
# Live Coding
# Demo ## Dip, Swinject
# 6 ## The Final Dependency
### A lot of talk about dependencies ### The same goes for your IoC ### Don't make it a global dependency
# Demo
# 7 ## git
# Use it
# That's it
# Demo ## Private git repo on shared server
# 8 ## Xcode Snippets
# Demo
# 9 ## Async Helper
## Hint: it's not this ``` dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue, ^{ // SYNCHRONOUS network request // Data processing dispatch_async(dispatch_get_main_queue(), ^{ // UI update }); }); ```
## It's not even this ``` DispatchQueue.main.async { ... } ```
## It is: ``` { asyncStuff() } ~> { mainThreadStuff() } * ``` \* http://ijoshsmith.com/2014/07/05/custom-threading-operator-in-swift/
# Demo
# 10 ## CocoaPods Acknowledgement
# Be this guy ## Celebrate your dependencies
# Demo
# Thank you! Daniel Saidi · [@danielsaidi](https://twitter.com/danielsaidi)