SDK para Android
Instalación
Puedes descargar manualmente los archivos JAR desde Maven Central.
Gradle:
implementation 'com.transloadit.android.sdk:transloadit-android:0.2.0'
Maven:
<dependency>
<groupId>com.transloadit.android.sdk</groupId>
<artifactId>transloadit-android</artifactId>
<version>0.2.0</version>
</dependency>
Uso
Todas las interacciones con el SDK comienzan con la clase com.transloadit.android.sdk.AndroidTransloadit.
Métodos de autenticación
El SDK admite dos métodos de autenticación:
1. Autenticación tradicional (con clave secreta)
Este método es adecuado para aplicaciones del lado del servidor o de uso exclusivamente interno:
AndroidTransloadit transloadit = new AndroidTransloadit("YOUR_KEY", "YOUR_SECRET");
2. Signature Authentication (recomendada para aplicaciones en producción)
Para aplicaciones móviles en producción, usa un endpoint de firmas en el backend para que el secreto permanezca en tu servidor:
SignatureProvider signatureProvider = new SignatureProvider() {
@Override
public String generateSignature(String paramsJson) throws Exception {
// Fetch a precomputed Transloadit signature from your backend.
return "sha384:...";
}
};
AndroidTransloadit transloadit = new AndroidTransloadit("YOUR_KEY", signatureProvider);
Crear una Assembly
Para crear una Assembly, usa el método newAssembly.
Para aprovechar plenamente esta funcionalidad, implementa la interfaz AndroidAssemblyListener.
public class MyAssemblyListener implements AndroidAssemblyListener {
@Override
public void onUploadFinished() {
System.out.println("upload finished!!! waiting for execution ...");
}
@Override
public void onUploadProgress(long uploadedBytes, long totalBytes) {
System.out.println("uploaded: " + uploadedBytes + " of: " + totalBytes);
}
@Override
public void onAssemblyFinished(AssemblyResponse response) {
System.out.println("Assembly finished with status: " + response.json().getString("ok"));
}
@Override
public void onUploadFailed(Exception exception) {
System.out.println("upload failed :(");
exception.printStackTrace();
}
@Override
public void onAssemblyStatusUpdateFailed(Exception exception) {
System.out.println("unable to fetch status update :(");
exception.printStackTrace();
}
}
En tu actividad, puedes tener algo como lo siguiente:
public class MainActivity extends AppCompatActivity {
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
AndroidAssemblyListener listener = new MyAssemblyListener();
AndroidTransloadit transloadit = new AndroidTransloadit("key", "secret");
AndroidAssembly assembly = transloadit.newAssembly(listener, this /* activity context */);
assembly.addFile(new File("path/to/file.jpg"), "file");
Map<String, Object> stepOptions = new HashMap<>();
stepOptions.put("width", 75);
stepOptions.put("height", 75);
stepOptions.put("resize_strategy", "pad");
assembly.addStep("resize", "/image/resize", stepOptions);
assembly.saveAsync();
}
}
Ejemplo
Para consultar ejemplos completamente funcionales, revisa examples/.
Documentación
Consulta Javadoc para ver la documentación completa de la API.