Build low-latency Vision AI applications using our new open-source Vision AI SDK. ⭐️ on GitHub ->

Engineering (2)

Top 5 Real-Time Speech-to-Speech APIs and Libraries To Build Voice Agents

There are two ways to build conversational voice agents for enterprise and production use cases. Developers can use a real-time API or speech-to-speech (STS), that takes audio input from a user and sends it to a large language model (LLM) to return a voice output. Or they can use a turn-based architecture, which consists of
Read more ->
13 min read

Session Management Explained: Threats, Best Practices & Security Tips

Modern applications need a way to remember users as they navigate pages or make requests. Without a proper way to do this, browsing would be difficult and access to resources would be chaotic, as the application wouldn't know who is making the request.  This matters a lot, especially in messaging or in-app chat, multiplayer games,
Read more ->
11 min read

How Does WhatsApp Work? Architecture Deep Dive

If you're in the US, chances are WhatsApp isn't even installed on your phone. Although the Meta app surpassed 100 million monthly users in the US in 2024, WhatsApp remains a global phenomenon that has, until recently, largely bypassed the US. But if you live elsewhere in the world, WhatsApp is a fundamental part of
Read more ->
7 min read

Best Cross-Platform App Development Frameworks

Is your current tech stack missing the mark? Rather than shipping new features or fine-tuning performance, your team is stuck dealing with the limitations of the framework or language(s) you're working with. Whether your previous workflow involved native or cross-platform development, you can reach and retain more users with greater ease by picking the right
Read more ->
11 min read

API-First Development: Top Tools, Advantages, & Challenges

Last-minute changes and inconsistent integrations can frustrate developers. Teams often write business logic first and define application programming interfaces (APIs) later, which can lead to mismatched expectations and a worse overall product. One way to improve outcomes is to take an API-first approach, then build everything else around it. Prioritizing the API can bring many
Read more ->
10 min read

How to Get Your App on the App Store & Google Play: Step-by-Step Guide

Launching an app doesn't stop with writing great code or designing a polished interface. It also requires navigating the complex requirements of the Apple App Store and Google Play Store. Each platform has its own rules, review processes, and quirks, and an overlooked detail can delay your launch. Plus, if your app uses real-time features
Read more ->
18 min read

The 8 Best Platforms To Build Voice AI Agents

Voice assistants like Siri and Alexa are great for non-trivial everyday personal assistive tasks. However, they are limited in providing accurate answers to complex questions, real-time information, handling turns, and user interruptions. Get started! Activate your free Stream account today and start prototyping your own voice AI agent! Try asking Siri about the best things
Read more ->
13 min read

How to Build a Multi‑Tenant Chat System with Go and Stream

Software applications require scalable, real-time communication features, whether for messaging apps, customer support chats, or collaborative workspaces. Implementing chat functionality from scratch is complex, but you can build a robust solution efficiently with Go and Stream. This guide walks you through creating a multi-tenant chat system where each organization (tenant) has its own isolated chat
Read more ->
15 min read

Compare the Top 5 Agentic CLI Coding Tools

Agentic AI coding tools vary in how they help you write, debug, and ship code. Some, like Lovable and Bolt, allow developers to build web and mobile apps using prompts quickly. Others, like Cursor and Windsurf, provide developers with a fully AI-featured IDE to solve engineering problems. Generally, AI coding platforms can be categorized into
Read more ->
12 min read

LLM Context Protocols: Agent2Agent vs. MCP

Two buzzwords circulating in the developer ecosystem today are MCP and A2A. Model Context Protocol (MCP) has been around since November 2024. Google released Agent2Agent (A2A) in April 2025 with an extensive list of technology partners. Developers can use the MCP and A2A open standards to provide context to models for building AI applications. MCP
Read more ->
13 min read

Exploring Google’s Agent Development Kit (ADK)

This article has an accompanying GitHub Repository containing runnable samples: adk-samples In recent years, the development of autonomous agents—software entities capable of reasoning, planning, and taking actions on behalf of users—has moved from research labs into real-world applications. These AI agents are rapidly becoming central to building intelligent systems, whether through task automation, information retrieval,
Read more ->
39 min read

How To Run OpenAI Agents SDK Locally With 100+ LLMs, and Custom Tracing

The OpenAI Agents SDK for Python provides developers with the building blocks to implement two agentic solutions for AI applications. You can create text-generation agents, allowing users to get responses from text prompts. Additionally, you can build voice agents using the SDK. To create your first agent with the OpenAI Agents SDK, get started here.
Read more ->
14 min read

