SShortSingh.
Back to feed

How to Nest a Drawer Inside Bottom Tabs in Expo Router Without Gesture Conflicts

0
·2 views

Combining a persistent bottom tab bar with a global sidebar drawer is a common requirement in cross-platform apps, but careless nesting can cause gesture conflicts and performance issues. Expo Router allows developers to map both navigation patterns onto a file-system directory structure, keeping code modular while native components handle the heavy lifting. The approach involves wrapping a tab navigator inside an outer drawer container, using folder grouping semantics like (drawer) and (tabs) to mirror the layout tree. Key pitfalls include state synchronization between drawer routes and nested tab contexts, as well as side-swipe gesture conflicts with horizontal UI elements like carousels. Restricting swipeEdgeWidth and deliberate context scoping are recommended to keep interactions predictable and navigation state unified.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Poetry: A Smarter Way to Manage Python Project Dependencies

Poetry is an open-source package management tool for Python that simplifies project setup, dependency handling, and environment isolation. It automatically generates configuration files like pyproject.toml and poetry.lock, making projects easier to share and reproduce across systems. Developers can create a new project using a single command, then add, update, or remove dependencies with straightforward CLI instructions. Poetry also creates isolated virtual environments per project, preventing version conflicts between different codebases. Its built-in dependency resolver reduces compatibility issues, making it a practical choice for both beginner and experienced Python developers.

0
ProgrammingDEV Community ·

Prompt Engineering or Fine-Tuning? How to Know When to Switch

Teams building LLM applications typically begin with prompt engineering, which requires no infrastructure, is instantly reversible, and costs little compared to model training. Prompt engineering works by modifying the input to the model, while fine-tuning directly updates the model's weights to embed desired behaviour by default. Experts recommend staying in prompt-engineering mode until evaluation scores stop improving across three to four consecutive changes, signalling a performance plateau. Fine-tuning becomes viable only when the task is narrow, thousands of real labelled examples are available, and cost or latency constraints make a leaner model preferable. Common warning signs that prompting has hit its limit include diminishing eval gains, conflicting instructions, bloated system prompts, and the same corrections being resent on every API call.

0
ProgrammingDEV Community ·

Team Builds Zero-Dependency Crypto Dead Man's Switch Using Pure Python

A three-member team called FemTech built Quorum, a CLI and local web dashboard that acts as a dead man's switch for cryptocurrency wallets, developed during a 72-hour hackathon. The tool uses Shamir's Secret Sharing to split a wallet secret into multiple pieces, requiring a minimum number of trustees to reconstruct it only if the owner stops checking in. The entire project runs on Python's standard library alone, with an intentionally empty requirements.txt, replacing pip-installable packages like secretsharing and pycryptodome. A built-in Canary Trap generates decoy shares that trigger an alert if a leaked or coerced share is submitted during reconstruction. Share delivery uses Diffie-Hellman key exchange based on RFC 3526 Group 14 parameters, ensuring the secret itself is never transmitted in recoverable form.

0
ProgrammingDEV Community ·

React Server Components: How to Think About the Server/Client Boundary

React Server Components (RSC) introduce a new architectural dimension to frontend development by shifting the key question from how components render to where their code should execute. Server Components handle UI that requires no browser interactivity, while Client Components are reserved for elements needing state, event handlers, or browser APIs. Developers are advised to default to Server Components and only introduce Client Components when genuinely necessary, rather than treating 'use client' as a starting point. This intentional boundary influences how much JavaScript is sent to the browser, how data fetching is structured, and overall rendering performance. However, RSC is not a standalone performance fix and still requires sound strategies for caching, data fetching, and asset management to be effective.