Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. ITCSS + BEMIT
Será necesaria documentación previa en arquitectura para la organización y
estructuración escalable de los estilos en las herramientas con meta-framework
ITCSS
Requerimientos :
Desarrollo :
Requerimientos :
1
Desarrollo:
3. MODULE ANIMATION
2
Responsive Reorganization with Multiple SVGs and Media Queries
Animating Data Visualizations
o Animation in Data Visualization
o D3 with CSS Animation Example
o Chartist with CSS Animation Example
o Animating with D3
Animations in Component Libraries
MorphSVG
3
Arquitectura JAVASCRIPT
1. ES6 MODULES
2. USO DE PROMISES
3. PARADIGMA STORE FLUX CON VUEX
Documentación implementación de vuex en projecto vuejs como handler de estados y
mutaciones.
4. Validation Module
vue-validator ( 1h )
vee-validate ( 1h )
vue-rawmodel ( 1h )
vuelidate ( 1h )
custom
5. Internacionalization Module
4
vue-i18n ( 2h )
vuex-i18n ( 2h )
vue-translate-plugin ( 1h )
vue-gettext ( 1h )
vue-multilanguage ( 1h )
vue-ts-locale ( 1h )
vue-i18next ( 1h )
vue-polyglot ( 1h )
v-localize ( 1h )
8. High-Order-Components ( 3h )
9. Functional Components ( 2h )
5
Bundlers & Tasks Managers
Requerimientos :
6
ARQUITECTURA FRONT-END
HTML
Modular markup
7
<h1 class="toggle-title">Title 1</h1>
</div>
<div class="toggle-details"> ... </div>
Layout
Componentes
Animation
A falta de definir la compilación y hot reload con webpack, por defecto, se usarán
comandos de npm para realizar dicha labor, si bien el escenario ideal es utilizar solo un
bundler para procesar todas las tareas.
8
JAVASCRIPT ES6 + VUEJS
TRASPILER
Con el fin de mantener browser compatibility, ser usara Babel como traspiler en su
preset es2015.
Construcción de interface
Interactividad
Manejo de datos
Reactividad
XHR
9
se centran en otros áreas del desarrollo de una aplicación web como por ejemplo
ruteos, Xhr, store paradigm etc.
Vuejs está diseñado según el patrón MVVM moderno. Con la componentización como
core de su filosofía. Ver arquitectura de componentes en el siguiente punto.
10
DIAGRAMA WEB APLICATION
DATABASE
API REST
VUE JS APP
XHR REQUESTS
DATA BINDING
REACTIVE LOGIC
ACTIONS
LAYOUT
VIEW TEMPLATE
NO VUEX *
11
ARQUITECTURA DE COMPONENTES
La arquitectura del conjunto de aplicaciones estará basada en isolated UI components
implementados con jerarquía de árbol.
12
Siguen la regla FIRST
o Focused
o Independent
o Reusable
o Small
o Testable
2 – 3 palabras
Dentro del componente hay que mantener las expresiones js lo más simples
posibles, sobre todo las inline.
13
PROPS PRIMITIVAS
<bx-range-slider
:values="[10, 20]"
min="0"
max="100"
step="5"
:on-slide="updateInputs"
:on-end="updateResults">
</bx-range-slider>
PROPS MUST-HAVE
<template lang="html">
<div class="Ranger__Wrapper">
14
<!-- ... -->
</div>
</template>
<script type="text/javascript">
export default {
// Do not forget this little guy
name: 'RangeSlider',
// compose new components
extends: {},
// component properties/variables
props: {
bar: {}, // Alfabetizadas
foo: {},
fooBar: {},
},
// variables
data() {},
computed: {},
components: {},
// methods
watch: {},
methods: {},
// component Lifecycle hooks
beforeCreate() {},
mounted() {},
};
</script>
<style scoped>
.Ranger__Wrapper { /* ... */ }
</style>
NOMBRES DE EVENTOS
Nomenclatura kebab-case
Un evento es disparado por una única acción
Seguimos la Google Web Components Style Guide :
o Event names should have a prefix strongly related to the name of the element
in use (e.g drive-upload-success vs upload-succeeded). This allows you to drop
in multiple elements in the page without event namespacing clashing.
o It’s fine to simplify things a bit if your element name is complex, as long as the
relationship is unambiguous (e.g., for a load event on a <google-client-api-
loader> element, use google-client-api-load instead of google-client-api-
loader-load).
o A unique event name should be fired for unique actions in your element that
will be of interest to the outside world.
15
o Events should either end in verbs in the infinitive form (e.g. google-client-api-
load) or nouns (e.g google-drive-upload-success).
<style scoped>
/* RECOMENDADO */
.my-comp { }
.my-comp li { }
.my-comp __item { }
/* no !! */
.comp-X { } </style>
16
ROAD MAP DESARROLLOS PREVIOS
Lista de tareas y desarrollo previos a la realización de la primera
app/tool
Estructura
Fuente
Escala tipográfica
Paleta de colores
o Settings ( 4h )
o Tools ( 4h )
o Generic ( 4h )
o Base ( 4h )
o Objects ( 4h )
o Components
o Trumps ( 1h )
Components Layer ser irá alimentando junto con el desarrollo de cada componente en concreto dentro de cada SFC o
en la carpeta de la layer de itcss
17
Animation Module
Desarrollo de Keyframes Animations base e integración con fw itcss.
Nomenclatura Vue
o Modals ( 4h )
o Notifications ( 3h )
o Remove / Add Elements ( 3h )
o Reorder Elements ( 6h )
o Show/Hide sections ( 2h )
o Collapses ( 1h )
o Page Transitions ( 3h )
Animaciones con SVG
Desarrollo de Custom directives ( 16 h )
Coordinate State con Vuex / lifecycle hooks
Icons Module
FontAwesome components for vue ( 1h )
Fontaxti ( 6H )
o Más ligera
o Necesario crear tus propios iconos
o Crear el componente vue que los gestione
18
Responsive menu ( 4h )
19
BrixUI-CLI
Scaffold project ( 3h )
Implementación de VUEX
Implementación de Internacionalización
Implementación de Validation Module
Implementación de Unit Testing
Implementacion de Split patterns
Implementación de Usuarios / permisos / roles
Implementación de Routes | Nested routes ( 5h )
Custom viewports ( si fuera necesario )
Interceptors ( si fuera necesario )
20
VUE-CLI CUSTOM TEMPLATE REPO
( 8h )
vue init username/repo my-project
BUTTON bx-button ( 1h )
o Primary button ( 1h )
o Secondary button ( 1h )
o Loading button ( 3h )
o Icon button ( 1h )
RADIO bx-radio ( 2h )
o Radio Buttons ( 2h )
CHECKBOX bx-checkbox ( 2h )
o checkbox Buttons ( 2h )
INPUT bx-input ( 2h )
o Icon input ( 1h )
o Input Number ( 4h )
TEXTAREA bx-textarea ( 2h )
SELECT bx-select ( 2h )
21
SWITCH
o Maquetación ( 5h )
o Logica ( 1h )
UPLOAD IMAGE ( 4h )
DATATABLE ( 16H )
o Actions columns ( 6h )
o Sort ( 4h )
o Pagination ( 8h )
PROGRESS BAR ( 2h )
BADGE ( 2h )
ALERT ( 4h )
NOTIFICATION ( 4h )
NAV ( 5h )
o collapsible nav ( 5h )
o COLLAPSIBLE SIDE-BAR ( 4h )
DROPDOWN MENU ( 5h )
o Tree structure ( 6h )
BREADCRUMPS ( 3h )
TABS ( 8h )
TOOLTIP ( 5h )
22
CARD ( 5h )
COLLAPSIBLE ( 5h )
PANEL + SLOT ( 6h )
23
API DOCUMENTATION
STYLE GUIDE
VUE STYLEGUIDIST ( I+D)
24
STEPS DESARROLLO DE UNA TOOL/APP
DISEÑO UI/UX
En primer lugar se requerirá el mockup, bien plasmado en papel u otro soporte
( powerpoint … )
Tras discusión sobre el mismo, se pasará a realizar el diseño, siempre que sea
necesario ( Photoshop, sketch … ) como guía y previsualización del mismo
ANALISIS TOOL/APP
Definición de los componentes / páginas y arquitectura interna de la tool en vue
Análisis previo
Estructuracion modular de la aplicación/ tool
Definición de patrones de comunicación que se usarán entre componentes
o Unidirectional data flow
o Custom events
o callbacks
o Event bus
o store
Definición de estados, mutaciones y acciones ( flux )
Definición de requisito de modelo con los datos necesarios
25
DESARROLLO FAKE API NODE
Se desarrollara primeramente un API REST ( o la tecnología para el endpoint que
finalmente se opte por desarrollar para la capa del api ) en Node con las enpoints
necesarios al modelo
SCAFFOLD APP/TOOL
MPA
o Scaffold project con Vue-CLI
Webpack simple distribution
26
WELLCOME PACK
Herramientas y entorno de desarrollo
DEVELOPMENT ENVIROMENT
EDITOR
Atom preferiblemente.
ATOM
https://atom.io/
VISUAL STUDIO
https://code.visualstudio.com/
27
SUBLIME TEXT 2
http://www.sublimetext.com/2
Atom-Alignement
Emmet
KeyBinding Resolver
File-Icons
Js-hyperclick
Language-babel
Language-vue
Language-scss
Linter
Pigments ( o similar )
Vue-hyperclick
git
28
NODE
NPM
CONTROL DE VERSIONES
GIT
https://git-scm.com/book/es/v1/Empezando-Instalando-Git
29
VUE AND VUE-CLI
---
$ vue init <template-name> <project-name>
TEMPLATE
Se Usará en un primer momento la template de webpack simple
[ La versión webpack viene con unit testing incorporada. Si karma finalmente es usado como
motor de test, la versión webpack sería la template básica a usar, en caso contrario, podemos
crear una template propia con el motor de testing, por ejemplo Jest ]
https://github.com/vuejs-templates/webpack-simple
DEBUGGING TOOLS
https://chrome.google.com/webstore/detail/vuejs-devtools/
nhdogjmejiglipccpnnnanhbledajbpd?hl=es
30
VUE-DEV-TOOLS FOR FIREFOX
https://addons.mozilla.org/en-US/firefox/addon/vue-js-devtools/
OVERVIEW VUE-DEV-TOOLS
https://alligator.io/vuejs/vue-devtools/
31