WebRTC vs. VoIP: Comparing Network Resilience

Internet-based communication has become the backbone of business operations, personal interactions, and emergency services. Technologies like Voice over Internet Protocol (VoIP) and Web Real-Time Communication (WebRTC) have revolutionized communication, offering flexible and cost-effective alternatives to traditional telephony. However, regulatory challenges in some countries pose strict restrictions on VoIP services. This article explores the differences between
Read more ->
8 min read

Scaling AI Chat: 10 Best Practices for Performance, Cost, and Resource Optimization

Your AI chatbot is up and running. It’s helping customers, getting them the information they need in the tone and manner that is right for your brand. CX costs are down, and your support team are moving up the value chain. Everyone is happy. And then it happens: spam. Automated bots flood your system with
Read more ->
12 min read

The Top 7 MCP-Supported AI Frameworks

Toolkits for AI agents expose developers to various APIs to equip AI solutions with tools to carry out tasks and ensure accurate results for user satisfaction. However, integrating these tools into AI apps and managing them can be messy. This article introduces you to an industry standard of providing context to LLMs and agents using
Read more ->
20 min read

OpenAI Agents SDK — Getting Started

In the ever-evolving landscape of artificial intelligence, AI agents have emerged as a groundbreaking approach to building more sophisticated and autonomous systems. These agents represent a significant leap forward in AI development, offering capabilities beyond traditional static models. What makes AI assistants particularly powerful is their ability to orchestrate complex tasks and continuously self-assess their
Read more ->
8 min read

Go Structs and Interfaces Made Simple

When developers transition to Go from object-oriented languages like Java, C++, or Python, they often struggle with Go's approach to types and abstractions. Go intentionally avoids traditional inheritance-based object-oriented programming in favor of composition and interfaces. This design choice wasn't accidental—it reflects a deliberate philosophy about how software should be structured. As Rob Pike, one
Read more ->
13 min read

The 3 Best Python Frameworks To Build UIs for AI Apps

Python offers various packages and frameworks for building interactive, production-ready AI app interfaces, including chat UIs. This article details the top platforms. AI Chat UIs: Overview AI Chat UIs: Overview Chat UIs for AI applications provide the front-end interface to interact with AI assistants, local, and cloud-based large language models (LLMs), and agentic workflows. Like
Read more ->
16 min read

How to Connect Any AI Model to Your Chatbot

We are speedrunning AI development. This week alone, Claude 3.7 and GPT-4.5 were released. Before that, Deepseek R1, Deep Research, and Grok 3 were released. This speed makes it almost impossible for developers to keep up. No sooner have you implemented an OS Deepseek model into your chatbot than the newest OpenAI/Mistral/Llama/Anthropic model comes out,
Read more ->
9 min read

Choosing the Best AI Model for Your Chatbot

OpenAI just launched GPT-4.5. Here’s a snippet from their release blog post: Early testing shows that interacting with GPT‑4.5 feels more natural. Its broader knowledge base, improved ability to follow user intent, and greater “EQ” make it useful for tasks like improving writing, programming, and solving practical problems. We also expect it to hallucinate less.
Read more ->
7 min read

Goroutines in Go: A Practical Guide to Concurrency

Let’s face it: modern apps often need to do a million things at once. If your app isn’t set up for that, it can feel clunky and slow. That’s why concurrency is so important. Go (often called Golang) has concurrency built-in, so you can write faster, more flexible software without the usual hassle of managing
Read more ->
9 min read

Cursor for Large Projects

With all this "vibe" coding, many devs think that Cursor and Claude are just for prototypes. While Cursor is great at writing new code, it’s also very effective at structuring code, standardizing, refactoring, and maintaining large projects. It’s super exciting since you can build software 5-30x faster. This guide shares my workflow for Cursor and
Read more ->
5 min read

MariaDB vs MySQL: How Do These Databases Differ?

Choosing between MariaDB and MySQL can be tough. MariaDB's origins as a fork of MySQL bring so many surface-level similarities that it can feel like picking a favorite identical twin based on their looks. If you're working on a small-scale project, you might decide based on your love of open source or a desire to
Read more ->
8 min read

The Android Platform: The 2022 Android Developer Roadmap – Part 1

The Android ecosystem is in a constant state of growth: Every day, new libraries and materials are introduced that are designed to accelerate development speed and make our lives as developers easier. The 2022 Android Developer Roadmap is designed to give you a comprehensive understanding of the current Android ecosystem and provides suggested learning paths
Read more ->
6 min read

