React Native

āļ§āļ‡āļˆāļĢāļŠāļĩāļ§āļīāļ•āđāļ­āļ›āđāļĨāļ°āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ€āļšāļ·āđ‰āļ­āļ‡āļŦāļĨāļąāļ‡

AppState, foreground/background transitions, headless JS, background fetch, deep links, universal links

20 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Mid-Level
1

AppState.currentState āđƒāļ™ React Native āļ„āļ·āļ™āļ„āđˆāļēāļŠāļ–āļēāļ™āļ°āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āđ„āļ›āđ„āļ”āđ‰āļŠāļēāļĄāļ­āļĒāđˆāļēāļ‡āđƒāļ”āļšāđ‰āļēāļ‡?

āļ„āļģāļ•āļ­āļš

AppState.currentState āļ„āļ·āļ™āļ„āđˆāļēāļŦāļ™āļķāđˆāļ‡āđƒāļ™āļŠāļēāļĄāļŠāļ–āļēāļ™āļ°: 'active' (āđāļ­āļ›āļ­āļĒāļđāđˆāđ€āļšāļ·āđ‰āļ­āļ‡āļŦāļ™āđ‰āļēāđāļĨāļ°āđ‚āļ•āđ‰āļ•āļ­āļšāđ„āļ”āđ‰), 'background' (āđāļ­āļ›āļ­āļĒāļđāđˆāđ€āļšāļ·āđ‰āļ­āļ‡āļŦāļĨāļąāļ‡āđāļ•āđˆāļ­āļēāļˆāļĒāļąāļ‡āļ—āļģāļ‡āļēāļ™āļ­āļĒāļđāđˆ) āđāļĨāļ° 'inactive' (āļŠāļ–āļēāļ™āļ°āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļœāđˆāļēāļ™āļšāļ™ iOS āđ€āļŠāđˆāļ™ āđ€āļĄāļ·āđˆāļ­āđāļŠāļ”āļ‡āļĄāļļāļĄāļĄāļ­āļ‡āļĄāļąāļĨāļ•āļīāļ—āļēāļŠāļāļīāđ‰āļ‡) āļšāļ™ Android āļŠāļ–āļēāļ™āļ° 'inactive' āļžāļšāđ„āļ”āđ‰āļĒāļēāļāđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļœāđˆāļēāļ™āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āđ‚āļ”āļĒāļ•āļĢāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ 'active' āđāļĨāļ° 'background'

2

āļ„āļ§āļĢāđƒāļŠāđ‰āđ€āļĄāļ˜āļ­āļ”āđƒāļ”āđƒāļ™āļāļēāļĢāļŸāļąāļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļŠāļ–āļēāļ™āļ°āļ‚āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ”āđ‰āļ§āļĒ AppState?

āļ„āļģāļ•āļ­āļš

āđ€āļĄāļ˜āļ­āļ” AppState.addEventListener('change', callback) āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļŸāļąāļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļŠāļ–āļēāļ™āļ°āļ‚āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđ„āļ”āđ‰ callback āļˆāļ°āļĢāļąāļšāļŠāļ–āļēāļ™āļ°āđƒāļŦāļĄāđˆ ('active', 'background' āļŦāļĢāļ·āļ­ 'inactive') āđ€āļ›āđ‡āļ™āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒ āļŠāļīāđˆāļ‡āļŠāļģāļ„āļąāļāļ„āļ·āļ­āļ•āđ‰āļ­āļ‡āļĨāļš listener āļ”āđ‰āļ§āļĒāđ€āļĄāļ˜āļ­āļ” remove() āļ—āļĩāđˆ addEventListener āļ„āļ·āļ™āļ„āđˆāļēāļĄāļēāđƒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢ cleanup āđ€āļžāļ·āđˆāļ­āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļāļēāļĢāļĢāļąāđˆāļ§āđ„āļŦāļĨāļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģ

3

āļŠāļ–āļēāļ™āļ° 'inactive' āļĄāļąāļāđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āđ€āļĄāļ·āđˆāļ­āđƒāļ”āļšāļ™ iOS?

āļ„āļģāļ•āļ­āļš

