Android

55 posts

lineOriginal article

Code Quality Improvement Techniques Part (opens in new tab)

Applying the Single Responsibility Principle is a fundamental practice for maintaining high code quality, but over-fragmenting logic can inadvertently lead to architectural complexity. While splitting classes aims to increase cohesion, it can also scatter business constraints and force callers to manage an overwhelming number of dependencies. This post explores the "responsibility of assigning responsibility," arguing that sometimes maintaining a slightly larger, consolidated class is preferable to creating fragmented "Ravioli code." ### Initial Implementation and the Refactoring Drive The scenario involves a dynamic "Launch Button" that can fire rockets, fireworks, or products depending on its mode. * The initial design used a single `LaunchButtonBinder` that held references to all possible `Launcher` types and an internal enum to select the active one. * To strictly follow the Single Responsibility Principle, developers often attempt to split this into two parts: a binder for the button logic and a selector for choosing the mode. * The refactored approach utilized a `LaunchBinderSelector` to manage multiple `LaunchButtonBinder` instances, using an `isEnabled` flag to toggle which logic was active. ### The Problem of Scattered Constraints and State While the refactored classes are individually simpler, the overall system becomes harder to reason about due to fragmented logic. * **Verification Difficulty:** In the original code, the constraint that "only one thing launches at a time" was obvious in a single file; in the refactored version, a developer must trace multiple classes and loops to verify this behavior. * **State Redundancy:** Adding an `isEnabled` property to binders creates a risk of state synchronization issues between the selector’s current mode and the binders' internal flags. * **Information Hiding Trade-offs:** Attempting to hide implementation details often forces the caller to resolve all dependencies (binders, buttons, and launchers) manually, which can turn the caller into a bloated "God class." ### Avoiding "Ravioli Code" Through Balanced Design The pursuit of granular responsibilities can lead to "Ravioli code," where the system consists of many small, independent components but lacks a clear, cohesive structure. * The original implementation’s advantage was that it encapsulated all logic related to the launch button's constraints in one place. * When deciding to split a class, developers must evaluate if the move improves the overall system or simply shifts the burden of complexity to the caller. * Effective design requires balancing individual class cohesion with the overhead of inter-module coupling and dependency management. When refactoring for code quality, prioritize the clarity of the overall system over the dogmatic pursuit of small classes. If splitting a class makes it harder to verify business constraints or complicates the caller's logic significantly, it may be better to keep those related responsibilities together.

figma2 min readCurated summary

How Polaroid Is Building its Next Era of Innovation | Figma Blog

Polaroid is reinventing its iconic instant-photography business for the digital era while preserving its creative heritage. The company uses Figma to unify design across its website, camera products, and mobile apps, enabling faster collaboration and more consistent user experiences. A centralized design system and more capable prototypes help the team validate ideas early and reduce costly development changes. ## Preserving Polaroid’s Creative Legacy - Polaroid became culturally significant through Edwin Land’s instant-camera innovations and its use by artists such as Andy Warhol, Ansel Adams, and David Hockney. - Digital photography threatened the company’s survival, leading to the closure of its last film factory in 2008. - The Impossible Project acquired the factory, recreated Polaroid film chemistry, and eventually obtained the Polaroid brand. - The modern company now combines instant cameras and film with photo printers, connected-camera apps, and other digital products. ## Building a Single Source of Truth - Before adopting Figma, designers worked in separate files and fragmented workflows. - The lack of shared components and a centralized design system caused duplication, slowed iteration, and limited the team to designing primarily for iOS. - Figma’s cloud-based collaboration gives designers and other departments shared visibility, supporting remote work and cross-functional discussion. - Design tokens and variables allow Polaroid to: - Support light and dark modes. - Adapt designs across iOS and Android. - Change default fonts by platform. - Match an app’s theme to a camera’s colorway. - Show users only the camera model they own during device setup. - Figma UI kits provide starting points, while plugins such as Autoflow help map user journeys. ## Using Prototypes to Validate Ideas Earlier - More powerful Figma prototypes let the team test realistic user flows before development. - Users can navigate freely and change settings, producing more natural feedback than earlier prototype methods. - User testing reveals actual behavior instead of relying on assumptions. - Early validation improves product quality, saves time, and prevents expensive revisions later. Polaroid’s experience suggests that a shared design system combined with realistic prototyping can help legacy brands modernize efficiently while maintaining a recognizable creative identity.

Read original(opens in new tab)
discord4 min readCurated summary

Discord Patch Notes: May 1, 2025