The Best Pre-Built Toolkits for AI Agents

Python and TypeScript-based AI agent frameworks, CrewAI, LangChain, Agno, and Vercel AI SDK allow developers to build AI applications with multiple agents to act as Computer-Using Agents, or Deep Research Agents to automate browser tasks like clicking, scrolling, ordering products on the web and performing complex and multi-step tasks. These multi-AI agents may be put
Read more ->
10 min read

Designing Effective UI Components in Jetpack Compose

Since Google announced the Jetpack Compose 1.0 stable release, many companies have adopted Jetpack Compose to leverage its numerous advantages. With Compose's widespread adoption across the Android ecosystem, libraries and SDKs have also begun integrating support for Compose. Traditionally, in XML-based projects, UI components were delivered as custom views with customizable options via attributes. While
Read more ->
12 min read

Exercise Caution When Using runBlocking on Android

As Kotlin continues to dominate as the preferred language for Android development, developers must understand its underlying mechanisms. One of Kotlin's standout features is its built-in support for asynchronous and non-blocking programming at the language level, offering developers powerful tools to build efficient and responsive applications. Coroutines in Kotlin can be created using coroutine builders—specialized
Read more ->
7 min read

Moderation API Introduction

Content moderation is crucial for maintaining a safe and positive user experience. Stream's Moderation API offers a powerful solution for integrating robust moderation capabilities into your applications. Stream's Moderation Dashboard enables developers to prevent users from posting harmful content and build custom moderation workflows tailored to their specific needs. This article will explore the key
Read more ->
4 min read

Tools to Debug WebRTC Video Calls

When dealing with internet video calls, many things can negatively impact call quality. Improving call quality when issues occur requires understanding how specific metrics impact your user’s experience. To help you better understand what is going on, Stream offers a comprehensive video statistics page on our dashboard. With our statistics dashboard, you can quickly inspect
Read more ->
6 min read

Building an AI Chatbot for Customer Success

Earlier this year, payment service Klarna launched an AI customer service assistant. Within the first month, this AI had 2.3 million conversations, the equivalent of 700 agents, and led to a 25% drop in repeated inquiries. Klarna estimated it would “drive $40 million USD in profit improvement” in 2024. Customer success is an ideal opportunity
Read more ->
21 min read

Best Practices for Composition Patterns in Jetpack Compose

Jetpack Compose is a newly introduced declarative UI framework compared to other declarative UIs, and there hasn't been much research on specific design patterns for UI component composition. However, the React ecosystem has a strong history of creating and combining UI components. The UI design patterns used in React can also be adapted in Compose
Read more ->
14 min read

AV1 vs. H.264: Which Codec Should You Use?

With the explosion of video content across platforms, the demand for efficient video codecs has grown exponentially. AV1 and H.264 stand out as two of the most widely discussed codecs in the industry today, each with its unique strengths, limitations, and ideal use cases. Understanding their differences and when each codec shines is critical for
Read more ->
6 min read

Understanding RAG vs Function Calling for LLMs

Unless you’ve been living under a rock, you probably know Large Language Models (LLMs) are all the rage right now. LLMs like OpenAI's ChatGPT and Google’s Gemini have redefined productivity and have more or less changed the world as we know it. However, their capabilities are not without limits. Static models trained on a fixed
Read more ->
7 min read

A Developer’s Roadmap to Mastering Kotlin Multiplatform

In modern mobile development, cross-platform frameworks are gaining popularity because they offer key advantages, such as reducing the resources needed to develop separate native apps and maintaining code consistency across different platforms. By allowing developers to write shareable code, these frameworks enable faster development and easier maintenance, making them attractive not only to startups and
Read more ->
10 min read

Exploring Reasoning LLMs and Their Real-World Applications

LLMs have excelled in writing, coding, and problem-solving tasks and prompts based on the data sets they were trained with. However, these models fall short when used to solve complex puzzles because they respond with the information they were trained with and lack the ability to self-correct. Recent LLMs, like OpenAI's o1 and o3 models,
Read more ->
12 min read

Build a URL Shortener with Go, Redis, and HTMX

When learning a new technology, there is no better approach than starting with a side project, getting your hands dirty with the code, and stumbling upon a dozen errors, which make the whole process memorable (and frankly enjoyable). In this tutorial, we will showcase how to build a simple URL Shortener application using only Go
Read more ->
17 min read

