Stream Loves Open Source: Aug 2022
We cannot overstate the value of open source. Open source lies at the foundation of the internet and many technical innovations since the birth of computers. By using, sharing, and supporting open source, we hope to play a part in the technological renaissance we are living in.
At Stream, we rely on open source to build our products and SDKs. In this article, we want to take the time to highlight some of our favorite projects and maintainers ❤️.
The key takeaway of this article is to support open source projects you rely on in any way you can. We can all play a part in our collective technological future by showing our appreciation and support for open source.
Open Source At Stream
A large part of the engineering work we do at Stream lives in the open. Our Chat and Feed SDKs are open source, and our clients and users are free to explore the code, submit pull requests and issues, or fork our SDKs and build something custom. We also encourage external contribution.
At Stream, we rely on the great work done by the community, and whenever possible, we try to give back - here are a few ways that we do this:
- Contributions to OSS projects in the form of pull requests, issues, and reviews
- Extracting features from our SDKs into isolated packages and repositories
- Curating learning resources and code samples
- Sharing our knowledge through events and supporting local developer communities.
In February 2021, we posted a similar article to this one. Since then, the projects we’ve sponsored have continued to grow.
We’ve also evolved our community efforts as a company. We've had the privilege to sponsor more community events and conferences, OSS packages and maintainers, and to encourage our developers to build their own projects. We’ve even created a dedicated developer YouTube channel where we talk about our SDKs and share our engineering knowledge.
Here are some of the open source projects that Stream is actively maintaining.
Android-Developer-Roadmap (3,943 ⭐️)
The 2022 Android Developer Roadmap suggests learning paths to understanding Android development.
AvatarView (367 ⭐️)
Supports loading profile images with fractional styles, shapes, borders, indicators, and initials for Android.
Butterfly (194 ⭐️)
Butterfly helps you to build adaptive and responsive UIs for Android with Jetpack WindowManager.
Sketchbook-Compose (314 ⭐️)
Jetpack Compose canvas library that helps you draw paths, images on canvas with color pickers and palettes.
MotionScape is your animation playground as a developer. You can see all animations and their parameters in effect with beautifully designed and handcrafted animation examples.
Effects Library (⭐️115)
The Effects Library allows developers to create sophisticated and realistic particle systems such as snow, fire, rain, confetti, fireworks, and smoke with minimal effort.
Spring Animations Cheat Sheet (⭐️260)
This repository is your reference and complete guide for SwiftUI Spring Animations. It demonstrates use cases for the various types of spring animations and spring parameters. No more guessing the values of the parameters for spring animations you create for your next iOS app.
Stream SwiftUI animations (⭐️53)
Fine-grained iOS Animations Built With SwiftUI. This repository serves as a SwiftUI animation inspiration for your next app project. Each animation has the SwiftUI code accompanied. Contact @amos_gyamfi on Twitter for any issues or missing animation files.
Purposeful iOS Animations (⭐️7)
Examples of animations we found meaningful and useful on iOS. Each of the animations here was cloned with SwiftUI.
Projects Our Developers Maintain
Many of our engineers maintain or contribute to open-source libraries and packages. This section highlights some of the work done by people at Stream.
virtuoso (2.7k ⭐️) - by Petyo Ivanov
The most powerful virtual list/table component for React
React Native Testing (327 ⭐️) - by Steve Galili
This is how you should test your react-native components with Jest and React Native Testing Library
Flutter Confetti (305 ⭐️, 736 👍) - by Gordon Hayes
A Flutter widget that shoots confetti all over the screen.
Awesome Flutter Snippets (135 ⭐️, 1mil downloads 💾) - by Neevash Ramdial
Awesome Flutter Snippets is a collection of snippets and shortcuts for commonly used Flutter functions and classes
Balloon (2,640 ⭐️) - by Jaewoong Eum
Modernized and sophisticated tooltips, fully customizable with an arrow and animations for Android.
Used by: Paypal, Wikipedia, Wikimedia, WazirX, MyJio, PeduliLiundugi, and others.
400,000 downloads per month.
Landscapist (1,089 ⭐️) - by Jaewoong Eum
Jetpack Compose image loading library that fetches and displays network images with Glide, Coil, and Fresco
Used by: Twitter, Azar, Notion, Faire, and others.
150,000 downloads per month.
Pokedex (5,520 ⭐️) - by Jaewoong Eum
Pokedex demonstrates modern Android development with Hilt, Material Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture.
SwiftUI Animation Challenges (⭐️ 20 combined) - by Amos Gyamfi and Stefan Blos
Welcome to the SwiftUI Animation Challenge, where we hand out animation challenges that everyone can participate in and solve.
Clones and Samples
List of sample applications with tutorials, created and maintained by Stream.
AvengersChat (266 ⭐️)
Stream-Draw-Android (271 ⭐️)
Stream-Slack-Clone-Android (327 ⭐️)
Instagram Clone (47 ⭐️)
Chatter - Chat Application (48 ⭐️)
Frame Clone (1 ⭐️)
SwiftUI iMessage Clone (⭐️ 4)
SwiftUI iMessage UI Clone (⭐️ 12)
Projects We Sponsor
In our products, we rely on many open-source components. Whenever possible, we sponsor these projects and maintainers financially. Here are just a few of the people and projects we sponsor directly.
A pure Rust implementation of WebRTC stack. Rewrite Pion WebRTC stack in Rust
A predictable state management library that helps implement the BLoC design pattern.
WebRTC plugin for Flutter Mobile/Desktop/Web
Drift is a reactive persistence library for Flutter and Dart, built on top of SQLite.
A Flutter implementation of slidable list item with directional slide actions that users can dismiss.
An awesome list that curates the best Flutter libraries, tools, tutorials, articles, and more.
The most complete chat UI for React Native.
React Native MMKV
MMKV is an efficient, small mobile key-value storage framework developed by WeChat. See Tencent/MMKV for more information. A library that allows you to use MMKV inside your React Native applications easily. It provides fast and direct bindings to the native C++ library, which are accessible through a simple JS API.
RTMP-RTSP Stream Client for Java
Library for stream in RTMP and RTSP. All code in Java.
Pluck is an image-picker for your jetpack compose project. You can select from Gallery/Camera. This uses Material you and will be getting support for it in the future as well.
A smart Kotlin injection library to keep you focused on your app, not on your tools
Camera and Microphone streaming library via RTMP, HLS for iOS, macOS, tvOS.
Swift Package Index
The Swift Package Index helps you make better decisions about the dependencies you use in your apps. The Swift Package Index is a search engine for packages that are compatible with the Swift Package Manager. The project is open-source and written in Swift using Vapor.
Tuist is a command line tool that helps you generate, maintain and interact with Xcode projects. It's open source and written in Swift.
Django Rest Framework
Django REST framework is a powerful and flexible toolkit for building Web APIs.
Other Projects and People
This section includes other projects and people that we directly sponsor.
Lottie is a library for Android, iOS, Web, and Windows that parses Adobe After Effects animations exported as JSON with Bodymovin and renders them natively on mobile and on the web!
- SwiftUI Animation: How To Add Facebook Live Reactions to Livestream Chats
- Real-World Xcode Project Using Tuist
- Setting Background Modes and Device Capability Privacies in iOS Apps
- Building a Video Chat App: WebRTC in Jetpack Compose (Part2)
- Learning to Build Twitter in a Weekend
- Linting Documentation with Vale to Increase Quality & Consistency