Mobile App Development

7 posts

figma3 min readCurated summary

Version Control: One Founder’s Mission to Save Local Farms with Figma Make | Figma Blog

Aaron Veale used Figma Make to build Planet Food, a marketplace connecting British Columbia farmers with Vancouver restaurants, in under three weeks. Motivated by the financial crisis facing local farms, he used rapid AI-assisted prototyping to validate the idea directly with farmers and chefs. The project shows how prompt-to-app tools can help founders move quickly while tailoring products to real user workflows. ## The problem facing local farms - British Columbia farmers lost a record CAD $457 million last year, with the sector operating at a net loss since 2017. - Rising costs, disrupted supply chains, regulatory changes, and factory-farm competition are pushing small growers out of business. - Farmers are skilled at producing food but often lack time and resources for marketing and sales. - Large distributors can pressure farmers into selling produce at a loss. - Veale envisioned a marketplace linking farms directly with restaurants seeking high-quality local ingredients. ## Building the first marketplace prototype - Veale spent six weeks interviewing farmers before developing the product. - Planet Food required two connected systems: - **Farm OS:** Farmers record and categorize available produce. - **Restaurant OS:** Chefs search for and order ingredients. - He built both systems in parallel using separate Figma Make projects. - Roughly 20 prompts produced the first prototype in a single day. - Early versions became conversation starters that Veale could show farmers and restaurants for immediate feedback. ## Designing for farmers’ daily reality - The app uses dark mode to reduce glare for farmers working outdoors. - Because farmers may work 12–16-hour days, tasks were designed to take fewer than three clicks. - Veale prioritized simple workflows over feature-heavy interfaces. - He used screenshots of familiar interactions, such as swipes and slide-ups, as prompt references. - Figma Make allowed him to refine the product’s mobile-first interface without relying on a large engineering team. ## Humanizing the product through personas - Veale used his design and filmmaking background to treat prompting as a form of storytelling. - He created detailed personas describing users’ traits, motivations, responsibilities, and pain points. - The farmer persona emphasized: - Small or midsize British Columbia operations - Limited administrative capacity - Seasonal workloads and slim teams - The need for fair prices and predictable income - Common frustrations included manually updating spreadsheets, guessing restaurant demand, and overselling or underselling due to poor synchronization. - Veale used ChatGPT to turn these personas and the onboarding flow into more detailed Figma Make prompts. - Custom icons and branded interactions helped make the interface more approachable and engaging. ## Speed as a startup advantage - Figma Make enabled Veale to move from an idea to a functioning MVP in weeks rather than following the traditional fundraising-and-development sequence. - Demonstrating an actively used product gave him stronger evidence of market demand and a potential signal for investors. - The process also let him remain closely involved in product design instead of compromising his vision through multiple layers of implementation. Planet Food illustrates how AI-assisted development can accelerate product validation while keeping design grounded in user research. For founders addressing urgent problems, rapid prototyping combined with direct customer feedback can be more valuable than waiting to assemble a conventional product team.

Read original(opens in new tab)
lineOriginal article

A month-long project in (opens in new tab)

This blog post explores how LY Corporation reduced a month-long development task to just five days by leveraging "vibe coding" with Generative AI tools like ChatGPT and Cursor. By shifting from traditional, rigid documentation to an iterative, demo-first approach, developers can rapidly validate multiple UI/UX solutions for complex problems like restaurant menu registration. The author concludes that AI's ability to handle frequent re-work makes it more efficient to "build fast and iterate" than to aim for perfection through long-form specifications. ### Strategic Shift to Rapid Prototyping * Traditional development cycles (spec → design → dev → fix) are often too slow to keep up with market trends due to heavy documentation and impact analysis. * The "vibe coding" approach prioritizes creating "working demos" over perfect specifications to find "good enough" answers through rapid feedback loops. * AI reduces the psychological and logistical burden of "starting over," allowing developers to refine the context and quality of outputs through repeated interaction without the friction of manual re-documentation. ### Defining Requirements and Solution Ideation * Initial requirements are kept minimal, focusing only on the core mission, top priorities, and essential data structures (e.g., product name, image, description) to avoid limiting AI creativity. * ChatGPT is used to generate a wide range of solution candidates, which are then filtered into five distinct approaches: Stepper Wizards, Live Previews with Quick Add, Template/Cloning, Chat Input, and OCR-based photo scanning. * This stage emphasizes volume and variety, using AI-generated pros and cons to establish selection criteria and identify potential UX bottlenecks early in the process. ### Detailed Design and Multi-Solution Wireframing * Each of the five chosen solutions is expanded into detailed screen flows and UI elements, such as progress bars, bottom sheets, and validation logic. * Prompt engineering is used iteratively; if an AI-generated result lacks a specific feature like "temporary storage" or "mandatory field validation," the prompt is adjusted to regenerate the design instantly. * The focus remains on defining the "what" (UI elements) and "how" (user flow) through textual descriptions before moving to actual coding. ### Implementation with Cursor and Flutter * Cursor is utilized to generate functional code based on the refined wireframes, using Flutter as the framework to ensure rapid cross-platform development for both iOS and Android. * The development follows a "skeleton-first" approach: first creating a main navigation hub with five entry points, then populating each individual solution module one by one. * Technical architecture decisions, such as using Riverpod for state management or SQLite for data storage, are layered onto the demo post-hoc, reversing the traditional "stack-first" development order to prioritize functional validation. ### Recommendation To maximize efficiency, developers should treat AI as a partner for high-speed iteration rather than a one-shot tool. By focusing on creating functional demos quickly and refining them through direct feedback, teams can bypass the bottlenecks of traditional software requirements and deliver user-centric products in a fraction of the time.

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)
discordOriginal article

