Documentación para desarrolladores

Contribuye a la evolución y mejora de la educación con tu aplicación

Integración para Android

A continuación se explican detalladamente los puntos a seguir para realizar la integración de la traza de Apprender en una aplicación Android.
1

Descargar y añadir a tu proyecto

Descarga y añade a tu proyecto la clase Apprender

Kotlin Java
2

Define recursos

Añade los siguientes recursos en el archivo strings.xml

<resources> <string name="token">YOUR_TOKEN</string> <string name="secret">YOUR_SECRET</string> <string name="apikey">YOUR_API_KEY</string> </resources>
3

Dependencias

Añadir las siguientes dependencias necesarias en tu fichero gradle

implementation "com.squareup.retrofit2:retrofit:2.3.0" implementation "com.squareup.retrofit2:converter-scalars:2.3.0" implementation "com.squareup.retrofit2:converter-gson:2.3.0"
4

Define un intent-filter y añade los permisos

Añade en el AndroidManifest.xml dentro del Activity de login el siguiente intent-filter

<activity android:name=".MainActivity" android:hardwareAccelerated="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="asm-YOUR_APP_ID" /> </intent-filter> </activity>

Añade en el AndroidManifest.xml los siguientes permisos

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" />
5

Añadir método pause

Añade en el método onPause de cada una de tus Activities o Fragments el siguiente método para monitorizar cuando tu aplicación se va a background.

apprenderManager.pause()
6

Añadir método resume

Añade en el método onResume de cada una de tus Activities o Fragments el siguiente método para monitorizar cuando tu aplicación vuelve a la actividad.

apprenderManager.resume()
7

Añadir método finish

Añade en el método onDestroy de cada una de tus Activities o Fragments el siguiente método para monitorizar cuando tu aplicación se cierra definitivamente.

apprenderManager.finish()
Alternativamente, para simplificar los pasos y no tener que añadir en cada Activity / Fragment los métodos se pueden sustituir los puntos 5, 6 y 7 por lo siguiente:
5

Registrar ciclo de vida del Activity

Añade en tu clase Application en el método onCreate.

registerActivityLifecycleCallbacks(this);
6

Implementar la interface

Añade en tu clase Application el siguiente código para monitorizar cuando tu aplicación vuelve a la actividad.

Application.ActivityLifecycleCallback
7

Añadir métodos

Añade los métodos vistos, apprenderManager.pause(), apprenderManager.resume(), apprenderManager.finish() en los métodos onActivityResume, onActivityPause, onActivityDestroyed respectivamente.

Login de apps para Android

A continuación se explican como añadir el acceso desde la app por Apprender.
1

Instanciar

Añade en tu vista login una instancia de ApprenderManager. El método instance lleva como paramétro el contexto.


Java

ApprenderManager apprenderManager = ApprenderManager.instance(this);

Kotlin

var apprenderManager: ApprenderManager = ApprenderManager.instance(this)
2

Añadir botón de login

Añade en la vista de login lo siguiente


Java

Button loginButton = findViewById(R.id.identificador_de_tu_boton); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { apprenderManager.launchLogin(NombredeTuActividadLogin.this); } });

Kotlin

val loginButton = findViewById<Button>(R.id.identificador_de_tu_boton) loginButton.setOnClickListener { apprenderManager.launchLogin(this) }
3

Añadir intent

Añade en la vista de login lo siguiente


Java

Intent intent = getIntent(); if (Intent.ACTION_VIEW.equals(intent.getAction())) { String uri = intent.getData().toString(); String userId = uri.substring(uri.lastIndexOf("#") + 1); apprenderManager.saveUserId(userId); }

Kotlin

val intent = intent if (Intent.ACTION_VIEW == intent.action) { val uri = intent.data!!.toString() val userId = uri.substring(uri.lastIndexOf("#") + 1) apprenderManager.saveUserId(userId) }

Tracking de apps en Android

A continuación se explican detalladamente los puntos a seguir para realizar el tracking en Apprender en una aplicación Android.
1

Instanciar

Añade en tu vista login una instancia de ApprenderManager. El método instance lleva como paramétro el contexto.


Java

ApprenderManager apprenderManager = ApprenderManager.instance(this);

Kotlin

var apprenderManager: ApprenderManager = ApprenderManager.instance(this)
2

Registrar eventos

Añade lo siguiente

apprenderManager.trackEvent("YOUR_EVENT_ID", "YOUR_EVENT_NAME");
3

Registrar vistas

Añade lo siguiente

apprenderManager.trackContentView("YOUR_VIEW_ID", "YOUR_VIEW_NAME");

Integración para iOS

A continuación se explican detalladamente los puntos a seguir para realizar la integración de la traza de Apprender en una aplicación iOS.
1

Descargar y añadir a tu proyecto

