├── 01 Getting Started ├── code │ └── 01-first-app │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ │ ├── babel.config.js │ │ └── package.json └── extra-files │ └── App.js ├── 02 Basics ├── code │ ├── 01-working-with-core-components │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ └── package.json │ ├── 02-styling-react-native-apps │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ └── package.json │ ├── 03-improving-the-layout │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ └── package.json │ ├── 03a - Flexbox deep dive │ │ ├── Flexbox cheat sheet - overview.txt │ │ ├── basics-flexbox-deep-dive-finished.zip │ │ └── basics-flexbox-deep-dive-start.zip │ ├── 04-handling-events │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ └── package.json │ ├── 05-managing-a-list-of-course-goals │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ └── package.json │ ├── 06-ios-android-styling-differences │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ └── package.json │ ├── 07-optimizing-lists-with-flatlist │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ └── package.json │ ├── 08-splitting-components │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── GoalInput.js │ │ │ └── GoalItem.js │ │ └── package.json │ ├── 09-utilizing-props │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── GoalInput.js │ │ │ └── GoalItem.js │ │ └── package.json │ ├── 10-handling-taps-with-pressable │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── GoalInput.js │ │ │ └── GoalItem.js │ │ └── package.json │ ├── 11-adding-android-ripple-and-ios-styling │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── GoalInput.js │ │ │ └── GoalItem.js │ │ └── package.json │ ├── 12-styling-the-modal-overlay │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── GoalInput.js │ │ │ └── GoalItem.js │ │ └── package.json │ ├── 13-opening-and-closing-the-modal │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── GoalInput.js │ │ │ └── GoalItem.js │ │ └── package.json │ ├── 14-working-with-images │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── goal.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── GoalInput.js │ │ │ └── GoalItem.js │ │ └── package.json │ └── 15-finished │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ ├── images │ │ │ └── goal.png │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ ├── GoalInput.js │ │ └── GoalItem.js │ │ └── package.json ├── extra-files │ ├── React Native - Core Components, Styling & Colors - More Information.docx │ ├── goal.png │ └── starting-project.zip └── slides │ └── slides.pdf ├── 04 Deep Dive Real App ├── code │ ├── 01-creating-custom-buttons │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── PrimaryButton.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 02-styling-number-input │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── PrimaryButton.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 03-configuring-text-input │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── PrimaryButton.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 04-improving-buttons │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── PrimaryButton.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 05-coloring-components-overall-app │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── PrimaryButton.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 06-adding-linear-gradient │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── PrimaryButton.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 07-adding-background-image │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── PrimaryButton.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 08-getting-started-with-game-logic │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── PrimaryButton.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 09-switching-screens │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── PrimaryButton.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 10-respecting-device-screen-restrictions-safeareaview │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── PrimaryButton.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 11-managing-colors-globally │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── PrimaryButton.js │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 12-creating-using-displaying-random-number │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 13-adding-game-control-buttons │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 14-checking-for-game-over │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 15-cascading-styles │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 16-working-with-icons │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 17-adding-using-custom-font │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ └── OpenSans-Regular.ttf │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ └── background.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 18-using-styling-nested-text │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ └── OpenSans-Regular.ttf │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ ├── background.png │ │ │ │ └── success.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 19-adding-logic-to-restart-games │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ └── OpenSans-Regular.ttf │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ ├── background.png │ │ │ │ └── success.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 20-styling-game-round-logs │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ └── OpenSans-Regular.ttf │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ ├── background.png │ │ │ │ └── success.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ ├── GuessLogItem.js │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ └── 21-finished │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── fonts │ │ │ ├── OpenSans-Bold.ttf │ │ │ └── OpenSans-Regular.ttf │ │ ├── icon.png │ │ ├── images │ │ │ ├── background.png │ │ │ └── success.png │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ ├── game │ │ │ ├── GuessLogItem.js │ │ │ └── NumberContainer.js │ │ └── ui │ │ │ ├── Card.js │ │ │ ├── InstructionText.js │ │ │ ├── PrimaryButton.js │ │ │ └── Title.js │ │ ├── constants │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ ├── GameOverScreen.js │ │ ├── GameScreen.js │ │ └── StartGameScreen.js └── extra-files │ ├── fonts │ ├── OpenSans-Bold.ttf │ └── OpenSans-Regular.ttf │ ├── images │ ├── background.png │ └── success.png │ ├── logic - random code │ └── random.js │ └── starting-project.zip ├── 05 Adaptive UIs ├── code │ ├── 01-setting-dynamic-widths │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ └── OpenSans-Regular.ttf │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ ├── background.png │ │ │ │ └── success.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ ├── GuessLogItem.js │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 02-adjusting-image-sizes-with-dimensions-api │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ └── OpenSans-Regular.ttf │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ ├── background.png │ │ │ │ └── success.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ ├── GuessLogItem.js │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 03-setting-sizes-dynamically │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ └── OpenSans-Regular.ttf │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ ├── background.png │ │ │ │ └── success.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ ├── GuessLogItem.js │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 04-keyboardavoidingview │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ └── OpenSans-Regular.ttf │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ ├── background.png │ │ │ │ └── success.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ ├── GuessLogItem.js │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 05-further-improvements │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ └── OpenSans-Regular.ttf │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ ├── background.png │ │ │ │ └── success.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ ├── GuessLogItem.js │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ └── Title.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ ├── 06-platform-specific-code │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ └── OpenSans-Regular.ttf │ │ │ ├── icon.png │ │ │ ├── images │ │ │ │ ├── background.png │ │ │ │ └── success.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── game │ │ │ │ ├── GuessLogItem.js │ │ │ │ └── NumberContainer.js │ │ │ └── ui │ │ │ │ ├── Card.js │ │ │ │ ├── InstructionText.js │ │ │ │ ├── PrimaryButton.js │ │ │ │ ├── Title.android.js │ │ │ │ └── Title.ios.js │ │ ├── constants │ │ │ ├── colors.android.js │ │ │ └── colors.ios.js │ │ ├── package.json │ │ └── screens │ │ │ ├── GameOverScreen.js │ │ │ ├── GameScreen.js │ │ │ └── StartGameScreen.js │ └── 07-finished │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── fonts │ │ │ ├── OpenSans-Bold.ttf │ │ │ └── OpenSans-Regular.ttf │ │ ├── icon.png │ │ ├── images │ │ │ ├── background.png │ │ │ └── success.png │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ ├── game │ │ │ ├── GuessLogItem.js │ │ │ └── NumberContainer.js │ │ └── ui │ │ │ ├── Card.js │ │ │ ├── InstructionText.js │ │ │ ├── PrimaryButton.js │ │ │ ├── Title.android.js │ │ │ └── Title.ios.js │ │ ├── constants │ │ ├── colors.android.js │ │ └── colors.ios.js │ │ ├── package.json │ │ └── screens │ │ ├── GameOverScreen.js │ │ ├── GameScreen.js │ │ └── StartGameScreen.js └── extra-files │ └── starting-project.zip ├── 06 Navigation ├── code │ ├── 01-displaying-items-in-a-grid │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── CategoryGridTile.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ └── CategoriesScreen.js │ ├── 02-getting-started-with-react-navigation │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── CategoryGridTile.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ └── CategoriesScreen.js │ ├── 03-implementing-navigation-between-two-screens │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── CategoryGridTile.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ ├── CategoriesScreen.js │ │ │ └── MealsOverviewScreen.js │ ├── 04-working-with-route-parameters │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── CategoryGridTile.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ ├── CategoriesScreen.js │ │ │ └── MealsOverviewScreen.js │ ├── 05-adding-images-styling │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ └── MealItem.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ ├── CategoriesScreen.js │ │ │ └── MealsOverviewScreen.js │ ├── 06-styling-screen-headers │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ └── MealItem.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ ├── CategoriesScreen.js │ │ │ └── MealsOverviewScreen.js │ ├── 07-styling-navigation-options-dynamically │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ └── MealItem.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ ├── CategoriesScreen.js │ │ │ └── MealsOverviewScreen.js │ ├── 08-finishing-the-meal-details-screen │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealItem.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ ├── 09-adding-header-buttons │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealItem.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ ├── 10-adding-an-icon-button │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── IconButton.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealItem.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ ├── 11-other-navigators-starting-code │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── package.json │ │ └── screens │ │ │ ├── UserScreen.js │ │ │ └── WelcomeScreen.js │ ├── 12-adding-drawer-navigation │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── package.json │ │ └── screens │ │ │ ├── UserScreen.js │ │ │ └── WelcomeScreen.js │ ├── 13-configuring-the-drawer-navigator │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── package.json │ │ └── screens │ │ │ ├── UserScreen.js │ │ │ └── WelcomeScreen.js │ ├── 14-adding-configuring-using-bottom-tabs │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── package.json │ │ └── screens │ │ │ ├── UserScreen.js │ │ │ └── WelcomeScreen.js │ ├── 15-nesting-navigators │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── IconButton.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealItem.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── FavoritesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ └── 16-finished │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ ├── CategoryGridTile.js │ │ ├── IconButton.js │ │ ├── MealDetail │ │ │ ├── List.js │ │ │ └── Subtitle.js │ │ ├── MealDetails.js │ │ └── MealItem.js │ │ ├── data │ │ └── dummy-data.js │ │ ├── models │ │ ├── category.js │ │ └── meal.js │ │ ├── package.json │ │ └── screens │ │ ├── CategoriesScreen.js │ │ ├── FavoritesScreen.js │ │ ├── MealDetailScreen.js │ │ └── MealsOverviewScreen.js ├── extra-files │ ├── Setting the Default Screen.docx │ ├── dummy-data.js │ ├── models.zip │ ├── other-navigators-starting-project.zip │ └── starting-project.zip └── slides │ └── slides.pdf ├── 07 Redux and Context ├── code │ ├── 01-getting-started-with-context-api │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── IconButton.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealItem.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── FavoritesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ │ └── store │ │ │ └── context │ │ │ └── favorites-context.js │ ├── 02-managing-app-wide-state-with-context │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── IconButton.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealItem.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── FavoritesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ │ └── store │ │ │ └── context │ │ │ └── favorites-context.js │ ├── 03-using-created-context │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── IconButton.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealItem.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── FavoritesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ │ └── store │ │ │ └── context │ │ │ └── favorites-context.js │ ├── 04-managing-favorite-meals │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── IconButton.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealsList │ │ │ │ ├── MealItem.js │ │ │ │ └── MealsList.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── FavoritesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ │ └── store │ │ │ └── context │ │ │ └── favorites-context.js │ ├── 05-getting-started-with-redux │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── IconButton.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealsList │ │ │ │ ├── MealItem.js │ │ │ │ └── MealsList.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── FavoritesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ │ └── store │ │ │ ├── context │ │ │ └── favorites-context.js │ │ │ └── redux │ │ │ └── store.js │ ├── 06-working-with-redux-slices │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── IconButton.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealsList │ │ │ │ ├── MealItem.js │ │ │ │ └── MealsList.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── FavoritesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ │ └── store │ │ │ ├── context │ │ │ └── favorites-context.js │ │ │ └── redux │ │ │ ├── favorites.js │ │ │ └── store.js │ ├── 07-managing-redux-state │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── CategoryGridTile.js │ │ │ ├── IconButton.js │ │ │ ├── MealDetail │ │ │ │ ├── List.js │ │ │ │ └── Subtitle.js │ │ │ ├── MealDetails.js │ │ │ └── MealsList │ │ │ │ ├── MealItem.js │ │ │ │ └── MealsList.js │ │ ├── data │ │ │ └── dummy-data.js │ │ ├── models │ │ │ ├── category.js │ │ │ └── meal.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── CategoriesScreen.js │ │ │ ├── FavoritesScreen.js │ │ │ ├── MealDetailScreen.js │ │ │ └── MealsOverviewScreen.js │ │ └── store │ │ │ ├── context │ │ │ └── favorites-context.js │ │ │ └── redux │ │ │ ├── favorites.js │ │ │ └── store.js │ └── 08-finished │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ ├── CategoryGridTile.js │ │ ├── IconButton.js │ │ ├── MealDetail │ │ │ ├── List.js │ │ │ └── Subtitle.js │ │ ├── MealDetails.js │ │ └── MealsList │ │ │ ├── MealItem.js │ │ │ └── MealsList.js │ │ ├── data │ │ └── dummy-data.js │ │ ├── models │ │ ├── category.js │ │ └── meal.js │ │ ├── package.json │ │ ├── screens │ │ ├── CategoriesScreen.js │ │ ├── FavoritesScreen.js │ │ ├── MealDetailScreen.js │ │ └── MealsOverviewScreen.js │ │ └── store │ │ ├── context │ │ └── favorites-context.js │ │ └── redux │ │ ├── favorites.js │ │ └── store.js └── extra-files │ ├── Redux vs React Context API.txt │ └── starting-project.zip ├── 08 Practice App ├── code │ ├── 01-the-starting-setup │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ ├── 02-adding-navigation │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ ├── 03-adding-global-colors │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ ├── 04-adding-dummy-expense-data │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── ExpensesOutput │ │ │ │ ├── ExpensesList.js │ │ │ │ ├── ExpensesOutput.js │ │ │ │ └── ExpensesSummary.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ ├── 05-outputting-a-list-of-expenses │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── ExpensesOutput │ │ │ │ ├── ExpensesList.js │ │ │ │ ├── ExpensesOutput.js │ │ │ │ └── ExpensesSummary.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ ├── 06-improving-app-layout-styling │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── ExpensesOutput │ │ │ │ ├── ExpensesList.js │ │ │ │ ├── ExpensesOutput.js │ │ │ │ └── ExpensesSummary.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ ├── 07-working-on-expense-list-items │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── ExpensesOutput │ │ │ │ ├── ExpenseItem.js │ │ │ │ ├── ExpensesList.js │ │ │ │ ├── ExpensesOutput.js │ │ │ │ └── ExpensesSummary.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ ├── 08-formatting-dates │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── ExpensesOutput │ │ │ │ ├── ExpenseItem.js │ │ │ │ ├── ExpensesList.js │ │ │ │ ├── ExpensesOutput.js │ │ │ │ └── ExpensesSummary.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ │ └── util │ │ │ └── date.js │ ├── 09-navigating-programmatically │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── ExpensesOutput │ │ │ │ ├── ExpenseItem.js │ │ │ │ ├── ExpensesList.js │ │ │ │ ├── ExpensesOutput.js │ │ │ │ └── ExpensesSummary.js │ │ │ └── UI │ │ │ │ └── IconButton.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ │ └── util │ │ │ └── date.js │ ├── 10-supporting-different-editing-modes │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── ExpensesOutput │ │ │ │ ├── ExpenseItem.js │ │ │ │ ├── ExpensesList.js │ │ │ │ ├── ExpensesOutput.js │ │ │ │ └── ExpensesSummary.js │ │ │ └── UI │ │ │ │ └── IconButton.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ │ └── util │ │ │ └── date.js │ ├── 11-adding-custom-buttons │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── ExpensesOutput │ │ │ │ ├── ExpenseItem.js │ │ │ │ ├── ExpensesList.js │ │ │ │ ├── ExpensesOutput.js │ │ │ │ └── ExpensesSummary.js │ │ │ └── UI │ │ │ │ ├── Button.js │ │ │ │ └── IconButton.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ │ └── util │ │ │ └── date.js │ ├── 12-managing-app-wide-state │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── ExpensesOutput │ │ │ │ ├── ExpenseItem.js │ │ │ │ ├── ExpensesList.js │ │ │ │ ├── ExpensesOutput.js │ │ │ │ └── ExpensesSummary.js │ │ │ └── UI │ │ │ │ ├── Button.js │ │ │ │ └── IconButton.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ │ ├── store │ │ │ └── expenses-context.js │ │ └── util │ │ │ └── date.js │ ├── 13-using-context │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── ExpensesOutput │ │ │ │ ├── ExpenseItem.js │ │ │ │ ├── ExpensesList.js │ │ │ │ ├── ExpensesOutput.js │ │ │ │ └── ExpensesSummary.js │ │ │ └── UI │ │ │ │ ├── Button.js │ │ │ │ └── IconButton.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AllExpenses.js │ │ │ ├── ManageExpense.js │ │ │ └── RecentExpenses.js │ │ ├── store │ │ │ └── expenses-context.js │ │ └── util │ │ │ └── date.js │ └── 14-finished │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ │ ├── constants │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ │ ├── store │ │ └── expenses-context.js │ │ └── util │ │ └── date.js └── extra-files │ └── styles.js ├── 09 User Input └── code │ ├── 01-starting-code │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ └── date.js │ ├── 02-configuring-the-form-input-elements │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ └── date.js │ ├── 03-added-styling │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ └── date.js │ ├── 04-setting-the-form-layout │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ └── date.js │ ├── 05-handling-user-input-generic │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ └── date.js │ ├── 06-managing-form-state-and-submission │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ └── date.js │ ├── 07-setting-using-default-values │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ └── date.js │ ├── 08-adding-validation │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ └── date.js │ ├── 09-adding-error-styling │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ └── date.js │ └── 10-finished │ ├── App.js │ ├── app.json │ ├── assets │ ├── adaptive-icon.png │ ├── favicon.png │ ├── icon.png │ └── splash.png │ ├── babel.config.js │ ├── components │ ├── ExpensesOutput │ │ ├── ExpenseItem.js │ │ ├── ExpensesList.js │ │ ├── ExpensesOutput.js │ │ └── ExpensesSummary.js │ ├── ManageExpense │ │ ├── ExpenseForm.js │ │ └── Input.js │ └── UI │ │ ├── Button.js │ │ └── IconButton.js │ ├── constants │ └── styles.js │ ├── package.json │ ├── screens │ ├── AllExpenses.js │ ├── ManageExpense.js │ └── RecentExpenses.js │ ├── store │ └── expenses-context.js │ └── util │ └── date.js ├── 10 Http └── code │ ├── 01-starting-code │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ └── date.js │ ├── 02-sending-post-requests │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ ├── date.js │ │ └── http.js │ ├── 03-transforming-using-fetched-data │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ ├── date.js │ │ └── http.js │ ├── 04-using-response-data-from-post │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ ├── date.js │ │ └── http.js │ ├── 05-updating-and-deleting │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ └── IconButton.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ ├── date.js │ │ └── http.js │ ├── 06-managing-loading-state │ ├── App.js │ ├── app.json │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── components │ │ ├── ExpensesOutput │ │ │ ├── ExpenseItem.js │ │ │ ├── ExpensesList.js │ │ │ ├── ExpensesOutput.js │ │ │ └── ExpensesSummary.js │ │ ├── ManageExpense │ │ │ ├── ExpenseForm.js │ │ │ └── Input.js │ │ └── UI │ │ │ ├── Button.js │ │ │ ├── IconButton.js │ │ │ └── LoadingOverlay.js │ ├── constants │ │ └── styles.js │ ├── package.json │ ├── screens │ │ ├── AllExpenses.js │ │ ├── ManageExpense.js │ │ └── RecentExpenses.js │ ├── store │ │ └── expenses-context.js │ └── util │ │ ├── date.js │ │ └── http.js │ └── 07-handling-request-errors │ ├── App.js │ ├── app.json │ ├── assets │ ├── adaptive-icon.png │ ├── favicon.png │ ├── icon.png │ └── splash.png │ ├── babel.config.js │ ├── components │ ├── ExpensesOutput │ │ ├── ExpenseItem.js │ │ ├── ExpensesList.js │ │ ├── ExpensesOutput.js │ │ └── ExpensesSummary.js │ ├── ManageExpense │ │ ├── ExpenseForm.js │ │ └── Input.js │ └── UI │ │ ├── Button.js │ │ ├── ErrorOverlay.js │ │ ├── IconButton.js │ │ └── LoadingOverlay.js │ ├── constants │ └── styles.js │ ├── package.json │ ├── screens │ ├── AllExpenses.js │ ├── ManageExpense.js │ └── RecentExpenses.js │ ├── store │ └── expenses-context.js │ └── util │ ├── date.js │ └── http.js ├── 11 Auth ├── code │ ├── 01-starting-code │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Auth │ │ │ │ ├── AuthContent.js │ │ │ │ ├── AuthForm.js │ │ │ │ └── Input.js │ │ │ └── ui │ │ │ │ ├── Button.js │ │ │ │ ├── FlatButton.js │ │ │ │ ├── IconButton.js │ │ │ │ └── LoadingOverlay.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ └── screens │ │ │ ├── LoginScreen.js │ │ │ ├── SignupScreen.js │ │ │ └── WelcomeScreen.js │ ├── 02-controlling-signup-login-screens │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Auth │ │ │ │ ├── AuthContent.js │ │ │ │ ├── AuthForm.js │ │ │ │ └── Input.js │ │ │ └── ui │ │ │ │ ├── Button.js │ │ │ │ ├── FlatButton.js │ │ │ │ ├── IconButton.js │ │ │ │ └── LoadingOverlay.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ └── screens │ │ │ ├── LoginScreen.js │ │ │ ├── SignupScreen.js │ │ │ └── WelcomeScreen.js │ ├── 03-creating-new-users │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Auth │ │ │ │ ├── AuthContent.js │ │ │ │ ├── AuthForm.js │ │ │ │ └── Input.js │ │ │ └── ui │ │ │ │ ├── Button.js │ │ │ │ ├── FlatButton.js │ │ │ │ ├── IconButton.js │ │ │ │ └── LoadingOverlay.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── LoginScreen.js │ │ │ ├── SignupScreen.js │ │ │ └── WelcomeScreen.js │ │ └── util │ │ │ └── auth.js │ ├── 04-logging-users-in │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Auth │ │ │ │ ├── AuthContent.js │ │ │ │ ├── AuthForm.js │ │ │ │ └── Input.js │ │ │ └── ui │ │ │ │ ├── Button.js │ │ │ │ ├── FlatButton.js │ │ │ │ ├── IconButton.js │ │ │ │ └── LoadingOverlay.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── LoginScreen.js │ │ │ ├── SignupScreen.js │ │ │ └── WelcomeScreen.js │ │ └── util │ │ │ └── auth.js │ ├── 05-auth-error-handling │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Auth │ │ │ │ ├── AuthContent.js │ │ │ │ ├── AuthForm.js │ │ │ │ └── Input.js │ │ │ └── ui │ │ │ │ ├── Button.js │ │ │ │ ├── FlatButton.js │ │ │ │ ├── IconButton.js │ │ │ │ └── LoadingOverlay.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── LoginScreen.js │ │ │ ├── SignupScreen.js │ │ │ └── WelcomeScreen.js │ │ └── util │ │ │ └── auth.js │ ├── 06-storing-managing-the-user-auth-state │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Auth │ │ │ │ ├── AuthContent.js │ │ │ │ ├── AuthForm.js │ │ │ │ └── Input.js │ │ │ └── ui │ │ │ │ ├── Button.js │ │ │ │ ├── FlatButton.js │ │ │ │ ├── IconButton.js │ │ │ │ └── LoadingOverlay.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── LoginScreen.js │ │ │ ├── SignupScreen.js │ │ │ └── WelcomeScreen.js │ │ ├── store │ │ │ └── auth-context.js │ │ └── util │ │ │ └── auth.js │ ├── 07-protecting-screens │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Auth │ │ │ │ ├── AuthContent.js │ │ │ │ ├── AuthForm.js │ │ │ │ └── Input.js │ │ │ └── ui │ │ │ │ ├── Button.js │ │ │ │ ├── FlatButton.js │ │ │ │ ├── IconButton.js │ │ │ │ └── LoadingOverlay.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── LoginScreen.js │ │ │ ├── SignupScreen.js │ │ │ └── WelcomeScreen.js │ │ ├── store │ │ │ └── auth-context.js │ │ └── util │ │ │ └── auth.js │ ├── 08-adding-logout │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Auth │ │ │ │ ├── AuthContent.js │ │ │ │ ├── AuthForm.js │ │ │ │ └── Input.js │ │ │ └── ui │ │ │ │ ├── Button.js │ │ │ │ ├── FlatButton.js │ │ │ │ ├── IconButton.js │ │ │ │ └── LoadingOverlay.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── LoginScreen.js │ │ │ ├── SignupScreen.js │ │ │ └── WelcomeScreen.js │ │ ├── store │ │ │ └── auth-context.js │ │ └── util │ │ │ └── auth.js │ ├── 09-accessing-protected-resources │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Auth │ │ │ │ ├── AuthContent.js │ │ │ │ ├── AuthForm.js │ │ │ │ └── Input.js │ │ │ └── ui │ │ │ │ ├── Button.js │ │ │ │ ├── FlatButton.js │ │ │ │ ├── IconButton.js │ │ │ │ └── LoadingOverlay.js │ │ ├── constants │ │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── LoginScreen.js │ │ │ ├── SignupScreen.js │ │ │ └── WelcomeScreen.js │ │ ├── store │ │ │ └── auth-context.js │ │ └── util │ │ │ └── auth.js │ └── 10-storing-auth-tokens-on-the-device │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ ├── Auth │ │ │ ├── AuthContent.js │ │ │ ├── AuthForm.js │ │ │ └── Input.js │ │ └── ui │ │ │ ├── Button.js │ │ │ ├── FlatButton.js │ │ │ ├── IconButton.js │ │ │ └── LoadingOverlay.js │ │ ├── constants │ │ └── styles.js │ │ ├── package.json │ │ ├── screens │ │ ├── LoginScreen.js │ │ ├── SignupScreen.js │ │ └── WelcomeScreen.js │ │ ├── store │ │ └── auth-context.js │ │ └── util │ │ └── auth.js ├── extra-files │ └── A Note About Token Expiration.docx └── slides │ └── slides.pdf ├── 12 Native Features ├── code │ ├── 01-editing-the-favorite-place-items │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── Places │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ ├── 02-adding-an-add-place-screen-navigation │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ └── Places │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ ├── 03-adding-a-header-button │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ └── IconButton.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ ├── 04-global-colors-styling │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ └── IconButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ ├── 05-taking-photos-on-ios │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ └── IconButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ ├── 06-showing-an-image-preview │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ └── IconButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ ├── 07-creating-a-custom-button │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ ├── 08-getting-started-with-the-location-picker │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ ├── 09-locating-users │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ └── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ ├── 10-adding-a-location-preview │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ │ └── util │ │ │ └── location.js │ ├── 11-adding-an-interactive-map │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ │ └── util │ │ │ └── location.js │ ├── 12-allowing-map-interaction │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ │ └── util │ │ │ └── location.js │ ├── 13-previewing-picked-locations │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ │ └── util │ │ │ └── location.js │ ├── 14-converting-picked-location-to-human-readable-address │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── Button.js │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ │ └── util │ │ │ └── location.js │ ├── 15-outputting-a-list-of-places │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── Button.js │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ │ └── util │ │ │ └── location.js │ ├── 16-sqlite-getting-started │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── Button.js │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ │ └── util │ │ │ ├── database.js │ │ │ └── location.js │ ├── 17-inserting-places-into-the-db │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── Button.js │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ │ └── util │ │ │ ├── database.js │ │ │ └── location.js │ ├── 18-fetching-places-from-the-database │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── Button.js │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ │ └── util │ │ │ ├── database.js │ │ │ └── location.js │ ├── 19-fetching-place-detail-data │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── Places │ │ │ │ ├── ImagePicker.js │ │ │ │ ├── LocationPicker.js │ │ │ │ ├── PlaceForm.js │ │ │ │ ├── PlaceItem.js │ │ │ │ └── PlacesList.js │ │ │ └── UI │ │ │ │ ├── Button.js │ │ │ │ ├── IconButton.js │ │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ │ └── colors.js │ │ ├── models │ │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ │ ├── AddPlace.js │ │ │ ├── AllPlaces.js │ │ │ ├── Map.js │ │ │ └── PlaceDetails.js │ │ └── util │ │ │ ├── database.js │ │ │ └── location.js │ └── 20-finished │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ ├── Places │ │ │ ├── ImagePicker.js │ │ │ ├── LocationPicker.js │ │ │ ├── PlaceForm.js │ │ │ ├── PlaceItem.js │ │ │ └── PlacesList.js │ │ └── UI │ │ │ ├── Button.js │ │ │ ├── IconButton.js │ │ │ └── OutlinedButton.js │ │ ├── constants │ │ └── colors.js │ │ ├── models │ │ └── place.js │ │ ├── package.json │ │ ├── screens │ │ ├── AddPlace.js │ │ ├── AllPlaces.js │ │ ├── Map.js │ │ └── PlaceDetails.js │ │ └── util │ │ ├── database.js │ │ └── location.js └── extra-files │ └── colors.js ├── 13 No expo └── slides │ └── slides.pdf ├── 14 Publish ├── code │ └── 01-starting-code │ │ ├── App.js │ │ ├── app.json │ │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ ├── CategoryGridTile.js │ │ ├── IconButton.js │ │ ├── MealDetail │ │ │ ├── List.js │ │ │ └── Subtitle.js │ │ ├── MealDetails.js │ │ └── MealsList │ │ │ ├── MealItem.js │ │ │ └── MealsList.js │ │ ├── data │ │ └── dummy-data.js │ │ ├── models │ │ ├── category.js │ │ └── meal.js │ │ ├── package.json │ │ ├── screens │ │ ├── CategoriesScreen.js │ │ ├── FavoritesScreen.js │ │ ├── MealDetailScreen.js │ │ └── MealsOverviewScreen.js │ │ └── store │ │ ├── context │ │ └── favorites-context.js │ │ └── redux │ │ ├── favorites.js │ │ └── store.js ├── extra-files │ ├── Configuring Android Apps.txt │ ├── Useful links.txt │ ├── assets-1 │ │ ├── adaptive-icon.png │ │ ├── assets.zip │ │ ├── icon.png │ │ └── splash.png │ └── assets-2 │ │ └── icons.zip └── slides │ └── slides.pdf ├── 15 Push Notifcations ├── Configuring Scheduled Notifications.docx └── Local Notifications - Permissions.docx ├── 17 JavaScript Refresher ├── 01-core-js-syntax.zip ├── 02-let-and-const.zip ├── 03-arrow-functions.zip ├── 04-objects.zip ├── 05-arrays.zip ├── 06-arrays-and-reference-types.zip ├── 07-spread-and-rest.zip ├── 08-destructuring.zip ├── 09-async-code.zip ├── Project Setup.txt └── Useful links.txt ├── 18 ReactJS Refresher ├── react-refresher-01-react-starting-project.zip ├── react-refresher-02-react-basics.zip ├── react-refresher-03-first-basic-component.zip ├── react-refresher-04-passing-props.zip ├── react-refresher-05-outputting-a-list-of-data.zip ├── react-refresher-06-handling-events.zip ├── react-refresher-07-parent-child-communication.zip ├── react-refresher-08-state.zip └── react-refresher-09-two-way-binding.zip ├── LICENSE ├── README.md ├── Section 2 Quizzes - React Native Basics [Course Goals App].pdf └── Section 5 Quiz - Building Adaptive User Interfaces.pdf /01 Getting Started/code/01-first-app/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/01 Getting Started/code/01-first-app/assets/adaptive-icon.png -------------------------------------------------------------------------------- /01 Getting Started/code/01-first-app/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/01 Getting Started/code/01-first-app/assets/favicon.png -------------------------------------------------------------------------------- /01 Getting Started/code/01-first-app/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/01 Getting Started/code/01-first-app/assets/icon.png -------------------------------------------------------------------------------- /01 Getting Started/code/01-first-app/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/01 Getting Started/code/01-first-app/assets/splash.png -------------------------------------------------------------------------------- /01 Getting Started/code/01-first-app/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/01-working-with-core-components/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/01-working-with-core-components/assets/adaptive-icon.png -------------------------------------------------------------------------------- /02 Basics/code/01-working-with-core-components/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/01-working-with-core-components/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/01-working-with-core-components/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/01-working-with-core-components/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/01-working-with-core-components/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/01-working-with-core-components/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/01-working-with-core-components/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/02-styling-react-native-apps/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/02-styling-react-native-apps/assets/adaptive-icon.png -------------------------------------------------------------------------------- /02 Basics/code/02-styling-react-native-apps/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/02-styling-react-native-apps/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/02-styling-react-native-apps/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/02-styling-react-native-apps/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/02-styling-react-native-apps/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/02-styling-react-native-apps/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/02-styling-react-native-apps/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/03-improving-the-layout/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/03-improving-the-layout/assets/adaptive-icon.png -------------------------------------------------------------------------------- /02 Basics/code/03-improving-the-layout/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/03-improving-the-layout/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/03-improving-the-layout/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/03-improving-the-layout/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/03-improving-the-layout/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/03-improving-the-layout/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/03-improving-the-layout/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/03a - Flexbox deep dive/Flexbox cheat sheet - overview.txt: -------------------------------------------------------------------------------- 1 | Flexbox cheat sheet/overview 2 | https://reactnative.dev/docs/flexbox -------------------------------------------------------------------------------- /02 Basics/code/04-handling-events/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/04-handling-events/assets/adaptive-icon.png -------------------------------------------------------------------------------- /02 Basics/code/04-handling-events/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/04-handling-events/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/04-handling-events/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/04-handling-events/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/04-handling-events/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/04-handling-events/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/04-handling-events/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/05-managing-a-list-of-course-goals/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/05-managing-a-list-of-course-goals/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/05-managing-a-list-of-course-goals/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/05-managing-a-list-of-course-goals/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/05-managing-a-list-of-course-goals/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/05-managing-a-list-of-course-goals/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/05-managing-a-list-of-course-goals/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/06-ios-android-styling-differences/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/06-ios-android-styling-differences/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/06-ios-android-styling-differences/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/06-ios-android-styling-differences/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/06-ios-android-styling-differences/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/06-ios-android-styling-differences/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/06-ios-android-styling-differences/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/07-optimizing-lists-with-flatlist/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/07-optimizing-lists-with-flatlist/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/07-optimizing-lists-with-flatlist/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/07-optimizing-lists-with-flatlist/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/07-optimizing-lists-with-flatlist/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/07-optimizing-lists-with-flatlist/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/07-optimizing-lists-with-flatlist/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/08-splitting-components/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/08-splitting-components/assets/adaptive-icon.png -------------------------------------------------------------------------------- /02 Basics/code/08-splitting-components/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/08-splitting-components/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/08-splitting-components/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/08-splitting-components/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/08-splitting-components/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/08-splitting-components/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/08-splitting-components/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/08-splitting-components/components/GoalInput.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/08-splitting-components/components/GoalInput.js -------------------------------------------------------------------------------- /02 Basics/code/09-utilizing-props/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/09-utilizing-props/assets/adaptive-icon.png -------------------------------------------------------------------------------- /02 Basics/code/09-utilizing-props/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/09-utilizing-props/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/09-utilizing-props/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/09-utilizing-props/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/09-utilizing-props/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/09-utilizing-props/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/09-utilizing-props/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/10-handling-taps-with-pressable/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/10-handling-taps-with-pressable/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/10-handling-taps-with-pressable/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/10-handling-taps-with-pressable/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/10-handling-taps-with-pressable/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/10-handling-taps-with-pressable/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/10-handling-taps-with-pressable/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/11-adding-android-ripple-and-ios-styling/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/12-styling-the-modal-overlay/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/12-styling-the-modal-overlay/assets/adaptive-icon.png -------------------------------------------------------------------------------- /02 Basics/code/12-styling-the-modal-overlay/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/12-styling-the-modal-overlay/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/12-styling-the-modal-overlay/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/12-styling-the-modal-overlay/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/12-styling-the-modal-overlay/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/12-styling-the-modal-overlay/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/12-styling-the-modal-overlay/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/13-opening-and-closing-the-modal/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/13-opening-and-closing-the-modal/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/13-opening-and-closing-the-modal/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/13-opening-and-closing-the-modal/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/13-opening-and-closing-the-modal/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/13-opening-and-closing-the-modal/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/13-opening-and-closing-the-modal/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/14-working-with-images/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/14-working-with-images/assets/adaptive-icon.png -------------------------------------------------------------------------------- /02 Basics/code/14-working-with-images/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/14-working-with-images/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/14-working-with-images/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/14-working-with-images/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/14-working-with-images/assets/images/goal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/14-working-with-images/assets/images/goal.png -------------------------------------------------------------------------------- /02 Basics/code/14-working-with-images/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/14-working-with-images/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/14-working-with-images/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/code/15-finished/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/15-finished/assets/adaptive-icon.png -------------------------------------------------------------------------------- /02 Basics/code/15-finished/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/15-finished/assets/favicon.png -------------------------------------------------------------------------------- /02 Basics/code/15-finished/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/15-finished/assets/icon.png -------------------------------------------------------------------------------- /02 Basics/code/15-finished/assets/images/goal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/15-finished/assets/images/goal.png -------------------------------------------------------------------------------- /02 Basics/code/15-finished/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/code/15-finished/assets/splash.png -------------------------------------------------------------------------------- /02 Basics/code/15-finished/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /02 Basics/extra-files/goal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/extra-files/goal.png -------------------------------------------------------------------------------- /02 Basics/extra-files/starting-project.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/extra-files/starting-project.zip -------------------------------------------------------------------------------- /02 Basics/slides/slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/02 Basics/slides/slides.pdf -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/01-creating-custom-buttons/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/01-creating-custom-buttons/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/01-creating-custom-buttons/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/02-styling-number-input/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/02-styling-number-input/assets/favicon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/02-styling-number-input/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/02-styling-number-input/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/02-styling-number-input/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/02-styling-number-input/assets/splash.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/02-styling-number-input/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/03-configuring-text-input/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/03-configuring-text-input/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/03-configuring-text-input/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/03-configuring-text-input/assets/splash.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/03-configuring-text-input/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/04-improving-buttons/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/04-improving-buttons/assets/favicon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/04-improving-buttons/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/04-improving-buttons/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/04-improving-buttons/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/04-improving-buttons/assets/splash.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/04-improving-buttons/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/04-improving-buttons/screens/GameScreen.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/04-improving-buttons/screens/GameScreen.js -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/05-coloring-components-overall-app/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/06-adding-linear-gradient/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/06-adding-linear-gradient/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/06-adding-linear-gradient/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/06-adding-linear-gradient/assets/splash.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/06-adding-linear-gradient/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/07-adding-background-image/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/07-adding-background-image/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/07-adding-background-image/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/08-getting-started-with-game-logic/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/09-switching-screens/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/09-switching-screens/assets/favicon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/09-switching-screens/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/09-switching-screens/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/09-switching-screens/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/09-switching-screens/assets/splash.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/09-switching-screens/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/09-switching-screens/screens/GameScreen.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function GameScreen() { 4 | return Game Screen! 5 | } 6 | 7 | export default GameScreen; -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/10-respecting-device-screen-restrictions-safeareaview/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/11-managing-colors-globally/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/11-managing-colors-globally/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/11-managing-colors-globally/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/12-creating-using-displaying-random-number/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/13-adding-game-control-buttons/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/14-checking-for-game-over/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/14-checking-for-game-over/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/14-checking-for-game-over/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/14-checking-for-game-over/assets/splash.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/14-checking-for-game-over/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/14-checking-for-game-over/screens/GameOverScreen.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function GameOverScreen() { 4 | return Game is over! 5 | } 6 | 7 | export default GameOverScreen; -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/15-cascading-styles/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/15-cascading-styles/assets/favicon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/15-cascading-styles/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/15-cascading-styles/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/15-cascading-styles/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/15-cascading-styles/assets/splash.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/15-cascading-styles/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/15-cascading-styles/screens/GameOverScreen.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function GameOverScreen() { 4 | return Game is over! 5 | } 6 | 7 | export default GameOverScreen; -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/16-working-with-icons/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/16-working-with-icons/assets/favicon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/16-working-with-icons/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/16-working-with-icons/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/16-working-with-icons/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/16-working-with-icons/assets/splash.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/16-working-with-icons/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/16-working-with-icons/screens/GameOverScreen.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function GameOverScreen() { 4 | return Game is over! 5 | } 6 | 7 | export default GameOverScreen; -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/17-adding-using-custom-font/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/17-adding-using-custom-font/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/17-adding-using-custom-font/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/17-adding-using-custom-font/screens/GameOverScreen.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function GameOverScreen() { 4 | return Game is over! 5 | } 6 | 7 | export default GameOverScreen; -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/18-using-styling-nested-text/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/19-adding-logic-to-restart-games/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/20-styling-game-round-logs/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/20-styling-game-round-logs/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/20-styling-game-round-logs/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/21-finished/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/21-finished/assets/adaptive-icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/21-finished/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/21-finished/assets/favicon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/21-finished/assets/fonts/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/21-finished/assets/fonts/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/21-finished/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/21-finished/assets/icon.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/21-finished/assets/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/21-finished/assets/images/background.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/21-finished/assets/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/21-finished/assets/images/success.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/21-finished/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/code/21-finished/assets/splash.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/21-finished/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /04 Deep Dive Real App/code/21-finished/constants/colors.js: -------------------------------------------------------------------------------- 1 | const Colors = { 2 | primary500: '#72063c', 3 | primary600: '#640233', 4 | primary700: '#4e0329', 5 | primary800: '#3b021f', 6 | accent500: '#ddb52f' 7 | }; 8 | 9 | export default Colors; -------------------------------------------------------------------------------- /04 Deep Dive Real App/extra-files/fonts/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/extra-files/fonts/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /04 Deep Dive Real App/extra-files/fonts/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/extra-files/fonts/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /04 Deep Dive Real App/extra-files/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/extra-files/images/background.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/extra-files/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/extra-files/images/success.png -------------------------------------------------------------------------------- /04 Deep Dive Real App/extra-files/starting-project.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/04 Deep Dive Real App/extra-files/starting-project.zip -------------------------------------------------------------------------------- /05 Adaptive UIs/code/01-setting-dynamic-widths/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/01-setting-dynamic-widths/assets/favicon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/01-setting-dynamic-widths/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/01-setting-dynamic-widths/assets/icon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/01-setting-dynamic-widths/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/01-setting-dynamic-widths/assets/splash.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/01-setting-dynamic-widths/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /05 Adaptive UIs/code/02-adjusting-image-sizes-with-dimensions-api/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /05 Adaptive UIs/code/03-setting-sizes-dynamically/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/03-setting-sizes-dynamically/assets/favicon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/03-setting-sizes-dynamically/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/03-setting-sizes-dynamically/assets/icon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/03-setting-sizes-dynamically/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/03-setting-sizes-dynamically/assets/splash.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/03-setting-sizes-dynamically/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /05 Adaptive UIs/code/04-keyboardavoidingview/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/04-keyboardavoidingview/assets/adaptive-icon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/04-keyboardavoidingview/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/04-keyboardavoidingview/assets/favicon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/04-keyboardavoidingview/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/04-keyboardavoidingview/assets/icon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/04-keyboardavoidingview/assets/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/04-keyboardavoidingview/assets/images/success.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/04-keyboardavoidingview/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/04-keyboardavoidingview/assets/splash.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/04-keyboardavoidingview/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /05 Adaptive UIs/code/04-keyboardavoidingview/constants/colors.js: -------------------------------------------------------------------------------- 1 | const Colors = { 2 | primary500: '#72063c', 3 | primary600: '#640233', 4 | primary700: '#4e0329', 5 | primary800: '#3b021f', 6 | accent500: '#ddb52f' 7 | }; 8 | 9 | export default Colors; -------------------------------------------------------------------------------- /05 Adaptive UIs/code/05-further-improvements/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/05-further-improvements/assets/adaptive-icon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/05-further-improvements/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/05-further-improvements/assets/favicon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/05-further-improvements/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/05-further-improvements/assets/icon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/05-further-improvements/assets/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/05-further-improvements/assets/images/success.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/05-further-improvements/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/05-further-improvements/assets/splash.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/05-further-improvements/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /05 Adaptive UIs/code/05-further-improvements/constants/colors.js: -------------------------------------------------------------------------------- 1 | const Colors = { 2 | primary500: '#72063c', 3 | primary600: '#640233', 4 | primary700: '#4e0329', 5 | primary800: '#3b021f', 6 | accent500: '#ddb52f' 7 | }; 8 | 9 | export default Colors; -------------------------------------------------------------------------------- /05 Adaptive UIs/code/06-platform-specific-code/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/06-platform-specific-code/assets/favicon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/06-platform-specific-code/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/06-platform-specific-code/assets/icon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/06-platform-specific-code/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/06-platform-specific-code/assets/splash.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/06-platform-specific-code/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/07-finished/assets/adaptive-icon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/07-finished/assets/favicon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/assets/fonts/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/07-finished/assets/fonts/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/assets/fonts/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/07-finished/assets/fonts/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/07-finished/assets/icon.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/assets/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/07-finished/assets/images/background.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/assets/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/07-finished/assets/images/success.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/code/07-finished/assets/splash.png -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/constants/colors.android.js: -------------------------------------------------------------------------------- 1 | const Colors = { 2 | primary500: '#72063c', 3 | primary600: '#640233', 4 | primary700: '#4e0329', 5 | primary800: '#3b021f', 6 | accent500: '#ddb52f' 7 | }; 8 | 9 | export default Colors; -------------------------------------------------------------------------------- /05 Adaptive UIs/code/07-finished/constants/colors.ios.js: -------------------------------------------------------------------------------- 1 | const Colors = { 2 | primary500: '#72063c', 3 | primary600: '#640233', 4 | primary700: '#4e0329', 5 | primary800: '#3b021f', 6 | accent500: '#ddb52f' 7 | }; 8 | 9 | export default Colors; -------------------------------------------------------------------------------- /05 Adaptive UIs/extra-files/starting-project.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/05 Adaptive UIs/extra-files/starting-project.zip -------------------------------------------------------------------------------- /06 Navigation/code/01-displaying-items-in-a-grid/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/01-displaying-items-in-a-grid/assets/favicon.png -------------------------------------------------------------------------------- /06 Navigation/code/01-displaying-items-in-a-grid/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/01-displaying-items-in-a-grid/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/01-displaying-items-in-a-grid/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/01-displaying-items-in-a-grid/assets/splash.png -------------------------------------------------------------------------------- /06 Navigation/code/01-displaying-items-in-a-grid/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/01-displaying-items-in-a-grid/models/category.js: -------------------------------------------------------------------------------- 1 | class Category { 2 | constructor(id, title, color) { 3 | this.id = id; 4 | this.title = title; 5 | this.color = color; 6 | } 7 | } 8 | 9 | export default Category; 10 | -------------------------------------------------------------------------------- /06 Navigation/code/02-getting-started-with-react-navigation/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/03-implementing-navigation-between-two-screens/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/04-working-with-route-parameters/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/04-working-with-route-parameters/assets/favicon.png -------------------------------------------------------------------------------- /06 Navigation/code/04-working-with-route-parameters/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/04-working-with-route-parameters/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/04-working-with-route-parameters/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/04-working-with-route-parameters/assets/splash.png -------------------------------------------------------------------------------- /06 Navigation/code/04-working-with-route-parameters/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/05-adding-images-styling/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/05-adding-images-styling/assets/adaptive-icon.png -------------------------------------------------------------------------------- /06 Navigation/code/05-adding-images-styling/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/05-adding-images-styling/assets/favicon.png -------------------------------------------------------------------------------- /06 Navigation/code/05-adding-images-styling/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/05-adding-images-styling/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/05-adding-images-styling/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/05-adding-images-styling/assets/splash.png -------------------------------------------------------------------------------- /06 Navigation/code/05-adding-images-styling/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/05-adding-images-styling/models/category.js: -------------------------------------------------------------------------------- 1 | class Category { 2 | constructor(id, title, color) { 3 | this.id = id; 4 | this.title = title; 5 | this.color = color; 6 | } 7 | } 8 | 9 | export default Category; 10 | -------------------------------------------------------------------------------- /06 Navigation/code/06-styling-screen-headers/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/06-styling-screen-headers/assets/adaptive-icon.png -------------------------------------------------------------------------------- /06 Navigation/code/06-styling-screen-headers/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/06-styling-screen-headers/assets/favicon.png -------------------------------------------------------------------------------- /06 Navigation/code/06-styling-screen-headers/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/06-styling-screen-headers/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/06-styling-screen-headers/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/06-styling-screen-headers/assets/splash.png -------------------------------------------------------------------------------- /06 Navigation/code/06-styling-screen-headers/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/06-styling-screen-headers/models/category.js: -------------------------------------------------------------------------------- 1 | class Category { 2 | constructor(id, title, color) { 3 | this.id = id; 4 | this.title = title; 5 | this.color = color; 6 | } 7 | } 8 | 9 | export default Category; 10 | -------------------------------------------------------------------------------- /06 Navigation/code/07-styling-navigation-options-dynamically/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/08-finishing-the-meal-details-screen/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/09-adding-header-buttons/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/09-adding-header-buttons/assets/adaptive-icon.png -------------------------------------------------------------------------------- /06 Navigation/code/09-adding-header-buttons/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/09-adding-header-buttons/assets/favicon.png -------------------------------------------------------------------------------- /06 Navigation/code/09-adding-header-buttons/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/09-adding-header-buttons/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/09-adding-header-buttons/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/09-adding-header-buttons/assets/splash.png -------------------------------------------------------------------------------- /06 Navigation/code/09-adding-header-buttons/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/09-adding-header-buttons/models/category.js: -------------------------------------------------------------------------------- 1 | class Category { 2 | constructor(id, title, color) { 3 | this.id = id; 4 | this.title = title; 5 | this.color = color; 6 | } 7 | } 8 | 9 | export default Category; 10 | -------------------------------------------------------------------------------- /06 Navigation/code/10-adding-an-icon-button/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/10-adding-an-icon-button/assets/adaptive-icon.png -------------------------------------------------------------------------------- /06 Navigation/code/10-adding-an-icon-button/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/10-adding-an-icon-button/assets/favicon.png -------------------------------------------------------------------------------- /06 Navigation/code/10-adding-an-icon-button/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/10-adding-an-icon-button/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/10-adding-an-icon-button/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/10-adding-an-icon-button/assets/splash.png -------------------------------------------------------------------------------- /06 Navigation/code/10-adding-an-icon-button/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/10-adding-an-icon-button/models/category.js: -------------------------------------------------------------------------------- 1 | class Category { 2 | constructor(id, title, color) { 3 | this.id = id; 4 | this.title = title; 5 | this.color = color; 6 | } 7 | } 8 | 9 | export default Category; 10 | -------------------------------------------------------------------------------- /06 Navigation/code/11-other-navigators-starting-code/App.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | export default function App() { 4 | return Todo...; 5 | } 6 | -------------------------------------------------------------------------------- /06 Navigation/code/11-other-navigators-starting-code/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/11-other-navigators-starting-code/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/11-other-navigators-starting-code/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/11-other-navigators-starting-code/assets/splash.png -------------------------------------------------------------------------------- /06 Navigation/code/11-other-navigators-starting-code/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/12-adding-drawer-navigation/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/12-adding-drawer-navigation/assets/favicon.png -------------------------------------------------------------------------------- /06 Navigation/code/12-adding-drawer-navigation/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/12-adding-drawer-navigation/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/12-adding-drawer-navigation/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/12-adding-drawer-navigation/assets/splash.png -------------------------------------------------------------------------------- /06 Navigation/code/12-adding-drawer-navigation/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/13-configuring-the-drawer-navigator/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/13-configuring-the-drawer-navigator/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/13-configuring-the-drawer-navigator/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/14-adding-configuring-using-bottom-tabs/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/15-nesting-navigators/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/15-nesting-navigators/assets/adaptive-icon.png -------------------------------------------------------------------------------- /06 Navigation/code/15-nesting-navigators/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/15-nesting-navigators/assets/favicon.png -------------------------------------------------------------------------------- /06 Navigation/code/15-nesting-navigators/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/15-nesting-navigators/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/15-nesting-navigators/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/15-nesting-navigators/assets/splash.png -------------------------------------------------------------------------------- /06 Navigation/code/15-nesting-navigators/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/15-nesting-navigators/models/category.js: -------------------------------------------------------------------------------- 1 | class Category { 2 | constructor(id, title, color) { 3 | this.id = id; 4 | this.title = title; 5 | this.color = color; 6 | } 7 | } 8 | 9 | export default Category; 10 | -------------------------------------------------------------------------------- /06 Navigation/code/15-nesting-navigators/screens/FavoritesScreen.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function FavoritesScreen() { 4 | return The favorites screen!; 5 | } 6 | 7 | export default FavoritesScreen; 8 | -------------------------------------------------------------------------------- /06 Navigation/code/16-finished/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/16-finished/assets/adaptive-icon.png -------------------------------------------------------------------------------- /06 Navigation/code/16-finished/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/16-finished/assets/favicon.png -------------------------------------------------------------------------------- /06 Navigation/code/16-finished/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/16-finished/assets/icon.png -------------------------------------------------------------------------------- /06 Navigation/code/16-finished/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/code/16-finished/assets/splash.png -------------------------------------------------------------------------------- /06 Navigation/code/16-finished/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /06 Navigation/code/16-finished/models/category.js: -------------------------------------------------------------------------------- 1 | class Category { 2 | constructor(id, title, color) { 3 | this.id = id; 4 | this.title = title; 5 | this.color = color; 6 | } 7 | } 8 | 9 | export default Category; 10 | -------------------------------------------------------------------------------- /06 Navigation/code/16-finished/screens/FavoritesScreen.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function FavoritesScreen() { 4 | return The favorites screen!; 5 | } 6 | 7 | export default FavoritesScreen; 8 | -------------------------------------------------------------------------------- /06 Navigation/extra-files/Setting the Default Screen.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/extra-files/Setting the Default Screen.docx -------------------------------------------------------------------------------- /06 Navigation/extra-files/models.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/extra-files/models.zip -------------------------------------------------------------------------------- /06 Navigation/extra-files/other-navigators-starting-project.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/extra-files/other-navigators-starting-project.zip -------------------------------------------------------------------------------- /06 Navigation/extra-files/starting-project.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/extra-files/starting-project.zip -------------------------------------------------------------------------------- /06 Navigation/slides/slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/06 Navigation/slides/slides.pdf -------------------------------------------------------------------------------- /07 Redux and Context/code/01-getting-started-with-context-api/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /07 Redux and Context/code/01-getting-started-with-context-api/screens/FavoritesScreen.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function FavoritesScreen() { 4 | return The favorites screen!; 5 | } 6 | 7 | export default FavoritesScreen; 8 | -------------------------------------------------------------------------------- /07 Redux and Context/code/02-managing-app-wide-state-with-context/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /07 Redux and Context/code/03-using-created-context/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/03-using-created-context/assets/favicon.png -------------------------------------------------------------------------------- /07 Redux and Context/code/03-using-created-context/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/03-using-created-context/assets/icon.png -------------------------------------------------------------------------------- /07 Redux and Context/code/03-using-created-context/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/03-using-created-context/assets/splash.png -------------------------------------------------------------------------------- /07 Redux and Context/code/03-using-created-context/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /07 Redux and Context/code/03-using-created-context/screens/FavoritesScreen.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function FavoritesScreen() { 4 | return The favorites screen!; 5 | } 6 | 7 | export default FavoritesScreen; 8 | -------------------------------------------------------------------------------- /07 Redux and Context/code/04-managing-favorite-meals/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/04-managing-favorite-meals/assets/icon.png -------------------------------------------------------------------------------- /07 Redux and Context/code/04-managing-favorite-meals/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/04-managing-favorite-meals/assets/splash.png -------------------------------------------------------------------------------- /07 Redux and Context/code/04-managing-favorite-meals/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /07 Redux and Context/code/05-getting-started-with-redux/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /07 Redux and Context/code/05-getting-started-with-redux/store/redux/store.js: -------------------------------------------------------------------------------- 1 | import { configureStore } from '@reduxjs/toolkit'; 2 | 3 | export const store = configureStore({ 4 | reducer: {} 5 | }); -------------------------------------------------------------------------------- /07 Redux and Context/code/06-working-with-redux-slices/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/06-working-with-redux-slices/assets/icon.png -------------------------------------------------------------------------------- /07 Redux and Context/code/06-working-with-redux-slices/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /07 Redux and Context/code/07-managing-redux-state/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/07-managing-redux-state/assets/favicon.png -------------------------------------------------------------------------------- /07 Redux and Context/code/07-managing-redux-state/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/07-managing-redux-state/assets/icon.png -------------------------------------------------------------------------------- /07 Redux and Context/code/07-managing-redux-state/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/07-managing-redux-state/assets/splash.png -------------------------------------------------------------------------------- /07 Redux and Context/code/07-managing-redux-state/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /07 Redux and Context/code/07-managing-redux-state/models/category.js: -------------------------------------------------------------------------------- 1 | class Category { 2 | constructor(id, title, color) { 3 | this.id = id; 4 | this.title = title; 5 | this.color = color; 6 | } 7 | } 8 | 9 | export default Category; 10 | -------------------------------------------------------------------------------- /07 Redux and Context/code/08-finished/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/08-finished/assets/adaptive-icon.png -------------------------------------------------------------------------------- /07 Redux and Context/code/08-finished/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/08-finished/assets/favicon.png -------------------------------------------------------------------------------- /07 Redux and Context/code/08-finished/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/08-finished/assets/icon.png -------------------------------------------------------------------------------- /07 Redux and Context/code/08-finished/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/code/08-finished/assets/splash.png -------------------------------------------------------------------------------- /07 Redux and Context/code/08-finished/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /07 Redux and Context/code/08-finished/models/category.js: -------------------------------------------------------------------------------- 1 | class Category { 2 | constructor(id, title, color) { 3 | this.id = id; 4 | this.title = title; 5 | this.color = color; 6 | } 7 | } 8 | 9 | export default Category; 10 | -------------------------------------------------------------------------------- /07 Redux and Context/extra-files/Redux vs React Context API.txt: -------------------------------------------------------------------------------- 1 | Redux vs React Context API 2 | https://academind.com/tutorials/reactjs-redux-vs-context-api 3 | -------------------------------------------------------------------------------- /07 Redux and Context/extra-files/starting-project.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/07 Redux and Context/extra-files/starting-project.zip -------------------------------------------------------------------------------- /08 Practice App/code/01-the-starting-setup/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/01-the-starting-setup/assets/adaptive-icon.png -------------------------------------------------------------------------------- /08 Practice App/code/01-the-starting-setup/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/01-the-starting-setup/assets/favicon.png -------------------------------------------------------------------------------- /08 Practice App/code/01-the-starting-setup/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/01-the-starting-setup/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/01-the-starting-setup/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/01-the-starting-setup/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/01-the-starting-setup/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/01-the-starting-setup/screens/AllExpenses.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function AllExpenses() { 4 | return AllExpenses Screen; 5 | } 6 | 7 | export default AllExpenses; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/01-the-starting-setup/screens/ManageExpense.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function ManageExpense() { 4 | return ManageExpense Screen; 5 | } 6 | 7 | export default ManageExpense; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/01-the-starting-setup/screens/RecentExpenses.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function RecentExpenses() { 4 | return RecentExpenses Screen; 5 | } 6 | 7 | export default RecentExpenses; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/02-adding-navigation/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/02-adding-navigation/assets/adaptive-icon.png -------------------------------------------------------------------------------- /08 Practice App/code/02-adding-navigation/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/02-adding-navigation/assets/favicon.png -------------------------------------------------------------------------------- /08 Practice App/code/02-adding-navigation/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/02-adding-navigation/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/02-adding-navigation/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/02-adding-navigation/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/02-adding-navigation/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/02-adding-navigation/screens/AllExpenses.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function AllExpenses() { 4 | return AllExpenses Screen; 5 | } 6 | 7 | export default AllExpenses; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/02-adding-navigation/screens/ManageExpense.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function ManageExpense() { 4 | return ManageExpense Screen; 5 | } 6 | 7 | export default ManageExpense; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/02-adding-navigation/screens/RecentExpenses.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function RecentExpenses() { 4 | return RecentExpenses Screen; 5 | } 6 | 7 | export default RecentExpenses; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/03-adding-global-colors/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/03-adding-global-colors/assets/adaptive-icon.png -------------------------------------------------------------------------------- /08 Practice App/code/03-adding-global-colors/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/03-adding-global-colors/assets/favicon.png -------------------------------------------------------------------------------- /08 Practice App/code/03-adding-global-colors/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/03-adding-global-colors/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/03-adding-global-colors/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/03-adding-global-colors/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/03-adding-global-colors/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/03-adding-global-colors/screens/AllExpenses.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function AllExpenses() { 4 | return AllExpenses Screen; 5 | } 6 | 7 | export default AllExpenses; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/03-adding-global-colors/screens/ManageExpense.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function ManageExpense() { 4 | return ManageExpense Screen; 5 | } 6 | 7 | export default ManageExpense; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/03-adding-global-colors/screens/RecentExpenses.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function RecentExpenses() { 4 | return RecentExpenses Screen; 5 | } 6 | 7 | export default RecentExpenses; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/04-adding-dummy-expense-data/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/04-adding-dummy-expense-data/assets/favicon.png -------------------------------------------------------------------------------- /08 Practice App/code/04-adding-dummy-expense-data/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/04-adding-dummy-expense-data/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/04-adding-dummy-expense-data/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/04-adding-dummy-expense-data/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/04-adding-dummy-expense-data/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/04-adding-dummy-expense-data/components/ExpensesOutput/ExpensesList.js: -------------------------------------------------------------------------------- 1 | import { FlatList } from 'react-native'; 2 | 3 | function ExpensesList() { 4 | return ; 5 | } 6 | 7 | export default ExpensesList; -------------------------------------------------------------------------------- /08 Practice App/code/04-adding-dummy-expense-data/screens/ManageExpense.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function ManageExpense() { 4 | return ManageExpense Screen; 5 | } 6 | 7 | export default ManageExpense; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/05-outputting-a-list-of-expenses/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/05-outputting-a-list-of-expenses/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/05-outputting-a-list-of-expenses/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/05-outputting-a-list-of-expenses/screens/ManageExpense.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function ManageExpense() { 4 | return ManageExpense Screen; 5 | } 6 | 7 | export default ManageExpense; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/06-improving-app-layout-styling/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/06-improving-app-layout-styling/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/06-improving-app-layout-styling/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/06-improving-app-layout-styling/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/06-improving-app-layout-styling/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/06-improving-app-layout-styling/screens/ManageExpense.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function ManageExpense() { 4 | return ManageExpense Screen; 5 | } 6 | 7 | export default ManageExpense; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/07-working-on-expense-list-items/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/07-working-on-expense-list-items/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/07-working-on-expense-list-items/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/07-working-on-expense-list-items/screens/ManageExpense.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function ManageExpense() { 4 | return ManageExpense Screen; 5 | } 6 | 7 | export default ManageExpense; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/08-formatting-dates/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/08-formatting-dates/assets/adaptive-icon.png -------------------------------------------------------------------------------- /08 Practice App/code/08-formatting-dates/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/08-formatting-dates/assets/favicon.png -------------------------------------------------------------------------------- /08 Practice App/code/08-formatting-dates/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/08-formatting-dates/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/08-formatting-dates/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/08-formatting-dates/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/08-formatting-dates/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/08-formatting-dates/screens/ManageExpense.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function ManageExpense() { 4 | return ManageExpense Screen; 5 | } 6 | 7 | export default ManageExpense; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/08-formatting-dates/util/date.js: -------------------------------------------------------------------------------- 1 | export function getFormattedDate(date) { 2 | return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`; 3 | } 4 | -------------------------------------------------------------------------------- /08 Practice App/code/09-navigating-programmatically/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/09-navigating-programmatically/assets/favicon.png -------------------------------------------------------------------------------- /08 Practice App/code/09-navigating-programmatically/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/09-navigating-programmatically/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/09-navigating-programmatically/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/09-navigating-programmatically/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/09-navigating-programmatically/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/09-navigating-programmatically/screens/ManageExpense.js: -------------------------------------------------------------------------------- 1 | import { Text } from 'react-native'; 2 | 3 | function ManageExpense() { 4 | return ManageExpense Screen; 5 | } 6 | 7 | export default ManageExpense; 8 | -------------------------------------------------------------------------------- /08 Practice App/code/09-navigating-programmatically/util/date.js: -------------------------------------------------------------------------------- 1 | export function getFormattedDate(date) { 2 | return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`; 3 | } 4 | -------------------------------------------------------------------------------- /08 Practice App/code/10-supporting-different-editing-modes/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/10-supporting-different-editing-modes/util/date.js: -------------------------------------------------------------------------------- 1 | export function getFormattedDate(date) { 2 | return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`; 3 | } 4 | -------------------------------------------------------------------------------- /08 Practice App/code/11-adding-custom-buttons/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/11-adding-custom-buttons/assets/adaptive-icon.png -------------------------------------------------------------------------------- /08 Practice App/code/11-adding-custom-buttons/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/11-adding-custom-buttons/assets/favicon.png -------------------------------------------------------------------------------- /08 Practice App/code/11-adding-custom-buttons/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/11-adding-custom-buttons/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/11-adding-custom-buttons/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/11-adding-custom-buttons/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/11-adding-custom-buttons/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/11-adding-custom-buttons/util/date.js: -------------------------------------------------------------------------------- 1 | export function getFormattedDate(date) { 2 | return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`; 3 | } 4 | -------------------------------------------------------------------------------- /08 Practice App/code/12-managing-app-wide-state/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/12-managing-app-wide-state/assets/favicon.png -------------------------------------------------------------------------------- /08 Practice App/code/12-managing-app-wide-state/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/12-managing-app-wide-state/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/12-managing-app-wide-state/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/12-managing-app-wide-state/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/12-managing-app-wide-state/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/12-managing-app-wide-state/util/date.js: -------------------------------------------------------------------------------- 1 | export function getFormattedDate(date) { 2 | return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`; 3 | } 4 | -------------------------------------------------------------------------------- /08 Practice App/code/13-using-context/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/13-using-context/assets/adaptive-icon.png -------------------------------------------------------------------------------- /08 Practice App/code/13-using-context/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/13-using-context/assets/favicon.png -------------------------------------------------------------------------------- /08 Practice App/code/13-using-context/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/13-using-context/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/13-using-context/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/13-using-context/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/13-using-context/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /08 Practice App/code/14-finished/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/14-finished/assets/adaptive-icon.png -------------------------------------------------------------------------------- /08 Practice App/code/14-finished/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/14-finished/assets/favicon.png -------------------------------------------------------------------------------- /08 Practice App/code/14-finished/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/14-finished/assets/icon.png -------------------------------------------------------------------------------- /08 Practice App/code/14-finished/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/08 Practice App/code/14-finished/assets/splash.png -------------------------------------------------------------------------------- /08 Practice App/code/14-finished/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /09 User Input/code/01-starting-code/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/01-starting-code/assets/adaptive-icon.png -------------------------------------------------------------------------------- /09 User Input/code/01-starting-code/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/01-starting-code/assets/favicon.png -------------------------------------------------------------------------------- /09 User Input/code/01-starting-code/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/01-starting-code/assets/icon.png -------------------------------------------------------------------------------- /09 User Input/code/01-starting-code/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/01-starting-code/assets/splash.png -------------------------------------------------------------------------------- /09 User Input/code/01-starting-code/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /09 User Input/code/02-configuring-the-form-input-elements/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /09 User Input/code/03-added-styling/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/03-added-styling/assets/adaptive-icon.png -------------------------------------------------------------------------------- /09 User Input/code/03-added-styling/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/03-added-styling/assets/favicon.png -------------------------------------------------------------------------------- /09 User Input/code/03-added-styling/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/03-added-styling/assets/icon.png -------------------------------------------------------------------------------- /09 User Input/code/03-added-styling/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/03-added-styling/assets/splash.png -------------------------------------------------------------------------------- /09 User Input/code/03-added-styling/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /09 User Input/code/04-setting-the-form-layout/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/04-setting-the-form-layout/assets/adaptive-icon.png -------------------------------------------------------------------------------- /09 User Input/code/04-setting-the-form-layout/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/04-setting-the-form-layout/assets/favicon.png -------------------------------------------------------------------------------- /09 User Input/code/04-setting-the-form-layout/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/04-setting-the-form-layout/assets/icon.png -------------------------------------------------------------------------------- /09 User Input/code/04-setting-the-form-layout/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/04-setting-the-form-layout/assets/splash.png -------------------------------------------------------------------------------- /09 User Input/code/04-setting-the-form-layout/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /09 User Input/code/05-handling-user-input-generic/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/05-handling-user-input-generic/assets/favicon.png -------------------------------------------------------------------------------- /09 User Input/code/05-handling-user-input-generic/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/05-handling-user-input-generic/assets/icon.png -------------------------------------------------------------------------------- /09 User Input/code/05-handling-user-input-generic/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/05-handling-user-input-generic/assets/splash.png -------------------------------------------------------------------------------- /09 User Input/code/05-handling-user-input-generic/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /09 User Input/code/06-managing-form-state-and-submission/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /09 User Input/code/07-setting-using-default-values/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/07-setting-using-default-values/assets/favicon.png -------------------------------------------------------------------------------- /09 User Input/code/07-setting-using-default-values/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/07-setting-using-default-values/assets/icon.png -------------------------------------------------------------------------------- /09 User Input/code/07-setting-using-default-values/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/07-setting-using-default-values/assets/splash.png -------------------------------------------------------------------------------- /09 User Input/code/07-setting-using-default-values/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /09 User Input/code/08-adding-validation/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/08-adding-validation/assets/adaptive-icon.png -------------------------------------------------------------------------------- /09 User Input/code/08-adding-validation/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/08-adding-validation/assets/favicon.png -------------------------------------------------------------------------------- /09 User Input/code/08-adding-validation/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/08-adding-validation/assets/icon.png -------------------------------------------------------------------------------- /09 User Input/code/08-adding-validation/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/08-adding-validation/assets/splash.png -------------------------------------------------------------------------------- /09 User Input/code/08-adding-validation/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /09 User Input/code/09-adding-error-styling/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/09-adding-error-styling/assets/adaptive-icon.png -------------------------------------------------------------------------------- /09 User Input/code/09-adding-error-styling/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/09-adding-error-styling/assets/favicon.png -------------------------------------------------------------------------------- /09 User Input/code/09-adding-error-styling/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/09-adding-error-styling/assets/icon.png -------------------------------------------------------------------------------- /09 User Input/code/09-adding-error-styling/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/09-adding-error-styling/assets/splash.png -------------------------------------------------------------------------------- /09 User Input/code/09-adding-error-styling/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /09 User Input/code/10-finished/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/10-finished/assets/adaptive-icon.png -------------------------------------------------------------------------------- /09 User Input/code/10-finished/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/10-finished/assets/favicon.png -------------------------------------------------------------------------------- /09 User Input/code/10-finished/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/10-finished/assets/icon.png -------------------------------------------------------------------------------- /09 User Input/code/10-finished/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/09 User Input/code/10-finished/assets/splash.png -------------------------------------------------------------------------------- /09 User Input/code/10-finished/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /10 Http/code/01-starting-code/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/01-starting-code/assets/adaptive-icon.png -------------------------------------------------------------------------------- /10 Http/code/01-starting-code/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/01-starting-code/assets/favicon.png -------------------------------------------------------------------------------- /10 Http/code/01-starting-code/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/01-starting-code/assets/icon.png -------------------------------------------------------------------------------- /10 Http/code/01-starting-code/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/01-starting-code/assets/splash.png -------------------------------------------------------------------------------- /10 Http/code/01-starting-code/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /10 Http/code/02-sending-post-requests/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/02-sending-post-requests/assets/adaptive-icon.png -------------------------------------------------------------------------------- /10 Http/code/02-sending-post-requests/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/02-sending-post-requests/assets/favicon.png -------------------------------------------------------------------------------- /10 Http/code/02-sending-post-requests/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/02-sending-post-requests/assets/icon.png -------------------------------------------------------------------------------- /10 Http/code/02-sending-post-requests/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/02-sending-post-requests/assets/splash.png -------------------------------------------------------------------------------- /10 Http/code/02-sending-post-requests/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /10 Http/code/03-transforming-using-fetched-data/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/03-transforming-using-fetched-data/assets/favicon.png -------------------------------------------------------------------------------- /10 Http/code/03-transforming-using-fetched-data/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/03-transforming-using-fetched-data/assets/icon.png -------------------------------------------------------------------------------- /10 Http/code/03-transforming-using-fetched-data/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/03-transforming-using-fetched-data/assets/splash.png -------------------------------------------------------------------------------- /10 Http/code/03-transforming-using-fetched-data/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /10 Http/code/04-using-response-data-from-post/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/04-using-response-data-from-post/assets/adaptive-icon.png -------------------------------------------------------------------------------- /10 Http/code/04-using-response-data-from-post/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/04-using-response-data-from-post/assets/favicon.png -------------------------------------------------------------------------------- /10 Http/code/04-using-response-data-from-post/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/04-using-response-data-from-post/assets/icon.png -------------------------------------------------------------------------------- /10 Http/code/04-using-response-data-from-post/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/04-using-response-data-from-post/assets/splash.png -------------------------------------------------------------------------------- /10 Http/code/04-using-response-data-from-post/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /10 Http/code/05-updating-and-deleting/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/05-updating-and-deleting/assets/adaptive-icon.png -------------------------------------------------------------------------------- /10 Http/code/05-updating-and-deleting/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/05-updating-and-deleting/assets/favicon.png -------------------------------------------------------------------------------- /10 Http/code/05-updating-and-deleting/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/05-updating-and-deleting/assets/icon.png -------------------------------------------------------------------------------- /10 Http/code/05-updating-and-deleting/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/05-updating-and-deleting/assets/splash.png -------------------------------------------------------------------------------- /10 Http/code/05-updating-and-deleting/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /10 Http/code/06-managing-loading-state/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/06-managing-loading-state/assets/adaptive-icon.png -------------------------------------------------------------------------------- /10 Http/code/06-managing-loading-state/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/06-managing-loading-state/assets/favicon.png -------------------------------------------------------------------------------- /10 Http/code/06-managing-loading-state/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/06-managing-loading-state/assets/icon.png -------------------------------------------------------------------------------- /10 Http/code/06-managing-loading-state/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/06-managing-loading-state/assets/splash.png -------------------------------------------------------------------------------- /10 Http/code/06-managing-loading-state/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /10 Http/code/07-handling-request-errors/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/07-handling-request-errors/assets/adaptive-icon.png -------------------------------------------------------------------------------- /10 Http/code/07-handling-request-errors/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/07-handling-request-errors/assets/favicon.png -------------------------------------------------------------------------------- /10 Http/code/07-handling-request-errors/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/07-handling-request-errors/assets/icon.png -------------------------------------------------------------------------------- /10 Http/code/07-handling-request-errors/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/10 Http/code/07-handling-request-errors/assets/splash.png -------------------------------------------------------------------------------- /10 Http/code/07-handling-request-errors/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/01-starting-code/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/01-starting-code/assets/adaptive-icon.png -------------------------------------------------------------------------------- /11 Auth/code/01-starting-code/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/01-starting-code/assets/favicon.png -------------------------------------------------------------------------------- /11 Auth/code/01-starting-code/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/01-starting-code/assets/icon.png -------------------------------------------------------------------------------- /11 Auth/code/01-starting-code/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/01-starting-code/assets/splash.png -------------------------------------------------------------------------------- /11 Auth/code/01-starting-code/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/01-starting-code/constants/styles.js: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary100: '#f9beda', 3 | primary500: '#c30b64', 4 | primary800: '#610440', 5 | error100: '#fcdcbf', 6 | error500: '#f37c13', 7 | } -------------------------------------------------------------------------------- /11 Auth/code/01-starting-code/screens/LoginScreen.js: -------------------------------------------------------------------------------- 1 | import AuthContent from '../components/Auth/AuthContent'; 2 | 3 | function LoginScreen() { 4 | return ; 5 | } 6 | 7 | export default LoginScreen; 8 | -------------------------------------------------------------------------------- /11 Auth/code/01-starting-code/screens/SignupScreen.js: -------------------------------------------------------------------------------- 1 | import AuthContent from '../components/Auth/AuthContent'; 2 | 3 | function SignupScreen() { 4 | return ; 5 | } 6 | 7 | export default SignupScreen; 8 | -------------------------------------------------------------------------------- /11 Auth/code/02-controlling-signup-login-screens/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/02-controlling-signup-login-screens/assets/favicon.png -------------------------------------------------------------------------------- /11 Auth/code/02-controlling-signup-login-screens/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/02-controlling-signup-login-screens/assets/icon.png -------------------------------------------------------------------------------- /11 Auth/code/02-controlling-signup-login-screens/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/02-controlling-signup-login-screens/assets/splash.png -------------------------------------------------------------------------------- /11 Auth/code/02-controlling-signup-login-screens/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/02-controlling-signup-login-screens/constants/styles.js: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary100: '#f9beda', 3 | primary500: '#c30b64', 4 | primary800: '#610440', 5 | error100: '#fcdcbf', 6 | error500: '#f37c13', 7 | } -------------------------------------------------------------------------------- /11 Auth/code/02-controlling-signup-login-screens/screens/LoginScreen.js: -------------------------------------------------------------------------------- 1 | import AuthContent from '../components/Auth/AuthContent'; 2 | 3 | function LoginScreen() { 4 | return ; 5 | } 6 | 7 | export default LoginScreen; 8 | -------------------------------------------------------------------------------- /11 Auth/code/02-controlling-signup-login-screens/screens/SignupScreen.js: -------------------------------------------------------------------------------- 1 | import AuthContent from '../components/Auth/AuthContent'; 2 | 3 | function SignupScreen() { 4 | return ; 5 | } 6 | 7 | export default SignupScreen; 8 | -------------------------------------------------------------------------------- /11 Auth/code/03-creating-new-users/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/03-creating-new-users/assets/adaptive-icon.png -------------------------------------------------------------------------------- /11 Auth/code/03-creating-new-users/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/03-creating-new-users/assets/favicon.png -------------------------------------------------------------------------------- /11 Auth/code/03-creating-new-users/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/03-creating-new-users/assets/icon.png -------------------------------------------------------------------------------- /11 Auth/code/03-creating-new-users/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/03-creating-new-users/assets/splash.png -------------------------------------------------------------------------------- /11 Auth/code/03-creating-new-users/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/03-creating-new-users/constants/styles.js: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary100: '#f9beda', 3 | primary500: '#c30b64', 4 | primary800: '#610440', 5 | error100: '#fcdcbf', 6 | error500: '#f37c13', 7 | } -------------------------------------------------------------------------------- /11 Auth/code/03-creating-new-users/screens/LoginScreen.js: -------------------------------------------------------------------------------- 1 | import AuthContent from '../components/Auth/AuthContent'; 2 | 3 | function LoginScreen() { 4 | return ; 5 | } 6 | 7 | export default LoginScreen; 8 | -------------------------------------------------------------------------------- /11 Auth/code/04-logging-users-in/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/04-logging-users-in/assets/adaptive-icon.png -------------------------------------------------------------------------------- /11 Auth/code/04-logging-users-in/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/04-logging-users-in/assets/favicon.png -------------------------------------------------------------------------------- /11 Auth/code/04-logging-users-in/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/04-logging-users-in/assets/icon.png -------------------------------------------------------------------------------- /11 Auth/code/04-logging-users-in/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/04-logging-users-in/assets/splash.png -------------------------------------------------------------------------------- /11 Auth/code/04-logging-users-in/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/04-logging-users-in/constants/styles.js: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary100: '#f9beda', 3 | primary500: '#c30b64', 4 | primary800: '#610440', 5 | error100: '#fcdcbf', 6 | error500: '#f37c13', 7 | } -------------------------------------------------------------------------------- /11 Auth/code/05-auth-error-handling/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/05-auth-error-handling/assets/adaptive-icon.png -------------------------------------------------------------------------------- /11 Auth/code/05-auth-error-handling/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/05-auth-error-handling/assets/favicon.png -------------------------------------------------------------------------------- /11 Auth/code/05-auth-error-handling/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/05-auth-error-handling/assets/icon.png -------------------------------------------------------------------------------- /11 Auth/code/05-auth-error-handling/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/05-auth-error-handling/assets/splash.png -------------------------------------------------------------------------------- /11 Auth/code/05-auth-error-handling/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/05-auth-error-handling/constants/styles.js: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary100: '#f9beda', 3 | primary500: '#c30b64', 4 | primary800: '#610440', 5 | error100: '#fcdcbf', 6 | error500: '#f37c13', 7 | } -------------------------------------------------------------------------------- /11 Auth/code/06-storing-managing-the-user-auth-state/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/06-storing-managing-the-user-auth-state/assets/icon.png -------------------------------------------------------------------------------- /11 Auth/code/06-storing-managing-the-user-auth-state/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/06-storing-managing-the-user-auth-state/assets/splash.png -------------------------------------------------------------------------------- /11 Auth/code/06-storing-managing-the-user-auth-state/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/06-storing-managing-the-user-auth-state/constants/styles.js: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary100: '#f9beda', 3 | primary500: '#c30b64', 4 | primary800: '#610440', 5 | error100: '#fcdcbf', 6 | error500: '#f37c13', 7 | } -------------------------------------------------------------------------------- /11 Auth/code/07-protecting-screens/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/07-protecting-screens/assets/adaptive-icon.png -------------------------------------------------------------------------------- /11 Auth/code/07-protecting-screens/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/07-protecting-screens/assets/favicon.png -------------------------------------------------------------------------------- /11 Auth/code/07-protecting-screens/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/07-protecting-screens/assets/icon.png -------------------------------------------------------------------------------- /11 Auth/code/07-protecting-screens/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/07-protecting-screens/assets/splash.png -------------------------------------------------------------------------------- /11 Auth/code/07-protecting-screens/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/07-protecting-screens/constants/styles.js: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary100: '#f9beda', 3 | primary500: '#c30b64', 4 | primary800: '#610440', 5 | error100: '#fcdcbf', 6 | error500: '#f37c13', 7 | } -------------------------------------------------------------------------------- /11 Auth/code/08-adding-logout/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/08-adding-logout/assets/adaptive-icon.png -------------------------------------------------------------------------------- /11 Auth/code/08-adding-logout/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/08-adding-logout/assets/favicon.png -------------------------------------------------------------------------------- /11 Auth/code/08-adding-logout/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/08-adding-logout/assets/icon.png -------------------------------------------------------------------------------- /11 Auth/code/08-adding-logout/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/08-adding-logout/assets/splash.png -------------------------------------------------------------------------------- /11 Auth/code/08-adding-logout/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/08-adding-logout/constants/styles.js: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary100: '#f9beda', 3 | primary500: '#c30b64', 4 | primary800: '#610440', 5 | error100: '#fcdcbf', 6 | error500: '#f37c13', 7 | } -------------------------------------------------------------------------------- /11 Auth/code/09-accessing-protected-resources/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/09-accessing-protected-resources/assets/adaptive-icon.png -------------------------------------------------------------------------------- /11 Auth/code/09-accessing-protected-resources/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/09-accessing-protected-resources/assets/favicon.png -------------------------------------------------------------------------------- /11 Auth/code/09-accessing-protected-resources/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/09-accessing-protected-resources/assets/icon.png -------------------------------------------------------------------------------- /11 Auth/code/09-accessing-protected-resources/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/09-accessing-protected-resources/assets/splash.png -------------------------------------------------------------------------------- /11 Auth/code/09-accessing-protected-resources/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/09-accessing-protected-resources/constants/styles.js: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary100: '#f9beda', 3 | primary500: '#c30b64', 4 | primary800: '#610440', 5 | error100: '#fcdcbf', 6 | error500: '#f37c13', 7 | } -------------------------------------------------------------------------------- /11 Auth/code/10-storing-auth-tokens-on-the-device/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/10-storing-auth-tokens-on-the-device/assets/favicon.png -------------------------------------------------------------------------------- /11 Auth/code/10-storing-auth-tokens-on-the-device/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/10-storing-auth-tokens-on-the-device/assets/icon.png -------------------------------------------------------------------------------- /11 Auth/code/10-storing-auth-tokens-on-the-device/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/code/10-storing-auth-tokens-on-the-device/assets/splash.png -------------------------------------------------------------------------------- /11 Auth/code/10-storing-auth-tokens-on-the-device/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /11 Auth/code/10-storing-auth-tokens-on-the-device/constants/styles.js: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary100: '#f9beda', 3 | primary500: '#c30b64', 4 | primary800: '#610440', 5 | error100: '#fcdcbf', 6 | error500: '#f37c13', 7 | } -------------------------------------------------------------------------------- /11 Auth/extra-files/A Note About Token Expiration.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/extra-files/A Note About Token Expiration.docx -------------------------------------------------------------------------------- /11 Auth/slides/slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/11 Auth/slides/slides.pdf -------------------------------------------------------------------------------- /12 Native Features/code/01-editing-the-favorite-place-items/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/01-editing-the-favorite-place-items/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/02-adding-an-add-place-screen-navigation/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/02-adding-an-add-place-screen-navigation/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/02-adding-an-add-place-screen-navigation/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/03-adding-a-header-button/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/03-adding-a-header-button/assets/favicon.png -------------------------------------------------------------------------------- /12 Native Features/code/03-adding-a-header-button/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/03-adding-a-header-button/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/03-adding-a-header-button/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/03-adding-a-header-button/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/03-adding-a-header-button/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/03-adding-a-header-button/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/03-adding-a-header-button/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/03-adding-a-header-button/screens/Map.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/03-adding-a-header-button/screens/Map.js -------------------------------------------------------------------------------- /12 Native Features/code/04-global-colors-styling/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/04-global-colors-styling/assets/favicon.png -------------------------------------------------------------------------------- /12 Native Features/code/04-global-colors-styling/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/04-global-colors-styling/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/04-global-colors-styling/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/04-global-colors-styling/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/04-global-colors-styling/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/04-global-colors-styling/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/04-global-colors-styling/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/04-global-colors-styling/screens/Map.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/04-global-colors-styling/screens/Map.js -------------------------------------------------------------------------------- /12 Native Features/code/05-taking-photos-on-ios/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/05-taking-photos-on-ios/assets/favicon.png -------------------------------------------------------------------------------- /12 Native Features/code/05-taking-photos-on-ios/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/05-taking-photos-on-ios/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/05-taking-photos-on-ios/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/05-taking-photos-on-ios/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/05-taking-photos-on-ios/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/05-taking-photos-on-ios/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/05-taking-photos-on-ios/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/05-taking-photos-on-ios/screens/Map.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/05-taking-photos-on-ios/screens/Map.js -------------------------------------------------------------------------------- /12 Native Features/code/06-showing-an-image-preview/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/06-showing-an-image-preview/assets/favicon.png -------------------------------------------------------------------------------- /12 Native Features/code/06-showing-an-image-preview/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/06-showing-an-image-preview/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/06-showing-an-image-preview/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/06-showing-an-image-preview/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/06-showing-an-image-preview/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/06-showing-an-image-preview/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/06-showing-an-image-preview/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/06-showing-an-image-preview/screens/Map.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/06-showing-an-image-preview/screens/Map.js -------------------------------------------------------------------------------- /12 Native Features/code/07-creating-a-custom-button/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/07-creating-a-custom-button/assets/favicon.png -------------------------------------------------------------------------------- /12 Native Features/code/07-creating-a-custom-button/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/07-creating-a-custom-button/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/07-creating-a-custom-button/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/07-creating-a-custom-button/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/07-creating-a-custom-button/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/07-creating-a-custom-button/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/07-creating-a-custom-button/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/07-creating-a-custom-button/screens/Map.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/07-creating-a-custom-button/screens/Map.js -------------------------------------------------------------------------------- /12 Native Features/code/08-getting-started-with-the-location-picker/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/08-getting-started-with-the-location-picker/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/08-getting-started-with-the-location-picker/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/09-locating-users/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/09-locating-users/assets/adaptive-icon.png -------------------------------------------------------------------------------- /12 Native Features/code/09-locating-users/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/09-locating-users/assets/favicon.png -------------------------------------------------------------------------------- /12 Native Features/code/09-locating-users/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/09-locating-users/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/09-locating-users/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/09-locating-users/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/09-locating-users/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/09-locating-users/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/09-locating-users/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/09-locating-users/screens/Map.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/09-locating-users/screens/Map.js -------------------------------------------------------------------------------- /12 Native Features/code/09-locating-users/screens/PlaceDetails.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/09-locating-users/screens/PlaceDetails.js -------------------------------------------------------------------------------- /12 Native Features/code/10-adding-a-location-preview/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/10-adding-a-location-preview/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/10-adding-a-location-preview/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/10-adding-a-location-preview/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/10-adding-a-location-preview/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/10-adding-a-location-preview/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/10-adding-a-location-preview/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/10-adding-a-location-preview/screens/Map.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/10-adding-a-location-preview/screens/Map.js -------------------------------------------------------------------------------- /12 Native Features/code/11-adding-an-interactive-map/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/11-adding-an-interactive-map/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/11-adding-an-interactive-map/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/11-adding-an-interactive-map/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/11-adding-an-interactive-map/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/11-adding-an-interactive-map/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/11-adding-an-interactive-map/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/12-allowing-map-interaction/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/12-allowing-map-interaction/assets/favicon.png -------------------------------------------------------------------------------- /12 Native Features/code/12-allowing-map-interaction/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/12-allowing-map-interaction/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/12-allowing-map-interaction/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/12-allowing-map-interaction/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/12-allowing-map-interaction/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/12-allowing-map-interaction/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/12-allowing-map-interaction/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/13-previewing-picked-locations/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/13-previewing-picked-locations/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/13-previewing-picked-locations/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/13-previewing-picked-locations/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/13-previewing-picked-locations/screens/AllPlaces.js: -------------------------------------------------------------------------------- 1 | import PlacesList from '../components/Places/PlacesList'; 2 | 3 | function AllPlaces() { 4 | return ; 5 | } 6 | 7 | export default AllPlaces; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/14-converting-picked-location-to-human-readable-address/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/14-converting-picked-location-to-human-readable-address/screens/AddPlace.js: -------------------------------------------------------------------------------- 1 | import PlaceForm from '../components/Places/PlaceForm'; 2 | 3 | function AddPlace() { 4 | return ; 5 | } 6 | 7 | export default AddPlace; 8 | -------------------------------------------------------------------------------- /12 Native Features/code/15-outputting-a-list-of-places/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/15-outputting-a-list-of-places/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/15-outputting-a-list-of-places/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/16-sqlite-getting-started/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/16-sqlite-getting-started/assets/favicon.png -------------------------------------------------------------------------------- /12 Native Features/code/16-sqlite-getting-started/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/16-sqlite-getting-started/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/16-sqlite-getting-started/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/16-sqlite-getting-started/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/16-sqlite-getting-started/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/17-inserting-places-into-the-db/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/18-fetching-places-from-the-database/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/19-fetching-place-detail-data/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/19-fetching-place-detail-data/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/19-fetching-place-detail-data/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /12 Native Features/code/20-finished/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/20-finished/assets/adaptive-icon.png -------------------------------------------------------------------------------- /12 Native Features/code/20-finished/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/20-finished/assets/favicon.png -------------------------------------------------------------------------------- /12 Native Features/code/20-finished/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/20-finished/assets/icon.png -------------------------------------------------------------------------------- /12 Native Features/code/20-finished/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/12 Native Features/code/20-finished/assets/splash.png -------------------------------------------------------------------------------- /12 Native Features/code/20-finished/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /13 No expo/slides/slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/13 No expo/slides/slides.pdf -------------------------------------------------------------------------------- /14 Publish/code/01-starting-code/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/14 Publish/code/01-starting-code/assets/adaptive-icon.png -------------------------------------------------------------------------------- /14 Publish/code/01-starting-code/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/14 Publish/code/01-starting-code/assets/favicon.png -------------------------------------------------------------------------------- /14 Publish/code/01-starting-code/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/14 Publish/code/01-starting-code/assets/icon.png -------------------------------------------------------------------------------- /14 Publish/code/01-starting-code/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/14 Publish/code/01-starting-code/assets/splash.png -------------------------------------------------------------------------------- /14 Publish/code/01-starting-code/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /14 Publish/code/01-starting-code/models/category.js: -------------------------------------------------------------------------------- 1 | class Category { 2 | constructor(id, title, color) { 3 | this.id = id; 4 | this.title = title; 5 | this.color = color; 6 | } 7 | } 8 | 9 | export default Category; 10 | -------------------------------------------------------------------------------- /14 Publish/extra-files/assets-1/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/14 Publish/extra-files/assets-1/adaptive-icon.png -------------------------------------------------------------------------------- /14 Publish/extra-files/assets-1/assets.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/14 Publish/extra-files/assets-1/assets.zip -------------------------------------------------------------------------------- /14 Publish/extra-files/assets-1/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/14 Publish/extra-files/assets-1/icon.png -------------------------------------------------------------------------------- /14 Publish/extra-files/assets-1/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/14 Publish/extra-files/assets-1/splash.png -------------------------------------------------------------------------------- /14 Publish/extra-files/assets-2/icons.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/14 Publish/extra-files/assets-2/icons.zip -------------------------------------------------------------------------------- /14 Publish/slides/slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/14 Publish/slides/slides.pdf -------------------------------------------------------------------------------- /15 Push Notifcations/Configuring Scheduled Notifications.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/15 Push Notifcations/Configuring Scheduled Notifications.docx -------------------------------------------------------------------------------- /15 Push Notifcations/Local Notifications - Permissions.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/15 Push Notifcations/Local Notifications - Permissions.docx -------------------------------------------------------------------------------- /17 JavaScript Refresher/01-core-js-syntax.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/17 JavaScript Refresher/01-core-js-syntax.zip -------------------------------------------------------------------------------- /17 JavaScript Refresher/02-let-and-const.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/17 JavaScript Refresher/02-let-and-const.zip -------------------------------------------------------------------------------- /17 JavaScript Refresher/03-arrow-functions.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/17 JavaScript Refresher/03-arrow-functions.zip -------------------------------------------------------------------------------- /17 JavaScript Refresher/04-objects.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/17 JavaScript Refresher/04-objects.zip -------------------------------------------------------------------------------- /17 JavaScript Refresher/05-arrays.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/17 JavaScript Refresher/05-arrays.zip -------------------------------------------------------------------------------- /17 JavaScript Refresher/06-arrays-and-reference-types.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/17 JavaScript Refresher/06-arrays-and-reference-types.zip -------------------------------------------------------------------------------- /17 JavaScript Refresher/07-spread-and-rest.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/17 JavaScript Refresher/07-spread-and-rest.zip -------------------------------------------------------------------------------- /17 JavaScript Refresher/08-destructuring.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/17 JavaScript Refresher/08-destructuring.zip -------------------------------------------------------------------------------- /17 JavaScript Refresher/09-async-code.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/17 JavaScript Refresher/09-async-code.zip -------------------------------------------------------------------------------- /17 JavaScript Refresher/Project Setup.txt: -------------------------------------------------------------------------------- 1 | Project Setup 2 | 3 | We'll execute the code examples with NodeJS, hence you should ensure that you have downloaded + installed that from https://nodejs.org/ -------------------------------------------------------------------------------- /18 ReactJS Refresher/react-refresher-01-react-starting-project.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/18 ReactJS Refresher/react-refresher-01-react-starting-project.zip -------------------------------------------------------------------------------- /18 ReactJS Refresher/react-refresher-02-react-basics.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/18 ReactJS Refresher/react-refresher-02-react-basics.zip -------------------------------------------------------------------------------- /18 ReactJS Refresher/react-refresher-03-first-basic-component.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/18 ReactJS Refresher/react-refresher-03-first-basic-component.zip -------------------------------------------------------------------------------- /18 ReactJS Refresher/react-refresher-04-passing-props.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/18 ReactJS Refresher/react-refresher-04-passing-props.zip -------------------------------------------------------------------------------- /18 ReactJS Refresher/react-refresher-05-outputting-a-list-of-data.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/18 ReactJS Refresher/react-refresher-05-outputting-a-list-of-data.zip -------------------------------------------------------------------------------- /18 ReactJS Refresher/react-refresher-06-handling-events.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/18 ReactJS Refresher/react-refresher-06-handling-events.zip -------------------------------------------------------------------------------- /18 ReactJS Refresher/react-refresher-07-parent-child-communication.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/18 ReactJS Refresher/react-refresher-07-parent-child-communication.zip -------------------------------------------------------------------------------- /18 ReactJS Refresher/react-refresher-08-state.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/18 ReactJS Refresher/react-refresher-08-state.zip -------------------------------------------------------------------------------- /18 ReactJS Refresher/react-refresher-09-two-way-binding.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/18 ReactJS Refresher/react-refresher-09-two-way-binding.zip -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | # React-Native---The-Practical-Guide 5 | Code Repository for React Native - The Practical Guide, published by Packt 6 | -------------------------------------------------------------------------------- /Section 2 Quizzes - React Native Basics [Course Goals App].pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/Section 2 Quizzes - React Native Basics [Course Goals App].pdf -------------------------------------------------------------------------------- /Section 5 Quiz - Building Adaptive User Interfaces.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/React-Native---The-Practical-Guide/78d717d52a3fd73246bb8b3c9192cac0605e9902/Section 5 Quiz - Building Adaptive User Interfaces.pdf --------------------------------------------------------------------------------