LEADER 08670nam 2200541 450 001 9910568257303321 005 20221123160923.0 010 $a1-4842-8042-3 024 7 $a10.1007/978-1-4842-8042-3 035 $a(MiAaPQ)EBC6965042 035 $a(Au-PeEL)EBL6965042 035 $a(CKB)21707960300041 035 $a(OCoLC)1313808273 035 $a(OCoLC-P)1313808273 035 $a(CaSebORM)9781484280423 035 $a(PPN)262173271 035 $a(EXLCZ)9921707960300041 100 $a20221123d2022 uy 0 101 0 $aeng 135 $aurcnu|||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aCreating apps with React Native $edeliver cross-platform 0 crash, 5 star apps /$fM. Holmes He 210 1$aBerkeley, California :$cApress,$d[2022] 210 4$d©2022 215 $a1 online resource (445 pages) $cillustrations 300 $aIncludes index. 311 08$aPrint version: He, M. Holmes Creating Apps with React Native Berkeley, CA : Apress L. P.,c2022 9781484280416 320 $aIncludes index. 327 $aIntro -- Table of Contents -- About the Author -- About the Technical Reviewer -- The Path to a 05 App -- Chapter 1: Start Thinking in React -- 1.1 Component -- 1.1.1 Key Takeaways -- 1.2 The "Hello World" App in Pieces -- 1.2.1 React Native Development Environment -- 1.2.2 JSX -- 1.2.3 props -- 1.2.3.1 Style -- 1.2.3.2 Children -- 1.2.4 JSX Internals -- 1.2.5 States -- 1.2.5.1 State Change on the Current Component -- 1.2.5.2 Cascading State Changes -- 1.2.6 setState() Internals -- 1.2.7 Key Takeaways -- 1.3 Summary -- Chapter 2: Foundations of React -- 2.1 Flexbox, a Practical Guide -- 2.1.1 Component Size -- 2.1.2 Case Study: Feed -- 2.1.3 Key Takeaways -- 2.2 Composition vs. Inheritance, HOC -- 2.2.1 Case Study: Multiple Photo Feeds -- 2.2.2 Key Takeaways -- 2.3 ScrollView and FlatList -- 2.3.1 Case Study: Moment -- 2.3.2 Key Takeaways -- 2.4 Error Handling -- 2.4.1 Case Study: Moment (Reinforced) -- 2.4.2 Key Takeaways -- 2.5 Summary -- Chapter 3: Animation in React Native -- 3.1 Introduction to React Native Animation -- 3.2 Layout Animation -- 3.2.1 Presets -- 3.2.2 LayoutAnimation.create(?) -- 3.2.3 Raw Animation Config -- 3.2.4 Android -- 3.2.5 Case Study, Read More -- 3.2.6 Key Takeaways -- 3.3 Value Animation -- 3.3.1 Animate the Animation -- 3.3.1.1 Animated.timing(?) -- 3.3.1.2 Animated.spring(?) -- 3.3.1.3 Animation Cohort -- 3.3.1.4 setValue(?) -- 3.3.2 Bind the Animation Value -- 3.3.2.1 The transform props.style -- 3.3.2.2 Value Interpolation -- 3.3.2.3 Value Calculation -- 3.3.3 Case Study 1, Looming Animation for Image Loading -- 3.3.4 Case Study 2, Loading Indicators -- 3.3.5 Key Takeaways -- 3.4 Gesture-Driven Animation -- 3.4.1 Native Event -- 3.4.2 Case Study, a Pull Down Load Experience -- 3.4.3 Key Takeaways -- 3.5 Summary -- Chapter 4: Native Modules and Components -- 4.1 Native Modules -- 4.1.1 iOS Native Module. 327 $a4.1.1.1 Setup -- 4.1.1.2 Implement the Native Module -- 4.1.1.3 Async Calls -- 4.1.2 Android Native Module -- 4.1.2.1 Setup -- 4.1.2.2 Implement the Native Module -- 4.1.2.3 Register the Native Module -- 4.1.2.4 Async Calls -- 4.1.3 Use the Native Module in JavaScript -- 4.1.4 Key Takeaways -- 4.2 Native Components -- 4.2.1 iOS Native Component -- 4.2.1.1 Setup -- 4.2.1.2 Implement the View Manager -- 4.2.1.3 View Property -- 4.2.2 Android Native Component -- 4.2.2.1 Setup -- 4.2.2.2 Implement the View Manager -- 4.2.2.3 View Property -- 4.2.3 Use the Native Component in JavaScript -- 4.2.3.1 The Easy Way -- 4.2.3.2 The Right Way, Abstraction on the JavaScript Layer -- 4.2.4 Children of a Native Component -- 4.2.5 Key Takeaways -- 4.3 Advanced Techniques -- 4.3.1 Event -- 4.3.1.1 Send Events from iOS -- 4.3.1.2 Send Events from Android -- 4.3.1.3 Receive Events in JavaScript -- 4.3.2 React Tag -- 4.3.2.1 React Refs -- 4.3.2.2 React Tags -- 4.3.2.3 Reconcile React Tag Implementation on JavaScript -- 4.3.3 Direct Manipulation -- 4.3.4 Synchronous Method Call -- 4.3.5 Export Constants -- 4.3.5.1 iOS -- 4.3.5.2 Android -- 4.3.5.3 Access Constants in JavaScript -- 4.3.6 Initial Properties -- 4.3.7 Dependency Injection -- 4.3.8 Key Takeaways -- 4.4 Exception Handling -- 4.5 Case Study - a Video Component -- 4.5.1 iOS Implementation of a Video Component -- 4.5.2 Android Implementation of a Video Component -- 4.5.3 JavaScript Layer -- 4.5.3.1 Native Component Wrapper -- 4.5.3.2 View Manager Wrapper -- 4.5.3.3 Video Feed -- 4.5.3.4 Ref Forwarding -- 4.5.3.5 Video Feed in Moment -- 4.5.4 Reinforced Video Component -- 4.5.4.1 Protect the iOS Component -- 4.5.4.2 Protect the Android Component -- 4.5.4.3 JavaScript Layer -- 4.6 Summary -- Chapter 5: Network Programming -- 5.1 A Very Brief Introduction to TCP/IP -- 5.1.1 TCP. 327 $a5.1.1.1 Three-Way Handshake (Opening Connection) -- 5.1.1.2 Sliding Window -- 5.1.1.3 Congestion Control -- 5.1.1.4 Four-Way Handshake (Closing Connection) -- 5.1.1.5 Miscellanies -- 5.1.2 HTTP/1.1 -- 5.1.2.1 HTTP Is Text Based -- 5.1.2.2 Common Request Headers -- 5.1.2.3 Common Response Headers -- 5.1.2.4 HTTP Status Code -- 5.1.2.5 Cache Control -- 5.1.2.6 HTTP API Design -- 5.1.3 DNS -- 5.1.4 TLS -- 5.1.4.1 Pinning -- 5.1.5 The Modern Internet -- 5.1.6 Key Takeaway -- 5.2 Network Programming on the JavaScript Layer -- 5.2.1 Asynchronous Operations -- 5.2.1.1 Promise -- 5.2.1.2 Await -- 5.2.2 fetch(?) -- 5.2.3 Case Study, Move Everything Online -- 5.3 Network Programming on the Native Layer -- 5.3.1 Case Study, Enable Local Caching -- 5.4 Exception Handling -- 5.4.1 Case Study, Reinforce the Network Components -- 5.4.2 Case Study, Offline Mode -- 5.5 Summary -- Chapter 6: Advanced Topics -- 6.1 Revisit Rendering -- 6.2 Redux -- 6.2.1 Case Study, Like -- 6.2.1.1 Reduxfy Feeds -- 6.2.1.2 Implement Like -- 6.3 Long List -- 6.3.1 Case Study, Apply Basic Heuristics -- 6.4 0 Crash, Design Exception Flow -- 6.4.1 Robustness Built in Software Architecture -- 6.4.1.1 Entry Points -- 6.4.1.2 Crash Points -- 6.4.2 Last Resort, Global Error Handler -- 6.4.3 Wrap Up -- 6.5 Native Modules Inside Out -- 6.5.1 Phase 0, Prior Bootstrap -- 6.5.2 Phase 1, Bootstrap -- 6.5.2.1 requiresMainQueueSetup -- 6.5.2.2 Threads and Locks -- 6.5.3 Phase 2, Native Module on the JavaScript Layer -- 6.5.3.1 The Nature of a Native Call -- 6.5.4 Execute the Bundle -- 6.5.5 The Two-Way Communication -- 6.5.6 The Native Module Metadata -- 6.5.7 Wrap Up -- 6.6 Animation Inside Out -- 6.6.1 Establish the Animated Node Graph -- 6.6.1.1 JavaScript Pass -- 6.6.1.2 Native Pass -- 6.6.2 Bind the Event Receiver -- 6.6.3 Attach the Event Source -- 6.6.4 Native Event Transmission. 327 $a6.6.4.1 Identify Receivers -- 6.6.4.2 Update -- 6.7 Adaptive to All Screens, Layout Design -- 6.8 Time to Say Goodbye -- Index. 330 $aProduce high-quality, cross-platform apps with user experiences almost identical to pure native apps. When evaluating cross-platform frameworks, developers make an assumption that quality will be compromised. But that doesn't have to be true. The principles in this book will show you how to meet quality expectations both from engineering and consumer standpoints. Youll also realize the ideal of a greater front end. That means your whole front-end team, including app side and web side, will be optimized. The shared knowledge base as well as mobilization potential give more flexibility and strength in all front-end facets without the need of increasing team sizes. The market has seen a large amount of high quality React Native apps and successful stories about them. Nevertheless, under optimized apps and unsuccessful stories shadow. The fundamental difference between the two opposing groups is understanding. Discover the critical points in the React and React Native architecture, and develop general best practices that can lead to consistently developing 0 crash, 5 star apps based on an understanding of fundamentals. You will: Measure and define successful app design Create animation based on user need Reduce performance bottleneck throughout your apps. 606 $aMobile apps$xDevelopment 606 $aCross-platform software development 615 0$aMobile apps$xDevelopment. 615 0$aCross-platform software development. 676 $a005.35 700 $aHe$b M. Holmes$01228945 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910568257303321 996 $aCreating Apps with React Native$92852958 997 $aUNINA