Push notifications are an important aspect of the Mattermost user experience on mobile. When important messages come in, many users like to be notified on their mobile devices so they can respond quickly. Mobile push notifications make it easier for users to stay informed or take faster action while on the go. When it comes to mobile data privacy, many organizations prioritize secure handling of messaging data, particularly when it may contain mission-critical or proprietary information.
Maintaining success in a large open source project is one of the key objectives of Mattermost. We have hundreds of contributors and we want to create a project that could serve as a model in the Go community. Having said that, following idiomatic Go principles is the thing that we care most about while maintaining our code consistency. For this specific task, we utilized go vet and with this blog post, I would like to explain how we pushed the limits of this tool by extending it.
We decided to make Mattermost a remote-first company for several reasons. For example, employees don’t have to waste time commuting, we are able to hire from a wider talent pool of self-motivated individuals, and we have coverage in all time zones, which helps us respond to our customers around the world more effectively. And since we’re a remote company building collaboration software, we have plenty of opportunity to dogfood our own product.
With the upgrade to React Native 61 came the prospect of substantially improving performance of our Android app. How? Through the use of Hermes, Facebook’s new JavaScript engine. To say that we were excited is an understatement. And with that excitement came curiosity: How is this new JavaScript engine achieving performance boosts?
Mattermost 5.20 ships with new features designed to increase team productivity. Try these new features by downloading Mattermost 5.20 today.
Go is an extremely opinionated programming language. import something in a file that’s not used? It won’t compile, and there’s no flag to override. While there are workarounds, the end result remains the same: Go files are never cluttered by unused imports. This is true for all Go code everywhere, making every Go project more accessible. Not all Go opinions are enforced by the compiler.
Matterpoll is a plugin that allows users to create polls in Mattermost. Since Mattermost is localized in 16 different languages, it’s optimal that Matterpoll is similarly localized. Because we rely on contributors to do the translations, we want to make it easy for them to translate new strings and determine whether already translated strings need to be updated because the “source” text changed.
If you want to submit good pull requests, start with our contribution checklist. Today, that page talks about what to fork, how to style your code, how to write unit tests and where to push your code. Implicit in all of that is the need to write great code, of course! But this blog post isn’t about writing great code, it’s about making your pull request a great experience for you and your reviewers.