Processing para Android

EN ES

Programando con Android Studio

Es posible usar Android Studio para el desarrollo avanzado de Android con la biblioteca principal de Processing.

Pasos generales

Android Studio es la herramienta recomendada por Google para desarrollo en Android. Si ya tienes experiencia en con la programación de Android app usando Android Studio, y quisieras incorporar la biblioteca principal de Processing para Android en tus proyectos de Android Studio projects, entonces este tutorial puede serte de utilidad.

Todo el código que define la API de Processing está incluido dentro de archivo processing-core.zip, que está dentro de la subcarpeta AndroidMode en la carpeta de modos dentro de la carpeta de bosquejos. Lo único que tienes que hacer es copiar este archivo como rocessing-core.jar y agregarlo como una dependencia a tu proyecto. El procedimiento paso a paso para hacer esto con Android Studio se detalla a continuación:

1.Crea un proyecto Android si es que todavía no tienes uno:

Nuevo proyecto

2.Selecciona el dispositivo de objetivo:

Seleccionar objectivo

3.Agrega una activiadad vacía:

Agregando una actividad

4. Ingresar el nombre para la clase de actividad principal y el archivo de diseño (layout):

Configurar actividad

5. Copia processing-core.zip (ubicado en la carpeta AndroidMode en Processing) a app/libs, renómbralo como processing-core.jar y agrégalo como una dependencia jar a el proyecto:

Module settings

6. Una vez hecho todo lo anterior, escribe el código de tu bosquejo extendiendo la clase PApplet, por ejemplo:


// Sketch.java
package tutorials.androidstudio.fragmentsv4;

import processing.core.PApplet;

public class Sketch extends PApplet {
  public void settings() {
    size(600, 600);
  }

  public void setup() { }

  public void draw() {
    if (mousePressed) {
      ellipse(mouseX, mouseY, 50, 50);
    }
  }
}

7. Inicializa el bosquejo en la actividad principal:


package tutorials.androidstudio.fragmentsv4;

import android.os.Bundle;
import android.content.Intent;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.support.v7.app.AppCompatActivity;

import processing.android.PFragment;
import processing.android.CompatUtils;
import processing.core.PApplet;

public class MainActivity extends AppCompatActivity {
  private PApplet sketch;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FrameLayout frame = new FrameLayout(this);
    frame.setId(CompatUtils.getUniqueViewId());
    setContentView(frame, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                                                     ViewGroup.LayoutParams.MATCH_PARENT));

    sketch = new Sketch();
    PFragment fragment = new PFragment(sketch);
    fragment.setView(frame, this);
  }

  @Override
  public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    if (sketch != null) {
      sketch.onRequestPermissionsResult(
      requestCode, permissions, grantResults);
    }
  }

  @Override
  public void onNewIntent(Intent intent) {
    if (sketch != null) {
      sketch.onNewIntent(intent);
    }
  }
}
El método onRequestPermissionsResult() en la actividad principal es necesario en caso de que la aplicación utilice cualquier permiso peligroso. Si hiciera falta, el bosquejo no será notificado de los resultados de solicitar el permiso al usuario, con lo cual es posible que no funcione correctamente. onNewIntent() también es necesario para que el bosquejo pueda manejar los intentos enviados a la actividad principal.

8. Finalmente, crea un diseño (layout) mínimo para la actividad principal:


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="tutorials.androidstudio.fragmentsv4.MainActivity" >

    <FrameLayout android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>   

El proyecto completo de Android Studio está disponible aquí.

Usando paquetes de Bintray

La biblioteca principal de Processing también está disponible como un paquete en Bintray. Este paquete se puede importar fácilmente a un proyecto de Gradle usando la siguiente especificación de dependencia:


compile 'org.p5android:processing-core:x.y.z'

donde x.y.z es la versión que quisieras utilizar. En Android Studio, el paquete principal de Processing aparecerá como una dependencia de módulo de la siguiente manera:

Bintray package