June 2023 Summaries
8 posts from Daily
Filter
Month:
Year:
Post Summaries
Back to Blog
Node.js is widely adopted for developing web applications due to its versatility, extensive ecosystem, and developer-friendly features. However, performance challenges such as memory exhaustion can impact Node.js applications like any other. To maintain a scalable and reliable application, prioritizing memory performance becomes critical. Memory management involves regulating how software interacts with computer memory, including allocating and releasing memory. Node.js allocates memory using the V8 JavaScript engine, which handles memory allocation, utilizing a Resident Set of memory allocated to the program, consisting of code, static data, stack, and heap memory. Garbage Collection (GC) periodically purges unused memory by removing objects that are no longer required from the heap. The GC process in Node.js is a combination of two algorithms: Scavenger (Minor GC) and Mark-Sweep & Mark-Compact (Major GC). Common memory issues in Node.js include Memory Leaks, where continuous allocation but failure to release memory can lead to running out of memory and crashing. Global variables also pose a risk as they won't be garbage collected, leading to memory exhaustion. Storing large objects in memory or using excessive global variables can cause performance issues and lead to memory crashes. To mitigate these issues, it's essential to identify and address potential memory leaks, optimize storage of large objects, and use the correct data structures and storage mechanisms, such as streaming files instead of loading large chunks into memory.
Jun 29, 2023
1,574 words in the original blog post.
WebFrame is a new component now available as part of Daily's Video Component System (VCS) beta, which enables developers to embed live web content into custom Daily-built applications that use cloud recording or live streaming. This allows for polished and optimized content capture, with features such as server-side rendering, programmatic API control over the embedded browser, and extensive control over the WebFrame overlay's position in the layout. It offers higher visual fidelity than screen share, which is subject to user errors and local technical problems, and can be used for shared online documents, small widget-style info displays, and other interactive content. However, it's not meant for media content, such as video playback or animated graphics, and can be combined with the Remote Media Player API for a more comprehensive solution. The WebFrame component works on the server-side, rendering web content in the same pass as VCS overlay graphics, ensuring high-quality output with legible text and graphics. It also supports simulated key presses to enable remote control of web apps, and offers customizable layouts using the VCS baseline composition.
Jun 27, 2023
2,092 words in the original blog post.
Expo has evolved and improved, allowing it to be a great environment for building React Native apps, particularly with the introduction of Expo development builds and config plugins. These features have enabled Expo to overcome compatibility issues and support native toolkits like WebRTC, making it easier for developers to build real-time audio and video chat applications. Expo's eject-riddled days are now a relic of the past, thanks to its advancements in addressing limitations such as accessing native libraries and third-party plugins. With Expo development builds and config plugins, developers can extend Expo Go's codebase to ship their own personalized Expo Go application, making it easier to push updates to an application. Additionally, services like Daily provide an easy-to-install React Native client SDK that interfaces with pre-existing backend servers to coordinate connections, enabling developers to scale WebRTC applications without compromising quality.
Jun 20, 2023
1,803 words in the original blog post.
The Daily Custom Session Data Feature allows participants to share client-side state scoped to a video session with other participants. This feature enables custom data sharing between participants in a video call, making it possible to pass information such as jokes or other shared content between participants. The feature can be used to enhance the functionality of video conferencing applications by allowing users to share and interact with each other's content in real-time. The code provided demonstrates how to set up this feature using Daily's JavaScript API, including setting custom session data, responding to "meeting-session-state-updated" events, and retrieving meeting session state on demand.
Jun 18, 2023
2,299 words in the original blog post.
Daily's Client SDK for JavaScript introduces a new feature called custom session data, which allows developers to store state at the level of a video call session, simplifying per-session state management. This feature is available through daily-js and is not yet part of Daily Prebuilt. It powers Daily's breakout rooms feature and can be used in various scenarios such as state-powered UI/layout changes, engagement features like polls or Q&A, and "bring to stage" functionality. Developers can choose between custom session data, "app-message" events, custom user data, or a server-side implementation based on their specific use case needs. Custom session data is suitable for sending session-scoped data to all participants, while "app-message" events are better suited for participant-scoped data between existing call participants. A server component can also be used for state handling and communication with call participants in scenarios that require additional validation or processing.
Jun 15, 2023
889 words in the original blog post.
The ScrollView component is a generic container that allows for scrolling, but it's not ideal for mapping over a large collection of list items. Instead, the FlatList and SectionList components are recommended for improving app performance when rendering long lists of items. The FlatList uses virtual scrolling to improve performance by only rendering items on screen, while the SectionList offers extra features related to list headers and footers. Manual track subscriptions can further improve app performance in large video calls by not subscribing to media tracks that are not currently being used. Developers building apps for large video calls are encouraged to use Daily's manual track subscription features. The onViewableItemsChanged prop of the FlatList component allows developers to know when to manually update track subscriptions.
Jun 13, 2023
2,435 words in the original blog post.
Daily provides a wide range of client SDKs that enable developers to build with their video capabilities across various platforms, including web, desktop, iOS, and Android. The company's approach to building and maintaining these libraries is based on a unified underlying layer built using Rust, which enables increased maintainability and commonality across platforms. This allows for consistent development patterns, scalable updates, and reliable behavior consistency across different SDKs. Daily's expanded technical resources for their iOS and Android native mobile SDKs include comprehensive guides, demos, and documentation, such as reference docs, installation guides, quickstarts, and extensive demos, to help developers get started with building video applications using these SDKs.
Jun 08, 2023
685 words in the original blog post.
Implementing client-side search in a React app using Fuse.js enables developers to add this feature quickly without requiring extensive knowledge of search algorithms or database management. Fuse.js offers fuzzy searching capabilities, allowing users to find information even if they are unsure about the exact spelling or phrasing of what they are looking for. The library ranks search results based on relevance and uses a scoring system that considers factors like keyword proximity and match length. With its flexibility, lightweight nature, and customization options, Fuse.js is an ideal choice for building robust search functionality in React applications. By following this tutorial, developers can create real-time search features with minimal code, improving the overall user experience and engagement of their app.
Jun 06, 2023
1,855 words in the original blog post.