āļŠāļ–āļēāļ™āļ° 'inactive' āļšāļ™ iOS āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļœāđˆāļēāļ™āļŠāļąāđ‰āļ™ āđ† āđ€āļŠāđˆāļ™ āđ€āļĄāļ·āđˆāļ­āđāļŠāļ”āļ‡ control center, notification center, āļŦāļ™āđ‰āļēāļˆāļ­āļĄāļąāļĨāļ•āļīāļ—āļēāļŠāļāđŒ (āđāļ•āļ° Home āļŠāļ­āļ‡āļ„āļĢāļąāđ‰āļ‡) āļŦāļĢāļ·āļ­āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļĄāļĩāļŠāļēāļĒāđ€āļĢāļĩāļĒāļāđ€āļ‚āđ‰āļē āđ€āļ›āđ‡āļ™āļŠāļ–āļēāļ™āļ°āļāļķāđˆāļ‡āļāļĨāļēāļ‡āļ—āļĩāđˆāđāļ­āļ›āļĄāļ­āļ‡āđ€āļŦāđ‡āļ™āđ„āļ”āđ‰āđāļ•āđˆāđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđ‚āļ•āđ‰āļ•āļ­āļšāđ„āļ”āđ‰ āļšāļ™ Android āļŠāļ–āļēāļ™āļ°āļ™āļĩāđ‰āđāļ—āļšāđ„āļĄāđˆāļžāļšāđ€āļŦāđ‡āļ™āđ€āļžāļĢāļēāļ°āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡ 'active' āđāļĨāļ° 'background' āđ€āļ›āđ‡āļ™āđ„āļ›āđ‚āļ”āļĒāļ•āļĢāļ‡

4

āļˆāļ°āđƒāļŠāđ‰āļ‡āļēāļ™ listener āļ‚āļ­āļ‡ AppState āļ āļēāļĒāđƒāļ™ useEffect āļ­āļĒāđˆāļēāļ‡āļ–āļđāļāļ•āđ‰āļ­āļ‡āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

5

Headless JS Task āđƒāļ™ React Native āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

+17 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ React Native āļ­āļ·āđˆāļ™āđ†

āļžāļ·āđ‰āļ™āļāļēāļ™ JavaScript

Junior
25 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ React

Junior
20 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ React Native

Junior
22 āļ„āļģāļ–āļēāļĄ

React Hooks

Junior
20 āļ„āļģāļ–āļēāļĄ

TypeScript āļŠāļģāļŦāļĢāļąāļš React āđāļĨāļ° React Native

Junior
22 āļ„āļģāļ–āļēāļĄ

āļ„āļ­āļĄāđ‚āļžāđ€āļ™āļ™āļ•āđŒāđāļĨāļ° API āļ‚āļ­āļ‡ React Native

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļŠāđ„āļ•āļĨāđŒāđāļĨāļ°āđ€āļĨāļĒāđŒāđ€āļ­āļēāļ•āđŒāđƒāļ™ React Native

Junior
18 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ™āļģāļ—āļēāļ‡āđƒāļ™ React Native

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ State āđƒāļ™ React Native

Mid-Level
24 āļ„āļģāļ–āļēāļĄ

Networking āđāļĨāļ° API āđƒāļ™ React Native

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ„āļ‡āļ­āļĒāļđāđˆāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļŸāļ­āļĢāđŒāļĄāđāļĨāļ°āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āđāļ­āļ™āļīāđ€āļĄāļŠāļąāļ™ React Native

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

Native Modules & Bridge

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āđ‚āļ„āđ‰āļ”āđ€āļ‰āļžāļēāļ°āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄ

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āļŠāļīāļ—āļ˜āļīāđŒāđāļĨāļ° Device API

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Push Notifications

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļš React Native

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢ Debug React Native

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

Build & Deployment

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Expo vs React Native Bare

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

Senior
24 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģ

Senior
20 āļ„āļģāļ–āļēāļĄ

Architecture Patterns

Senior
22 āļ„āļģāļ–āļēāļĄ

React Native New Architecture

Senior
24 āļ„āļģāļ–āļēāļĄ

āđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”āļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ

Senior
20 āļ„āļģāļ–āļēāļĄ

Offline-First Architecture

Senior
20 āļ„āļģāļ–āļēāļĄ

CI/CD React Native

Senior
20 āļ„āļģāļ–āļēāļĄ

Monorepo āđāļĨāļ°āļāļēāļĢāđāļŠāļĢāđŒāđ‚āļ„āđ‰āļ”

Senior
18 āļ„āļģāļ–āļēāļĄ

āļŦāļąāļ§āļ‚āđ‰āļ­āļ‚āļąāđ‰āļ™āļŠāļđāļ‡

Senior
22 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āđāļĨāļ°āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāđ€āļ‹āļŠāļŠāļąāļ™

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

Monitoring & Crash Reporting

Senior
20 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ React Native āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