Client projects are time-consuming. Whether we’re working to develop a web or mobile app or another sort of technology, like a Virtual Reality (VR) or an Internet of Things (IoT) product, we’re constantly working to ensure that we’re making the best use of our time to build the best products possible. One of the tools we use to do this is open source code, but lately we’ve noticed there is some confusion surrounding what that is and why we incorporate it into our development process. Here are some things you need to know.
What is open source?
Source code is the language that tells a computer what to do. Open source is a type of source code that is accessible to the public. Other developers can access the code, study it, and modify and distribute their own versions.
For code to be open source, it has to be published in code form by the developer that creates it. Otherwise it is closed source.
Well, what’s so special about that?
When developers have access to open source code, they’re able to participate in a larger community. Many developers work to critique and comment on another developer’s code, which helps cultivate collaboration and learning. Despite not knowing one another personally, developers around the world with access to open source code are able to share their knowledge by viewing, inspecting, and changing code to not only fit the expectations of what their particular project may need, but also make another developer’s work stronger in the process.
Why should we be paying developers who are using free code?
Here is where things get a little confusing. “Open” doesn’t necessarily always mean “free.” In fact, developers do have the option of charging for the use of their open source code. However, in order to gain the most from the community and share what they’ve created and learned in the process, most developers instead will opt to not charge for access of the code itself, but rather for installation and ongoing support services.
A word of caution to those looking to build with open source code: While the concept of code that you don’t have to write seems appealing, the tradeoff is that you also don’t control its future. Make sure that the open source code you’re using is maintained. A good cautionary tale is Three20, which was a set of utilities to help developers build iOS apps more quickly. However, the original authors moved on to other tools, and so they stopped maintaining it. As a result, Three20 is no longer a suggested framework for iOS, and anyone who built their app on top of it has had to go through the time-consuming process of replacing it if they want their apps to stay up to date.
Working with a development team that uses open source code responsibly means that you are benefiting from the knowledge of many minds, and not just that of the teams which are implementing the open source code. Because developers around the world have access to open source, there are typically people who take responsibility for the upkeep of the library, which entails:
- Planning and executing new features, which can be done through a community process.
- Fielding bug reports and feature requests and managing these fixes accordingly.
- Ensuring code continues to to work and evolve for various platforms (iOS, Android, Web, etc.).
There is also the option of choosing to promote the library through talks, blog posts, advertising, using it in a client’s app, or by word of mouth. While it does require a lot of upkeep, for developers, using open source is an opportunity to allow your product to be crafted with the best code possible.
What are some open source libraries we’ve created here at Raizlabs?
Our developers are team players who do their best to provide solutions to team members and clients, and they’re constantly working to improve efficiency and process. Creating open source code libraries allows us to be creative with our solutions and to share them with the community. Here are some open source libraries we’ve created:
Setting up real Bluetooth devices takes time and energy, but as a developer, it is crucial to be able to test that the app you’re building will respond correctly. We built RZBluetooth to make Core Bluetooth, which is iOS’s built-in mechanism for communicating with peripherals over Bluetooth, easier to use and test.
A tool to make it easier to work with databases on Android devices.
iOS provides first-rate typography tools, which allow us to translate a designer’s vision into a working app. However, the tools are cumbersome, making even simple designs a chore to implement. BonMot unleashes all that typographic potential with a set of tools that allow developers to quickly and easily bring sophisticated designs to life.
If you’re interested in digging deeper into the tech behind what we do here at Raizlabs, feel free to check out our developer blog. If you have any other questions about what we do and how we can work together while incorporating tools like open source, feel free to get in touch. We’d love to discuss a project you have in mind and how we can help.