Skip to content

Materials for my Introduction to React Native Workshop πŸ‘¨πŸ»β€πŸ’»

Notifications You must be signed in to change notification settings

hectahertz/intro-to-react-native

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

36 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Materials for my Introduction to React Native Workshop

Environment setup

Basic requirements

If you just want to run apps through Expo on your physical device, these will be enough:

To run apps in an emulator

If you also want to run apps through Expo in an emulator, you'll need to set it up

Demo App

The Demo App included in the repository is meant to be used as a reference in a 2h workshop to illustrate basic React Native & Firebase concepts.

Reference links

Some other awesome libraries!

  • react-native-dropdownalert
  • react-native-firebase
  • react-native-gifted-chat
  • react-native-image-crop-picker
  • react-native-swiper
  • react-native-vector-icons

Firebase setup for the demo project

  • Create a new app
  • Get your credentials and add them in the adapter
  • Enable email/password login
  • Register some users
user1@demo.com // password
...
user5@demo.com // password
  • Starting DB Shape
{
  "tweets": {
    "-KzIr3nG4akj5U5NvCob": {
      "text": "Tweet!",
      "uid": "lD29Ihlo59TKjZZVmU7pfODAcvG2"
    }
  },
  "users": {
    "lD29Ihlo59TKjZZVmU7pfODAcvG2": {
      "avatar": "https://randomuser.me/api/portraits/men/81.jpg",
      "name": "Ricky Neal",
      "username": "rickyneal"
    }
  }
}
  • Security rules
{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null",
    "tweets": {
      "$tweet": {
        // new messages must have a string text and a string uid
        ".validate": "newData.hasChildren(['text', 'uid']) && newData.child('text').isString() && newData.child('uid').isString()",
        // the uid must match the authenticated user
        "uid": {
           ".validate": "newData.val() === auth.uid"
        },
      }
    }
  }
}

License

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

About

Materials for my Introduction to React Native Workshop πŸ‘¨πŸ»β€πŸ’»

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published