Extensions d'App Inventor


En aquest apartat mostrarem com incorporar i utilitzar una extensió en un projecte d'App Inventor.


Respondrem a les següents preguntes:


  • Què són les extensions i per a que serveixen?
  • On podem obtenir-ne?
  • Com les podem incorporar i utilitzar en els nostres projectes?



Com hem vist en els blocs anteriors, App Inventor ofereix moltíssimes possibilitats gràcies a la gran varietat d’objectes dels quals disposa i que es van actualitzant. Si ens trobem però que hi ha alguna tasca en concret que volem resoldre però no disposem de cap objecte que ens permeti fer-ho, tenim dues opcions:

  1. Cercar una API que ens pugui resoldre la tasca i cridar-la mitjançant l’objecte Web.
  2. Utilitzar les Extensions d’App Inventor.

Què són les extensions d’App Inventor?

Les extensions són objectes que podem agregar a un projecte d’App Inventor i que ofereixen funcionalitats que els objectes dels quals disposa App Inventor no tenen. Aquestes extensions estan desenvolupades en JAVA, tot i que per utilitzar-les, nosaltres les veurem com qualsevol altre objecte de l’entorn de programació. Un cop incorporades al nostre projecte, les podrem trobar a la llibreria Extensions de la barra lateral esquerra.

El propi MIT ofereix una llibreria d’extensions que podem afegir a les nostres aplicacions. Si hi accediu, veureu que és un llista força curta tot i que totes elles estan comprovades amb la darrera versió d’App Inventor.

Per mostrar el funcionament de les extensions proposem el desenvolupament d’una calculadora que utilitza una extensió que interpreta i resol expressions matemàtiques molt diverses.

Si volguéssim implementar una calculadora, el propi App Inventor ja ens ofereix una sèrie de funcions força complerta que podem trobar quan estem editant en la finestra de blocs.



Preparem els objectes

Utilitzarem però una extensió que supera les funcions que ofereix aquesta biblioteca pròpia d’App Inventor. L’extensió que utilitzarem serà Math Extensions de Pura Vida Apps. Per poder-la agregar al nostre projecte cal descarregar l’arxiu com.puravidaapps.TaifunMath.aix o emmagatzemar-ne la url.

Un cop ho hagem fet, cal obrir un nou projecte i hi afegirem l’extensió tal com mostra la següent pantalla:



Cliquem l’opció assenyalada, Import extension, i cerquem l’arxiu com.puravidaapps.TaifunMath.aix que hem descarregat en el nostre ordinador per incorporar-lo en el projecte. També podem facilitar la url per tal que el sistema carregui directament l’extensió. Al cap d’uns instants, veurem que disposem ja d’un nou objecte anomenat TaifunMath:



Aquest objecte rebrà una expressió matemàtica, i utilitzant la llibreria mXparser, l’analitzarà, la resoldrà i ens en retornarà el resultat. Si mirem les funcions que ens ofereix, són molt senzilles però suficients donada la potència de la biblioteca que utilitza:



La funció TaifunMath1.Expression ens retornarà el resultat d’una expressió matemàtica que li facilitem, i TaifunMath1.License ens mostrarà les condicions d’ús de la biblioteca mXparser.

Dissenyem la interfície

Bàsicament ens caldrà un quadre de text on introduir expressions matemàtiques, un botó que ens servirà per enviar l’operació i un altre espai on rebrem la resposta. La proposta d’interfície que fem és la següent:



Addicionalment tenim també un botó que ens permetrà mostrar l’ajuda en línia de la biblioteca a través d’un objecte WebViewer i un altre que ens mostrarà les condicions d’ús de la biblioteca. També podem veure que hem incorporat un objecte de tipus TaifunMath no visible.

Programem els objectes

La programació d’aquests objectes també és d’alló més senzilla ja que tan sols hem de captar els clicks sobre els diferents botons per actuar en conseqüència.

Quan cliquem el botó de calcular,



cridem a la funció TaifunMath1.Expression facilitant-li la expressió entrada per l'usuari. El resultat de la funció el mostrem en el camp de text TBResultat.

Quan cliquem el botó per veure la llicència la mostrem també en el camp de text TBResultat:



I per acabar, quan cliquem el botó d’ajuda podem veure indicacions sobre les funcions matemàtiques que es poden resoldre i la seva sintaxi.



Aquest darrer botó serveix per fer visible o invisible l’objecte WebViewer1 gràcies al qual podrem navegar per la pàgina amb informació sobre les possibilitats de la biblioteca mXparser..

Si voleu experimentar amb altres extensions, en el següent enllaç a Pura Vida apps hi podeu trobar extensions molt diverses, i si voleu més informació sobre el seu funcionament i com es programen, ho podeu consultar a App Inventor Extensions.