Repositorio del proyecto de UniJOBS
Ahora, en el repo de UniJOBS se encuentran dos proyectos: las versiones nativas para iOS y Android en ./unijobsNative
y la versión web en ./web
, junto con el servidor que alimentará a todas las aplicaciones.
Por favor, hagan commits separados para la verisón web y nativa. 'Prefixeen' [Web] para la versión web y [Native-iOS] o [Native-Android] para las versiones nativas.
- Updrage Guide
- API
- React: cómo funciona y cómo usarlo
- Consumir datos de la API en nuestros componentes
- Cómo manejar rutas
NOTA: en modo 'development', aparece un error en consola que habla sobre React.render
, el problema es en el package react-resolver
que sigue usando [email protected]
. Realmente sólo es un warning y la aplicación seguirá funcionando hasta que salga [email protected]
.
- Node v4.x.x ó mayor (de preferencia, usar
nvm
) <- Es mejor si usan 4.2.x! - mongoDB para la base de datos
npm install -g react-native-cli
- Genymotion, si quieres un emulador de Android más nice.
- Git, of course
- Si usas Windows, ConEmu es el campeón para manejar terminal/consola/bash. Copia mi configuración
- Prepara tu editor de texto para usar un linter (eslint, en este caso): Sublime Text | Atom
- Xcode 6.3 o mayor.
- instalar
watchman
víabrew
:brew install watchman
- Instalar el SDK Manager de Android y descargar:
- Android SDK Build-tools version 23.0.1
- Android 6.0 (API 23)
- Android Support Repository
- (todas las tools para las versiones que queramos soportar)
Primero:
$ git clone https://github.com/arhcstolen/unijobs.git
$ cd unijobs
$ cd ./web
$ npm install
Tienes que tener instalado mongodb en tu computadora, cuando sea el caso, en terminal:
$ mongod
En otra terminal, inicializa la base de datos con
$ npm run seed
Development (hot reload, assets sin minificar)
$ npm run dev
Production (no hot reload, assets comprimidos, minificados, etc).
$ npm run start
Production en Windows
$ npm run win
Testing
$ npm run test
Linting
$ npm run lint
Recuerda que para esto, ya necesitas tener instalado react-native-cli (checa los Requisitos Universales)
$ cd ./unijobsNative/
$ npm install
$ react-native start //esto inicaliza el packager de React Native
iOS
- Abre
./ios/unijobsNative.xcodeproj
en Xcode y dale run para ver la app en el simulador. - Abre
./index.ios.js
en tu editor y hazle cambios. - Dale a ⌘-R en el simulador para refrescar el proyecto y ver los nuevos cambios.
Android
- En otra terminal, ejecuta
react-native run-android
- Hacer más tests (componentes de React, endpoints de GraphQL, etc).
- Añadir más queries y madres a GraphQL <-- EN PROGRESO
- Crear la base de datos <-- LISTO!
- Conectar el servidor (y GraphQL) con una base de datos (MongoDB) <-- LISTO!
- Crear rutas (a la REST) para abstraer los queries de GraphQL (no estoy seguro sobre esto) <- LOL, NOPE. NO SE HARÁ
- Conectar datos a los componentes de React. <-- EN PROGRESO
- Implementar passwordless para registro de usuarios.
- Implementar lógica para sólo entrar a rutas estando autenticado.
- Agregar estilos (pa' que se vea kawaii).
- Implementar Flux architecture (Redux, principalmente), sólo y sólo si es necesario. <-- SE SIGUE PENSANDO
La cagué en un commit, ¿cómo lo arreglo?
Fusionar múltiples commits en uno solo
Hoja de referencia para Git/GitHub
Como usar Clases con ES6 y React
Teoría de Higher Order Functions/Components
Creando una app robusta con React
Smart and Dumb Components (vean el link de Container Components también)
React to Changes with Pure Components
5 Preguntas que cada Unit Test debe responder
- Clona el repo
- Crea una rama para los cambios y trabaja ahí.
- Recuerda estar checando los cambios en master.
- Cuando haya cambios en master, fusiónalos con los de tu rama experimental.
- Cuando esté lista, sube la rama al repo y haz un pull request desde ahí.
- Si encuentras un problema, abre un issue y escribe cómo sucedio, bajo que circunstancias, para poder replicarlo y ayudarnos entre todos.
Protip: hagan git rebase
para fusionar los cambios, es mejor que git merge
Protip 2: si pueden incluir tests, mejor!