The Fundamentals of RocksDB

RocksDB is a high-performance, embeddable storage engine originally developed by Facebook and is now widely adopted across the tech industry and used at Stream as a data storage engine. This powerful database solution has gained significant traction due to its exceptional speed, reliability, and versatility and is used by large companies such as LinkedIn, Meta,
Read more ->
12 min read

Full-Stack Development with Ionic and Nitric: Adding Authentication

In the previous article, we learned the benefits of using tools like Nitric and Ionic to increase productivity. Then we built a simple full-stack application to display a personalized greeting to a user based on a URL parameter. This article will extend our application with authentication and further integrate it with the API. The final
Read more ->
8 min read

Build Your First Android and iOS Mobile App With Kotlin Multiplatform

Cross-platform development provides significant advantages, especially in mobile development, where Android and iOS operate on fundamentally different ecosystems. Developing native apps for each platform can be resource-intensive since it requires separate developers with expertise in different programming languages (Kotlin for Android and Swift/Objective-C for iOS). Managing two distinct codebases also increases development and maintenance costs
Read more ->
6 min read

Design Server-Driven UI with Jetpack Compose and Firebase

The primary responsibility of mobile clients is to render components based on data received from the backend, which typically dictates what should be displayed. This means client-side developers must focus on two key tasks: understanding what to do with the data provided by the backend and how to do it by rendering the data into
Read more ->
15 min read

Onnx in Stream Products

Onnx (Open Neural Network Exchange) is an open-source artificial intelligence ecosystem that has become a cornerstone of Stream's product offerings. This versatile and powerful tool enables the creation, training, and deployment of machine learning models across various platforms and frameworks, providing a unified approach to AI development and implementation. At Stream, Onnx plays a pivotal
Read more ->
6 min read

The 5 Best React UI Libraries

When building web applications, especially with React, using a UI library is not necessary – you can build everything from scratch if you prefer. However, UI libraries can be a game-changer, saving you time and effort by providing pre-built, well-designed components that you can easily integrate into your project. Using a UI library can help
Read more ->
3 min read

Using GStreamer with Go for Advanced Streaming Solutions

GStreamer is a powerful and versatile framework for video streaming and media processing. It's used widely in various applications due to its extensive capabilities for handling multimedia content. When combined with Go (Golang), a language known for its efficiency and ease of use, GStreamer can be employed to create robust streaming solutions. This article will
Read more ->
7 min read

The 6 Best LLM Tools To Run Models Locally

Running large language models (LLMs) like DeepSeek Chat, ChatGPT, and Claude usually involves sending data to servers managed by DeepSeek, OpenAI, and other AI model providers. While these services are secure, some businesses prefer to keep their data offline for greater privacy. Get started! Activate your free Stream account today and start prototyping with the
Read more ->
12 min read

Full-Stack Development with Ionic and Nitric

Why Nitric? Nitric is a multi-language framework designed to simplify and accelerate cloud application development. It abstracts away the complexities of cloud infrastructure, allowing developers to focus on writing code rather than managing underlying resources. Nitric provides similar benefits for backend development to those cross-platform solutions like Ionic and Flutter provide for frontend development.  
Read more ->
11 min read

Is Go The Right Choice for Building a Backend?

Since its creation by Google in 2007, Go (Golang) has emerged as a strong contender in the space of backend development, thanks to its simplicity, performance, robust concurrency support and other benefits. But with so many languages attracting developers' attention, is Go the right choice for your next project? In this article, we'll explore Go's
Read more ->
11 min read

Migrate Your iOS Project From CocoaPods To Swift Package Manager

On August 13, 2024, Orta posted some big news on the CocoaPods blog. CocoaPods is entering maintenance mode. This is big. Thirteen years ago, CocoaPods was developed and it was huge. All of a sudden iOS and mac developers aroudn the world could integrate third party dependencies with relative ease. CocoaPods singlehandedly changed the way
Read more ->
3 min read

Designing Effective UIs For Enhancing Compose Previews

One of the biggest advantages of using Jetpack Compose is the Previews feature provided by Android Studio. This functionality allows developers to build and display parts of their layout incrementally rather than building the entire project. Compose Previews significantly reduce the time required to verify component displays directly within Android Studio by enabling developers to
Read more ->
9 min read

Go 10 Week Backend Engineering Onboarding