Discord’s May 1, 2025 patch focuses on performance, usability, reliability, and bug fixes across platforms. Notable changes include faster Android video uploads, improved animated emoji support, and new Markdown links for phone numbers and email addresses. The release also resolves a wide range of interface, profile, moderation, permissions, and mobile issues, though some fixes may still be rolling out. ## Performance and Media Improvements - Android video transcoding improvements increased average upload speeds by about 5.6%. - Lower-performance Android devices saw average upload times improve by roughly 10.5%. - Animated emojis can now be uploaded in WebP and AVIF formats. - Supports true alpha transparency. - Provides greater color depth. - Produces smaller files. - Enables smoother playback. ## Markdown Links for Contact Information - Phone numbers and email addresses can now be formatted as links by placing them inside angle brackets: `< >`. - This allows users to tap or interact with contact information directly instead of copying it into another app. ## Notifications, Search, and Forum Usability - macOS notifications were redesigned to be cleaner and less cluttered. - Tapping text enclosed in backticks now copies it on mobile. - Forum searches now support choosing between AND and OR behavior for multiple tags. - Emoji autocomplete was improved for narrow Discord windows. - AutoMod system direct messages now appear correctly in mobile search results. - Server Insights graphs now update with the latest engagement data. - Keyboard behavior was improved when layout changes obscure content, particularly in Forum Channels; further improvements are ongoing. ## Profiles, Friends, and Statuses - Friend-request context menus now say “Accept Friend Request” instead of “Add Friend.” - Friend-request settings were reworded for greater clarity. - Mutual servers now appear correctly in mini profiles and update without requiring a restart. - Custom emojis in statuses animate properly when combined with text. - Non-animated custom-status emojis now display hover tooltips. - System emojis no longer appear clipped in Android statuses. - The Settings label “User Profile” was renamed “Main Profile.” - Accidental status changes from the Nitro preview in profile settings are no longer possible. - Long role lists in profiles can now be scrolled. - Server-specific profile role padding and role color previews were corrected. ## Moderation, Roles, and Server Management - Clicking a member in the Members tab now opens Mod View instead of closing the tab. - Mod View correctly renders messages from age-restricted channels. - Role color changes and slightly edited AutoMod regex rules now save properly. - Roles in Advanced View channel permissions are sorted by hierarchy. - Community Onboarding tasks can now be deleted reliably. - The “More” button on Student Hub server cards now works. - Users can once again move servers into the first position in a folder. - The server member-list border on iOS was reduced to restore usable space. ## Emoji, Reactions, and Embeds - Animated emojis now animate correctly in the full reactions list. - Reaction hover text is properly formatted even when many users participated. - Desktop now displays a clear upload-result toast for GIF emojis. - Invite links ending in a period now embed correctly. - Embeds and bot messages scale more effectively with font sizes and image dimensions, reducing overly narrow layouts. ## Mobile, Platform, and Visual Fixes - Quest and Account panels now align correctly. - Text in Voice for Stage Channels renders properly on foldable devices. - Mobile server headers use consistent colors across non-standard themes. - macOS capitalization for “Quit Discord” was corrected. - A Russian translation error affecting the “Mention the User” button was fixed. - Discovery now shows only one error when a user has reached the server limit. - Android users can side-scroll through server invite options. - Profile reaction coachmarks are positioned correctly. Discord recommends reporting remaining issues through the community bug megathread. Users who want early access to iOS changes can also join the Discord TestFlight program.

Read original(opens in new tab)
googleOriginal article

Amplify Initiative: Localized data for globalized AI (opens in new tab)

The Amplify Initiative by Google Research addresses the critical lack of linguistic and cultural diversity in generative AI training data by establishing an open, community-based platform for localized data collection. By partnering with regional experts to co-create structured, high-quality datasets, the initiative aims to ensure AI models are both representative and effective in solving local challenges across health, finance, and education. This approach shifts data collection from a top-down model to a participatory framework that prioritizes responsible, locally respectful practices in the Global South. ## The Amplify Platform Framework The initiative is designed to bridge the gap between global AI capabilities and local needs through three core pillars: * **Participatory Co-creation:** Researchers and local communities collaborate to define specific data needs, ensuring the resulting datasets address region-specific problems like financial literacy or localized health misinformation. * **Open Access for Innovation:** The platform provides high-quality, multilingual datasets suitable for fine-tuning and evaluating models, specifically empowering developers in the Global South to build tools for their own communities. * **Author Recognition:** Contributors receive tangible rewards, including professional certificates, research acknowledgments, and data authorship attribution, creating a sustainable ecosystem for expert participation. ## Pilot Implementation in Sub-Saharan Africa To test the methodology, Google Research partnered with Makerere University’s AI Lab in Uganda to conduct an on-the-ground pilot program. * **Expert Onboarding:** The program trained 259 experts across Ghana, Kenya, Malawi, Nigeria, and Uganda through a combination of in-person workshops and app-based modules. * **Dataset Composition:** The pilot resulted in 8,091 annotated adversarial queries across seven languages, covering salient domains such as education and finance. * **Adversarial Focus:** By focusing on adversarial queries, the team captured localized nuances of potential AI harms, including regional stereotypes and specialized advice that generic models often miss. ## Technical Workflow and App-Based Methodology The initiative utilizes a structured technical pipeline to scale data collection while maintaining high quality and privacy. * **Privacy-Preserving Android App:** A dedicated app serves as the primary interface for training, data creation, and annotation, allowing experts to contribute from their own environments. * **Automated Validation:** The app includes built-in feedback loops that use automated checks to ensure queries are relevant and to prevent the submission of semantically similar or duplicate entries. * **Domain-Specific Annotation:** Experts are provided with specialized annotation topics tailored to their professional backgrounds, ensuring that the metadata for each query is technically accurate and contextually relevant. The Amplify Initiative provides a scalable blueprint for building inclusive AI by empowering experts in the Global South to define their own data needs. As the project expands to India and Brazil, it offers a vital resource for developers seeking to fine-tune models for local contexts and improve the safety and relevance of AI on a global scale.

