2. Frameworks de desenvolupament

INDEX
2.1. React
2.2. Ionic
2.3. Vue
2.4. Polymer
2.5. Adopció de noves versions dels frameworks
2.6. Llenguatge de programació

R01.01.01

En aquest apartat s'enumeren i descriuen els frameworks més habituals per desenvolupar web apps progressives (PWA). Són aquests i són permesos per l'Ajuntament pels seus productes. En cas que un projecte requereixi l'ús d'un altre farmework diferent dels exposats, cal de forma prèvia a iniciar el desenvolupament, justificar a l'OSAM el motiu d'aquesta necessitat basada en aspectes tècnics.

2.1. React

És una llibreria Javascript desenvolupada per la comunitat de codi obert i mantinguda per Facebook. És un framework que utilitza el seu propi sistema de components, opera totalment en Javascript i utilitza el DOM virtual per a renderitzar l'aplicació. La PWA esdevé molt fluida gràcies a aquest sistema.

És un framework amb una sintaxi molt semàntica, té moltíssima documentació i la seva comunitat és molt activa i participativa.

Per a més informació: https://reactjs.org/

2.2. Ionic

És una llibreria Javascript (Angular o Typescript) per desenvolupar apps híbrides de codi obert. És un framework amb components propis de molta qualitat i llestos per a utilitzar. Per facilitar el seu desenvolupament, disposa d’una eina de línia de comandes, aquesta permet generar codi des del terminal molt fàcilment, a més a més, té un SDK propi, molt còmode per a qualsevol desenvolupador.

Disposa d'un gran volum de documentació i una comunitat activa existent.

Per a més informació: https://ionicframework.com/

2.3. Vue

És una llibreria Javascript modular, és a dir, permet començar amb un paquet molt senzill de codi (74KB), i anar escalant el paquet amb diferents mòduls propis, segons la necessitat de l’app. Té un sistema de renderitzat i cicle de vida de components semblant a React, per aquest motiu l’app és molt fluida.

És un framework basat en Javascript, HTML, i CSS, té una comunitat cada cop més activa i amb documentació.

Per a més informació: https://vuejs.org/

2.4. Polymer

És una llibreria Javascript de codi obert mantinguda per Google. És l'únic framework que utilitza l’API nativa de navegador de Components Web, per aquest motiu sempre té la darrera tecnologia disponible. Utilitza un sistema de renderitzat de components propi, semblant al DOM virtual. Polymer actualitza només la part del component que canvia, i no el component sencer.

En utilitzar l’API de Components Web, els seus components es poden exportar a altres apps o webs, i també es poden compartir amb la comunitat, perquè d’altres desenvolupadors els utilitzin. Polymer té una sèrie de components amb estètica “Material Design”, per facilitar el seu desenvolupament.

Per a més informació: https://www.polymer-project.org/

2.5. Adopció de noves versions dels frameworks

R01.01.02

Es requereix mantenir les aplicacions actualitzades a la darrera versió estable dels frameworks utilitzats, així com a les actualitzacions de versions minor que incorporin canvis de seguretat o correccions d’errors.
D’aquesta manera s’incorporaran les millores de rendiment, seguretat, usabilitat, etc. que incorporin.
Des de la publicació oficial del framework fins a l’actualització de la versió a producció ha de transcórrer un període de temps acotat:

  • Actualitzacions de seguretat o correcció d'errors: una setmana.
  • Actualització per nova versió estable: un mes.

 

2.6. Llenguatge de programació

R01.02.01

Es requereix l'ús de Typescript com a llenguatge de programació, pels beneficis que aporta:

  • Detecció d'errors en temps de compilació
  • Facilitat per al desenvolupador gràcies a la seva integració amb els IDE: assistent de codi, validacions, linters...

 

Seguint aquest raonament, el tipus no es pot ometre i no es podrà fer servir el tipus any, ja que llavors no obtindríem els beneficis comentats.

En cas que el proveïdor necessiti utilitzar un llenguatge de programació diferent de l'indicat, haurà de justificar a l'OSAM aquesta necessitat i serà necessària l'aprovació d'aquesta per continuar amb el projecte.