└── src
├── Chapter_2_View_patterns
├── Example_14_Linter
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ ├── App.js
│ └── App.test.js
├── Example_5_Image
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── src
│ │ └── react.png
│ ├── .babelrc
│ └── App.test.js
├── Example_7_Button
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── App.js
│ ├── .babelrc
│ └── App.test.js
├── Example_10_React_ref_API
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_11_Error_Boundary
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_12_Mixin_example
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_4_ScrollView_fix
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_8_Touchable_Opacity
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── App.js
│ ├── .babelrc
│ └── App.test.js
├── Example_1_React_createElement
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_3_No_ScrollView_problem
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_9_Controlled_TextInput
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ ├── App.js
│ └── App.test.js
├── Example_13_Mixin_replaced_with_HOC
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_2_propTypes_and_defaultProps
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── App.js
│ ├── .babelrc
│ ├── src
│ │ └── HelloText.js
│ └── App.test.js
└── Example_6_Hello_World_with_your_name
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── App.js
│ ├── .babelrc
│ └── App.test.js
├── Chapter_3_Style_patterns
├── Example_11_Tweaking_styles
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_16_FPS_measure
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_12_Task_list_as_content
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_14_Easing_functions
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_8_Flexbox_hello_world
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_13_Animated_introduction
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_15_Scheduling_animations
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_9_Header_Main_and_Footer
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_10_justifyContent_and_alignItems
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_1_three_ways_to_define_styles
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_2_Inheritance_of_Text_component
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_5_Listening_on_dimensions_change
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_3_Composition_to_solve_inheritance_problems
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_4_Dimensions_width_and_height_not_updated
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_6_Overlapping_boxes_with_absolute_position
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
└── Example_7_mixing_absolute_and_relative_positioning
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Chapter_10_Managing_dependencies
├── Example_1_storybook
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── state
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ ├── flux
│ │ │ └── AppDispatcher.js
│ │ └── examples.js
│ ├── app.json
│ ├── storybook
│ │ ├── addons.js
│ │ └── stories
│ │ │ └── CenterView
│ │ │ └── style.js
│ ├── .babelrc
│ ├── App.test.js
│ └── App.js
├── Example_4_directory_structure
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── state
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ ├── flux
│ │ │ └── AppDispatcher.js
│ │ ├── layout
│ │ │ └── LanguageSwitcher
│ │ │ │ ├── constants.js
│ │ │ │ ├── state
│ │ │ │ └── selectors.js
│ │ │ │ └── actions
│ │ │ │ └── LanguageChangeTypes.js
│ │ ├── common
│ │ │ └── NavigateButton
│ │ │ │ └── index.js
│ │ └── examples.js
│ ├── app.json
│ ├── storybook
│ │ ├── addons.js
│ │ └── stories
│ │ │ └── CenterView
│ │ │ └── style.js
│ ├── .babelrc
│ └── App.test.js
├── Example_2_dependency_injection_with_storybook
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── state
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ ├── flux
│ │ │ └── AppDispatcher.js
│ │ ├── components
│ │ │ └── NavigateButton
│ │ │ │ └── index.js
│ │ └── examples.js
│ ├── app.json
│ ├── storybook
│ │ ├── addons.js
│ │ └── stories
│ │ │ └── CenterView
│ │ │ └── style.js
│ ├── .babelrc
│ └── App.test.js
└── Example_3_language_switcher_with_react_context
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ ├── features
│ │ ├── search
│ │ │ └── .gitkeep
│ │ ├── projects
│ │ │ └── .gitkeep
│ │ ├── language
│ │ │ ├── constants.js
│ │ │ ├── state
│ │ │ │ └── selectors.js
│ │ │ └── actions
│ │ │ │ └── LanguageChangeTypes.js
│ │ └── tasks
│ │ │ └── state
│ │ │ └── reducers
│ │ │ └── index.js
│ ├── flux
│ │ └── AppDispatcher.js
│ ├── components
│ │ └── NavigateButton
│ │ │ └── index.js
│ └── examples.js
│ ├── app.json
│ ├── storybook
│ ├── addons.js
│ └── stories
│ │ └── CenterView
│ │ └── style.js
│ ├── .babelrc
│ └── App.test.js
├── Chapter_11_Type_checking_patterns
├── Example_5_immutability
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ ├── state
│ │ │ │ └── reducers
│ │ │ │ │ └── index.ts
│ │ │ │ └── actions
│ │ │ │ └── types.ts
│ │ ├── flux
│ │ │ ├── AppDispatcher.js
│ │ │ └── types.ts
│ │ ├── storybook
│ │ │ └── addons.js
│ │ ├── layout
│ │ │ └── LanguageSwitcher
│ │ │ │ ├── constants.ts
│ │ │ │ ├── actions
│ │ │ │ └── LanguageChangeActionTypes.ts
│ │ │ │ └── state
│ │ │ │ ├── selectors.ts
│ │ │ │ └── types.ts
│ │ ├── common
│ │ │ └── NavigateButton
│ │ │ │ └── index.ts
│ │ └── examples.js
│ ├── .babelrc
│ ├── app.json
│ └── App.js
├── Example_4_generic_types
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ ├── state
│ │ │ │ └── reducers
│ │ │ │ │ └── index.js
│ │ │ │ └── actions
│ │ │ │ └── types.ts
│ │ ├── flux
│ │ │ ├── AppDispatcher.js
│ │ │ └── types.ts
│ │ ├── storybook
│ │ │ └── addons.js
│ │ ├── layout
│ │ │ └── LanguageSwitcher
│ │ │ │ ├── state
│ │ │ │ ├── selectors.js
│ │ │ │ └── types.ts
│ │ │ │ ├── constants.ts
│ │ │ │ └── actions
│ │ │ │ └── LanguageChangeActionTypes.ts
│ │ ├── common
│ │ │ └── NavigateButton
│ │ │ │ └── index.ts
│ │ └── examples.js
│ ├── .babelrc
│ ├── app.json
│ └── App.js
├── Example_1_TypeScript_support
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ ├── state
│ │ │ │ └── reducers
│ │ │ │ │ └── index.js
│ │ │ │ └── actions
│ │ │ │ └── types.ts
│ │ ├── flux
│ │ │ └── AppDispatcher.js
│ │ ├── layout
│ │ │ └── LanguageSwitcher
│ │ │ │ ├── constants.js
│ │ │ │ ├── state
│ │ │ │ └── selectors.js
│ │ │ │ └── actions
│ │ │ │ └── LanguageChangeTypes.js
│ │ ├── storybook
│ │ │ └── addons.js
│ │ ├── common
│ │ │ └── NavigateButton
│ │ │ │ └── index.ts
│ │ └── examples.js
│ ├── .babelrc
│ ├── app.json
│ └── App.js
├── Example_2_Enums_and_constants
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ ├── state
│ │ │ │ └── reducers
│ │ │ │ │ └── index.js
│ │ │ │ └── actions
│ │ │ │ └── types.ts
│ │ ├── flux
│ │ │ └── AppDispatcher.js
│ │ ├── layout
│ │ │ └── LanguageSwitcher
│ │ │ │ ├── constants.js
│ │ │ │ ├── state
│ │ │ │ └── selectors.js
│ │ │ │ └── actions
│ │ │ │ └── LanguageChangeTypes.js
│ │ ├── storybook
│ │ │ └── addons.js
│ │ ├── common
│ │ │ └── NavigateButton
│ │ │ │ └── index.ts
│ │ └── examples.js
│ ├── .babelrc
│ ├── app.json
│ └── App.js
├── Example_6_tslint_immutability
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ ├── state
│ │ │ │ └── reducers
│ │ │ │ │ └── index.ts
│ │ │ │ └── actions
│ │ │ │ └── types.ts
│ │ ├── flux
│ │ │ ├── AppDispatcher.js
│ │ │ └── types.ts
│ │ ├── storybook
│ │ │ └── addons.js
│ │ ├── layout
│ │ │ └── LanguageSwitcher
│ │ │ │ ├── constants.ts
│ │ │ │ ├── actions
│ │ │ │ └── LanguageChangeActionTypes.ts
│ │ │ │ └── state
│ │ │ │ ├── selectors.ts
│ │ │ │ └── types.ts
│ │ ├── common
│ │ │ └── NavigateButton
│ │ │ │ └── index.ts
│ │ └── examples.js
│ ├── .babelrc
│ ├── app.json
│ └── App.js
└── Example_3_union_type_intersection_type
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ ├── features
│ │ ├── projects
│ │ │ └── .gitkeep
│ │ ├── search
│ │ │ └── .gitkeep
│ │ └── tasks
│ │ │ ├── state
│ │ │ └── reducers
│ │ │ │ └── index.js
│ │ │ └── actions
│ │ │ └── types.ts
│ ├── flux
│ │ └── AppDispatcher.js
│ ├── layout
│ │ └── LanguageSwitcher
│ │ │ ├── constants.js
│ │ │ ├── state
│ │ │ └── selectors.js
│ │ │ └── actions
│ │ │ └── LanguageChangeTypes.js
│ ├── storybook
│ │ └── addons.js
│ ├── common
│ │ └── NavigateButton
│ │ │ └── index.ts
│ └── examples.js
│ ├── .babelrc
│ └── app.json
├── Chapter_1_React_component_patterns
├── Example_1_Hello_World
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_5_Task_list
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_15_HOC_Composition
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_16_Useful_HOCs
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_10_Decoupling_styles
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_2_Functional_Components
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_11_Container_expandable_component
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_14_Flexible_prop_names_in_HOC
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_4_Stateful_expandable_component
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_6_Component_composition_red_text
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_7_App_layout_and_Welcome_screen
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_3_Functional_Components_with_props
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_12_Higher_order_component_makeExpandable
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ └── .babelrc
├── Example_13_Higher_order_component_show_hide_button
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ └── .babelrc
├── Example_8_Snapshot_test_of_expandable_component
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ ├── .babelrc
│ ├── coverage
│ │ └── lcov-report
│ │ │ └── sort-arrow-sprite.png
│ └── App.test.js
└── Example_9_Refactoring_to_presentational_component
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── app.json
│ └── .babelrc
├── Chapter_4_Flux_patterns
└── Example_1_Todo_app_with_Flux
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ └── data
│ │ ├── AppDispatcher.js
│ │ └── TasksActionTypes.js
│ ├── .babelrc
│ └── App.test.js
├── Chapter_5_Store_patterns
├── Example_1_Redux_integration
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ │ └── flux
│ │ │ ├── AppDispatcher.js
│ │ │ └── AppActionTypes.js
│ ├── .babelrc
│ └── App.test.js
├── Example_2_Task_app_with_Redux
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ │ └── data
│ │ │ ├── AppDispatcher.js
│ │ │ ├── TasksActionTypes.js
│ │ │ └── AppStore.js
│ ├── .babelrc
│ └── App.test.js
├── Example_4_Task_app_with_MobX
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── App.test.js
│ └── .babelrc
├── Example_3_Moving_to_single_source_of_truth
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ │ └── data
│ │ │ ├── AppDispatcher.js
│ │ │ └── TasksActionTypes.js
│ ├── .babelrc
│ └── App.test.js
└── Example_5_Persistent_storage_with_AsyncStorage
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ └── data
│ │ ├── AppDispatcher.js
│ │ └── TasksActionTypes.js
│ ├── .babelrc
│ └── App.test.js
├── Chapter_7_Navigational_patterns
├── Example_4_Tab_navigation
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ └── flux
│ │ │ └── AppDispatcher.js
│ ├── app.json
│ ├── App.js
│ ├── .babelrc
│ └── App.test.js
├── Example_5_Drawer_navigation
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ └── flux
│ │ │ └── AppDispatcher.js
│ ├── App.js
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Example_1_Refactoring_structure
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ └── flux
│ │ │ └── AppDispatcher.js
│ ├── app.json
│ ├── App.js
│ ├── .babelrc
│ └── App.test.js
├── Example_6_Standalone_React_Native
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ └── flux
│ │ │ └── AppDispatcher.js
│ ├── .gitattributes
│ ├── .babelrc
│ ├── App.js
│ ├── app.json
│ ├── android
│ │ ├── app
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── mipmap-xxxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── assets
│ │ │ │ └── fonts
│ │ │ │ ├── Entypo.ttf
│ │ │ │ ├── Zocial.ttf
│ │ │ │ ├── Feather.ttf
│ │ │ │ ├── Ionicons.ttf
│ │ │ │ ├── Octicons.ttf
│ │ │ │ ├── EvilIcons.ttf
│ │ │ │ ├── FontAwesome.ttf
│ │ │ │ ├── Foundation.ttf
│ │ │ │ ├── MaterialIcons.ttf
│ │ │ │ ├── SimpleLineIcons.ttf
│ │ │ │ ├── FontAwesome5_Solid.ttf
│ │ │ │ ├── FontAwesome5_Brands.ttf
│ │ │ │ ├── FontAwesome5_Regular.ttf
│ │ │ │ └── MaterialCommunityIcons.ttf
│ │ ├── keystores
│ │ │ ├── debug.keystore.properties
│ │ │ └── BUCK
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ └── settings.gradle
│ ├── ios
│ │ └── Example123
│ │ │ └── Images.xcassets
│ │ │ └── Contents.json
│ ├── .buckconfig
│ └── index.js
├── Example_7_React_Native_Navigation
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ └── flux
│ │ │ └── AppDispatcher.js
│ ├── .gitattributes
│ ├── .babelrc
│ ├── app.json
│ ├── App.js
│ ├── index.js
│ ├── android
│ │ ├── app
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── mipmap-xxxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example123
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── assets
│ │ │ │ └── fonts
│ │ │ │ ├── Entypo.ttf
│ │ │ │ ├── Zocial.ttf
│ │ │ │ ├── Feather.ttf
│ │ │ │ ├── Ionicons.ttf
│ │ │ │ ├── Octicons.ttf
│ │ │ │ ├── EvilIcons.ttf
│ │ │ │ ├── FontAwesome.ttf
│ │ │ │ ├── Foundation.ttf
│ │ │ │ ├── MaterialIcons.ttf
│ │ │ │ ├── SimpleLineIcons.ttf
│ │ │ │ ├── FontAwesome5_Solid.ttf
│ │ │ │ ├── FontAwesome5_Brands.ttf
│ │ │ │ ├── FontAwesome5_Regular.ttf
│ │ │ │ └── MaterialCommunityIcons.ttf
│ │ ├── keystores
│ │ │ ├── debug.keystore.properties
│ │ │ └── BUCK
│ │ └── gradle
│ │ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── ios
│ │ ├── Example123
│ │ │ └── Images.xcassets
│ │ │ │ └── Contents.json
│ │ └── HandOnDesignPatternsWithReactNativeChapter7Example6
│ │ │ └── Images.xcassets
│ │ │ └── Contents.json
│ ├── .buckconfig
│ └── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── Example_2_React_Navigator_First_Screen
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ └── flux
│ │ │ └── AppDispatcher.js
│ ├── App.js
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
└── Example_3_React_Navigator_Multiple_Screens
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ ├── features
│ │ ├── search
│ │ │ └── .gitkeep
│ │ ├── projects
│ │ │ └── .gitkeep
│ │ └── tasks
│ │ │ └── reducers
│ │ │ └── index.js
│ └── flux
│ │ └── AppDispatcher.js
│ ├── App.js
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
├── Chapter_6_Data_transfer_patterns
├── Example_1_First_local_API
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ │ └── data
│ │ │ ├── AppDispatcher.js
│ │ │ ├── TasksActionTypes.js
│ │ │ └── AppStore.js
│ ├── .babelrc
│ └── App.test.js
├── Example_2_Fetching_local_API
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ │ └── data
│ │ │ ├── AppDispatcher.js
│ │ │ ├── TasksActionTypes.js
│ │ │ └── AppStore.js
│ ├── .babelrc
│ └── App.test.js
├── Example_5_Using_Redux_Thunk
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ │ └── data
│ │ │ └── AppDispatcher.js
│ ├── .babelrc
│ └── App.test.js
├── Example_6_Using_Redux_Saga
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ │ ├── data
│ │ │ └── AppDispatcher.js
│ │ └── sagas
│ │ │ └── index.js
│ ├── .babelrc
│ └── App.test.js
├── Example_3_Lifting_state_to_Redux
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ │ └── data
│ │ │ ├── AppDispatcher.js
│ │ │ ├── AppStore.js
│ │ │ └── TasksActionTypes.js
│ ├── .babelrc
│ └── App.test.js
└── Example_4_Handling_dispatch_without_Redux_Thunk
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── App.js
│ ├── app.json
│ ├── src
│ └── data
│ │ ├── AppDispatcher.js
│ │ ├── AppStore.js
│ │ └── TasksActionTypes.js
│ └── .babelrc
├── Chapter_8_JavaScript_patterns
├── Example_2_Selecting_from_Redux_store
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── state
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ └── flux
│ │ │ └── AppDispatcher.js
│ ├── app.json
│ ├── App.js
│ ├── .babelrc
│ └── App.test.js
├── Example_3_Caching_selectors_with_Reselect
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ │ ├── features
│ │ │ ├── projects
│ │ │ │ └── .gitkeep
│ │ │ ├── search
│ │ │ │ └── .gitkeep
│ │ │ └── tasks
│ │ │ │ └── state
│ │ │ │ └── reducers
│ │ │ │ └── index.js
│ │ └── flux
│ │ │ └── AppDispatcher.js
│ ├── app.json
│ ├── App.js
│ ├── .babelrc
│ └── App.test.js
└── Example_1_Using_generator_to_get_task_details
│ ├── .nvmrc
│ ├── .watchmanconfig
│ ├── src
│ ├── features
│ │ ├── search
│ │ │ └── .gitkeep
│ │ ├── projects
│ │ │ └── .gitkeep
│ │ └── tasks
│ │ │ └── state
│ │ │ └── reducers
│ │ │ └── index.js
│ └── flux
│ │ └── AppDispatcher.js
│ ├── App.js
│ ├── app.json
│ ├── .babelrc
│ └── App.test.js
└── Chapter_9_Functional_Programming_patterns
└── Example_1_Using_Monads
├── .nvmrc
├── .watchmanconfig
├── src
├── features
│ ├── search
│ │ └── .gitkeep
│ ├── projects
│ │ └── .gitkeep
│ └── tasks
│ │ └── state
│ │ └── reducers
│ │ └── index.js
└── flux
│ └── AppDispatcher.js
├── App.js
├── app.json
├── .babelrc
└── App.test.js
/src/Chapter_2_View_patterns/Example_14_Linter/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_5_Image/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_7_Button/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_10_React_ref_API/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_11_Error_Boundary/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_12_Mixin_example/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_14_Linter/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_4_ScrollView_fix/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_5_Image/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_7_Button/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_8_Touchable_Opacity/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_11_Tweaking_styles/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_16_FPS_measure/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_1_Hello_World/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_5_Task_list/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_1_React_createElement/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_3_No_ScrollView_problem/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_9_Controlled_TextInput/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_12_Task_list_as_content/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_14_Easing_functions/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_8_Flexbox_hello_world/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_4_Flux_patterns/Example_1_Todo_app_with_Flux/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_1_Redux_integration/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_2_Task_app_with_Redux/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_4_Task_app_with_MobX/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_4_Tab_navigation/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_15_HOC_Composition/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_16_Useful_HOCs/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_10_React_ref_API/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_11_Error_Boundary/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_12_Mixin_example/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_13_Mixin_replaced_with_HOC/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_2_propTypes_and_defaultProps/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_4_ScrollView_fix/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_6_Hello_World_with_your_name/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_8_Touchable_Opacity/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_11_Tweaking_styles/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_13_Animated_introduction/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_15_Scheduling_animations/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_16_FPS_measure/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_9_Header_Main_and_Footer/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_1_First_local_API/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_2_Fetching_local_API/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_5_Using_Redux_Thunk/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_6_Using_Redux_Saga/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_5_Drawer_navigation/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_10_Decoupling_styles/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_1_Hello_World/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_2_Functional_Components/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_5_Task_list/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_1_React_createElement/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_3_No_ScrollView_problem/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_9_Controlled_TextInput/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_10_justifyContent_and_alignItems/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_12_Task_list_as_content/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_14_Easing_functions/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_1_three_ways_to_define_styles/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_2_Inheritance_of_Text_component/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_5_Listening_on_dimensions_change/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_8_Flexbox_hello_world/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_4_Flux_patterns/Example_1_Todo_app_with_Flux/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_1_Redux_integration/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_2_Task_app_with_Redux/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_4_Task_app_with_MobX/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_3_Lifting_state_to_Redux/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_1_Refactoring_structure/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_4_Tab_navigation/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_2_Selecting_from_Redux_store/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_9_Functional_Programming_patterns/Example_1_Using_Monads/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_15_HOC_Composition/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_16_Useful_HOCs/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_13_Mixin_replaced_with_HOC/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_2_propTypes_and_defaultProps/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_6_Hello_World_with_your_name/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_13_Animated_introduction/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_15_Scheduling_animations/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_9_Header_Main_and_Footer/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_3_Moving_to_single_source_of_truth/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_5_Persistent_storage_with_AsyncStorage/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_1_First_local_API/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_2_Fetching_local_API/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_5_Using_Redux_Thunk/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_6_Using_Redux_Saga/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_2_React_Navigator_First_Screen/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_5_Drawer_navigation/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_3_Caching_selectors_with_Reselect/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_10_Decoupling_styles/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_11_Container_expandable_component/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_14_Flexible_prop_names_in_HOC/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_2_Functional_Components/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_4_Stateful_expandable_component/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_6_Component_composition_red_text/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_7_App_layout_and_Welcome_screen/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_10_justifyContent_and_alignItems/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_1_three_ways_to_define_styles/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_2_Inheritance_of_Text_component/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_3_Composition_to_solve_inheritance_problems/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_4_Dimensions_width_and_height_not_updated/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_5_Listening_on_dimensions_change/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_6_Overlapping_boxes_with_absolute_position/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_7_mixing_absolute_and_relative_positioning/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_3_Lifting_state_to_Redux/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_1_Refactoring_structure/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_3_React_Navigator_Multiple_Screens/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_4_Tab_navigation/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_4_Tab_navigation/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_5_Drawer_navigation/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_1_Using_generator_to_get_task_details/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_2_Selecting_from_Redux_store/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_9_Functional_Programming_patterns/Example_1_Using_Monads/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_3_Functional_Components_with_props/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_3_Moving_to_single_source_of_truth/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_5_Persistent_storage_with_AsyncStorage/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_4_Handling_dispatch_without_Redux_Thunk/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_1_Refactoring_structure/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_1_Refactoring_structure/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_2_React_Navigator_First_Screen/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_5_Drawer_navigation/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_3_Caching_selectors_with_Reselect/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_9_Functional_Programming_patterns/Example_1_Using_Monads/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_11_Container_expandable_component/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_12_Higher_order_component_makeExpandable/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_13_Higher_order_component_show_hide_button/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_14_Flexible_prop_names_in_HOC/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_4_Stateful_expandable_component/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_6_Component_composition_red_text/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_7_App_layout_and_Welcome_screen/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_8_Snapshot_test_of_expandable_component/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_9_Refactoring_to_presentational_component/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.11.4
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_3_Composition_to_solve_inheritance_problems/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_4_Dimensions_width_and_height_not_updated/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_6_Overlapping_boxes_with_absolute_position/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_7_mixing_absolute_and_relative_positioning/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_2_React_Navigator_First_Screen/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_3_React_Navigator_Multiple_Screens/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_1_Using_generator_to_get_task_details/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_2_Selecting_from_Redux_store/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_2_Selecting_from_Redux_store/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_9_Functional_Programming_patterns/Example_1_Using_Monads/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_3_Functional_Components_with_props/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_4_Handling_dispatch_without_Redux_Thunk/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_2_React_Navigator_First_Screen/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_3_React_Navigator_Multiple_Screens/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/.gitattributes:
--------------------------------------------------------------------------------
1 | *.pbxproj -text
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/.gitattributes:
--------------------------------------------------------------------------------
1 | *.pbxproj -text
2 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_1_Using_generator_to_get_task_details/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_3_Caching_selectors_with_Reselect/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_3_Caching_selectors_with_Reselect/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/src/features/search/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_12_Higher_order_component_makeExpandable/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_13_Higher_order_component_show_hide_button/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_8_Snapshot_test_of_expandable_component/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_9_Refactoring_to_presentational_component/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_3_React_Navigator_Multiple_Screens/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_1_Using_generator_to_get_task_details/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/src/features/projects/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_14_Linter/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_5_Image/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_7_Button/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_16_FPS_measure/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_4_Flux_patterns/Example_1_Todo_app_with_Flux/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_2_Task_app_with_Redux/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_4_Task_app_with_MobX/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["react-native"]
3 | }
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["react-native"]
3 | }
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_4_ScrollView_fix/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_8_Touchable_Opacity/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_11_Tweaking_styles/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_14_Easing_functions/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_4_Flux_patterns/Example_1_Todo_app_with_Flux/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_1_Redux_integration/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/Counter';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_1_Redux_integration/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_4_Task_app_with_MobX/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_1_First_local_API/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_5_Using_Redux_Thunk/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_6_Using_Redux_Saga/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_1_Hello_World/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_5_Task_list/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_1_React_createElement/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_3_No_ScrollView_problem/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_9_Controlled_TextInput/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_12_Task_list_as_content/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_13_Animated_introduction/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_15_Scheduling_animations/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_8_Flexbox_hello_world/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_9_Header_Main_and_Footer/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_2_Task_app_with_Redux/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_1_First_local_API/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_2_Fetching_local_API/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_3_Lifting_state_to_Redux/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_4_Tab_navigation/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_10_Decoupling_styles/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_15_HOC_Composition/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_16_Useful_HOCs/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_2_propTypes_and_defaultProps/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_6_Hello_World_with_your_name/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_3_Moving_to_single_source_of_truth/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_2_Fetching_local_API/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_5_Using_Redux_Thunk/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_6_Using_Redux_Saga/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_1_Refactoring_structure/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_4_Tab_navigation/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/screens/index';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_5_Drawer_navigation/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/screens/index';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_5_Drawer_navigation/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_2_Functional_Components/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_10_justifyContent_and_alignItems/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_1_three_ways_to_define_styles/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_2_Inheritance_of_Text_component/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_5_Listening_on_dimensions_change/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_3_Moving_to_single_source_of_truth/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_5_Persistent_storage_with_AsyncStorage/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_3_Lifting_state_to_Redux/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/screens/index';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Example123",
3 | "displayName": "Example123"
4 | }
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Example123",
3 | "displayName": "Example123"
4 | }
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_2_Selecting_from_Redux_store/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_9_Functional_Programming_patterns/Example_1_Using_Monads/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/screens/index';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_9_Functional_Programming_patterns/Example_1_Using_Monads/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_2_Task_app_with_Redux/src/data/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_5_Persistent_storage_with_AsyncStorage/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_4_Handling_dispatch_without_Redux_Thunk/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/App';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_2_React_Navigator_First_Screen/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/screens/index';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_2_React_Navigator_First_Screen/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_4_Tab_navigation/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_2_Selecting_from_Redux_store/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/screens/index';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_3_Caching_selectors_with_Reselect/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_11_Container_expandable_component/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_14_Flexible_prop_names_in_HOC/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_3_Functional_Components_with_props/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_4_Stateful_expandable_component/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_6_Component_composition_red_text/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_7_App_layout_and_Welcome_screen/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_3_Composition_to_solve_inheritance_problems/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_4_Dimensions_width_and_height_not_updated/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_6_Overlapping_boxes_with_absolute_position/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_7_mixing_absolute_and_relative_positioning/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "26.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_1_Redux_integration/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store.dispatch;
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_1_First_local_API/src/data/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_2_Fetching_local_API/src/data/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_5_Using_Redux_Thunk/src/data/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_6_Using_Redux_Saga/src/data/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_1_Refactoring_structure/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/screens/TaskListScreen';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_3_React_Navigator_Multiple_Screens/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/screens/index';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_3_React_Navigator_Multiple_Screens/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_5_Drawer_navigation/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/App.js:
--------------------------------------------------------------------------------
1 | import start from './src/screens/index';
2 |
3 | export default start();
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/index.js:
--------------------------------------------------------------------------------
1 | import start from './src/screens/index';
2 |
3 | export default start();
4 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_1_Using_generator_to_get_task_details/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/screens/index';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_1_Using_generator_to_get_task_details/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_3_Caching_selectors_with_Reselect/App.js:
--------------------------------------------------------------------------------
1 | import App from './src/screens/index';
2 |
3 | export default App;
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_8_Snapshot_test_of_expandable_component/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_10_React_ref_API/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0",
4 | "privacy": "unlisted"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_11_Error_Boundary/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0",
4 | "privacy": "unlisted"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_12_Mixin_example/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0",
4 | "privacy": "unlisted"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/Chapter_4_Flux_patterns/Example_1_Todo_app_with_Flux/src/data/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import { Dispatcher } from 'flux';
2 |
3 | export default new Dispatcher();
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_3_Lifting_state_to_Redux/src/data/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_4_Handling_dispatch_without_Redux_Thunk/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_1_Refactoring_structure/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_2_Selecting_from_Redux_store/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_9_Functional_Programming_patterns/Example_1_Using_Monads/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_12_Higher_order_component_makeExpandable/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_13_Higher_order_component_show_hide_button/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_9_Refactoring_to_presentational_component/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_3_Moving_to_single_source_of_truth/src/data/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_5_Persistent_storage_with_AsyncStorage/src/data/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_2_React_Navigator_First_Screen/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_3_Caching_selectors_with_Reselect/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-actions/register';
2 | import '@storybook/addon-links/register';
3 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_13_Mixin_replaced_with_HOC/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "25.0.0",
4 | "privacy": "unlisted"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_3_React_Navigator_Multiple_Screens/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_1_Using_generator_to_get_task_details/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/src/flux/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-actions/register';
2 | import '@storybook/addon-links/register';
3 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_7_Button/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import LikeCounter from './src/LikeCounter';
3 |
4 | export default () => ;
5 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_4_Handling_dispatch_without_Redux_Thunk/src/data/AppDispatcher.js:
--------------------------------------------------------------------------------
1 | import store from './AppStore';
2 |
3 | export default store;
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/src/layout/LanguageSwitcher/constants.js:
--------------------------------------------------------------------------------
1 | export const LANG_ENGLISH = 'EN';
2 | export const LANG_POLISH = 'PL';
3 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-actions/register';
2 | import '@storybook/addon-links/register';
3 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/layout/LanguageSwitcher/constants.js:
--------------------------------------------------------------------------------
1 | export const LANG_ENGLISH = 'EN';
2 | export const LANG_POLISH = 'PL';
3 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/layout/LanguageSwitcher/constants.js:
--------------------------------------------------------------------------------
1 | export const LANG_ENGLISH = 'EN';
2 | export const LANG_POLISH = 'PL';
3 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-actions/register';
2 | import '@storybook/addon-links/register';
3 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-actions/register';
2 | import '@storybook/addon-links/register';
3 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-actions/register';
2 | import '@storybook/addon-links/register';
3 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-actions/register';
2 | import '@storybook/addon-links/register';
3 |
--------------------------------------------------------------------------------
/src/Chapter_4_Flux_patterns/Example_1_Todo_app_with_Flux/src/data/TasksActionTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | ADD_TASK: 'ADD_TASK'
3 | };
4 |
5 | export default ActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_2_Task_app_with_Redux/src/data/TasksActionTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | ADD_TASK: 'ADD_TASK'
3 | };
4 |
5 | export default ActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/src/features/language/constants.js:
--------------------------------------------------------------------------------
1 | export const LANG_ENGLISH = 'EN';
2 | export const LANG_POLISH = 'PL';
3 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/layout/LanguageSwitcher/constants.js:
--------------------------------------------------------------------------------
1 | export const LANG_ENGLISH = 'EN';
2 | export const LANG_POLISH = 'PL';
3 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_8_Touchable_Opacity/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import LikeCounter from './src/LikeCounter';
3 |
4 | export default () => ;
5 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_1_First_local_API/src/data/TasksActionTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | ADD_TASK: 'ADD_TASK'
3 | };
4 |
5 | export default ActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_2_Fetching_local_API/src/data/TasksActionTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | ADD_TASK: 'ADD_TASK'
3 | };
4 |
5 | export default ActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_4_Tab_navigation/src/features/tasks/reducers/index.js:
--------------------------------------------------------------------------------
1 | import taskReducer from './taskReducer';
2 |
3 | export default { tasks: taskReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_5_Drawer_navigation/src/features/tasks/reducers/index.js:
--------------------------------------------------------------------------------
1 | import taskReducer from './taskReducer';
2 |
3 | export default { tasks: taskReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-actions/register';
2 | import '@storybook/addon-links/register';
3 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-actions/register';
2 | import '@storybook/addon-links/register';
3 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/storybook/addons.js:
--------------------------------------------------------------------------------
1 | import '@storybook/addon-actions/register';
2 | import '@storybook/addon-links/register';
3 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_1_Refactoring_structure/src/features/tasks/reducers/index.js:
--------------------------------------------------------------------------------
1 | import taskReducer from './taskReducer';
2 |
3 | export default { tasks: taskReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Example123
3 |
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Example123
3 |
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/features/tasks/state/reducers/index.ts:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_5_Image/src/react.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_2_View_patterns/Example_5_Image/src/react.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/ios/Example123/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/src/features/tasks/reducers/index.js:
--------------------------------------------------------------------------------
1 | import taskReducer from './taskReducer';
2 |
3 | export default { tasks: taskReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/ios/Example123/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/src/features/tasks/reducers/index.js:
--------------------------------------------------------------------------------
1 | import taskReducer from './taskReducer';
2 |
3 | export default { tasks: taskReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/layout/LanguageSwitcher/state/selectors.js:
--------------------------------------------------------------------------------
1 | const languageSelector = state => state.language;
2 |
3 | export default languageSelector;
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/features/tasks/state/reducers/index.ts:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_2_React_Navigator_First_Screen/src/features/tasks/reducers/index.js:
--------------------------------------------------------------------------------
1 | import taskReducer from './taskReducer';
2 |
3 | export default { tasks: taskReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_3_React_Navigator_Multiple_Screens/src/features/tasks/reducers/index.js:
--------------------------------------------------------------------------------
1 | import taskReducer from './taskReducer';
2 |
3 | export default { tasks: taskReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_9_Functional_Programming_patterns/Example_1_Using_Monads/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/src/layout/LanguageSwitcher/state/selectors.js:
--------------------------------------------------------------------------------
1 | const languageSelector = state => state.language;
2 |
3 | export default languageSelector;
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/layout/LanguageSwitcher/state/selectors.js:
--------------------------------------------------------------------------------
1 | const languageSelector = state => state.language;
2 |
3 | export default languageSelector;
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/layout/LanguageSwitcher/state/selectors.js:
--------------------------------------------------------------------------------
1 | const languageSelector = state => state.language;
2 |
3 | export default languageSelector;
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/layout/LanguageSwitcher/constants.ts:
--------------------------------------------------------------------------------
1 | enum LANGUAGES {
2 | ENGLISH = 'EN',
3 | POLISH = 'PL'
4 | }
5 |
6 | export default LANGUAGES;
7 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/layout/LanguageSwitcher/constants.ts:
--------------------------------------------------------------------------------
1 | enum LANGUAGES {
2 | ENGLISH = 'EN',
3 | POLISH = 'PL'
4 | }
5 |
6 | export default LANGUAGES;
7 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_6_Hello_World_with_your_name/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import TextInputExample from './src/TextInputExample';
3 |
4 | export default () => ;
5 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_2_Selecting_from_Redux_store/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/layout/LanguageSwitcher/constants.ts:
--------------------------------------------------------------------------------
1 | enum LANGUAGES {
2 | ENGLISH = 'EN',
3 | POLISH = 'PL'
4 | }
5 |
6 | export default LANGUAGES;
7 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_14_Linter/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_5_Image/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_7_Button/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_1_Using_generator_to_get_task_details/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_3_Caching_selectors_with_Reselect/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/src/features/language/state/selectors.js:
--------------------------------------------------------------------------------
1 | const languageSelector = state => state.language;
2 |
3 | export default languageSelector;
4 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/src/features/tasks/state/reducers/index.js:
--------------------------------------------------------------------------------
1 | import tasksReducer from './tasksReducer';
2 |
3 | export default { tasks: tasksReducer };
4 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/layout/LanguageSwitcher/state/selectors.js:
--------------------------------------------------------------------------------
1 | const languageSelector = state => state.language;
2 |
3 | export default languageSelector;
4 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_10_React_ref_API/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_12_Mixin_example/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_2_propTypes_and_defaultProps/App.js:
--------------------------------------------------------------------------------
1 | import makeExpandable from './src/makeExpandable';
2 | import HelloBox from './src/HelloBox';
3 |
4 | export default makeExpandable(HelloBox);
5 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_4_ScrollView_fix/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_16_FPS_measure/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/.buckconfig:
--------------------------------------------------------------------------------
1 |
2 | [android]
3 | target = Google Inc.:Google APIs:23
4 |
5 | [maven_repositories]
6 | central = https://repo1.maven.org/maven2
7 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/.buckconfig:
--------------------------------------------------------------------------------
1 |
2 | [android]
3 | target = Google Inc.:Google APIs:23
4 |
5 | [maven_repositories]
6 | central = https://repo1.maven.org/maven2
7 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_11_Error_Boundary/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_1_React_createElement/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_8_Touchable_Opacity/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_11_Tweaking_styles/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_14_Easing_functions/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_4_Flux_patterns/Example_1_Todo_app_with_Flux/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_1_Redux_integration/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_1_Redux_integration/src/flux/AppActionTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | INC_COUNTER: 'INC_COUNTER',
3 | DEC_COUNTER: 'DEC_COUNTER'
4 | };
5 |
6 | export default ActionTypes;
7 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/features/tasks/actions/types.ts:
--------------------------------------------------------------------------------
1 | export type FetchTaskStartActionType = {
2 | type: string,
3 | payload: {
4 | taskId: string
5 | }
6 | };
7 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_16_Useful_HOCs/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_1_Hello_World/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_5_Task_list/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_13_Mixin_replaced_with_HOC/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_3_No_ScrollView_problem/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_9_Controlled_TextInput/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_12_Task_list_as_content/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_13_Animated_introduction/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_15_Scheduling_animations/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_8_Flexbox_hello_world/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_9_Header_Main_and_Footer/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_2_Task_app_with_Redux/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_1_First_local_API/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_4_Tab_navigation/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/src/layout/LanguageSwitcher/actions/LanguageChangeTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | LANGUAGE_CHANGE: 'LANGUAGE_CHANGE'
3 | };
4 |
5 | export default ActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/layout/LanguageSwitcher/actions/LanguageChangeTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | LANGUAGE_CHANGE: 'LANGUAGE_CHANGE'
3 | };
4 |
5 | export default ActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_10_Decoupling_styles/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_15_HOC_Composition/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_14_Linter/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import LoginForm from './src/LoginForm';
3 | import {TextInput, Text, View, Button} from 'react-native'
4 |
5 | export default () =>
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_2_propTypes_and_defaultProps/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_6_Hello_World_with_your_name/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_1_three_ways_to_define_styles/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_2_Fetching_local_API/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_5_Using_Redux_Thunk/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_6_Using_Redux_Saga/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_1_Refactoring_structure/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_5_Drawer_navigation/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/keystores/debug.keystore.properties:
--------------------------------------------------------------------------------
1 | key.store=debug.keystore
2 | key.alias=androiddebugkey
3 | key.store.password=android
4 | key.alias.password=android
5 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/keystores/debug.keystore.properties:
--------------------------------------------------------------------------------
1 | key.store=debug.keystore
2 | key.alias=androiddebugkey
3 | key.store.password=android
4 | key.alias.password=android
5 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/layout/LanguageSwitcher/actions/LanguageChangeTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | LANGUAGE_CHANGE: 'LANGUAGE_CHANGE'
3 | };
4 |
5 | export default ActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_2_Functional_Components/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_10_justifyContent_and_alignItems/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_2_Inheritance_of_Text_component/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_5_Listening_on_dimensions_change/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_3_Moving_to_single_source_of_truth/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_3_Lifting_state_to_Redux/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/ios/HandOnDesignPatternsWithReactNativeChapter7Example6/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_2_Selecting_from_Redux_store/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_9_Functional_Programming_patterns/Example_1_Using_Monads/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/layout/LanguageSwitcher/actions/LanguageChangeTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | LANGUAGE_CHANGE: 'LANGUAGE_CHANGE'
3 | };
4 |
5 | export default ActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/common/NavigateButton/index.ts:
--------------------------------------------------------------------------------
1 | import { withNavigation } from 'react-navigation';
2 | import NavButtonView from './view';
3 |
4 | export default withNavigation(NavButtonView);
5 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/common/NavigateButton/index.ts:
--------------------------------------------------------------------------------
1 | import { withNavigation } from 'react-navigation';
2 | import NavButtonView from './view';
3 |
4 | export default withNavigation(NavButtonView);
5 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_14_Flexible_prop_names_in_HOC/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_3_Moving_to_single_source_of_truth/src/data/TasksActionTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | ADD_TASK: 'ADD_TASK',
3 | TASK_FORM_CHANGE: 'TASK_FORM_CHANGE'
4 | };
5 |
6 | export default ActionTypes;
7 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_5_Persistent_storage_with_AsyncStorage/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_2_React_Navigator_First_Screen/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_3_Caching_selectors_with_Reselect/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/src/features/language/actions/LanguageChangeTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | LANGUAGE_CHANGE: 'LANGUAGE_CHANGE'
3 | };
4 |
5 | export default ActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/src/common/NavigateButton/index.js:
--------------------------------------------------------------------------------
1 | import { withNavigation } from 'react-navigation';
2 | import NavButtonView from './view';
3 |
4 | export default withNavigation(NavButtonView);
5 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/common/NavigateButton/index.ts:
--------------------------------------------------------------------------------
1 | import { withNavigation } from 'react-navigation';
2 | import NavButtonView from './view';
3 |
4 | export default withNavigation(NavButtonView);
5 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/common/NavigateButton/index.ts:
--------------------------------------------------------------------------------
1 | import { withNavigation } from 'react-navigation';
2 | import NavButtonView from './view';
3 |
4 | export default withNavigation(NavButtonView);
5 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/common/NavigateButton/index.ts:
--------------------------------------------------------------------------------
1 | import { withNavigation } from 'react-navigation';
2 | import NavButtonView from './view';
3 |
4 | export default withNavigation(NavButtonView);
5 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_11_Container_expandable_component/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_3_Functional_Components_with_props/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_4_Stateful_expandable_component/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_6_Component_composition_red_text/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_7_App_layout_and_Welcome_screen/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_9_Controlled_TextInput/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import LoginForm from './src/LoginForm';
3 | import {TextInput, Text, View, Button} from 'react-native'
4 |
5 | export default () =>
6 |
7 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_3_Composition_to_solve_inheritance_problems/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_4_Dimensions_width_and_height_not_updated/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_6_Overlapping_boxes_with_absolute_position/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_7_mixing_absolute_and_relative_positioning/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_5_Persistent_storage_with_AsyncStorage/src/data/TasksActionTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | ADD_TASK: 'ADD_TASK',
3 | TASK_FORM_CHANGE: 'TASK_FORM_CHANGE'
4 | };
5 |
6 | export default ActionTypes;
7 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_3_React_Navigator_Multiple_Screens/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_1_Using_generator_to_get_task_details/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/layout/LanguageSwitcher/actions/LanguageChangeActionTypes.ts:
--------------------------------------------------------------------------------
1 | enum LanguageChangeActionTypes {
2 | CHANGE = 'LANGUAGE_CHANGE'
3 | }
4 |
5 | export default LanguageChangeActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/layout/LanguageSwitcher/actions/LanguageChangeActionTypes.ts:
--------------------------------------------------------------------------------
1 | enum LanguageChangeActionTypes {
2 | CHANGE = 'LANGUAGE_CHANGE'
3 | }
4 |
5 | export default LanguageChangeActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_12_Higher_order_component_makeExpandable/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_8_Snapshot_test_of_expandable_component/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_4_Handling_dispatch_without_Redux_Thunk/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/storybook/stories/CenterView/style.js:
--------------------------------------------------------------------------------
1 | export default {
2 | main: {
3 | flex: 1,
4 | justifyContent: 'center',
5 | alignItems: 'center',
6 | backgroundColor: '#F5FCFF',
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/common/NavigateButton/index.ts:
--------------------------------------------------------------------------------
1 | import { withNavigation } from 'react-navigation';
2 | import NavButtonView from './view';
3 |
4 | export default withNavigation(NavButtonView);
5 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/layout/LanguageSwitcher/actions/LanguageChangeActionTypes.ts:
--------------------------------------------------------------------------------
1 | enum LanguageChangeActionTypes {
2 | CHANGE = 'LANGUAGE_CHANGE'
3 | }
4 |
5 | export default LanguageChangeActionTypes;
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_13_Higher_order_component_show_hide_button/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_9_Refactoring_to_presentational_component/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "plugins": ["transform-react-jsx-source"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/src/examples.js:
--------------------------------------------------------------------------------
1 | import { React } from 'react-native';
2 | import TaskScreen from './screens/TaskListScreen';
3 |
4 | export const taskScreen = () => ;
5 |
6 | export default taskScreen;
7 |
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/examples.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import TaskScreen from './screens/TaskListScreen';
3 |
4 | export const taskScreen = () => ;
5 |
6 | export default taskScreen;
7 |
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/examples.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import TaskScreen from './screens/TaskListScreen';
3 |
4 | export const taskScreen = () => ;
5 |
6 | export default taskScreen;
7 |
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/layout/LanguageSwitcher/state/selectors.ts:
--------------------------------------------------------------------------------
1 | import { State } from '../../../flux/types';
2 |
3 | const languageSelector = (state:State) => state.language;
4 |
5 | export default languageSelector;
6 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/src/components/NavigateButton/index.js:
--------------------------------------------------------------------------------
1 | import { withNavigation } from 'react-navigation';
2 | import NavButtonView from './view';
3 |
4 | export default withNavigation(NavButtonView);
5 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/src/components/NavigateButton/index.js:
--------------------------------------------------------------------------------
1 | import { withNavigation } from 'react-navigation';
2 | import NavButtonView from './view';
3 |
4 | export default withNavigation(NavButtonView);
5 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/storybook/stories/CenterView/style.js:
--------------------------------------------------------------------------------
1 | export default {
2 | main: {
3 | flex: 1,
4 | justifyContent: 'center',
5 | alignItems: 'center',
6 | backgroundColor: '#F5FCFF',
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/src/examples.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import TaskScreen from './screens/TaskListScreen';
3 |
4 | export const taskScreen = () => ;
5 |
6 | export default taskScreen;
7 |
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/examples.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import TaskScreen from './screens/TaskListScreen';
3 |
4 | export const taskScreen = () => ;
5 |
6 | export default taskScreen;
7 |
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/examples.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import TaskScreen from './screens/TaskListScreen';
3 |
4 | export const taskScreen = () => ;
5 |
6 | export default taskScreen;
7 |
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/layout/LanguageSwitcher/state/selectors.ts:
--------------------------------------------------------------------------------
1 | import { State } from '../../../flux/types';
2 |
3 | const languageSelector = (state:State) => state.language;
4 |
5 | export default languageSelector;
6 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/src/examples.js:
--------------------------------------------------------------------------------
1 | import { React } from 'react-native';
2 | import TaskScreen from './screens/TaskListScreen';
3 |
4 | export const taskScreen = () => ;
5 |
6 | export default taskScreen;
7 |
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/flux/types.ts:
--------------------------------------------------------------------------------
1 | import { TasksState } from '../features/tasks/state/types';
2 | import { LanguageState } from '../layout/LanguageSwitcher/state/types';
3 |
4 | export type State = TasksState & LanguageState
5 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/flux/types.ts:
--------------------------------------------------------------------------------
1 | import { TasksState } from '../features/tasks/state/types';
2 | import { LanguageState } from '../layout/LanguageSwitcher/state/types';
3 |
4 | export type State = TasksState & LanguageState
5 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/keystores/BUCK:
--------------------------------------------------------------------------------
1 | keystore(
2 | name = "debug",
3 | properties = "debug.keystore.properties",
4 | store = "debug.keystore",
5 | visibility = [
6 | "PUBLIC",
7 | ],
8 | )
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/keystores/BUCK:
--------------------------------------------------------------------------------
1 | keystore(
2 | name = "debug",
3 | properties = "debug.keystore.properties",
4 | store = "debug.keystore",
5 | visibility = [
6 | "PUBLIC",
7 | ],
8 | )
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/examples.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import TaskScreen from './screens/TaskListScreen';
3 |
4 | export const taskScreen = () => ;
5 |
6 | export default taskScreen;
7 |
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/flux/types.ts:
--------------------------------------------------------------------------------
1 | import { TasksState } from '../features/tasks/state/types';
2 | import { LanguageState } from '../layout/LanguageSwitcher/state/types';
3 |
4 | export type State = TasksState & LanguageState
5 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/storybook/stories/CenterView/style.js:
--------------------------------------------------------------------------------
1 | export default {
2 | main: {
3 | flex: 1,
4 | justifyContent: 'center',
5 | alignItems: 'center',
6 | backgroundColor: '#F5FCFF',
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/layout/LanguageSwitcher/state/types.ts:
--------------------------------------------------------------------------------
1 | import LANGUAGES from '../constants';
2 |
3 | export type LanguageReducerState = LANGUAGES;
4 |
5 | export type LanguageState = {
6 | language: LanguageReducerState
7 | };
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/layout/LanguageSwitcher/state/types.ts:
--------------------------------------------------------------------------------
1 | import LANGUAGES from '../constants';
2 |
3 | export type LanguageReducerState = LANGUAGES;
4 |
5 | export type LanguageState = {
6 | language: LanguageReducerState
7 | };
8 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/index.js:
--------------------------------------------------------------------------------
1 | /** @format */
2 |
3 | import {AppRegistry} from 'react-native';
4 | import App from './App';
5 | import {name as appName} from './app.json';
6 |
7 | AppRegistry.registerComponent(appName, () => App);
8 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/src/examples.js:
--------------------------------------------------------------------------------
1 | import { React } from 'react-native';
2 | import TaskScreen from './screens/TaskListScreen';
3 |
4 | export const taskScreen = () => ;
5 |
6 | export default taskScreen;
7 |
8 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/storybook/stories/CenterView/style.js:
--------------------------------------------------------------------------------
1 | export default {
2 | main: {
3 | flex: 1,
4 | justifyContent: 'center',
5 | alignItems: 'center',
6 | backgroundColor: '#F5FCFF',
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/src/examples.js:
--------------------------------------------------------------------------------
1 | import { React } from 'react-native';
2 | import TaskScreen from './screens/TaskListScreen';
3 |
4 | export const taskScreen = () => ;
5 |
6 | export default taskScreen;
7 |
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/src/features/tasks/actions/types.ts:
--------------------------------------------------------------------------------
1 | import TasksActionType from './TasksActionTypes';
2 |
3 | export type FetchTaskStartActionType = {
4 | type: TasksActionType,
5 | payload: {
6 | taskId: string
7 | }
8 | };
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/src/features/tasks/actions/types.ts:
--------------------------------------------------------------------------------
1 | import TasksActionType from './TasksActionTypes';
2 |
3 | export type FetchTaskStartActionType = {
4 | type: TasksActionType,
5 | payload: {
6 | taskId: string
7 | }
8 | };
9 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_6_Using_Redux_Saga/src/sagas/index.js:
--------------------------------------------------------------------------------
1 | import { all } from 'redux-saga/effects';
2 | import watchLastFetchTasks from './fetchTasks';
3 |
4 | function* rootSaga() {
5 | yield all([watchLastFetchTasks()]);
6 | }
7 |
8 | export default rootSaga;
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/java/com/example123/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.example123;
2 |
3 | import com.reactnativenavigation.controllers.SplashActivity;
4 |
5 | public class MainActivity extends SplashActivity {
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/src/features/tasks/actions/types.ts:
--------------------------------------------------------------------------------
1 | import TasksActionType from './TasksActionTypes';
2 |
3 | export type FetchTaskStartActionType = {
4 | type: TasksActionType,
5 | payload: {
6 | taskId: string
7 | }
8 | };
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/layout/LanguageSwitcher/state/types.ts:
--------------------------------------------------------------------------------
1 | import LANGUAGES from '../constants';
2 |
3 | export type LanguageReducerState = LANGUAGES;
4 |
5 | export type LanguageState = {
6 | readonly language: LanguageReducerState
7 | };
8 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_2_propTypes_and_defaultProps/src/HelloText.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {Text} from 'react-native';
3 |
4 | const HelloText = ({children, ...otherProps}) => (
5 | {children}
6 | );
7 |
8 | export default HelloText;
9 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0",
4 | "packagerOpts": {
5 | "sourceExts": ["ts", "tsx"],
6 | "transformer": "node_modules/react-native-typescript-transformer/index.js"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0",
4 | "packagerOpts": {
5 | "sourceExts": ["ts", "tsx"],
6 | "transformer": "node_modules/react-native-typescript-transformer/index.js"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0",
4 | "packagerOpts": {
5 | "sourceExts": ["ts", "tsx"],
6 | "transformer": "node_modules/react-native-typescript-transformer/index.js"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/src/features/tasks/actions/types.ts:
--------------------------------------------------------------------------------
1 | import TasksActionType from './TasksActionTypes';
2 |
3 | export type FetchTaskStartActionType = {
4 | type: TasksActionType,
5 | payload: {
6 | taskId: string
7 | }
8 | };
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Entypo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Entypo.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Zocial.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Zocial.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Entypo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Entypo.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Zocial.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Zocial.ttf
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0",
4 | "packagerOpts": {
5 | "sourceExts": ["ts", "tsx"],
6 | "transformer": "node_modules/react-native-typescript-transformer/index.js"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0",
4 | "packagerOpts": {
5 | "sourceExts": ["ts", "tsx"],
6 | "transformer": "node_modules/react-native-typescript-transformer/index.js"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Feather.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Feather.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Ionicons.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Octicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Octicons.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Feather.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Feather.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Ionicons.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Octicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Octicons.ttf
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_3_union_type_intersection_type/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "sdkVersion": "27.0.0",
4 | "packagerOpts": {
5 | "sourceExts": ["ts", "tsx"],
6 | "transformer": "node_modules/react-native-typescript-transformer/index.js"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/EvilIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/EvilIcons.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/FontAwesome.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/FontAwesome.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Foundation.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/Foundation.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/EvilIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/EvilIcons.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/FontAwesome.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/FontAwesome.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Foundation.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/Foundation.ttf
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/src/features/tasks/actions/types.ts:
--------------------------------------------------------------------------------
1 | import TasksActionType from './TasksActionTypes';
2 |
3 | export type FetchTaskStartActionType = {
4 | readonly type: TasksActionType,
5 | readonly payload: {
6 | readonly taskId: string
7 | }
8 | };
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/MaterialIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/MaterialIcons.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/MaterialIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/MaterialIcons.ttf
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_14_Linter/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_5_Image/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_7_Button/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_2_Task_app_with_Redux/src/data/AppStore.js:
--------------------------------------------------------------------------------
1 | import { combineReducers, createStore } from 'redux';
2 | import taskReducer from '../reducers/taskReducer';
3 |
4 | const rootReducer = combineReducers({ tasks: taskReducer });
5 | const store = createStore(rootReducer);
6 | export default store;
7 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/SimpleLineIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/SimpleLineIcons.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/SimpleLineIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/SimpleLineIcons.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_10_React_ref_API/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_12_Mixin_example/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_4_ScrollView_fix/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_16_FPS_measure/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_1_First_local_API/src/data/AppStore.js:
--------------------------------------------------------------------------------
1 | import { combineReducers, createStore } from 'redux';
2 | import taskReducer from '../reducers/taskReducer';
3 |
4 | const rootReducer = combineReducers({ tasks: taskReducer });
5 | const store = createStore(rootReducer);
6 | export default store;
7 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'Example123'
2 | include ':react-native-vector-icons'
3 | project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
4 |
5 | include ':app'
6 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_8_Snapshot_test_of_expandable_component/coverage/lcov-report/sort-arrow-sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_1_React_component_patterns/Example_8_Snapshot_test_of_expandable_component/coverage/lcov-report/sort-arrow-sprite.png
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_11_Error_Boundary/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_1_React_createElement/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_8_Touchable_Opacity/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_11_Tweaking_styles/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_14_Easing_functions/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_4_Flux_patterns/Example_1_Todo_app_with_Flux/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_4_Task_app_with_MobX/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_2_Fetching_local_API/src/data/AppStore.js:
--------------------------------------------------------------------------------
1 | import { combineReducers, createStore } from 'redux';
2 | import taskReducer from '../reducers/taskReducer';
3 |
4 | const rootReducer = combineReducers({ tasks: taskReducer });
5 | const store = createStore(rootReducer);
6 | export default store;
7 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_3_Lifting_state_to_Redux/src/data/AppStore.js:
--------------------------------------------------------------------------------
1 | import { combineReducers, createStore } from 'redux';
2 | import taskReducer from '../reducers/taskReducer';
3 |
4 | const rootReducer = combineReducers({ tasks: taskReducer });
5 | const store = createStore(rootReducer);
6 | export default store;
7 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_3_Lifting_state_to_Redux/src/data/TasksActionTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | ADD_TASK: 'ADD_TASK',
3 | TASK_FETCH_START: 'TASK_FETCH_START',
4 | TASK_FETCH_COMPLETE: 'TASK_FETCH_COMPLETE',
5 | TASK_FETCH_ERROR: 'TASK_FETCH_ERROR'
6 | };
7 |
8 | export default ActionTypes;
9 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.5.1-all.zip
6 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.5.1-all.zip
6 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_16_Useful_HOCs/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_1_Hello_World/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_5_Task_list/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_13_Mixin_replaced_with_HOC/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_3_No_ScrollView_problem/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_9_Controlled_TextInput/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_12_Task_list_as_content/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_13_Animated_introduction/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_15_Scheduling_animations/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_8_Flexbox_hello_world/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_9_Header_Main_and_Footer/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_1_Redux_integration/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 |
4 | import App from './App';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_2_Task_app_with_Redux/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_4_Task_app_with_MobX/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["babel-preset-expo"],
3 | "env": {
4 | "development": {
5 | "presets": ["react-native"],
6 | "plugins": [
7 | "transform-react-jsx-source",
8 | "transform-decorators-legacy"
9 | ]
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_1_First_local_API/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_4_Tab_navigation/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_6_Standalone_React_Native/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ajdija/hands-on-design-patterns-with-react-native/HEAD/src/Chapter_7_Navigational_patterns/Example_7_React_Native_Navigation/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_10_Decoupling_styles/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_15_HOC_Composition/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_2_propTypes_and_defaultProps/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_2_View_patterns/Example_6_Hello_World_with_your_name/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_1_three_ways_to_define_styles/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_2_Fetching_local_API/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_5_Using_Redux_Thunk/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_6_Using_Redux_Saga/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_1_Refactoring_structure/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_5_Drawer_navigation/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_4_directory_structure/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_4_generic_types/App.js:
--------------------------------------------------------------------------------
1 | import StandaloneApp from './build/dist/Root';
2 | import StoryBookApp from './build/dist/storybook';
3 |
4 | // CRNA process ignores all env variables that didn't start with REACT_NATIVE_
5 | export default process.env['REACT_NATIVE_IS_STORY_BOOK'] ? StoryBookApp : StandaloneApp;
6 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_5_immutability/App.js:
--------------------------------------------------------------------------------
1 | import StandaloneApp from './build/dist/Root';
2 | import StoryBookApp from './build/dist/storybook';
3 |
4 | // CRNA process ignores all env variables that didn't start with REACT_NATIVE_
5 | export default process.env['REACT_NATIVE_IS_STORY_BOOK'] ? StoryBookApp : StandaloneApp;
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_2_Functional_Components/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_10_justifyContent_and_alignItems/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_2_Inheritance_of_Text_component/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_5_Listening_on_dimensions_change/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_3_Moving_to_single_source_of_truth/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_3_Lifting_state_to_Redux/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_4_Handling_dispatch_without_Redux_Thunk/src/data/AppStore.js:
--------------------------------------------------------------------------------
1 | import { combineReducers, createStore } from 'redux';
2 | import taskReducer from '../reducers/taskReducer';
3 |
4 | const rootReducer = combineReducers({ tasks: taskReducer });
5 | const store = createStore(rootReducer);
6 | export default store;
7 |
--------------------------------------------------------------------------------
/src/Chapter_6_Data_transfer_patterns/Example_4_Handling_dispatch_without_Redux_Thunk/src/data/TasksActionTypes.js:
--------------------------------------------------------------------------------
1 | const ActionTypes = {
2 | ADD_TASK: 'ADD_TASK',
3 | TASK_FETCH_START: 'TASK_FETCH_START',
4 | TASK_FETCH_COMPLETE: 'TASK_FETCH_COMPLETE',
5 | TASK_FETCH_ERROR: 'TASK_FETCH_ERROR'
6 | };
7 |
8 | export default ActionTypes;
9 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_2_Selecting_from_Redux_store/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_9_Functional_Programming_patterns/Example_1_Using_Monads/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_1_TypeScript_support/App.js:
--------------------------------------------------------------------------------
1 | import StandaloneApp from './build/dist/Root';
2 | import StoryBookApp from './build/dist/storybook';
3 |
4 | // CRNA process ignores all env variables that didn't start with REACT_NATIVE_
5 | export default process.env['REACT_NATIVE_IS_STORY_BOOK'] ? StoryBookApp : StandaloneApp;
6 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_2_Enums_and_constants/App.js:
--------------------------------------------------------------------------------
1 | import StandaloneApp from './build/dist/Root';
2 | import StoryBookApp from './build/dist/storybook';
3 |
4 | // CRNA process ignores all env variables that didn't start with REACT_NATIVE_
5 | export default process.env['REACT_NATIVE_IS_STORY_BOOK'] ? StoryBookApp : StandaloneApp;
6 |
--------------------------------------------------------------------------------
/src/Chapter_11_Type_checking_patterns/Example_6_tslint_immutability/App.js:
--------------------------------------------------------------------------------
1 | import StandaloneApp from './build/dist/Root';
2 | import StoryBookApp from './build/dist/storybook';
3 |
4 | // CRNA process ignores all env variables that didn't start with REACT_NATIVE_
5 | export default process.env['REACT_NATIVE_IS_STORY_BOOK'] ? StoryBookApp : StandaloneApp;
6 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_14_Flexible_prop_names_in_HOC/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_5_Store_patterns/Example_5_Persistent_storage_with_AsyncStorage/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_2_React_Navigator_First_Screen/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_3_Caching_selectors_with_Reselect/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_11_Container_expandable_component/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_3_Functional_Components_with_props/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_4_Stateful_expandable_component/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_6_Component_composition_red_text/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_7_App_layout_and_Welcome_screen/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_1_React_component_patterns/Example_8_Snapshot_test_of_expandable_component/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toMatchSnapshot();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_3_Composition_to_solve_inheritance_problems/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_4_Dimensions_width_and_height_not_updated/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_6_Overlapping_boxes_with_absolute_position/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_3_Style_patterns/Example_7_mixing_absolute_and_relative_positioning/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_7_Navigational_patterns/Example_3_React_Navigator_Multiple_Screens/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_8_JavaScript_patterns/Example_1_Using_generator_to_get_task_details/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_1_storybook/App.js:
--------------------------------------------------------------------------------
1 | import { default as StandaloneApp } from './src/screens/index';
2 | import { default as StoryBookApp } from './storybook';
3 |
4 | // CRNA process ignores all env variables that didn't start with REACT_NATIVE_
5 | export default process.env['REACT_NATIVE_IS_STORY_BOOK'] ? StoryBookApp : StandaloneApp;
6 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_2_dependency_injection_with_storybook/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------
/src/Chapter_10_Managing_dependencies/Example_3_language_switcher_with_react_context/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import App from './App';
3 |
4 | import renderer from 'react-test-renderer';
5 |
6 | it('renders without crashing', () => {
7 | const rendered = renderer.create().toJSON();
8 | expect(rendered).toBeTruthy();
9 | });
10 |
--------------------------------------------------------------------------------