discord2 min readCurated summary

How to Stream Games and Applications to Discord from Desktop or Mobile

Discord lets users stream games, applications, or entire screens from desktop and mobile while in a voice call. Desktop users can choose between sharing a specific application or their whole screen, while mobile users can only share everything displayed on their device. Stream quality, audio support, and available features vary by platform, with Nitro offering higher-resolution streaming options. ## Streaming from Desktop - Works on Windows, macOS, and Linux. - Join a voice call in a server channel or DM. - Select the screen-sharing button, then choose: - A specific application or game - The entire screen - A capture device - Adjust stream quality and select **Go Live**. ## Streaming from Mobile - Available on iOS and Android smartphones and tablets. - Open a voice call and expand the bottom options menu. - Tap **Share Your Screen** and confirm using the device’s streaming controls. - Mobile streaming shares the entire screen, including notifications and device audio. - Users should mute notifications to avoid exposing private information. ## Sharing an Application vs. the Entire Screen - **Share Application** - Shows only the selected game or application. - Can include audio from that application without sharing sounds from other apps. - Helps keep unrelated content and notifications private. - **Share Entire Screen** - Shows everything visible on the display. - Can share system audio from all applications. - Viewers may see notifications, messages, or other sensitive content. - Mobile devices only support full-screen sharing. ## Audio Support by Platform - Windows, the mobile app, and Chrome support application audio sharing without additional setup. - macOS supports audio streaming on macOS Ventura or later. - Audio sharing is unavailable through non-Chrome browsers and on Linux at the time of publication. ## Choosing Stream Quality - **Smoother Video** prioritizes frame rate by reducing resolution, making it better for fast-moving games. - **Better Text Readability** preserves the application’s resolution while lowering frame rate, which is useful for documents, artwork, or homework. - Discord Nitro provides HD streaming at higher resolutions and up to 60 frames per second. Choose application sharing when privacy and focused audio matter; use full-screen sharing when viewers need to see everything. On mobile, review notifications and other visible content before starting because the entire device screen will be broadcast.

Read original(opens in new tab)
discord3 min readCurated summary

Discord Patch Notes: April 3, 2025

Discord’s April 3, 2025 patch focuses on usability, reliability, performance, and bug fixes across desktop and mobile. Major updates include Overlay v3, improved mobile navigation to unread messages, smarter Quick Switcher rankings, and expanded server-joining controls. The release also addresses numerous localization, layout, permissions, rendering, and chat issues. ## Major Highlights - **Overlay v3** was released, with Discord encouraging users—especially those dissatisfied with earlier Overlay versions—to try it. - Mobile users should now reach the oldest unread message in a busy channel with a single tap on the “new messages” indicator. - Quick Switcher channel-ranking logic was refined to improve search results and navigation across multiple servers. ## Server Access and Community Management - Users can set a server nickname and configure DM permissions during the invite-based joining process. - Servers can now use the Membership Application system, requiring approval before users join. This is managed through the new **Access** tab in Server Settings. - The built-in Timeout command was fixed and should once again accept valid durations. - Moderator actions from a user’s profile now work correctly even when that user has blocked the moderator. - The server ban list no longer displays stray parentheses after usernames. ## Interface, Navigation, and Performance Fixes - Keyboard navigation in Quest Discovery now expands the selected tile. - Desktop popouts should appear where they were opened instead of at the top-left corner. - The Shop’s “Shop All” section received performance improvements. - The back button now correctly returns users to Server Discovery after joining a server. - Numerous alignment and rendering problems were fixed across voice channels, profile popouts, MFA setup, Safety settings, code blocks, emoji, banners, and mobile screens. - Mobile issues involving blank screens after leaving Group DMs, scrolling Nitro perks, emoji-picker navigation, and poll-result overlap were resolved. ## Localization and Content Display - Fixed missing or incorrect translations in UK English, Japanese, and other localized interfaces. - Corrected event text, Quest minute pluralization, Nitro Home banner alignment, and Prune Members UI rendering. - Markdown in Scheduled Events and information in voice-chat profile popouts should now display properly. - Search results should once again show messages correctly. ## Chat and Threads - Mastodon embeds now provide better support for images, videos, formatting, styling, and a broader range of posts. - Spotify embeds in Text in Voice channels should scale correctly. - Mobile users no longer need to provide a thread name, matching the desktop experience. - Users are no longer incorrectly prompted to create a thread when they lack permission to send messages but can create threads. - Slowmode messages should display their full text instead of only the first few letters. - Users with the necessary permissions can lock and unlock mobile threads without joining them first. Overall, the patch is primarily a broad maintenance release, combining several visible feature improvements with a large number of cross-platform fixes. Users should see smoother navigation, more reliable chat behavior, and better consistency between desktop and mobile experiences.

