For the past two months, I've been living in Buenos Aires... in Spanish. I learned Spanish in high school, but have never practiced it in "real-life" and have barely used it after high school.
The nice thing is that I can understand most of it, but speaking is really difficult for me. In certain situations, I would get nervous and my mind would just blank on words I already know well.
I've been a bit frustrated at myself - just assuming that full emersion is not enough. I should be taking a course / Duolingo on top of just living in Buenos Aires and getting by every day. But something happened after two months - I suddenly speak much better Spanish and even sometimes think in Spanish words. Spanish is suddenly fun vs an obstacle I have to constantly jump through.
The progress seems very sudden. After two months of frustration, my Spanish suddenly works!
But this just reminded me once again that progress is not an upward straight line - it looks more like the ups and downs of a rollercoaster. So as you progress through your New Year's Resolution or whatever you're working on or learning, don't give up at the stagnant or down parts. Keep going 🚀
Swift Around the Web
Unsafe Swift: Using Pointers And Interacting With C
Advanced tutorial on how to use the "unsafe" features of Swift, including different types of pointers ✍️
"The term “unsafe” sometimes causes confusion. It doesn’t mean that you are writing dangerously bad code that might not work. Rather, it means you are writing code that you need to be extra careful about because the compiler is limited in how it can help you."
I wouldn't have thought of extending String as an Error, but that's pretty clever!
Bring The Joy Back Into Your Work
Try Hired today to get multiple job offers and free personalized support in planning your next chapter.
Forward Swift + Free 6+ Hour Online Workshop
This Week in Swift readers that purchase a conference ticket to Forward Swift (March 2nd) by January 15th will receive any one workshop currently on https://forwardcourses.com for free ($100 value). Choose from any of the 20+ workshops we have including iOS 10, Advanced Swift, and iOS Layout for Designers. See you in March!
Forced Unwrapping URLs
Working with URLs API is definitely ugly, but I love how @ericasadun thinks through the problem and solves it in a more local way that makes sense for the use-case.
I love the brilliant points at the end to consider when architecting your own software. This was my favorite:
"Don’t let types slack off because there’s an “almost there” solution baked into the language."
"Network code is typically hard to maintain, because it touches an inherently global resource, which lends itself to tough-to-test singleton designs. Request behaviors are a useful way of separating the code that sends requests from any side-effects that need to happen during that request. This little abstraction simplifies network code, adds reusability for per-request behaviors, and vastly increases testability."
- focus - Focus by Firefox is a free content blocker for Safari users on iOS 9 that gives users greater control of their mobile Web experience.
- Hero - Supercharged transition engine for iOS.
- MFCard - Easily integrate Credit Card payments in iOS App. Swift 3.0
- LocalizationKit_iOS - Realtime Dynamic localization translation delivery system for iOS in Swift. Create and update texts from localization.com without needing to recompile or redeploy. Cocapod for iOS devices (iPad, iPhone, iPod Touch etc.)
- GDPerformanceView-Swift - Shows FPS, CPU usage, app and iOS versions above the status bar and report FPS and CPU usage via delegate.
- FAQView - An easy to use FAQ view for iOS written in Swift
Building a Production Server Swift App: Lessons Learned
It is probably still a bit too early to launch a serious server-side-Swift app into production, but in case you really really want to, this is a great talk to help you get past the insane gotchas and make it happen!
What's Under the Hood? Decoding JSON with Swift
In this try! Swift NYC talk, @anat_gilboa analyzes multiple Swift JSON libraries and comes up with common take-aways for choosing (or building) your own JSON-parsing solution.
Introducing Auto-Layout for Sketch
The biggest issue with design today is that designers have been trained to think in pixels, but the real world iPhone / Android / Web development has far moved past the limitations of pixel-perfect design. I love this plugin because it gives designers the actual tools to go beyond the stagnant pixels!
Make it Yours
A beautiful piece on how it's ok to start out by copying someone else, but eventually you'll start adding pieces of yourself to the formula, making it unique, making it yours.
All of 2016’s top mobile apps are owned by either Google or Facebook
I think the App Store as it is now has reached it's stagnating peak. But Apple already knows this and has started to introduce ways to break out from the strict App Store model - for example, you can send stickers to a friend who doesn't have the same stickers app installed. And I think next year, we'll see something similar to Google's Instant Apps. I discussed this topic and what you can do now in my recent talk Build Features, Not Apps.
In Case You Missed It
Top 10 iOS Conferences in 2017
I'm super humbled and overwhelmed to see try! Swift on this list. A conference is only as good as the organizing team, speakers, and attendees - I'm very lucky to have amazing people in our community being a part of it 💜
💻 Swift Full Time
- iOS Developer at Lotum - Bad Nauheim, Germany
- Senior iOS Developer at Switch Four, LLC - Durham, NC, USA