Discord Update: November 18, 2024 Changelog (opens in new tab)

Discord’s November 2024 update introduces a major cosmetic collaboration with the series *Arcane* alongside several practical tools designed to simplify content sharing and profile management. These changes emphasize a more integrated media experience, allowing users to interact with external content and their own gaming data more fluidly within the app. **Arcane Collaboration and Shop Items** * A limited-edition *Arcane* collection has been added to the Shop to mark the show's final season. * New Avatar Decorations and Profile Effects feature characters such as Jinx, Vi, and Ekko, as well as themed weapons and technology. * The collection is a temporary release available for users to customize their visual presence across servers. **Streamlined Sharing and Media Integration** * A native "Forward" button has been introduced, allowing users to share messages directly to other conversations without needing to take and store manual screenshots. * TikTok embeds can now be played directly within the desktop client, eliminating the need to open an external browser or application. * The emoji reaction picker now suggests a user’s top three most-used emojis to facilitate faster communication. **Profile Features and Social Activities** * Desktop profiles now display a list of recently played games to friends and community members. * New privacy controls allow users to manually clear specific games from their play history if they do not want them visible. * "Quiz Planet" has been added to the Activity Directory, providing a new trivia-based interactive experience for users in voice channels. **Mobile Performance and Multitasking** * The mobile application has received optimizations for fluid resizing, specifically targeting users who utilize split-screen or multitasking modes on phones and tablets. * General performance patches have been implemented to improve the stability of the interface when switching between Discord and other resource-heavy apps. To maintain privacy, users should review their new gaming history section on desktop and clear any entries they prefer not to share. Additionally, users interested in the *Arcane* cosmetics should visit the Shop soon, as the collection is designated as a final celebration for the series.

figma3 min readCurated summary

Made in Figma: The National Park Service Goes From Paper to Pixels | Figma Blog

The National Park Service turned decades of printed visitor guides into a unified digital app serving 431 parks and monuments. GuideOne and Twohy Design Works drew on Massimo Vignelli’s 1977 Unigrid system to create a flexible interface that could accommodate diverse park data, long-term government use, and varied accessibility needs. Figma helped the NPS, designers, and developers collaborate on a practical design system that works for both visitors and park staff. ## A Digital System for 431 Parks - The NPS manages an unusually diverse collection of sites, ranging from major national parks to small historic memorials. - Each park controls much of its own data and writes its own content, making consolidation difficult. - The app needed to bring inconsistent information into one reliable system. - It includes: - Interactive maps - Self-guided tours - Essential visitor information - Content useful to both the public and NPS employees - The app launched in 2021 after the NPS moved from separate apps for individual parks to a single consolidated experience. ## Designing for Durability and Accessibility - Government software must remain useful for many years rather than follow short-lived product trends. - The app serves people with widely different accessibility requirements. - Designers had to balance a consistent national system with the individual character and needs of each park. - Collaboration between the NPS, GuideOne’s developers, and designers helped ensure concepts were feasible with the available data and engineering resources. ## Adapting the Unigrid - Before 1977, NPS brochures varied widely in format and visual style. - Massimo Vignelli’s Unigrid standardized: - Graphic components - Layout structures - Typography and visual hierarchy - Print-production methods - The system gave the NPS a recognizable identity while allowing individual parks to present their own stories. - GuideOne and Twohy Design Works treated Unigrid as a foundation for the app rather than copying the brochures directly. - The challenge was translating a print-based grid and editorial system into interactive screens, maps, and digital navigation. ## Figma as a Collaboration Tool - Figma made it easy to circulate designs among the NPS, designers, and engineering teams. - Shared prototypes exposed practical constraints around park data and implementation. - The workflow supported ongoing feedback instead of separating design from development. - This helped turn a historical visual system into a robust digital product. The project demonstrates how a well-established design system can be modernized without losing its identity. For complex public platforms, combining strong historical principles with collaborative prototyping, flexible data structures, and accessibility-focused design can produce a product that remains useful across many users and locations.

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