Read original(opens in new tab)
discord3 min readCurated summary

Discord Patch Notes: March 11, 2025

Discord’s March 11, 2025 patch focuses on reliability, media processing, sharing, and broad bug fixes across desktop and mobile. Major improvements include safer API deployments, more accurate HDR-to-SDR conversion, faster and more reliable Spotify embeds, a redesigned Android sharing flow, and an Electron upgrade. The release also addresses numerous issues affecting chat, profiles, search, notifications, emoji pickers, and mobile rendering. ## Reliability and Platform Improvements - Discord changed its API deployment strategy to isolate critical services and reduce the impact of reliability incidents. - Desktop clients were upgraded from Electron 33.0.0 to 33.4.0. - HDR-to-SDR tone mapping was improved for more accurate colors in HDR images and videos converted for SDR display. - Spotify embeds now have approximately: - 83% lower p95 latency - 88% fewer failures - Android’s share interface was redesigned to resemble Discord’s message-forwarding experience. - Fixes may continue rolling out across platforms after the patch’s publication. ## General Interface and Account Fixes - Fixed Soundboard previews that could loop indefinitely after an upload was canceled. - Improved iOS performance when opening search and collapsing long channel topics. - Restored functionality for favorited GIFs and corrected poll avatars to use server-specific profiles. - Fixed iOS animation rendering failures and inconsistent Rich Presence display in member lists. - Improved mobile modal, emoji picker, GIF picker, and keyboard behavior. - Corrected several profile, server profile, custom status, pop-out, and profile preview issues. - Fixed server creation, friend request notifications, invite-link dropdowns, and Add Friends interface problems. - Improved desktop User Management sizing, Server Settings search, and member-search placeholder text. - Corrected mobile and desktop alignment, padding, hover states, button sizing, and masked channel-topic links. - Fixed duplicate known-device entries during two-factor authentication setup. - Message reaction notifications should now respect Do Not Disturb on mobile. ## Chat and Messaging - Empty Group DMs no longer display undefined users. - Fixed Server Guide popups that could obscure message editing. - Improved truncation and reliability for typing indicators. - Fixed iOS reply views where message text or input could become hidden. - Android users can now rename Group DMs. - Corrected Android reply themes and Emoji Confetti menu rendering. - Closing an unread DM on mobile no longer leaves an empty unread space in the server list. - Deleted messages can once again be acknowledged, preventing stale notification indicators. - Corrected Android permission interactions between sending messages and creating threads. - Fixed 24px chat font sizing, mobile DM alignment, and missing “Mark as Read” or “Reply” notification actions. ## Activities and Apps - The patch also begins addressing Activity behavior on iOS, including an issue involving Activity open and close sounds; the supplied post ends before the full Activities and Apps section is provided.

Read original(opens in new tab)
discord3 min readCurated summary

Supercharging Discord Mobile: Our Journey to a Faster App

Discord’s mobile performance work focuses on making power-user workflows faster and more reliable, especially on lower-end Android devices. The team improved memory usage and frame rates through virtualization, native UI optimizations, recycling, and better media formats. When React Native could not meet performance needs, Discord chose targeted native implementations despite the added maintenance burden. ## React Native and Performance Priorities - Discord uses React for desktop and React Native for mobile. - Android moved to React Native in 2022 after improvements in device capabilities and the Hermes JavaScript engine. - The transition initially affected startup performance, but median startup times were cut in half during 2023. - Recent work targets heavily used features and users with large servers, busy chats, and extensive emoji collections. ## Virtualized Server List - The old server list kept every server view and icon—including animated icons—in memory. - The rewritten virtualized list retains only information for servers currently visible on screen. - The change also enabled improved drag-and-drop animations. - Users with more than 100 servers saw: - 14% lower startup memory usage - 10% faster overall startup time ## Native Chat Performance Improvements - Discord profiled its already-native chat list and found opportunities to improve loading, scrolling, and memory use. - Application Components and Media Mosaics now use recycling mechanisms. - Infrequently used elements, including spoilers and upload overlays, are loaded lazily. - Message containers and reactions were made faster to measure. - Recycling pools are pre-filled with common chat elements before a chat is opened. - Results included up to 60% fewer slow frames and approximately 12% lower chat-list memory usage. ## Rebuilding the Android Emoji Picker - Large servers can provide hundreds of custom emojis, many of them animated. - The previous React Native picker produced blank frames—and sometimes crashes—on budget Android devices during rapid scrolling. - Discord rebuilt the picker natively for Android rather than applying incremental optimizations. - Stress tests involving emojis from 200 servers eliminated blank frames and delivered smooth scrolling on low-end hardware. - Discord accepted the cost of maintaining separate Android and iOS implementations, while planning to reassess the decision with React Native’s New Architecture. ## Animated WebP Emojis - Discord’s media proxy added animated WebP support. - Replacing GIFs with WebP enabled animated emojis to render at up to 60 frames per second on low-end devices. - The team plans to publish more details about its animated-image improvements. ## Eliminating ChannelList Blanking - Discord initially replaced its homegrown React Native FastList with Shopify’s FlashList. - FlashList simplified development because components did not require precisely accurate dimensions. - In practice, FlashList blanked more frequently on low-end Android devices. - Discord restored and refactored FastList, eliminating blanking even on a $50 phone. Discord’s approach combines broad React Native development with native solutions where performance is critical. Virtualization, recycling, lazy loading, and efficient image formats provide general improvements, while platform-specific rewrites remain justified for demanding experiences such as emoji browsing.

