Offline-First Architecture
NetInfo, āļāļĨāļĒāļļāļāļāđāļāļēāļĢāļāļīāļāļāđ, āļāļēāļĢāđāļāđāđāļāļāđāļāļāļąāļāđāļĒāđāļ, āļāļēāļĢāļāļąāļāļāļēāļĢāļāļīāļ§, UX āđāļāļāļāļāļāđāļĨāļāđ
1āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāļ offline-first āđāļāļāļĢāļīāļāļāļāļāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļĄāļ·āļāļāļ·āļāļāļ·āļāļāļ°āđāļĢ?
āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāļ offline-first āđāļāļāļĢāļīāļāļāļāļāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļĄāļ·āļāļāļ·āļāļāļ·āļāļāļ°āđāļĢ?
āļāļģāļāļāļ
āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāļ offline-first āđāļāđāļāđāļāļ§āļāļēāļāļāļēāļĢāļāļāļāđāļāļāļāļĩāđāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļđāļāļŠāļĢāđāļēāļāđāļŦāđāļāļģāļāļēāļāļāļąāļāļāđāļāļĄāļđāļĨāđāļāđāļāļĢāļ·āđāļāļāđāļāđāļāļŦāļĨāļąāļ āđāļāļĒāļāļēāļĢāļāļīāļāļāđāļāļąāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāđāļāđāļāđāļĢāļ·āđāļāļāļĢāļāļ āļāđāļāļĄāļđāļĨāļāļ°āļāļđāļāļāļąāļāđāļāđāļāđāļāđāļāļĢāļ·āđāļāļāļāđāļāļāđāļĨāđāļ§āļāļķāļāļāļīāļāļāđāļāļąāļ backend āđāļĄāļ·āđāļāļĄāļĩāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļ āđāļāļ§āļāļēāļāļāļĩāđāļĢāļąāļāļāļĢāļ°āļāļąāļāļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļđāđāđāļāđāļāļĩāđāļĢāļēāļāļĢāļ·āđāļāđāļĄāđāđāļĄāđāļĄāļĩāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāđāļāļĢāļ·āļāļāđāļēāļĒ āļāļķāđāļāļāđāļēāļāļāļēāļāđāļāļ§āļāļēāļ online-first āļāļĩāđāļāđāļāļāļāļķāđāļāļāļēāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāļāļķāļāļāļ°āļāļģāļāļēāļāđāļāđ
2āļāļ§āļĢāđāļāđāđāļāđāļāđāļāļāđāļāđāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāļŠāļāļēāļāļ°āļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāđāļāļĢāļ·āļāļāđāļēāļĒāđāļ React Native?
āļāļ§āļĢāđāļāđāđāļāđāļāđāļāļāđāļāđāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāļŠāļāļēāļāļ°āļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāđāļāļĢāļ·āļāļāđāļēāļĒāđāļ React Native?
āļāļģāļāļāļ
@react-native-community/netinfo āđāļāđāļāđāļāđāļāđāļāļāļĄāļēāļāļĢāļāļēāļāļŠāļģāļŦāļĢāļąāļāļāļĢāļ§āļāļāļąāļāļŠāļāļēāļāļ°āļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāđāļāļĢāļ·āļāļāđāļēāļĒāđāļ React Native āđāļāļĒāđāļŦāđāļāđāļāļĄāļđāļĨāļ§āđāļēāļāļļāļāļāļĢāļāđāđāļāļ·āđāļāļĄāļāđāļāļāļĒāļđāđāļŦāļĢāļ·āļāđāļĄāđ āļāļĢāļ°āđāļ āļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļ (WiFi, āđāļāļĨāļĨāļđāļĨāļēāļĢāđ) āđāļĨāļ°āļĄāļĩ listener āļŠāļģāļŦāļĢāļąāļāļāļāļāļŠāļāļāļāļāđāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāđāļāļāđāļĢāļĩāļĒāļĨāđāļāļĄāđ āļāļ·āļāđāļāđāļāļŠāđāļ§āļāļāļĢāļ°āļāļāļāļŠāļģāļāļąāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļĢāđāļēāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāļ offline-first
3āļāļ°āđāļāđ NetInfo āđāļāļ·āđāļāļĢāļąāļāļāļąāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāđāļāļāđāļĢāļĩāļĒāļĨāđāļāļĄāđāđāļāđāļāļĒāđāļēāļāđāļĢ?
āļāļ°āđāļāđ NetInfo āđāļāļ·āđāļāļĢāļąāļāļāļąāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāđāļāļāđāļĢāļĩāļĒāļĨāđāļāļĄāđāđāļāđāļāļĒāđāļēāļāđāļĢ?
āļāļģāļāļāļ
NetInfo.addEventListener āļāđāļ§āļĒāđāļŦāđāļŠāļēāļĄāļēāļĢāļāļŠāļĄāļąāļāļĢāļĢāļąāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāđāļĨāļ°āļāļ·āļāļāđāļēāļāļąāļāļāđāļāļąāļāļŠāļģāļŦāļĢāļąāļāļĒāļāđāļĨāļīāļāļāļēāļĢāļŠāļĄāļąāļāļĢ āļāļąāļāļāđāļāļąāļāļāļĩāđāļāļ§āļĢāļāļđāļāđāļĢāļĩāļĒāļāđāļ cleanup āļāļāļ useEffect āđāļāļ·āđāļāļāđāļāļāļāļąāļāļāļēāļĢāļĢāļąāđāļ§āđāļŦāļĨāļāļāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ callback āļāļ°āđāļāđāļĢāļąāļāļāđāļāļāđāļāļāļāđ state āļāļĩāđāļĄāļĩ isConnected, type āđāļĨāļ°āļāđāļāļĄāļđāļĨāļāļ·āđāļ āđ āđāļāļĩāđāļĒāļ§āļāļąāļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāļāļąāļāļāļļāļāļąāļ āđāļāļ§āļāļēāļāļāļĩāđāļāļģāđāļāđāļāļāļĒāđāļēāļāļĒāļīāđāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļāļŠāļāļāļāļāđāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļāļāđāļāļĢāļ·āļāļāđāļēāļĒāđāļāļāđāļāļāļēāļĄāļīāļ
āļāļ§āļēāļĄāđāļāļāļāđāļēāļāļĢāļ°āļŦāļ§āđāļēāļ isConnected āđāļĨāļ° isInternetReachable āđāļ NetInfo āļāļ·āļāļāļ°āđāļĢ?
āļāļ§āļĢāđāļāđāļāļĨāļĒāļļāļāļāđāļāļēāļĢāļāļīāļāđāļāļĢāđāļāļāđāđāļāļāđāļāļŠāļģāļŦāļĢāļąāļāđāļāļāļāļāļāļąāļāļāļķāļāđāļāļ offline-first?
+17 āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ
āļŦāļąāļ§āļāđāļāļŠāļąāļĄāļ āļēāļĐāļāđ React Native āļāļ·āđāļāđ
āļāļ·āđāļāļāļēāļ JavaScript
āļāļ·āđāļāļāļēāļ React
āļāļ·āđāļāļāļēāļ React Native
React Hooks
TypeScript āļŠāļģāļŦāļĢāļąāļ React āđāļĨāļ° React Native
āļāļāļĄāđāļāđāļāļāļāđāđāļĨāļ° API āļāļāļ React Native
āļāļēāļĢāļāļąāļāļŠāđāļāļĨāđāđāļĨāļ°āđāļĨāļĒāđāđāļāļēāļāđāđāļ React Native
āļāļēāļĢāļāļģāļāļēāļāđāļ React Native
āļāļēāļĢāļāļąāļāļāļēāļĢ State āđāļ React Native
Networking āđāļĨāļ° API āđāļ React Native
āļāļēāļĢāļāļāļāļĒāļđāđāļāļāļāļāđāļāļĄāļđāļĨ
āļāļāļĢāđāļĄāđāļĨāļ°āļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļ
āđāļāļāļīāđāļĄāļāļąāļ React Native
Native Modules & Bridge
āđāļāđāļāđāļāļāļēāļ°āđāļāļĨāļāļāļāļĢāđāļĄ
āļŠāļīāļāļāļīāđāđāļĨāļ° Device API
Push Notifications
āļāļēāļĢāļāļāļŠāļāļ React Native
āļāļēāļĢ Debug React Native
Build & Deployment
Expo vs React Native Bare
āļāļēāļĢāđāļāļīāđāļĄāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
āļāļēāļĢāļāļąāļāļāļēāļĢāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ
Architecture Patterns
React Native New Architecture
āđāļāļ§āļāļēāļāļāļāļīāļāļąāļāļīāļāļĩāđāļāļĩāļāļĩāđāļŠāļļāļāļāđāļēāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ
CI/CD React Native
Monorepo āđāļĨāļ°āļāļēāļĢāđāļāļĢāđāđāļāđāļ
āļŦāļąāļ§āļāđāļāļāļąāđāļāļŠāļđāļ
āļ§āļāļāļĢāļāļĩāļ§āļīāļāđāļāļāđāļĨāļ°āļāļēāļĢāļāļģāļāļēāļāđāļāļ·āđāļāļāļŦāļĨāļąāļ
āļāļēāļĢāļĒāļ·āļāļĒāļąāļāļāļąāļ§āļāļāđāļĨāļ°āļāļēāļĢāļāļąāļāļāļēāļĢāđāļāļŠāļāļąāļ
Monitoring & Crash Reporting
āđāļāļĩāđāļĒāļ§āļāļēāļ React Native āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđāļāļĢāļąāđāļāļāļąāļāđāļ
āđāļāđāļēāļāļķāļāļāļģāļāļēāļĄāļāļąāđāļāļŦāļĄāļ flashcards āđāļāļāļāļāļŠāļāļāđāļāļāļāļīāļ āđāļāļāļāļķāļāļŦāļąāļ code review āđāļĨāļ°āļāļąāļ§āļāļģāļĨāļāļāļŠāļąāļĄāļ āļēāļĐāļāđ
āđāļĢāļīāđāļĄāđāļāđāļāļĢāļĩ