Descarga y añade a tu proyecto la clase APPrender.swift

Descargar
2

Define URL Type

Añade la siguiente URL en el array de CFBundleURLTypes de tu Info.plist

<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>asm-YOUR_APP_ID</string> </array> </dict> <!-- ... --> </array>
3

Añade el siguiente código en el AppDelegate.swift

Inicia la clase APPrender.swift:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { APPrender.shared.configure( apiKey: "YOUR_API_KEY", token: "YOUR_TOKEN", secret: "YOUR_SECRET" ) APPrender.shared.initAPPrender() // ... return true }

Recoge el identificador de usuario tras el login:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { let url = url.standardized if let urlTypesArray = Bundle.main.object(forInfoDictionaryKey: "CFBundleURLTypes") as? , urlTypesArray.count > 0 { var isUser:Bool = false for urlType in urlTypesArray { if isUser { break } if let urlSchemes = urlType["CFBundleURLSchemes"] as? [String] { for urlType in urlSchemes { if urlType.contains("asm-"), url.absoluteString.contains(urlType), url.absoluteString.contains("user#"), let userID = url.absoluteString.split(separator: "#").last { APPrender.shared.setUserID(userID: String(userID)) APPrender.shared.trackEvent(eventID: 1, eventName: "logUser") gotoGame() isUser = true break; } else if urlType.contains("asm-"), var topController = UIApplication.shared.keyWindow?.rootViewController { while let presentedViewController = topController.presentedViewController { topController = presentedViewController } if topController.isKind(of: SFSafariViewController.self) { topController.dismiss(animated: true, completion: nil) isUser = true break; } } } } } } return true }

Controla el tracking de uso del usuario:

func applicationDidEnterBackground(_ application: UIApplication) { let lastViewID = UserDefaults.standard.integer(forKey: "lastViewID") APPrender.shared.trackContentView(viewID: lastViewID, viewName: "pause") } func applicationDidBecomeActive(_ application: UIApplication) { let lastViewID = UserDefaults.standard.integer(forKey: "lastViewID") let lastViewName = UserDefaults.standard.string(forKey: "lastViewName") APPrender.shared.trackContentView(viewID: lastViewID, viewName: lastViewName ?? "restart") } func applicationWillTerminate(_ application: UIApplication) { let lastViewID = UserDefaults.standard.integer(forKey: "lastViewID") APPrender.shared.trackContentView(viewID: lastViewID, viewName: "finish") }

Login de apps para iOS

A continuación se explican como añadir el acceso desde la app por Apprender.

Añadir botón de login

Añade el botón de login para permitir a tus usuarios acceder a tu app con Apprender.

@IBAction func Login(_ sender: Any) { APPrender.shared.trackEvent(eventID: 1, eventName: "login_button_clicked") APPrender.shared.presentAPPrenderLogin(view: self) }

Tracking de apps en iOS

A continuación se explican detalladamente los puntos a seguir para realizar el tracking en Apprender en una aplicación iOS.
1

Registrar eventos

Añade lo siguiente al producirse el evento:

APPrender.shared.trackEvent(eventID: YOUR_EVENT_ID_INT, eventName: YOUR_EVENT_NAME)
2

Registrar vistas

Añade lo siguiente al iniciarse la vista

APPrender.shared.trackContentView(viewID: YOUR_VIEW_ID_INT, viewName: YOUR_VIEW_NAME)

Integración para Web

A continuación se explican detalladamente los puntos a seguir para realizar la integración de la traza de Apprender en una aplicación web.
1

Descargar

Descarga y añade a tu proyecto el script apprender.js

Descargar
2

Configura el script

Añade el script en el head de tu HTML y configúralo con el APIkey de tu webapp

<head> <--! ... --> <script src="apprender.js"></script> </head> <body> <--! ... --> </body> <script> (function() { setApiKey("YOUR_APIKEY_HERE", "YOUR_TOKEN_HERE", "YOUR_SECRET_HERE") trackView(document.title, 0) })(); </script>

Login de apps para Web

A continuación se explican como añadir el acceso desde la web por Apprender.

Añadir botón de login

Añade el botón de login para permitir a tus usuarios acceder a tu web con Apprender.

<button onclick="loginApprender()">Entra con Apprender</button>

Tracking de apps en Web

A continuación se explican detalladamente los puntos a seguir para realizar el tracking en Apprender en una aplicación web.
1

Registrar eventos

Llama al método trackEvent al producirse el evento, indicando un nombre para el evento, y un identificador:

trackEvent("eventName", "eventId")
2

Registrar vistas

Llama al método trackView al iniciarse la página

<script> (function() { trackView(document.title, 0) })(); </script>
3

Controla la sesión del usuario

Llama al siguiente método cuando la sesión se pause

pauseSession();

Llama al siguiente método cuando la sesión finalice

finishSession();