Read original(opens in new tab)
discord3 min readCurated summary

Discord Patch Notes: February 3, 2025

Discord’s February 3, 2025 patch focuses on faster startup, more reliable infrastructure, improved notifications, and extensive usability fixes across desktop and mobile. Major changes include a roughly 20% improvement in median Android launch times, a Rust rewrite of the Media Proxy service that reduced aggregate latency by about 22%, and substantially improved push-notification delivery. The release also adds desktop DM Apps, redesigns Privacy & Safety settings, and addresses numerous platform-specific bugs. ## Performance and Reliability - Android app initialization improvements reduced launch times by approximately 20% on the median Android device. - Discord rewrote its Media Proxy service from Go to Rust and modernized its infrastructure: - Aggregate latency improved by about 22%. - Latency at the 90th percentile improved by more than 40%. - Service reliability also improved. - Push-notification reliability increased across server sizes: - Servers with fewer than 2,500 users now achieve a 99.98% delivery rate within 30 seconds. - Discord can notify approximately 20 million users on large servers such as Midjourney within 15 minutes of an `@everyone` mention. - Android 13 and earlier received fixes for layout failures caused by device rotation and incorrect screen-size calculations. ## New Features and Interface Updates - Desktop users can now launch Apps directly in DMs. - A quick-launch bar displays recently used Apps at the top of the DM list. - Privacy & Safety settings were redesigned with: - A new tab structure. - Better grouping and clearer descriptions. - Improvements intended to support future Trust settings. - macOS desktop notifications now use native operating-system APIs: - Message sounds respect Focus and Do Not Disturb modes. - Multiple notifications from the same channel can be grouped. - Desktop search now autocompletes `from:me` and `mentions:me`. - Linux now supports Soundshare and Wayland screen sharing, including video and audio support on Ubuntu 22 and later. - Mobile users can edit server invite links while inviting someone. - Push notifications now include user nicknames. ## General Bug Fixes - Fixed UI and layout problems involving: - Forum channel tag editing. - Overlapping channel-topic modals. - Incorrect friend-request layouts at narrow desktop widths. - Misaligned images, padding, borders, and animations across Shop, Quests, profiles, and reaction pickers. - Resolved Android issues involving duplicated channel-name letters, hidden confirmation dialogs, incorrect toast positioning, keyboard overlap, and navigation-bar padding. - Fixed mobile and iOS issues affecting: - Search-result counts and back-swipe navigation. - Text-entry scrolling during channel searches. - Excessive zooming. - Animated Emojis stopping after interaction. - Nitro Home back-swipe navigation. - Corrected problems with Privacy & Safety tabs being cropped or nonfunctional. - Improved reliability for the Claimed Quests interface, especially for users with many completed Quests. - Fixed profile customization issues related to Nitro Credit. - Corrected custom status duration behavior. - Resolved issues with mutual-friend and mutual-server views getting stuck loading. - Fixed Emoji picker server filters and enabled editing of Emoji forum tags whose associated Emoji had been deleted. - Corrected several Shop, tablet banner, profile-effect, and mobile DM layout issues. Overall, the patch combines measurable backend performance gains with a broad collection of cross-platform fixes. Users should see faster Android launches, more dependable media uploads and notifications, improved desktop and mobile navigation, and fewer layout and interface failures.

Read original(opens in new tab)
discord3 min readCurated summary

Discord Patch Notes: December 5, 2024