Welcome to Stream. If you’re reading the public version of this consider checking out our careers page. We’re currently hiring for Go roles of entry to principal/director levels. Stream is an API for building chat, live video and activity feeds. We power thousands of apps and reach over a billion end users. Apps like Strava,
Read more ->
13 min read

Best Firebase Tools for Your Mobile Application

When building mobile applications, you often need to implement essential features such as authentication, push notifications, and more, which can be especially challenging for startups that lack the budget and time to develop these features from scratch. Implementing these features can be very time-consuming and resource-intensive. Firebase offers a comprehensive suite of tools that can
Read more ->
11 min read

5 Software Development Tools That Make Our Life Easier at Stream

At Stream, we are dedicated to developing high-quality software that efficiently delivers real-time experiences for Chat and Video. Developers can use our SDKs with their platform of choice to accelerate their product’s real-time experience to new heights. To achieve our goals of providing you with the best Chat and Video SDKs possible, relying on the
Read more ->
7 min read

Boost Performance by Over 100x Using the Accelerate Framework

We use Apple's Accelerate Framework in two of our SDKs, and even more implementations are underway. In this article, we'll share why and how it helped us solve some performance-related challenges, bringing immediate value to our customers and their end-users. In this article we will provide you with a couple of things: A quick introduction
Read more ->
13 min read

Building a Conferencing App with Next.js

Building a video calling app might seem like a daunting task. But what if I told you it doesn't have to be? Imagine building an enterprise-ready video and audio experience, seamlessly adding it to any app within just a few hours. In this tutorial, you'll learn how to build a scalable video conferencing app in
Read more ->
4 min read

Shared Element Transition In Jetpack Compose: Enriching Android User Experiences

The Shared Element Transition or Container Transform is an animation that forges a visual connection between two UI elements, significantly enhancing the app's aesthetic and user experience. By implementing transitions between screens to appear seamless and integrated, shared element transitions help maintain user engagement and spatial awareness within the app. Using shared element transition animations
Read more ->
5 min read

React Tutorials for Beginners

Front-end libraries have become indispensable components of the modern web development stack. Among these choices is React JS, which stands out as one of the most popular frameworks thanks to its efficiency and flexibility in developing user interfaces (UIs). If you're just getting started learning about this powerful front-end library, you've come to the right
Read more ->
9 min read

Introduction to WebRTC for Unity Developers

What is WebRTC? Web Real-Time Communication (WebRTC) is a powerful technology enabling real-time video, voice, and data exchange between peers over the network. WebRTC is an open-source technology freely available for both personal and commercial use. While most modern web browsers natively support WebRTC, its core is a C++ library that integrates with many programming
Read more ->
9 min read

Jetpack Compose Tutorials for Beginners in 2025

Embarking on Android app development presents a steep learning curve, especially in a landscape where Android dominates as the leading mobile OS with a 72.72% market share in 2025. You might find it challenging to understand how to use kits like Jetpack Compose effectively, mainly because you aren't sure which learning resources to use. We've
Read more ->
10 min read

Optimize App Performance By Mastering Stability in Jetpack Compose

Jetpack Compose, Google's cutting-edge UI toolkit, has shown immense promise since its stable 1.0 release. The adoption for production purposes has surged, with over 125,000 apps developed using Jetpack Compose now successfully launched on the Google Play Store, as reported by Google. Although Jetpack Compose has built-in optimization features, developers should understand how Compose renders
Read more ->
20 min read

Building a Flutter SDK: A Deep Dive Into pub.dev — Part Two

Introduction Building a Flutter SDK is a series about crafting your own Flutter packages and SDKs from scratch. The articles in the series put into words the lessons the Stream Flutter team has learned over the years building our own Flutter SDKs. The series uses two of our SDKs as examples which you can take
Read more ->
14 min read

Configuration as Code, Using PKL

You are building the next best thing. You are scoping out some amazing features. But now you have to add a way for someone running your software to configure things. So, you break out the JSON parser and start coding the interpretation of your new-fangled config file format. But JSON does not allow schemas, and
Read more ->
8 min read

Building a Flutter SDK: Breaking Down a Flutter Package — Part One

Background In our opinion, it is generally easier to write a package for Flutter compared to other app development frameworks. Packages do not take a tremendous amount of specific knowledge to create if you already know app development in Flutter. In other frameworks, packages can have different structures and several distribution methods, making it much
Read more ->
10 min read

Mastering the Model Layer: Iron-Clad State Management in Model-Driven Apps

