February 2021 Summaries
16 posts from Stream
Filter
Month:
Year:
Post Summaries
Back to Blog
In August 2022, Stream highlighted its support for various open-source projects on GitHub, emphasizing the significance of open-source software in modern technology, from rocket engineering to advanced chat and feed systems. Stream expressed pride in contributing to the developer community by supporting projects that utilize a range of programming languages and platforms, including Python, Swift, Java, Flutter, React Native, and Rust. Notable projects mentioned include the Django REST Framework for building web APIs, HaishinKit.swift for streaming on iOS, the bloc state management library for Flutter, and a pure Rust implementation of the WebRTC stack. Stream encouraged developers to share their favorite open-source packages using the hashtag #StreamOpenSource on Twitter.
Feb 28, 2021
336 words in the original blog post.
React Native developers often face challenges with implementing bidirectional infinite scroll, particularly when using FlatList or SectionList, which natively support infinite scroll only in one direction. To address this, a new open-source package, react-native-bidirectional-infinite-scroll, has been developed to facilitate bidirectional scrolling by adding support for the onStartReached prop, allowing developers to trigger callbacks when scrolling near the start of the list. This package optimizes scrolling by managing the execution order of onStartReached and onEndReached to prevent scroll jumps, thereby maintaining a smooth user experience. Additionally, it includes props like onStartReachedThreshold and onEndReachedThreshold for better control over the scroll offset at which these callbacks are triggered. The package also supports a maintainVisibleContentPosition prop on Android, inspired by similar functionality on iOS, through the dependency @stream-io/flat-list-mvcp. A tutorial demonstrates implementing a chat UI with this package, including features like sending messages and auto-scrolling to the bottom, showing its practical application in real-world scenarios.
Feb 27, 2021
2,519 words in the original blog post.
Product management is a strategic framework that plays a crucial role in guiding product teams to develop, release, and support engaging products while aligning with company goals. It helps clarify the company's strategic vision and ensures that all team members understand their contributions to the overall product development lifecycle, from inception to user experience and support. Product management is distinct from product development, focusing on the overarching strategy and customer perspective rather than just the technical building process. For effective product management, having a clear strategy and purpose is vital, as it allows teams to prioritize tasks and objectives efficiently, leading to better alignment with customer needs and company goals. The process involves cross-functional collaboration and the use of various frameworks and tools to enhance productivity, ensure alignment, and build lasting customer relationships. In 2021, product managers sought to refine their processes by emphasizing customer communication, leveraging technology, and reinforcing strategic visions to navigate an increasingly competitive market.
Feb 26, 2021
1,508 words in the original blog post.
The standardization of the WebSocket protocol in 2011 revolutionized the creation of applications like online games and real-time chats by eliminating the need for manual data refreshes. For Swift programmers targeting Apple platforms, two main libraries facilitate connection to a WebSocket server: Starscream and Apple's URLSession. Starscream, a legacy library, supports older operating systems and has proven reliability but increases binary size and shows signs of decreased maintenance. In contrast, URLSession benefits from being part of Apple's maintained system, ensuring minimal binary size increase and regular updates, though it lacks support for older systems and has reliability issues due to its recent incorporation of WebSocket support. Choosing between them depends on factors such as system version support, app requirements like size optimization, and the need for reliable, time-tested functionality.
Feb 26, 2021
1,047 words in the original blog post.
This tutorial provides a comprehensive guide to creating a functional clone of iMessage using the Stream Chat Flutter SDK, aimed at helping developers integrate a scalable chat feature into their applications. It covers the use of various SDKs, such as stream_chat and stream_chat_flutter, and focuses particularly on stream_chat_flutter_core for maximum customization. The tutorial walks through building static views and interactive components like ChannelPreview, ChannelListView, and MessagePage, utilizing Flutter's Cupertino Widgets for iOS design fidelity. It also explains how to handle messages, including date formatting, message grouping, and media attachments, using the intl and collection packages. The integration of Stream Chat SDK is demonstrated by setting up user authentication and creating a chat interface with features like message input and chat bubbles, alongside LazyLoadScrollView for efficient scrolling. The tutorial concludes with setting up ChatLoader and MessageListView using ChannelListCore and MessageListCore, offering tools for error handling, loading states, and pagination, with a promise of further features like search in future updates.
Feb 26, 2021
2,988 words in the original blog post.
Messaging, encompassing SMS/MMS, email, and messaging apps, is a fundamental mode of communication globally, with billions of messages sent daily. However, this ubiquity makes messages a target for hackers, unethical companies, and even governments, posing risks to data privacy and security. End-to-end encryption (E2EE) is a key method for ensuring message security, encrypting messages so that only the intended recipient can read them, unlike transport layer security, which involves third-party servers that can access message content. Despite its high security, E2EE is not completely foolproof, as messages can be compromised on personal devices or through policy changes by app providers. The text dispels several myths about secure messaging, emphasizing that SMS lacks E2EE, that default E2EE settings are preferable, and that building a secure messaging app can be streamlined by leveraging existing technology from security-focused providers. The article highlights the evolving nature of privacy policies and the importance of integrating robust encryption solutions to maintain user trust and data integrity in messaging platforms.
Feb 25, 2021
1,013 words in the original blog post.
Stream has introduced significant updates to its chat SDKs for Android and iOS, enhancing user experience with new features and improvements. The Android SDK has been upgraded to version 4.6.0, offering features like Slow Mode, Pinned Messages, Autocomplete Search Filters, and improved offline support, along with a robust sample app and easier-to-use APIs. The iOS SDK, now at version 3.1.0, supports SwiftUI and Combine, and aligns with UIKit patterns for enhanced developer experience, featuring improved network handling and real-time UI updates. Both SDKs come with updated tutorials, custom cheatsheets, and sample apps to help developers integrate Stream Chat features seamlessly. Stream also offers opportunities to connect with Ben, the Director of Product, for feedback and guidance on migrating to the new SDKs.
Feb 23, 2021
457 words in the original blog post.
Freeman, a global leader in the events industry, quickly adapted to the shift from in-person to virtual events during the COVID-19 pandemic by developing a virtual event platform, OnlineEvent®, which required robust chat functionality to support audience interaction. To meet this need, Freeman integrated Stream Chat using the React SDK in just three weeks, ensuring rapid integration, scalability, security, and single sign-on capabilities. Over time, Freeman has expanded to include features such as direct 1:1 chat, moderating block lists, and customizing the UI to align with its brand. The integration has been successful, providing reliable performance and enhancing attendee engagement during virtual events. Freeman continues to focus on evolving its platform to support hybrid events, which combine both virtual and in-person components, thereby maintaining deep engagement and optimizing event ROI for customers.
Feb 19, 2021
738 words in the original blog post.
Customer lifecycle management is a strategic approach that helps businesses understand and enhance the customer journey from discovery to advocacy, improving customer experiences and fostering loyalty. By tracking customer interactions at various stages—awareness, engagement, consideration, purchase, experience, and advocacy—companies can tailor their messaging and product development to better meet consumer needs and expectations. This approach not only builds empathy and understanding of consumer problems but also enables businesses to effectively communicate product value throughout the customer journey, thereby increasing customer lifetime value (LTV). Successful customer lifecycle management can lead to long-term customer relationships, with loyal customers more likely to make repeat purchases, and helps businesses predictably capture revenue by continuously adding value to the customer experience.
Feb 19, 2021
1,344 words in the original blog post.
When developing iOS apps, organizing code through "manager" classes that handle specific functionalities such as REST API, WebSockets, and notifications is common, often utilizing the Facade pattern. This pattern is typically implemented using either the Singleton or Dependency Injection patterns, each with its advantages and limitations. The Singleton pattern's main benefit is its simplicity and ease of access, allowing a single shared instance throughout the app, though it can complicate testing and scalability as the app grows. On the other hand, Dependency Injection offers more flexibility and testability by allowing multiple instances and restricting access to specific components, but it can require more initial setup and potentially complicate the development process. Both patterns have their uses, and the choice between them should be guided by the specific needs of the project, with an emphasis on maintaining single-purpose classes to prevent overcomplexity.
Feb 12, 2021
1,070 words in the original blog post.
Welcome, a virtual event software company founded in May 2020, addresses the need for an experience-first platform that enhances human connection through online events, offering features like video chat, green rooms for speakers, and sophisticated in-app messaging. Co-founder Tiger Shen highlights the decision to integrate Stream Chat's pre-built React SDK to provide a reliable chat function that supports emojis, gifs, and rich links, essential for competitive virtual events. This choice allowed Welcome to rapidly launch and scale, accommodating events with thousands of attendees, and focus on innovating event interfaces rather than building messaging from scratch. The integration with Stream Chat proved crucial as Welcome experienced rapid employee growth and secured a $12 million Series A funding round, positioning the company for significant expansion while continuing to prioritize a unique virtual event experience.
Feb 11, 2021
767 words in the original blog post.
Seventy percent of tech startups fail, often due to issues like mismanagement and lack of funds, but a strong product that meets customer needs can enhance longevity. Anthony Claudia, head of product at Symbl, emphasizes the importance of solving real problems for customers by thoroughly understanding their requirements and avoiding unnecessary features. He warns against tech debt caused by prioritizing rapid development over quality code, which can hinder scalability. Claudia also highlights the need for product managers to secure team buy-in and maintain a clear vision for product evolution. Additionally, creating an intuitive user experience is crucial, particularly for developer-focused products, as it ensures customer satisfaction and product success. Claudia advises ensuring comprehensive documentation and valuing roles like developer relations and customer success to enhance product usability and adoption. Symbl's conversational intelligence API exemplifies a product that integrates machine learning to provide real-time insights from verbal communications.
Feb 10, 2021
734 words in the original blog post.
Trust is a crucial factor in influencing customer purchase decisions, with global trends indicating a decline in brand trust, making it important for companies to effectively map and understand the customer lifecycle. This lifecycle comprises six stages: awareness, engagement, consideration, purchase, experience, and advocacy, each building on the previous one, transforming potential leads into loyal advocates. Companies can enhance product value communication and customer relationships by effectively navigating these stages, using insights gathered to tailor marketing strategies and product development. Engaging customers at each stage not only boosts retention and loyalty but also increases the lifetime value of customers, ultimately leading to enhanced profitability. By fostering a culture that values data-driven insights and customer feedback, businesses can mature as product teams, ensuring their offerings remain relevant and valuable throughout the customer journey.
Feb 10, 2021
1,766 words in the original blog post.
The updated article offers a comprehensive guide on publishing libraries to MavenCentral, emphasizing the use of GitHub Actions for continuous integration and command-line GPG for signing artifacts. Key updates include non-Android library support, the use of the AGP Maven Publish plugin, and improvements to the publication process following infrastructure changes by Sonatype. The guide details the registration and verification process with Sonatype, generating and managing GPG keys, and setting up Gradle scripts for artifact publication. It also covers automating the publication process with CI workflows and managing potential challenges during uploads, providing a robust framework for developers aiming to release libraries through MavenCentral effectively. The article concludes with a nod to the complexity of the process, encouraging developers to adopt best practices for successful integration.
Feb 04, 2021
4,868 words in the original blog post.
Stream has announced the release of a new Flutter Chat SDK and two additional Stream Flutter packages aimed at helping developers create apps more efficiently. The update includes a revamped UI, two new packages—stream_chat_flutter_core and stream_chat_persistence—and improvements to the API documentation and low-level client. The stream_chat_flutter_core package allows developers to build custom UIs by focusing on core business logic, while the stream_chat_persistence package offers offline storage capabilities. A new mono repo structure on GitHub enhances iteration and feature development. The company invites community engagement and feedback, encouraging developers to explore the new features and share their projects.
Feb 03, 2021
622 words in the original blog post.
Product managers play a crucial role in shaping product development by effectively communicating the "what," "why," "how," and "so what?" of a product through storytelling, a skill emphasized by Uber's Senior Product Manager, Divya Anand. Drawing inspiration from Pixar's storytelling techniques, Anand highlights the importance of making the audience care by creating relatable customer personas, presenting high stakes to maintain engagement, building credible narratives to earn trust, and continuously revising stories to identify product differentiators. Moreover, starting with the end in mind ensures that the story aligns with key business objectives and metrics, thus guiding product strategies and fostering collaboration among stakeholders.
Feb 01, 2021
878 words in the original blog post.