App inventor 2 en español
Cómo programar los teléfonos móviles con Android
mediante App inventor 2 - Juan Antonio Villalpando
-- Tutorial de iniciación de App Inventor 2 en español --
Volver al índice del tutorial
____________________________
120.- Extensiones. Extensions.
- Inicio:
- En los próximos meses MIT proporcionará a App inventor 2 de "Extensiones". Vamos a adelantarnos un poco a los acontecimientos.
- Una extensión es como una librería, un código que hace algo y que podemos insertar en nuestra aplicación.
- Una extensión es un código que un programador que sepa programar en JAVA realiza de manera que crea un nuevo componente que podemos insertar y utilizar en nuestro App inventor 2.
- Una extensión es un nuevo componente creado por un programador que tenga conocimientos de JAVA y de código fuente de App inventor, ese componente tendrá sus bloques y podremos utilizarlo como los demás componentes de App inventor 2. Por ahora los componentes son invisibles en la ventana, es decir no se ven, más adelante la MIT eliminará esta restricción. Los archivos de extensiones terminan en .aix
-------------------------------------------------------------------------------
La MIT está experimentando la manera de incorporar extensiones a App inventor. Nos permite con ejemplos probar cómo va a funcionar las extensiones.
- Entramos en la web:
http://appinventor.mit.edu/extensions/
- Pulsamos el botón verde: Try App inventor Extensions >>
- Aceptamos las condiciones y entraremos en una página parecida a la de App inventor.
- Importante: para hacer las pruebas en el móvil, debemos cargar ésta otra versión del MIT Companion, la podemos cargar mediante el código QR que se encuentra en la opción de
Ayuda / Companion Information.
- Cuando terminemos de trabajar con este App inventor 2 de extensiones y volvamos a nuestro App inventor 2 normal, deberemos volver a instalar en MIT Companion de éste.
- Para hacer las pruebas es conveniente poner el App inventor en inglés.
- Los proyectos que hagamos en este App inventor de extensiones experimentales, no debemos cargarlos en el App inventor 2 normal. Es decir, podemos tomar una aplicación .aia del App inventor 2 normal y cargarlo en este App inventor de extensiones experimentales. Modificarlo, añadirle extensiones, probarlo. Pero luego no podremos volver a cargarlo en el App inventor 2 normal.
- Cargamos la extensión pulsando en Import extension. Cuando la cargemos nos pedirá que le asignemos un nombre, dejamos el que trae por defecto.
________________________
Extensiones de ejemplos
Puedes obtenerlas en la web original en inglés: http://appinventor.mit.edu/extensions/
Name Description Author Download .aix File Source Code
VectorArithmetic |
Se introducen dos vectores cada uno con dos números separados por coma 10,20 y 40,50. Obtendremos la suma 50,90. |
Ethan Hon |
VectorArithmetic.aix |
Source.zip |
ImageProcessor |
Combina dos imágenes, se puede graduar la ponderación de una sobre la otra mediante "Weight". Pone una imagen en blanco y negro. Aquí una demo (han quitado el enlace pero puedes verlo abajo en esta página). |
Justus Raju |
ImageProcessor.aix |
Source.zip |
SoundAnalysis |
Es un componente multimedia que analiza el tono de un sonido proveniente del micrófono, devuelve un número según el tono. Se puede utilizar como entrada para controlar algún componente por ejemplo al silvar (tono >500Hz) se realizar una acción, al aplaudir (tono >2000Hz) se realiza otra acción. |
Mouhamadou Oumar Sall |
SoundAnalysis.aix |
Source.zip |
ScaleDetector |
Se pone una bola y mediante dos dedos podemos hacer que está tenga un tamaño mayor o menor. Aquí una demo Using App Inventor extensions to implement multitouch
|
Hal Abelson |
ScaleDetector.aix |
Source.zip |
________________________
- Vamos a editarlas.
p120_extensiones.aia >> Aquí están: VectorArithmetic, ImageProcessor y SoundAnalysis.
_________________
- Diseño.
- Así se importa una extensión:
_________________
- Bloques.
---------------------------------------------
- Vector Arithmetic
Ponemos un VectorArithmetic, un Botón1 y una Etiqueta (Label1)
A cada vector le ponemos dos números, separados por coma.
Nos dará la suma de esos dos números.
10,20
40,50
Nos dará en la Etiqueta
50.0,70.0
---------------------------------------------
- ImageProcessor
- Subimos dos imágenes (pera.gif y limon.gif)
- Ponemos en la ventana 4 componentes de image.
- Ponemos un Botón2
---------------------------------------------
- SoundAnalysis
- Ponemos dos Botones y dos Etiquetas.
- Al hablar deberá aparecer un número en la Etiqueta2.
- En la Etiqueta3 aparecerá true o false, según esté activado o no el complemento.
-------------------------------------------
-------------------------------------------
- scaleDetector
scaleGestureDemo.aia
(Aquí está: scaleDetector)
scaleGestureDemo.apk
Explicación
_________________
- Bloques.
- Para poder construir Extensiones es necesario saber programar en JAVA, aquí un ejemplo de la construcción de este componente con su código JAVA.
@SimpleEvent
public void Scale(double scaleFactor) {
EventDispatcher.dispatchEvent(this, "Scale", scaleFactor);
}
public class MyOnScaleGestureListener extends
SimpleOnScaleGestureListener {
// We override the event handling of the ordinary SimpleOnScaleGestureListener
// In this case, make the onScale event call the component's Scale event handler, whose
// behavior can be defined by the When Scale block.
@Override
public boolean onScale(ScaleGestureDetector detector) {
float scaleFactor = detector.getScaleFactor();
// Log.i("Scale", "onScale was signaled, scale factor = " + scaleFactor);
Scale((double) scaleFactor);
return true;
}
}
public class ExtensionScaleDetector extends ScaleGestureDetector
implements Canvas.ExtensionGestureDetector {
public ExtensionScaleDetector(Context c, OnScaleGestureListener l ) {
super(c,l);
}
}
boolean onTouchEvent(MotionEvent event);
@SimpleFunction
public void AddHanderToCanvas(Canvas myCanvas) {
this.myCanvas = myCanvas;
ExtensionScaleDetector myDetector =
new ExtensionScaleDetector(myCanvas.getContext(), new MyOnScaleGestureListener());
myCanvas.registerCustomGestureDetector(myDetector);
} |
----------------------------------------------------------------------------------------------
___________________________________________________________________
- Más ejemplos de extensiones. Taifun.
- Un buen sitio donde podemos ver las extensiones creadas por otros autores es la Web de Taifun:
- Listado creado por Taifun de extensiones de otros autores: Tainfun de Puravida. Listado de extensiones.
----------------------------------------------------------------------------------------------
Más información: http://ai2.appinventor.mit.edu/reference/other/extensions.html
App inventor source: http://appinventor.mit.edu/appinventor-sources/
___________________________
|