Model-driven architectures like Model-View-ViewModel (MVVM), Model-View-Controller (MVC), or even simply connecting the Model to the View directly in SwiftUI (I know you're out there!) have dominated the iOS development landscape. MVC, the previously Apple-endorsed pattern, was pushed for UIKit and AppKit apps. SwiftUI, the successor, sees the Model View approach dominating Apple's code examples. These
Read more ->
10 min read

Jetpack Compose: The Android Developer Roadmap - Part 5

We've segmented our Android Developer Roadmap into a multi-part series, delving into crucial Android fundamentals and the current ecosystem. In our previous post, we delved into crucial aspects of contemporary Android development, covering design patterns, architecture, asynchronous operations, networking, and local databases on Android. In part five, we'll explore the fundamental concepts of Jetpack Compose,
Read more ->
18 min read

Improve Your Android App Performance With Baseline Profiles

Baseline Profiles empower you to achieve faster code execution, boasting potential speed improvements of around 20-30% from the first launch. This is accomplished by delivering pre-compiled source code information, effectively bypassing interpretation and just-in-time (JIT) compilation steps when users launch your application. When you integrate Baseline Profiles into your application, Android Runtime (ART) optimizes precise
Read more ->
9 min read

How To Test Remote Push Notifications With iOS Simulators

In iOS, developers can create and send user notifications locally or remotely from a server through the Apple Push Notification Service (APNs). Enabling remote push notifications in iOS apps requires setting up a server to communicate with the APNs for a production app. However, using the simulator, you can quickly emulate and debug remote push
Read more ->
9 min read

The Ultimate Guide to Open Source

Introduction In the modern software world, open-source projects have gained immense value, helping conserve significant resources in software development. Open-source solutions have played pivotal roles in the success of startups, aiding them in various aspects, from optimizing development resources for timely project launches to occasionally contributing to business strategies. As more companies integrate open-source software
Read more ->
11 min read

Integrating with Logging Platforms on iOS

You might ask yourself, are users reaching certain screens? What crashes happen in production? Are certain things happening as expected? This is the area of production logging. Logging during development is straightforward. You just print things to the console. But in production, you do not have this luxury. Instead, you have to roll your logging
Read more ->
4 min read

Setting Background Modes and Device Capability Privacies in iOS Apps

What are the required background modes and protected resource privacies on iOS? Discover and learn to set them appropriately in this article. It focuses on configuring background modes for iOS apps in Xcode and requesting authorization to access the user’s camera, microphone, and media. Resources This article uses the following projects to demonstrate how background
Read more ->
11 min read

Real-World Xcode Project Using Tuist

There's a file in there with the extension proj. This file is what it is about, this file is probably the source of most of the source-level conflicts you will be facing when working on a single Xcode project with multiple people. How often do you intend to quickly merge your work, only to be
Read more ->
12 min read

Linting Documentation with Vale to Increase Quality & Consistency

Most software developers are familiar with tools to lint their source code. Linting code is the process of checking your code against a defined set of rules to help keep a consistent naming convention, prevent common mistakes, and anti-patterns in other aspects of your code, provided the requirement can be expressed in configuration understood by
Read more ->
8 min read

SwiftUI Animation: How To Add Facebook Live Reactions to Livestream Chats

An app like Telegram uses fine-grained animations to engage, entertain, and onboard users in many ways. In this article, you will learn how to build and integrate great SwiftUI animations and motion for your iOS apps to provide wow user experiences. You can use the animations in this article in, for example, live video streaming
Read more ->
11 min read

How to Achieve a 9ms Inference Time for Transformer Models

Interested in Moderation for your product? Check out Stream's AI Moderation Platform! It is crucial for the technology platforms to moderate any harmful content as early as possible. Most modern moderation tools take a few hundred milliseconds to a few seconds to detect harmful content. Often the action against detected harm is taken after the
Read more ->
5 min read

Minimal Node Integration to Get You Started with Stream

Let's set you up with a minimal integration service written in NodeJS. Note, this implementation should only be used for testing purposes and is intended to get you started. What this sample offers is a very basic login and sign-up endpoint that interacts with the Stream Feeds and Chat API to supply you with user
Read more ->
3 min read

7 Android Resources To Level Up As a Developer

The development ecosystem is changing so fast. Every day, new tech stacks and solutions are introduced to the community, and some materials are beneficial and reduce many development resources. To be a better developer, you need to not only make an effort to write good code but also keep learning helpful knowledge from excellent resources.
Read more ->
5 min read

WebRTC IP Leaks: Should You Still Be Worried?

Before getting to the juicy part of this article, you need to understand why WebRTC requires your IP address and how this is not technically a vulnerability as much as a feature of WebRTC. We’ll explore: Attack vectors that demonstrate how WebRTC can be exploited The privacy implications of a leaked IP address How to
Read more ->
9 min read

Using SwiftUI Effects Library: How to Add Particle Effects to iOS Apps

Creating particle animations similar to the iMessage screen and bubble effects in iOS can be difficult. The main reason is that the Core Animation Emitter Layer that allows you to animate, emit and render particle effects is complex to set up and configure due to its large number of parameters. In this article, you will
Read more ->
10 min read

Becoming A Successful Open-Source Librarian

The open-source software ecosystem is in a constant state of growth. Every day, new libraries and solutions are introduced on GitHub that are designed to accelerate development speed and make our lives as developers easier. Nowadays most companies, especially startups, are highly dependent on open-source libraries. They reduce development resources needed and have been a
Read more ->
17 min read

How to Integrate Live Audio and Video Into iOS Apps Using WebRTC

When adding live video to your applications on Stream, we recommend checking out our newly released Video API! Using Stream Video, developers can build live video calling and conferencing, voice calling, audio rooms, and livestreaming from a single unified API, complete with our fully customizable UI Kits across all major frontend platforms. To learn more,
Read more ->
9 min read

Building A Conferencing App With WebRTC: P2P, SFU, or MCU

When dealing with relatively simple real-time data, WebSockets and gRPC have become the go-to mechanisms for most developers. These are relatively simple to work with, and the existing documentation makes building larger applications mostly trivial. When dealing with the WebRTC protocol, however, things are more complicated and nuanced - especially with video and audio. Video
Read more ->
6 min read

HTTP, WebSocket, gRPC or WebRTC: Which Communication Protocol is Best For Your App?

Our forms of communication are constantly improving: getting faster, more convenient, and more reliable. Our communication has evolved from sending messages using carrier pigeons, to postal mail, to the invention of the landline, to email and text messages from a small device that fits in our pockets. In the future, we may even transition meetings
Read more ->
33 min read

Design Patterns and Architecture: The Android Developer Roadmap - Part 4

We’ve broken down our 2022 Android developer roadmap into a multi-part series, each covering important Android fundamentals and the current ecosystem. In the last post, we discussed essential elements of modern Android development, including Fragments, App Navigation, Architecture Components, and Android Jetpack libraries. In part four, you’ll learn the following six sections of our Android
Read more ->
17 min read

SFU, MCU, or P2P: What's the Difference Between These WebRTC Architectures?

SFUs are commonly used in VoIP and video conferencing applications. SFUs differ from Peer-to-Peer (P2P) connections, in which each party sends and receives media directly to and from the other party. They are also different from Multipoint Control Units (MCUs), which receive media from all parties and then broadcast it to all other parties. SFUs
Read more ->
4 min read

6 Jetpack Compose Best Practices for Optimizing Your App Performance

Since Google announced Jetpack Compose stable 1.0, many companies are getting started to adopt Jetpack Compose into their projects. According to Google’s What developers are saying, Jetpack Compose increases their productivity and code quality. Jetpack Compose has a dedicated optimization system but it's essential to understand the rendering mechanism of Jetpack Compose for improving your
Read more ->
11 min read

Stream Loves Open Source: Aug 2022

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
Read more ->
6 min read

Using Xcode: Creating Reusable and Shareable Color Palettes

Having a full range of colors that can be shared and reused in different Xcode projects improves efficiency and workflow because it removes the time wasted in looking for colors that will work together for your projects. Additionally, it ensures consistency of color usage within your apps and projects. Historically, developers and designers create color
Read more ->
7 min read

Definitive Flutter Painting Guide

“Everything is a widget.” Well, yes - but what is a widget? Widgets used in making Flutter apps can themselves be composed of smaller widgets. Most widgets carry some kind of visual component - either defined by themselves or represented by smaller widgets. Unlike native frameworks, Flutter underneath does not use OS views. Instead, Flutter
Read more ->
29 min read

Exploring Google’s Now in Android Open-Source Project

In 2022 Google I/O, Google’s DevRel team released an open-source project, Now in Android, built with the modern Android architecture and Jetpack libraries. In this article, you will cover the overall architecture, each layer, and tech stacks that are used in Now in Android project, such as Material3, Jetpack Compose, and app performance. Before you
Read more ->
9 min read

Transformations in Machine Learning

On 8th September 2020, an article in the Guardian was written by a robot called GPT-3. They asked the robot to write an article about why humans should not be scared of robots and Artificial Intelligence. The human editors wrote the introduction for the article and instructed GPT-3 to generate the next possible sentences iteratively.
Read more ->
17 min read

Seeding a Core Data Store With Remote JSON Data

There are various situations where you’ll find yourself needing to import a sizable amount of JSON to seed a Core Data store. Sometimes you can ship this data alongside your app in the form of a pre-populated SQLite store. Other times, the data that you need to retrieve is so dynamic that shipping the data
Read more ->
18 min read

WWDC State of the Union, What Can We Look Forward To?

Yesterday we wrote about the Apple WWDC Keynote on our blog. On the same day of the WWDC keynote, Apple also live-streamed the Apple WWDC Platform State of the Union. Apple focussed software developers often call this “the Developer Keynote”. The State of the Union session is a more technical presentation with much more detail
Read more ->
12 min read

Apple WWDC Keynote Impressions

Like many things, software development happens in cycles. Apple as a company is like this as well. Each year Apple releases new hardware and new major versions of their hardware and software. To give software developers working in the Apple ecosystem a chance to adopt new hardware and software versions, Apple organizes a yearly conference
Read more ->
13 min read

Server-Side Vapor Swift Implementation With Google, Apple, and Github Authentication

In this post, you'll learn how to build a server application with the Vapor framework to provide tokens to an iOS app to use with the Stream Chat SDK. You'll learn how to leverage different types of authentication for users and provide them with tokens. Note: for this tutorial, you'll need Xcode 12.3 installed, Homebrew,
Read more ->
15 min read

App Navigation and Jetpack: The Android Developer Roadmap - Part 3

We’ve broken down our 2022 Android developer roadmap into a multi-part series. Each section dives deep into important Android fundamentals and the current Android ecosystem. In the last post, we discussed important elements of Android’s primary components, including Intents and App Entry Points. In part three, we’ll cover the next four sections of our Android
Read more ->
11 min read

Building Your First Application With Deno

Deno is a recently launched runtime environment for JavaScript and TypeScript used for building modern server-side applications. In this article, you will learn how to build a backend server with Deno. I will show you how to create a live server, create API routes, store environment variables, read and write files in file systems, and
Read more ->
12 min read

Modeling Retrofit Responses With Sealed Classes and Coroutines

As the rate of data communication increases, the complexity of the application architecture also increases. How an application handles API responses will determine its overall architectural design and code complexity. In this post, you will cover how to model Retrofit responses with Coroutines and Sealed classes to reduce code complexity and make your application architecture
Read more ->
7 min read

Scaling Your Xcode Projects With Tuist

One of the biggest challenges for iOS development teams is scaling a codebase when their company or product takes off. Growth and scaling issues are a great thing, but they introduce some typical growing pains as well, like: Clearly defining responsibilities when splitting up your development effort across multiple teams. Decreasing the edit-build-run cycle of
Read more ->
6 min read

Reducing App and SDK Size With Emerge Tools

The Importance of Mobile App and SDK Size When developing a mobile app, one crucial performance metric is app size. An app’s size can be difficult to accurately measure with multiple variants and device spreads. Once measured, it’s even more difficult to understand and identify what’s contributing to size bloat. Many people think that as
Read more ->
5 min read

App Components: The Android Developer Roadmap - Part 2

We’ve broken down the Android developer roadmap into five modules, each covering different aspects of the Android development ecosystem. In the last post, we discussed important elements of Android’s architecture, including the primary Android languages, the OS, the Android Platform, and the App Manifest. In part two, we’ll cover the next three sections of our
Read more ->
7 min read

AvatarView for Android: Take Your Profile Images to the Next Level

Introducing the AvatarView Library AvatarView supports loading profile images with fractional style, borders, indicators, and initials for Android. It also provides internal image loaders to load profile images with your loading strategies. To show you how useful the API is, this post will show you how to use AvatarView so that you can implement your
Read more ->
5 min read

Tips & Tricks to Improve Flutter Performance

Held in Oslo, Norway (and more recently online), FlutterVikings is the largest community-driven Flutter conference in the Nordic region. Focused on Flutter and Dart, the conference gathers global Flutter experts from some of the world’s most innovative and well-known tech companies for two days of technical presentations, networking, and connecting with sponsors. Stream was proud
Read more ->
1 min read