Discord’s December 5, 2024 patch focuses on performance improvements, mobile design updates, compatibility, and bug fixes across the platform. Major changes include refreshed mobile profiles, a 90%+ faster iOS Media Picker, Unicode 15.1 emoji support, animated WebP embeds, and Webhook Events for apps. Discord noted that updates may still be rolling out and that Patch Notes would pause until early February. ## Major Product and Platform Updates - Mobile user profiles, including profile editing, were redesigned to more closely match the desktop experience. - The iOS Media Picker now loads images over 90% faster in most cases, with significantly less blank UI while content loads. - Unicode 15.1 emoji are supported; users may see placeholder or inconsistent emoji until they update their clients. - Desktop and web apps now support animated WebP content in embeds and favorites. - Animated emojis are requested in WebP instead of GIF to improve performance. - Webhook Events allow apps to receive events without maintaining gateway connections, which is useful for apps that do not require low latency. ## General Fixes and Usability Improvements - Bluesky URLs now receive proper embed support. - Fixed profile banner cropping, profile button rendering, shortened URL unfurling, streaming activity titles, and role-name display issues. - Mobile profile notification dots, Android button icons, localization, Nitro gifting themes, and server profile menus received various fixes. - Blocking a user from their profile now requires confirmation. - Adding roles through “Add Members” is capped at 30 users to prevent silent failures. - Fixed notification content, share-screen layout, poll-result indicators, and channel permission prompts. - Android incoming call notifications now show display names instead of usernames. ## Chat and Messaging - Message drafts now remain associated with the correct DM instead of moving between DM notifications. - Fixed emoji autocomplete in full-screen Text in Voice, user mentions displaying IDs, and iOS handling of text following an “@” symbol. - Thread creation, attachment layouts, typing indicators, chat input spacing, onboarding bars, and message forwarding themes were corrected. - Fixed unread mention indicators affecting surrounding background colors. - On iOS, opening certain threads no longer incorrectly navigates to the thread creator’s profile. ## Activities and Apps - Fixed username rendering problems in Activities on some servers. - App authorization widgets no longer incorrectly ask users to scroll when no scrollbar is present. ## Audio and Video - Corrected missing circular backgrounds on voice controls and sizing problems with Activity buttons in calls. - Switching between Push to Talk and Voice Activity now reliably reactivates Voice Activity. - Fixed Android microphone failures when sharing another application. - Resolved an iOS screen-sharing failure affecting app version 253; updating is required for affected users. - Fixed the mobile post-call feedback dialog and adjusted call-status icon styling. - On iOS speaker mode, the proximity sensor should no longer turn off the screen unexpectedly during calls.

Read original(opens in new tab)
discord3 min readCurated summary

Discord Patch Notes: October 1, 2024

Discord’s October 1, 2024 patch focuses on mobile performance, storage efficiency, usability improvements, and broad bug fixes. Android users should see smoother chat rendering and lower resource usage, while iOS users may benefit from substantially reduced data storage. The update also introduces desktop Soundboard improvements, macOS screen-sharing refinements, and Animated WebP support. ## Mobile Performance and Storage - Android chat rendering improvements reduced slow frames by up to 60%, depending on the device. - Android chat-list memory usage fell by approximately 12%, making scrolling through message histories smoother. - Mobile server-list virtualization keeps only visible servers loaded: - Memory usage improved by 14% for users in many servers. - CPU usage improved by 25%. - Mobile unread indicators now consistently appear above the correct message, even with many unread messages. - iOS data-store changes reduced storage usage for the most affected 1% of users from 5.7 GB to 1.7 GB. - Fixed iOS message search results beyond the first page and crashes involving certain NFC hardware keys. - Resolved tablet orientation-detection issues and several Android problems involving read states and mobile keyboards. ## New Features and Interface Updates - macOS screen-sharing startup now has a more consistent and streamlined interface. - Desktop received a redesigned Soundboard interface for easier sound navigation and interaction. - Web and desktop clients can now play Animated WebP attachments, offering smoother playback and potentially lower bandwidth usage. - Electron was upgraded to version 32, with expected incremental performance and crash-reduction benefits. - Pasting a URL over an existing link now properly replaces the original URL instead of creating unexpected Markdown behavior. - Activity Status now correctly displays PS5 games. - The green acceptance check mark has returned to friend-request notifications. ## Interface and Navigation Fixes - Corrected visual issues involving emoji pickers, GIF categories, profile status bubbles, avatar decorations, fonts, borders, and themed search filters. - Fixed navigation problems in GIF categories, the Shop, Friends UI, mutual-friend lists, and profile popouts. - Improved accessibility and navigation indicators so they are no longer cut off in several profile and list views. - Corrected layout issues in Student Hub, channel settings, server settings, Notification Center, and message requests. - Fixed Quests links, Server Guide icons, role expansion behavior, and the display of permission descriptions on mobile. - Restored functionality for the Toggle Overlay hotkey after switching applications with Alt-Tab. - Corrected several modal and popup layering issues, including stickers, Soundboard uploads, and quest cards. ## Reliability and Content Fixes - Fixed crashes when viewing deleted channels in Audit Log with ModView open. - Corrected poll countdown text as polls approach closure. - Member verification and rules-agreement indicators now reflect the correct state. - Fixed incorrect game-presence names appearing in Japanese. - Resolved issues with rate-limited or frozen GIF categories. - Corrected timeout duration display in moderation views. - Fixed profile customizations failing to load on the first Shop attempt. ## Chat Improvements - Fixed mobile chat layout issues, including the missing “Jump to Bottom” button and overlapping composer elements. - Android web embeds now scale correctly instead of cutting off image content. - Corrected message-height calculations and action-sheet handle placement. - Prevented Avatar Decorations from being clipped at the top of chat. Discord’s update is primarily a reliability and performance release. Users—especially those on Android, iOS, or with many servers—should benefit from smoother navigation, lower resource consumption, and fewer interface defects as the changes roll out across platforms.

