If you've been holding out on open-sourcing code, now may be a good a time as any to give it a shot. Looking back, open-sourcing Chameleon might have been one of the best things I could have done for my coding ability. Not only did it force me to approach it in a more thoughtful manner, but it also helped improve my communication and teamwork skills.
I highly recommend bookmarking this post/checklist of tips and tricks on how to think about open-source, what to open-source, and some of the most common practices to help get you started. Similar to traveling alone, this is one of those things I urge people to try out at least once. 🙂
Most of the time someone brings up iOS architectures, debates about which is better tend to break out. The reality is that each approach has its own pros and cons. Understanding how and when to use one is what matters most. Luis takes us on a nice journey through some of the most popular architectures and introduces us to what he describes as a state container-based approach. In addition to covering use cases, examples, implementations, and testing, he also dwells into its drawbacks and provides us with a well-thought-out conclusion. Although lengthy, it's extremely informative.
Two of the most common reasons I've heard for why developers skip out on implementing animations: 1) They take too long to get right 2) Complex animations end up creating tons of nested closures and code clutter.
ViewAnimator aims to solve both of these scenarios with as little as one line of code. Based on the readme, this library seems to provide a nice range of out-of-the-box animations for views including those with more complex subviews. Good stuff.
Whether you're building a social network, food app, or a utility, chances are you'll be using a webview to link to something on your website... no biggie. However, if you're using dynamic type in your app, you'll surely want your webviews to conform to it as well. Here's Keith with some great examples on how to accomplish this by adopting dynamic type in your webviews to keep them in sync with the rest of your app. 😎