React Native in Action
Developing iOS and Android Apps with JavaScript
sufficient
reading path: overview → analysis → narration
overview
Overview
React Native in Action (2019) by Nader Dabit is a hands-on guide to building cross-platform mobile applications with React Native. Dabit, a developer advocate at Amazon Web Services, brings practical experience building production React Native applications.
The book covers the full development lifecycle — from setting up the development environment and understanding React Native components, through navigation and state management, to native module development and app store submission.
Key Takeaways
-
React Native uses a JavaScript-to-native bridge. React components map to native iOS and Android UI elements, not web views.
-
The component model is the same as React. If you know React, you already understand React Native's core concepts.
-
Navigation is fundamentally different from the web. Stack, tab, and drawer navigators replace browser routing.
-
State management patterns transfer from web React. Redux, Context API, and local state work identically.
-
Native modules bridge the gap. When React Native lacks an API, you can write native code and expose it to JavaScript.
-
Lists require special optimization. FlatList and SectionedList virtualize rendering for performance.
-
Platform-specific code is inevitable. Use Platform.select and .ios.js / .android.js file extensions for platform differences.
-
Animations use the Animated API or react-native-reanimated. JavaScript-driven and native-driven animations have different performance characteristics.
-
Networking uses the Fetch API or libraries like Axios. React Native includes a polyfill for the web Fetch API.
-
Deployment differs by platform. iOS requires the App Store and provisioning profiles; Android uses APK signing and Play Console.
Who Should Read
| Reader Type | Why | |---|---| | React developers going mobile | Leverage existing React knowledge | | Mobile teams evaluating cross-platform | Practical assessment of React Native | | Startup developers | Ship on both platforms faster | | Web developers expanding to mobile | Familiar patterns for mobile development |
Who Should Skip
- Complete beginners to React or programming
- Developers building graphics-heavy or AR applications
- Teams committed to fully native development
Related Books
| Book | Author | Connection | |---|---|---| | The Swift Programming Language | Apple Inc. | Native iOS development alternative | | Flutter Complete Reference | Alberto Miola | Cross-platform alternative comparison | | Learning React | Alex Banks & Eve Porcello | React fundamentals for React Native |
Final Verdict
A practical, hands-on introduction to React Native. Dabit's experience shines through in the real-world examples. Somewhat dated (2019) — the Expo ecosystem has evolved significantly since publication.
Rating: 7/10 — A solid primer for web developers moving into mobile. Supplement with current Expo and React Native documentation.
content map
React Native's Architecture
React Native uses a JavaScript-to-native bridge to render platform UI components, not web views.
graph TD
subgraph RN_Arch["React Native Architecture"]
JS["JavaScript Thread<br/>(React, business logic)"]
NB["Native Bridge<br/>(JSON serialization)"]
MT["Main Thread<br/>(UIKit/Android Views)"]
SH["Shadow Thread<br/>(layout calculation)"]
end
JS <--> NB
NB --> MT
NB --> SH
Core Components
| Component | Description | Web Equivalent | |-----------|-------------|---------------| | View | Container | div | | Text | Text display | span or p | | TextInput | Text input | input | | ScrollView | Scrollable container | overflow: scroll | | FlatList | Virtualized list | -- | | TouchableOpacity | Pressable element | button | | Image | Image display | img |
Navigation
React Native uses native navigation, not browser routing.
graph TD
subgraph Navigation_Types["Navigation Types"]
SN["Stack Navigator<br/>(push/pop screens)"]
TN["Tab Navigator<br/>(bottom/top tabs)"]
DN["Drawer Navigator<br/>(side menu)"]
end
subgraph Flow["Example Navigation Flow"]
A["Home Screen (Tab)"]
B["Profile Screen (Stack)"]
C["Settings Screen (Stack)"]
D["Login Screen (Modal)"]
end
A --> B --> C
D -->|"present"| A
State Management
React Native supports the same state management options as React web:
| Approach | Best For | Complexity | |----------|----------|------------| | Component state (useState) | Simple local UI state | Low | | Context API | Global theme, auth | Medium | | Redux | Complex app state | High | | MobX | Observable-based state | Medium | | Zustand | Simple global state | Low |
Native Modules
When React Native lacks an API, native modules bridge the gap.
flowchart LR
subgraph Native_Module["Native Module Flow"]
JS["JavaScript Call"]
JB["JSON Bridge Serialization"]
NM["Native Module<br/>(Swift/Kotlin)"]
RP["Return Promise"]
end
JS --> JB --> NM --> RP --> JS
Platform-Specific Code
| Strategy | Implementation | |----------|---------------| | Platform.select | if (Platform.OS === 'ios') | | File extension | Button.ios.js / Button.android.js | | Platform-specific API | Check Platform.OS at runtime |
Performance Optimization
| Technique | Impact | |-----------|--------| | FlatList instead of ScrollView | Virtualized rendering | | PureComponent / React.memo | Skip unnecessary re-renders | | Native driver for animations | Offload to UI thread | | Hermes engine | Faster JS startup | | Image caching | Network image optimization |
Reading Guide
| Chapter | Topic | Est. Time | Priority | |---------|-------|-----------|----------| | 1-3 | React Native fundamentals | 2h | Essential | | 4-5 | Components and styling | 2h | Essential | | 6-7 | Navigation | 1.5h | Essential | | 8 | State management | 2h | Essential | | 9 | Networking and data | 1h | Important | | 10 | Native modules | 1.5h | Optional | | 11 | Performance | 1h | Important | | 12 | Deployment | 1h | Important |
analysis
Strengths
- Practical, hands-on examples. Dabit's experience at AWS and with production React Native apps shows in the realistic examples.
- Good for web developers. The book effectively translates web React knowledge to mobile development.
- Covers the full lifecycle. From environment setup through app store deployment, the entire development process is covered.
- Clear navigation discussion. Navigation is one of the hardest parts of React Native, and Dabit explains it well.
Weaknesses
- Dated Expo coverage. The book does not cover the modern Expo development workflow (EAS Build, Expo Router) that is now standard.
- No TypeScript. The book uses plain JavaScript, but modern React Native development is predominantly TypeScript.
- New Architecture missing. React Native's new architecture (Fabric, TurboModules, JSI) is not covered — it was introduced after publication.
- Performance optimization is thin. The book could provide more depth on performance profiling and optimization techniques.
Criticism
The "Expo Is Better" Critique
Since 2019, the React Native ecosystem has shifted significantly toward Expo as the recommended development approach. The book's bare workflow focus feels outdated to many readers.
The "Too Shallow" Critique
Experienced mobile developers find the book too basic, especially the sections on native module development and performance optimization.
Comparison with Similar Books
| Book | vs. React Native in Action | |------|---------------------------| | Learning React Native (Bonnie Eisenman) | Older but covers fundamentals well | | Fullstack React Native (Accomazzo) | More comprehensive, updated | | Official React Native Docs | Always current, interactive examples |
Final Assessment
| Dimension | Rating | Notes | |-----------|--------|-------| | Depth | 6/10 | Good introduction, shallow on advanced topics | | Breadth | 7/10 | Covers major topics adequately | | Readability | 8/10 | Clear and approachable | | Practical Utility | 6/10 | Dated by modern Expo ecosystem | | Lasting Value | 4/10 | Ecosystem has evolved significantly since 2019 | | Overall | 6.0/10 | Decent snapshot of mid-2019 React Native |
narration
Welcome to BookAtlas. Today, we explore React Native in Action by Nader Dabit, published in 2019 by Manning Publications. This 360-page book is a practical guide to building cross-platform mobile applications with React Native.
Nader Dabit is a developer advocate with experience building production React Native applications. At the time of writing, he worked at Amazon Web Services, bringing practical experience from the mobile development community. The book covers the full development lifecycle from setting up the environment through app store submission.
React Native uses a JavaScript-to-native bridge to render platform user interface components. React components written in JavaScript map to native iOS UIKit and Android View objects. This is fundamentally different from web-view-based approaches like Cordova, because the user interface is built with native components, not HTML.
The core mental model transfers directly from web React. If you already understand React components, props, state, and effects, you understand the core concepts of React Native. The differences come in specific APIs. Navigation replaces browser routing with stack, tab, and drawer patterns. Mobile-specific components like FlatList, ScrollView, and TouchableOpacity replace web divs and spans.
The book's coverage of navigation is one of its strongest sections. Mobile navigation is fundamentally different from web routing. Users expect stack-based navigation where screens slide in from the right, tab bars at the bottom, and drawer menus that slide from the left. Dabit explains how to configure React Navigation for these patterns.
Native modules are covered for developers who need to extend React Native beyond its built-in capabilities. When React Native lacks an application programming interface for a specific platform feature, you can write native code in Swift or Kotlin and expose it to JavaScript through a bridge. This capability makes React Native extensible to virtually any platform requirement.
The book's most significant limitation is age. Published in 2019, it predates the modern Expo development workflow with Expo Application Services Build, Expo Router, and the Expo SDK that now dominates React Native development. The book also does not cover the new React Native architecture with Fabric, TurboModules, and Java Script Interface that significantly improves performance.
On the BookAtlas scale, React Native in Action earns a 6.5 out of 10. It is a solid primer for web developers moving into mobile development that captures the state of React Native in 2019 well. However, the ecosystem has evolved significantly since publication, and readers should supplement it with current documentation, particularly for Expo. This has been a BookAtlas narration of React Native in Action by Nader Dabit. Thanks for listening.