Read original(opens in new tab)
discord3 min readCurated summary

Discord Patch Notes: November 1, 2024

Discord’s November 1, 2024 patch focuses on improving performance, reliability, responsiveness, and cross-device usability. Major updates include stronger foldable-device support, better mobile multitasking and side-by-side views, macOS screen-sharing keybinds, and website performance gains of up to four seconds in average page-load time. The release also fixes a broad range of interface, messaging, theming, and platform-specific bugs. ## Foldable Devices and Multitasking - Foldable devices receive improved support designed to work more reliably without bespoke fixes. - Mobile Discord now handles resizing more intelligently for Sidecar, split-screen, and other multitasking layouts. - Users are encouraged to report remaining foldable-device issues through Discord’s bug megathread or support tickets. ## Desktop and Web Performance - Electron was upgraded from version 30 to version 32 on Windows, macOS, and Linux. - Discord.com received performance improvements that reduce average page-load times by up to four seconds. - Additional core web vitals and responsiveness were improved. - macOS 15 and later now support a keybind for toggling screen sharing, available under **User Settings > Keybinds**. - Friend links opened in a browser now properly communicate with the running desktop client. ## General Interface and Platform Fixes - Fixed missing profile-screen actions, incorrect profile banner zoom, navigation-bar rendering issues, and mobile layout shifts. - Corrected avatar decoration overlap with unread-message status indicators. - Fixed notification bubble shapes, emoji-picker category navigation, theme colors, keybinding icon colors, and long category-name handling. - Improved profile banners and Server Guide text rendering on foldable devices and iOS. - Fixed issues involving onboarding prompts, the App Launcher, Mod View, channel permissions, and role assignment through Simplified Profiles. - Corrected Shop problems involving banners, scrolling, collection tile shapes, and app-button icon colors. - Poll answers can now be selected and copied. - Fixed overlay custom-emoji visibility, profile-effect controls, Nitro gifting padding, and collectible purchase wording. - X.com embeds no longer incorrectly interpret embed content as Markdown. - Fixed several mobile and desktop rendering problems, including channel settings flashes, emoji alignment, and profile layout behavior. ## Chat and Messaging - Corrected oversized emoji rendering in chat. - Fixed mobile Voice Message tooltips, input placement, and animation behavior. - Deleted messages should no longer briefly remain in mobile DM previews. - Fixed an iOS issue where drafts persisted between channels and another where text scaling changed after the keyboard collapsed. - Users can open profiles by clicking names in reply previews. - Prevented rapidly renaming a newly created thread from creating duplicate threads. - Fixed thread-creation theming issues and swipe actions during chat animations. - Corrected mobile notification settings appearing incorrectly in DMs. - Fixed iOS emoji alignment problems in messages. Overall, the patch is primarily a quality-of-life release: users should see better performance across web and mobile, more dependable support for foldables and multitasking, and fewer visual and interaction bugs.

Read original(opens in new tab)
discord2 min readCurated summary

Discord Update: December 19, 2024 Changelog

Discord’s December 19, 2024 changelog recaps the year’s most useful performance and reliability improvements through a festive poem. The updates focused on making mobile apps more stable and responsive, speeding up servers, GIFs, chat, and APIs, and improving image quality and storage usage. Discord concludes by encouraging users to join voice, play games, or Go Live, while promoting Nitro gifting. ## Mobile Stability and Performance - iOS crash fixes reduced the overall crash rate by **84%**. - Android’s chat renderer reduced slow frames by up to **60%** and lowered chat-list memory usage by about **12%**. - The Android Expression Picker—covering emojis, GIFs, and stickers—saw up to **50% fewer dropped frames** and approximately **7.5% lower memory usage**. - Foldable-device support and multitasking were significantly improved. - Mobile server lists were virtualized so only visible servers remain loaded, improving scrolling performance. - Server switching on Android and iOS became more than **30% faster**. - Mobile GIF Picker loading times improved by up to **80%**. ## Backend and Media Improvements - Infrastructure changes, including moving to Google Cloud C3 instances and removing an Nginx layer, reduced p90+ API latency by roughly **25%**. - Discord’s media proxy now preserves ICC color-profile data when resizing images into WebP, improving color accuracy across platforms. - iOS data-storage changes reduced disk usage substantially; the most affected 1% of users went from approximately **5.7 GB to 1.7 GB**, with some users recovering up to **4 GB**. ## Seasonal Extras - The recap is presented as a “Fixmas” poem summarizing fixes from Discord’s 2024 Patch Notes. - Users who gift Nitro during the promotion also receive an Avatar Decoration. Together, these changes show Discord’s emphasis on incremental improvements that make everyday communication faster, more reliable, and less demanding on mobile devices.

