├── exercises ├── building-a-form.js ├── class-components.js ├── styling.js ├── custom-component.js ├── capturing-taps.js ├── state-props.js ├── component-lifecycle.js ├── scrollable-content.js ├── multiple-files.js ├── hello-world.js ├── capturing-taps.md ├── custom-component.md ├── scrollable-content.md ├── working-with-api.js ├── building-a-form.md ├── hello-world.md ├── long-lists.md ├── state-props.md ├── multiple-files.md ├── styling.md ├── class-components.md ├── working-with-api.md ├── component-lifecycle.md └── long-lists.js ├── assets ├── header.png ├── icon.png ├── splash.png └── favicon.png ├── src ├── assets │ └── RNS.png ├── constants │ └── colors.js ├── util │ └── storage.js ├── screens │ ├── Instructions.js │ ├── Exercise.js │ ├── Welcome.js │ └── ExerciseList.js └── index.js ├── babel.config.js ├── .expo-shared └── assets.json ├── .gitignore ├── LICENSE.md ├── .eslintrc.js ├── metro.config.js ├── solutions ├── capturing-taps.final.js ├── multiple-files.final.js ├── hello-world.final.js ├── state-props.final.js ├── state-props.extra-1.js ├── multiple-files.component.js ├── capturing-taps.extra-1.js ├── custom-component.final.js ├── component-lifecycle.final.js ├── class-components.final.js ├── custom-component.extra-1.js ├── scrollable-content.final.js ├── styling.extra-1.js ├── styling.final.js ├── building-a-form.final.js ├── building-a-form.extra-1.js ├── component-lifecycle.extra-1.js ├── working-with-api.final.js ├── working-with-api.extra-1.js ├── working-with-api.extra-2.js ├── long-lists.final.js └── long-lists.extra-1.js ├── App.js ├── app.json ├── support └── component-lifecycle.js ├── package.json ├── README.md └── Exercises.js /exercises/building-a-form.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercises/class-components.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /exercises/styling.js: -------------------------------------------------------------------------------- 1 | // Styling 2 | -------------------------------------------------------------------------------- /assets/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactNativeSchool/react-native-fundamentals/HEAD/assets/header.png -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactNativeSchool/react-native-fundamentals/HEAD/assets/icon.png -------------------------------------------------------------------------------- /assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactNativeSchool/react-native-fundamentals/HEAD/assets/splash.png -------------------------------------------------------------------------------- /assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactNativeSchool/react-native-fundamentals/HEAD/assets/favicon.png -------------------------------------------------------------------------------- /src/assets/RNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ReactNativeSchool/react-native-fundamentals/HEAD/src/assets/RNS.png -------------------------------------------------------------------------------- /src/constants/colors.js: -------------------------------------------------------------------------------- 1 | export default { 2 | brand: "#7CA1B4", 3 | accent: "#7cb48f", 4 | link: "#007aff", 5 | }; 6 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /.expo-shared/assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true, 3 | "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true 4 | } 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/**/* 2 | .expo/* 3 | npm-debug.* 4 | *.jks 5 | *.p8 6 | *.p12 7 | *.key 8 | *.mobileprovision 9 | *.orig.* 10 | web-build/ 11 | 12 | # macOS 13 | .DS_Store 14 | -------------------------------------------------------------------------------- /exercises/custom-component.js: -------------------------------------------------------------------------------- 1 | // Creating a Custom Component 2 | 3 | export default () => { 4 | // return