Contents
  1. 1. Why
  2. 2. Trending
  3. 3. Put on your yellow hat
  4. 4. Reference

It was back in 2013 when I first dived into open source world. I started working with pjsip to develop a VOIP application, then I stumbled which is the Android binding of the lib. The maintainer actually taught me a lot

I asked him

Hi Regis,
This question is not related to coding, but to business :)
I’ve read some of your answers about branding CSipSimple. What is it?
You grant other permission to make the same app as yours (use same source, make little modification, then publish to Google Play, …). Since this is open source, how do you and them benefit from this branding ?

And he surprised me with his answer

I don’t make any money from csipsimple at all. It’s a pure opensource and free as in speech project.

I develop it on my free time and just so that it benefit users.

It was my first impression about how people dedicated themselves to open source community.

Afterward as I started working with Android and iOS, I used more open source libraries

Why

The reason was simple that it speeded up my development time by not reinventing the wheel. Those libraries are necessary, like AFNetworking, Mantle, Masonry, … and are highly rated and under actively development

Libraries Used in the Top 100 iOS Apps

Actually, using a libraries is like relying on someone else to do the job for us. We are likely to give away some control of our app. So we ‘d better understand that someone else before trusting him, and only ask for help if needed.

Here are some good checklists

I think open source is the way to move our community forward. Luckily, people have the same feeling, too

Put on your yellow hat

I find using and open sourcing libraries benefit me a lot

  • Learn the project structure: I like to read open source projects to see how they structure their projects, as well as some techniques I don’t know
  • Learn how the libraries are made, like Understanding PSTAlertController - weakSheetStorage, Understanding FLEX - Hit Testing, Understanding AFNetworking - Cache, …
  • Joining Github issues and pull requests are ways to learn how people have come up to such design decisions, how to discuss properly, how the projects evolves over time, … Examples are Should Swift 2 support be folded into RAC 3.0?, Layout guides on iOS 9
  • By open sourcing libraries, not only you contribute back to the community, but you actually learn yourself responsibility. You learn how to structure your code, well defined public APIs, robust testing. You also learn how to write smaller, reusable components
  • By having your libraries public, you got more people to review your code, resulting in more reliable and security software. I love this saying “Pull requests are welcome”
  • You are more socialized, and who knows, you can get more friends and an environment that suits you. This is the case for me :]

Reference

Contents
  1. 1. Why
  2. 2. Trending
  3. 3. Put on your yellow hat
  4. 4. Reference