Read original(opens in new tab)
figma3 min readCurated summary

How Spotify’s Design System Goes Beyond Platforms | Figma Blog

Spotify’s expansion to 45 platforms and more than 2,000 device types exposed inconsistencies between its product experiences. The company evolved Encore from separate mobile and web systems into a cross-platform design system focused on shared foundations and reusable components. Its goal is to make Spotify feel coherent everywhere without erasing the distinctive strengths of each platform. ## The Challenge of Consistency at Scale - Spotify’s 2019 ubiquity strategy aimed to make audio available across TVs, cars, computers, phones, and many other devices. - The design team needed more than broad platform coverage: users should recognize the experience as distinctly Spotify wherever they use it. - Components became central to achieving this consistency, from defining their scope to implementing them across products. ## The Birth and Evolution of Encore - When introduced in 2019, Encore had two main subsystems: - **Encore Consumer Mobile**, a flexible catalog of mobile-focused UI components. - **Encore Web**, supporting a wider range of web products. - Both systems used shared design tokens for foundational decisions such as colors and typography. - Over time, differences in component sizing, typography, and state treatments revealed that the subsystems needed greater commonality. - By 2022, flexibility had created too much divergence, prompting Spotify to rebalance the system toward reusable, consistent components. ## A Shared Layer Between Foundation and Products - Spotify created a specialized team focused on reusable components for Encore Mobile. - This new layer sits between the foundational system and Encore Consumer Mobile. - It acts as a “first line of defense,” reducing the need for product-specific teams to build every component themselves. - Developed in collaboration with Encore Web, the layer establishes platform parity from the beginning rather than retrofitting consistency later. ## Designing Components Across Platforms - The overall workflow remained familiar: research, design, and development. - The major change was coordinating design work across iOS, Android, and Web instead of designing for one platform in isolation. - Components are intended to share a coherent visual and behavioral language while still adapting to platform-specific requirements. - This requires collaboration among specialists, since web and mobile designers bring different domain expertise. - Spotify begins by bringing platform teams together and researching each platform’s unique characteristics before creating the shared component. Spotify’s approach treats a design system as more than a collection of platform-specific libraries. By establishing shared components early and combining them with platform-aware design, teams can create experiences that feel unified without sacrificing the qualities that make each device and interface effective.

Read original(opens in new tab)
figma2 min readCurated summary

FigJam for iPad: space to explore and ideate | Figma Blog

FigJam for iPad was introduced to make brainstorming and collaboration more fluid across devices. The article argues that tablets’ focused, tactile nature complements FigJam’s infinite canvas, especially for sketching, exploring early ideas, and giving visual feedback. Although the standalone iPad app is being retired in 2026, FigJam remains available through the Figma app and the web. ## Why Tablets Suit FigJam - Desktop workflows often interrupt creative focus with notifications and constant context switching. - Tablets provide a more focused, single-app environment. - The iPad’s portability and touch or pen input make it feel similar to working in a notebook. - FigJam’s open canvas naturally supports freeform drawing, doodling, annotations, and low-fidelity exploration. - Users can move fluidly between desktop and tablet depending on the task. ## Embracing Early Ideas - Low-fidelity sketches make nonlinear exploration and iteration easier. - Rough ideas encourage collaboration rather than inviting narrow critique. - Users can sketch concepts on an iPad, then continue refining or sharing them from a laptop. - Team members can draw directly over one another’s ideas, making ideation more interactive. ## Making Feedback More Personal - Handwritten annotations can complement or replace traditional comments. - Users can circle, underline, and mark up text, diagrams, and sketches directly on the canvas. - Visual and handwritten feedback creates a warmer, more collaborative experience than written critique alone. ## Running Collaborative Sessions - The iPad can support group workshops as well as individual work. - Facilitators can display a FigJam file on a desktop screen while using the iPad for live annotations. - Quick actions—such as circling stickies or highlighting contributions—make meetings feel more natural and fluid. Figma positioned FigJam for iPad as an early step toward richer tablet-based design workflows. For current users, FigJam is available through the Figma mobile app or the web; the standalone iPad app is scheduled for retirement on January 8, 2026.

Read original(opens in new tab)