Developer Thanksgiving: Libraries & Tools We're Thankful For

It’s that time of year where we in the U.S. reflect on what we’re most thankful for. (And eat a lot of food, but that’s not really a part of this.) So what are we at Realm are super thankful for? The awesome developer community of course – for the resources, sharing, libraries, and tools that make our lives easier as developers.

So in that spirit, we polled a few friends to see what tools and libraries they’re most thankful for, and included a few of our own favorites that we’re thankful for at Realm!

Happy Thanksgiving! 🦃

Table of Contents

Android

Felipe Lima

Felipe Lima, Android @ Airbnb

For a lot of companies, Android build times with Gradle are a real slowdown, especially as your app grows and as you start to break it down in modules, it will impact build times considerably.

Buck is a build tool strongly focused on performance, that can deliver incredibly fast build times, but the ramp up is too slow. It’s a whole new build system to learn, new syntax, new problems, not to mention Gradle is still the industry standard and officially supported tool.

OkBuck is a little Android plugin that will analyze your project model using the Gradle API and automagically generate BUCK build files for you based on them. All with minimal setup and configuration. It was definitely a lifesaver and allowed us to very quickly adopt and get up to speed with Buck, leveraging much faster builds and developer happiness!

For this Android thanksgiving, I’m thankful for OkBuck :)

Yigit Boyar

Yigit Boyar, Baking fresh UI toolkit elements @ Android / Google

I’m grateful to Google Compiler Testing. It allows testing annotation processors in the same process which allows full access to javac environment as well as AST based assertions on the generated code. It turns the painful setup for testing annotation processors into a beautiful experience.

Christian Melchior 400

Christian Melchior, Android lead @ Realm

Relinker – Thanks for removing the many, many bugs around loading native code on Android. Now we can focus on the real problems!

Nabil Hachicha

Nabil Hachicha, Android @ Realm

OkHttp – Thanks for making HTTP calls a breeze, and empowering other first-class libraries.

iOS

Natasha Murashev

Natasha Murashev, iOS Engineer, Robot

I’m really thankful for Timepiece – The try! Swift Conference app I work on is all about schedules and dates, including a watchOS app with Complications and Time Travel supported. More time-based features are planned, including local notifications based on speaker times. Timepiece has completely taken out the pain of working with dates in iOS - adding, subtracting, and comparing dates is a breeze.

Wendy Lu

Wendy Lu, iOS @ Pintrest

GPUImage offers GPU-accelerated affects that are beautiful and performant. I’ve used it in side projects to for things such as blurring images that would otherwise be very slow.

Tim Oliver

Tim Oliver, iOS @ Realm

What’s Thanksgiving?? 🇦🇺

Okay, Eureka (or its Objective-C version XLForm) is by far one of my most favorite libraries at the moment. It trivializes making settings/login forms for iOS apps.

As for developer tools, I absolutely love Reveal for debugging broken UI, PaintCode for procedurally generating UI graphics, and since try! Swift this year I’ve been checking out QuartzCode for procedurally generating native animations.

JP Simard

JP Simard, iOS Lead @ Realm

SwiftGen is neat since it gives stringly-typed APIs, strongly-typed superpowers.

Also Reveal & PaintCode 💯, but BTW, Thanksgiving was last week! 🇨🇦

Austin Zheng

Austin Zheng, iOS @ Realm

The debugger in Xcode, lldb, is a great tool for tracking down pesky bugs or understanding how your code works, but what if you could debug your app’s UI at the same time? Chisel adds lldb commands to perform useful tasks such as printing out view hierarchies, annotating views on-screen, opening image data in Preview.app, and much more!

Design & More

Huyen Tue Dao

Huyen Tue Dao, Android @ Trello

I love doing UI work and playing around with styles and typography. A library that has really helped me experiment with typeface on Android is Calligraphy by Chris Jenkins.

You could always bring a font asset into Android but you had to do it in pretty manual way in Java code instead of being able to specify that custom typeface in styles or in the XML layout itself.

With a relatively tiny amount of setup, Chris’s library allows you to easily access local font assets in a much cleaner way and lets you include typefaces in your styles and XML as you would other attributes.

Fun typefaces. Cleaner code.

[Ed. note: Thorben Primke also seconds Calligraphy! 👍]

Kristina Thai

Kristina Thai, iOS @ Intuit

One of the things that I’m most thankful for is a design collaboration tool called Zeplin. While developer-focused tools and libraries are also important, that’s only one aspect of working as a software engineer. One of my favorite things about being an engineer is how we come together as a team to build out the greatest products imaginable. With Zeplin, it’s made it remarkably easy for me to collaborate with my designers to implement the best experiences possible for our end users.

Andy Matuschak

Andy Matuschak, Mobile lead @ Khan Academy

I’m most thankful these days for Elm. It’s an ever-evolving programming language and application architecture with very interesting ideas and tremendous empathy for its developers. Ideas from Elm often inform my work in other systems.

Matthias Kappler

Matthias Kappler, Jack of no trades @ SoundCloud

I’m thankful for typelevel/cats. It’s a functional programming library for Scala. It really changed the way we write code in SoundCloud microservices.

Christina Lee

Christina Lee, Video developer @ Pintrest

scm_breeze

Emanuele Zattin

Emanuele Zattin, Android @ Realm

Jenkins!

And finally…

We really tried to steer devs away from our projects considering our obvious bias, but when a few insisted we couldn’t help but include them. 😊

Jesse Squires

Jesse Squires, iOS @ Instagram, curator of Swift Weekly Brief

I’m super thankful for jazzy — a documentation tool for Swift and Objective-C. Any open-source library is only as good and as useful as its docs. It’s such a great tool, and a modern alternative to appledoc. I use jazzy for every single Swift/Objective-C project that I have, and I host the docs on GitHub Pages. My open-source projects wouldn’t be successful without this. It also powers CocoaDocs for Swift CocoaPods!

I’m not pandering, I promise. 😊 I really do love this project!

Erica Sadun 400

Erica Sadun, geek girl and brood

I generally don’t use libraries, because I try to make my code as dependency-free as possible. But I’m very fond of the work that you guys are doing on jazzy.

Sam Soffes

Sam Soffes, developer & designer

We’re only using internal libraries and Realm. We love Realm.

[Ed. note: Thanks Sam! We 💖 you too!]