tezvyn:

📱Mobile Dev

Mobile app development across platforms

1323 bites

More in Mobile Dev — page 39

React Native2 min read

Google Play Testing Tracks: A Funnel for Safer Releases

Google Play testing tracks act as a release funnel, moving from internal QA to public beta to catch bugs early. Use them for initial checks (Internal), private betas (Closed), or public tests on the Play Store (Open).

Google Play: The Android App Store
React Native79 sec read

Google Play: The Android App Store

Google Play is the official digital storefront for the Android ecosystem. It's the primary channel where users on certified Android and ChromeOS devices discover and download apps. A common footgun is confusing the store with the developer-facing Play Console.

React Native2 min read

Archiving a React Native iOS App for Release

Archiving creates a production-ready package for the App Store by bundling your JavaScript and disabling dev menus. This is the final step before submitting to TestFlight or for review.

React Native2 min read

Detox: Gray-Box E2E Testing for React Native

Detox runs gray-box E2E tests by automatically synchronizing with your React Native app's activity. This eliminates flaky `sleep()` calls. Write one JavaScript test suite for iOS and Android that runs reliably on CI and real devices.

React Native2 min read

Testing Custom Hooks with `renderHook`

`renderHook` isolates a hook for testing by running it inside a tiny, dedicated component. Use it to verify a hook's logic and side effects without rendering a full UI. Footgun: Forgetting to wrap state updates in `act()` can cause flaky, unpredictable tests.

The `act()` Utility: Syncing Tests with React's Updates
React Native2 min read

The `act()` Utility: Syncing Tests with React's Updates

The `act()` utility ensures your tests wait for React to finish updating the DOM before you make assertions. Use it to wrap component renders and state updates. The footgun is forgetting to use `await` with an async function, which can lead to flaky tests.

React Native & Jest: Automatic Native Module Mocking
React Native2 min read

React Native & Jest: Automatic Native Module Mocking

Jest tests for React Native run in Node, not on a device, so native code won't work. The `react-native` preset automatically mocks native modules, letting you test components without a real device environment.

React Native2 min read

React Native Testing Library: Test User Behavior, Not Code

React Native Testing Library tests components from a user's perspective. Instead of checking internal code, you find elements by visible text and simulate presses, ensuring tests survive refactors. The footgun is overusing implementation details like `testID`.

React Native2 min read

Unit Testing React Native Components with Jest

Jest tests your React Native components without a device, like checking individual Lego bricks. Use it to verify a button's logic or how a component renders with different props. The footgun is forgetting to mock native APIs, leading to flaky tests.

React Native2 min read

JSI Host Objects: Exposing C++ to JavaScript

A JSI Host Object is a C++ object exposed directly to your JavaScript runtime, bypassing React Native's slow, serializing bridge. It's used in high-performance native modules like database adapters.

React Native2 min read

Fabric Renderer: React's Native UI Interpreter

Fabric is React Native's interpreter, translating abstract components into concrete native views for iOS and Android. It's the core renderer in the New Architecture, enabling more synchronous UI updates. The footgun is thinking it's a library you import.

React Native2 min read

Turbo Modules: Type-Safe Native Code in React Native

Turbo Modules let your JS code call native APIs synchronously, skipping the slow async bridge. Use them to access device features or high-performance native libraries.

React Native2 min read

Profiling React Native on Android with System Tracing

System Tracing helps you find UI jank on Android by showing where time is spent in each 16ms frame. Use it in Android Studio to diagnose stuttering animations by inspecting the UI, JS, and Native Module threads.

React Native2 min read

Inline Requires: Defer JS Loading in React Native

Inline requires are just-in-time loading for code. Instead of loading everything at startup, you pull in modules only when needed, improving initial app speed. This is ideal for heavy components. The footgun: module side effects will execute later.

React Native2 min read

Why-Did-You-Render: Find Unnecessary React Re-renders

The `why-did-you-render` library is a detective for your React app, finding components that re-render unnecessarily. Use it in development to debug performance by spotting when new object or function references break memoization.

React Native2 min read

Analyzing Your React Native Bundle Size

Think of it as an X-ray for your app's final JavaScript file. It shows which libraries take up the most space, helping you shrink your app and improve startup time. The biggest mistake is only analyzing after performance degrades; do it proactively.

React's useMemo Hook: Cache Expensive Calculations
React Native2 min read

React's useMemo Hook: Cache Expensive Calculations

useMemo is React's cache for expensive calculations, preventing re-computation on every render. Use it for heavy tasks like filtering large lists. The main footgun is an incomplete dependency array, which leads to stale, cached data.

useCallback: Cache Functions Between Renders
React Native2 min read

useCallback: Cache Functions Between Renders

useCallback caches a function so it's not recreated on every render. This is crucial for performance when passing callbacks as props to memoized components, preventing them from re-rendering unnecessarily.

Flipper: A Desktop Debugger for React Native
React Native2 min read

Flipper: A Desktop Debugger for React Native

Flipper is a desktop debugging platform for React Native, acting like Chrome DevTools for your mobile app. It connects to your local Metro server, letting you inspect component trees, view logs, and trigger reloads. The main footgun: the project is archived.

React Native2 min read

React Native's Performance Monitor Overlay

Think of it as a quick, in-app speedometer for your app's performance. Toggle it from the Dev Menu for a live overview on your screen. The footgun: it's only a guide, not a precise tool for deep performance analysis.