How we brought Datadog's data visualization to iOS: A focus on performance

Datadog built DogGraphs, a native SwiftUI graphing library, to support complex data visualizations across its iOS app and widgets. Because existing libraries did not meet its needs and the app supported iOS 14, the team had to optimize SwiftUI rendering without newer APIs such as `Canvas`. By combining careful API design, profiling, and a better understanding of SwiftUI’s update model, DogGraphs became a reusable framework used across multiple Datadog products. ## Building DogGraphs for Complex Visualizations - DogGraphs began with the Service Catalog and was designed to support additional Datadog products. - It needed to provide: - Native Swift and SwiftUI rendering - iOS 14 compatibility - Flexible, easy-to-use APIs - Datadog’s default visual style and behavior - Fast rendering for a responsive user experience - The library now powers visualizations in logs, services, dashboards, Bits AI, and mobile widgets. - It supports increasingly diverse graph types as new products integrate with the mobile application. ## A Declarative, Type-Safe API - DogGraphs uses Swift features such as result builders to describe complex graph configurations declaratively, in a style similar to SwiftUI. - Graph definitions can be generated dynamically from server-provided dashboard or widget configurations. - Compile-time type checking prevents invalid combinations, such as stacking incompatible Bar and Line graphs. - Progressive disclosure provides sensible Datadog defaults while still allowing customization when necessary. ## Profiling SwiftUI Performance Datadog’s visualizations can involve metrics, logs, traces, multiple aggregation strategies, arithmetic operations, axes, labels, scales, and color configuration. Query responses are preprocessed by a shared internal service so that formatting and visual behavior remain consistent across platforms. To optimize rendering, the team focused on two primary measurements: - **SwiftUI view body evaluations** - Excessive body evaluations can degrade performance, especially when many views are involved. - Expensive computation should be moved outside view bodies. - `_printChanges()` can reveal why a view is being reevaluated, though it is a private API unsuitable for production use. - **Time Profiler** - Instruments helps identify slow function calls and locate expensive work in the rendering pipeline. Important profiling scenarios included: - Initial graph rendering - Updates caused by window changes, tooltip selection, or layer visibility changes - Device rotation and light/dark mode changes - Interactions with unrelated views such as scroll views, toggles, and buttons ## Understanding SwiftUI’s Update Model The team used Apple’s “Demystify SwiftUI” session to build a mental model for how SwiftUI determines when views should update. - **Identity:** How SwiftUI determines whether an element is the same as, or different from, a previous element. - **Lifetime:** How SwiftUI tracks a view and its associated data over time. - **Dependencies:** How SwiftUI determines which changes require an interface update. - **Diffing:** SwiftUI compares view values to determine what changed, although the exact diffing mechanism is undocumented. Understanding these concepts helps developers explain unexpected view updates and identify the sources of rendering bottlenecks. ## Practical Recommendation For complex SwiftUI components, measure real interaction scenarios rather than relying on assumptions. Track body evaluations and expensive function calls, keep costly work out of `body`, and design APIs that provide efficient defaults while preserving type safety and flexibility.

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

Figma Mirror for Android | Figma Blog

Figma introduced Mirror for Android on May 9, 2017, bringing real-time mobile previews to Android users and designers. The app reflects selected Figma frames on an Android device and updates instantly as designs change on a computer. Figma also offered the same functionality through a mobile browser, making the feature accessible without installing the app. ## Real-Time Design Mirroring - Users can select a frame in a Figma file on their computer and view it immediately on an Android phone. - Design edits made on the computer are reflected instantly in the mobile preview. - The feature helps designers test how their work appears and behaves on an actual mobile device. - Mirror was already available for iOS before the Android release. ## Browser-Based Alternative - Users who do not want to install the Android app can visit `figma.com/mobile-app` in a mobile browser. - The browser version provides the same basic mirroring functionality. ## Support for Android Design - Android accounted for roughly 52% of the U.S. smartphone market and 82% of the global market at the time. - Figma included preset frame sizes for several popular Android devices, reducing the need to create device layouts from scratch. Figma Mirror for Android made mobile design testing more inclusive and convenient, while the browser option provided a no-download alternative.

Read original(opens in new tab)