Como publicar en Google Play y no morir en el intento

En este post vamos  a intentar  explicar cómo proceder a publicar una aplicación, en la tienda oficial Google Play Store para que de esta manera esté disponible para su compra y descarga de los millones de usuarios Android.


Tras muchas semanas y hasta meses trabajando duro pasando horas  y horas  escribiendo código  y depurando no tiene sentido que sepamos programar, tengamos esa idea perfecta que va a triunfar en descargas, pero no sepamos publicarla de modo que este post vamos a intentar dar las pinceladas de como hacerlo .Como vamos a ver difiere bastante de la publicación de una app en Amazon ,pero no se asuste  que la filosofía es prácticamente la misma , así que si le interesa o simplemente “le pica la curiosidad “aquí tiene el proceso  paso a paso !animo!

Para empezar, el desarrollador deberá convertir su cuenta de Google en una cuenta de desarrollador a través de Google Play Developer Console, a la cual se puede acceder desde este enlace una vez que se haya identificado previamente en la cuenta de Google.

Una vez se haya accedido a la consola de desarrollador de Google Play, se deberá proceder al pago de la tasa que Google pone a todos los desarrolladores para que puedan incluir sus apps en la tienda. Para ello, hay que aceptar las condiciones de Google y pulsar sobre el botón que se muestra en la parte inferior de “Continuar para completar el pago”.

A continuación se abrirá una pantalla de Google Wallet para proceder con el único pago de 25 dólares que es la tasa que cobra Google para darse de alta como desarrollador de aplicaciones y poderlas publicar en la tienda

 

2017-03-20_22h17_46

Una vez que haya aceptado   toca  pasar por caja,para lo cual nos pedirían una tarjeta de crédito y aceptar el envió  puntual de de 25$

pago

Realizado el pago piden unos datos como le sitio web de soporte, e-mail   y un teléfono de contacto

2017-03-20_22h34_43

A partir de este momento una vez haya pulsado “Completar registro”, ya se pueden gestionar las aplicaciones desde el centro de gestión e información como desarrolladores, que permitirá añadir una nueva aplicación, ver el listado de aplicaciones añadidas, acceder a los servicios para Google Play Games, ver los informes de los beneficios, menú de configuración, anuncios o alertas.

2017-03-20_22h39_31

Para proceder a añadir una nueva aplicación a Google Play, se debe hacer clic sobre el botón “Add new application” que abrirá una nueva ventana para incluir el idioma y título de la aplicación así como el botón para adjuntar el APK de instalación de la aplicación.

Después de adjuntar el APK, que se podrá incluir tanto en fase de test alpha o beta como en modo producción, bastará con ir siguiendo todos los pasos que se pueden ver en el menú de la izquierda de la pantalla.

 

Store Listing es donde se deberá indicar la descripción completa, texto de promoción, icono de la app, pantallazos, categoría de la tienda donde se incluirá, datos de contacto, política de privacidad, etc.

Pricing & Distribution permitirá elegir los países donde se quiere poner disponible la aplicación para su descarga e indicar si la aplicación se va a distribuir de forma gratuita o de pago.

 

Preparando  su app

 

Al intentar subir el apk de su  app en Google Play,es frecuente encontrar el error  “Error de subida Has subido un APK que se puede depurar. Por razones de seguridad, debes inhabilitar la depuración para poder publicar el archivo en Google Play. Más información sobre archivos APK depurables Has subido un APK que se firmó en el modo de desarrollo. Debes firmar el archivo APK en el modo de publicación. Más información sobre cómo firmar archivos Debes utilizar un nombre de paquete diferente, porque el prefijo “com.example” está restringido.”

 

El primer error es bastante claro, ya que Google  esta indicando   que el prefijo de sus paquete  comienza con com.example.xxx lo que está prohibido  , debiéndolo cambiar en su lugar por el formato como com.midominio.miaplicacion. 

Probablemente si ya ha desarrollado la app le pueda parecer muy laborioso cambiarlo ( y en cierta manera asi lo es ) ,pero siguiendo estos sencillos pasos probablemente le sea mas sencillo:

  1. Haga un backup de su paquete
  2. Pinche en todos los paquetes de su app,boton derecho ,pulse Show in Explorer y cambie desde ahi la ubicación de los diferentes componentes de su aplicación
  3. Cambie en las cabeceras de las clases java el nuevo nombre del paquete
  4. No se olvide del fichero de manifiesto( AndroidManiest.xml) donde deberá actualizar las nuevas de todos los activity
  5. Las referencias no deben olvidarse  ,par lo cual vaya a File–>project Structure–>Dependecies y cambie los jar afectados  por  las nuevas rutas
  6. Tampoco debería olvidar especialmente el Id de la aplicación en pestaña File–>project Structure->project Structure–>Flavours
  7. Vuelva a compilar !suerte!

 

 

La segunda parte que debemos  revisar lo siguiente, desde la documentación oficial:

  • Asegúrese de remover las llamadas a Log  eliminando el atributo android:debuggable de su archivo manifest y comntando todas las llamadas del tipo
    //  Log.e("test","xxxx);
  • Debería proveer además valores para los atributos android:versionCode y android:versionName.
  • Construya y firme su App de Release: De hecho puede usar Android Studio para compilar, construir y firmar la app. Android requiere que todas las aplicaciones estén firmadas digitalmente con un certificado antes que la app sea instalada desde Google Play.

En resumen debería seguir los  siguientes pasos  antes de pasar a producción:

 

Una vez que se haya completado toda esta información se puede publicar la aplicación cambiando el estado actual de Borrador,aunque también  se recomienda leer los consejos para optimizar la información de la app en Google Play dentro de la pestaña que Google ofrece para ello

Si se ha elegido que la aplicación sea de pago hay que tener en cuenta que para cobrar por los productos publicados en Google Play, el desarrollador debe disponer de una Cuenta de Pago válida proporcionada a través de un acuerdo independiente con un Procesador de Pagos.

Si el desarrollador ya dispone de una antes de registrarse en Google Play Store, se aplicarán las condiciones de ese acuerdo salvo que exista algún conflicto con el acuerdo de distribución para desarrolladores que Google Play ha definido, en cuyo caso se aplicarán las condiciones de ese acuerdo.

El desarrollador es el comerciante oficial de los productos, el cual vende a través de Google Play y el que establecerá el precio en las distintas monedas que crea oportuno. Según el precio que establezca para sus productos, se determinará la cantidad que recibirá en el pago, ya que Google añadirá una Comisión de Transacción al precio de venta de cada producto.

Esta Comisión de Transacción, Google la fija en un 30% del precio de la aplicación, recibiendo de esta manera un 70% el desarrollador y el 30% restante se destina al partner de distribución (comisión por cierto idéntica a la que cobra Amazon)

Como síntesis , es bastante sencillo publicar una app en Google Play ,  siendo  el precio total para publicar nuestra app en la tienda Google Play Store  25 dólares (algo mas  20 euros al cambio que solo tendrá que pagar una vez  ) por darse de alta como desarrollador, y después el 30% de la facturación total de la venta de las aplicaciones que se tengan disponibles en la tienda también será para Google.

Diagnosis de su coche con Raspberry Pi

OBD o Diagnóstico a bordo y OBD-II es un estándar para la comunicación y lectura de datos de un coche, su estándar en la mayoría de los coches modernos y la probabilidad es que usted tiene un conector en su coche que puede leer todo tipo de datos sobre el coche, Como RPM, Velocidad, Temperatura y un millón de otras cosas que usted no adivinaría un coche estaba monitoreando.


OBD-II PID ( Diagnóstico a bordo de parámetros IDs ) son códigos utilizados para solicitar datos de un vehículo, que se utiliza como herramienta de diagnóstico  que tradicionalmente se ha reservado a los  técnicos automotrices que usan PID con una herramienta de análisis conectado al conector OBD-II del vehículo.

  • El técnico entra en el PID
  • La herramienta de análisis lo envía al del vehículo red controlador-área (CAN) la parada de microbus, VPW, PWM, ISO, KWP . (Después de 2008, sólo CAN)
  • Un dispositivo en el bus reconoce el PID como uno es responsable de, y reporta el valor para ese PID al bus
  • La herramienta de análisis lee la respuesta, y lo muestra al técnico

Un  adaptador   OBD-II  funciona  en cierta manera  como el USB de un ratón que usamos con el ordenador, ya que se conecta a la centralita del coche y convierte los datos que lee en información que podemos procesar desde nuestro móvil.

Estos adaptadores se puede encontrar  fácilmente en internet y a precios que empiezan en los 6 euros y van subiendo hasta los varios cientos, dependiendo de la calidad y cantidad de opciones que necesitemos. Pero para un uso completamente ‘amateur‘, tenemos suficiente con los más económicos. Eso sí, antes de comprarlo debe   compruebe que la centralita de su coche tiene la conexión de 16 pines del estándar y es compatible  con dicho  interfaz.

 

 

Adaptadores ODB2 bluetooth

elm37

Algunas centralitas de vehículos puede soportar más o menos funciones que otros.,pero en todo caso  no olvide  que la aplicación necesita un adaptador Bluetooth OBD2 para trabajar.

Estos  adaptadores  son  pequeños y se conectan a la toma de diagnóstico en el coche que le da a su acceso a los teléfonos.Uno de los adaptadores mas usados  es el modelo el ELM327 OBD2 el cual funciona igual de bien que otros aparatos similares de tamaño mucho mayor y   aún precio bastante menor (como por ejemplo el  adaptador Scantool.net, el adaptador de OBDKey y PLX Kiwi ).

El modelo ELM 327  es el clásico lector de parámetros del motor y de códigos de error OBD II mini, en carcasa de plástico transparente  de  reducido tamaño(otros modelos mayores  estorban en la zona de los pedales)   que es capaz de enviar los datos vía Bluetooth   y que se puede adquirir  a muy buen precio.

Para usarlo, hay que enchufar el dispositivo  al conector que suelen traer casi todos los coches modernos  junto a la fusiblera principal que suele estar  debajo del volante.

Después hay que instalar  la aplicación  Torque en su smartphone   ( en su versión gratuita o de pago )  y automáticamente al ejecutarla  debería empezar a ver en la app  una cantidad ingente  de información sobre el funcionamiento de su vehículo.

Los usuarios  se abruman   del  impresionante volumen de datos aportado pues aplicación es 100% configurable para mostrar los parámetros que prefiera. De hecho los datos ofrecidos son prácticamente similares a una maquina de diagnosis de cualquier taller en sus manos, aportando ademas de un sinfin de parámetros informativos sobre el estado de motor, consumos, temperaturas, posibles averías etc

Resumidamente  estas son algunas de las utilidades  de la combinación  del adaptador  ELM327 OBD2 junto con el programa  Torque:

  • Leer los códigos diagnóstico, genéricos y específicos del fabricante, y mostrar su significado (sobre 3000 definiciones genéricas del código en la base de datos).
  • Borrar los códigos de problemas y apagar el MIL (“Check Engine” de luz)
  • Mostrar los datos actuales del sensor

Según el modelo de coche podrá ver más o menos datos, pues eso no depende de este aparato  en su .De hecho ,hay usuarios que no han conseguido hacerlos funcionar con determinados modelos de vehículos, pero en cambio en otros modelos  funciona perfectamente:

 

Por cierto ,esta versión  del  ELM327  se puede comprar por menos de 6€  con gastos de envió incluidos  aqui (Amazon.es)

Adaptadores ODB2 USB

Hay muchos ejemplos de entusiastas que  están usando estos adaptadores ODB2 no solo desde dispositivos Android sino incluso desde PC standard ,pero ¿ y si se pudiera usar desde otros dispositivos  como por ejemplo desde una Raspbery Pi?

Pues en  efecto desde pistonheads.com  nos demuestra como es posible desde una RPi de  leer datos de su moto a través de un lector USB OBD-II  usando  como registrador de datos para una moto gracias  a que cabe perfectamente  debajo del asiento

Para ello , se usa un   cable USB -> OBD2 , el cual  soporta muchas versiones diferentes del puerto estándar OBD2

La RPi toma la  alimentación  una conexión micro del USB que se alimenta a su vez  de la batería (lo ideal es desde luego hacerlo desde  la llave de encendido / apagado, pero esto llevar mucho más trabajo y se corre el peligro de  dañar el cableado de la moto) así que el usuario opto  por compro un interruptor y un fusible  que  termina en un puerto USB hembra lo cual permite  apagar la RPpi al final de un viaje

Lo siguiente es  el código, basado en  la  librería python  desarrolla en 2009 llamado pyobd. Esta fue  la  base para lo que quería hacer, encontrando algunos errores en el código pues , en general, estaba escrito para ser utilizado por una aplicación  grafica GUI que venía con ella. Como el autor no quería una aplicación GUI, obviamente, bajo su asiento se bajo su repositorio y comenzó a trabajar en hacerlo más parecido a un datalogger

El trabajo esta en su  repositorio : https://github.com/roflson/pyobd

 

Gracias al trabajo excelente de Salgar , Martin quiso ir mas lejos  conectando ademas una cámara ,    utilizando  los datos OBD para superponer mph, rpm, temperatura y la posición del acelerador sobre el vídeo tomado con la placa de la cámara construyendo realmente un dispositivo bastante interesante

Resumidamente  el  proceso de desarrollo de  la nueva herramienta fue muy similar a la anterior adaptación de Salgar , basándose también en un  adaptador  USB al cable de interfaz de OBD2 del tipo ELM 327 1.5V USB CAN-BUS Scanner ELM327 , por cerca de £ 10 disponibles en  amazon.com o amazon.co.uk .( en España un no esta )

Otro elemento importante es conectar la cámara a su Raspberry Pi 2 usando el conector propietario especifico

Un modelo asequible compatible con la Raspberry Pi2   es el Módulo de cámara Raspberry Pi de SainSmart  que cuesta unos 14€ 

 

Luego  una vez adquirido el hardware , descargo el  software de salgar de su repositorio github, https://github.com/roflson/pyobd , como base para el nuevo programa (el software de salgar es una bifurcación de un proyecto llamado pyobd, https://github.com/peterh/pyobd , que es una aplicación basada en GUI para leer datos OBD-II).

Utilizo el autor  este  nuevo software  como base para un programa que se conectaría a través de la interfaz OBD-II, interrogando al coche qué sensores soportaba y luego leyendo los sensores de datos en un bucle cada 0,5 segundos  escribiéndolos en la pantalla de modo que la RP2 no solo registra el video , también registra  los  datos dinámicos superponiendolos al video cumpliendo pues una doble función

Descargar y ejecutar

El autor   finalmente  ha puesto a la disposición de todos los usuarios su  sw  de modo que puede descargar el código directamente desde github  en ,https://github.com/martinohanlon/pyobd ,

 

Resumidamente estas son las instrucciones de instalación:

 

Si le “pica”la curiosidad en el vídeo podemos ver la Rp2 con el sw en acción

Cómo iniciar un app automáticamente en Android

veremos como iniciar automáticamente un app comentando la utilidad clara para arrancar en el inicio una aplicación de monitorización de red y de acccesos


AutoStart es una interesante aplicación Android gratuita que podríamos usar, para ordenar a cualquiera de nuestras aplicaciones instaladas en el dispositivo móvil para que se ejecuten automáticamente cada vez que encendamos el terminal.

Objetivamente se puede intuir , que en Google Play existen otras alternativas que podría elegir quizás mejores ,pero  desde luego no sin un interfaz  tan minimalista como el  de este app y desde luego sobre todo que no precisen ser root  o consuman  tantos recursos en el sistema operativo Android como esta app.  Una característica muy interesante destacable respecto  otras apps es que el inicio automático funciona muy bien en todos los teléfonos o tabletas y no requiere permisos de root. Veamos el modo de usarla junto con un ejemplo:

 

 

En este post vamos a comentar la app AutoStart disponible en Google Play .  Una vez que la tengamos instalada  en nuestro dispositivo móvil Android (que puede ser un “ChromeCast” o un mini PC), sólo tiene que ejecutarla para configurarla    directamente desde la pantalla inicial  tanto que se autoinicie la app ( sin esta app corriendo no se iniciara el resto)  como se ejecuten las apps que se deseen.

Como podrá observar  pues la pantalla principal de AutoStart tiene una interfaz minimalista en la configuración.

Allí solamente tiene que tocar al botón para activar el servicio (es decir, para que esté siempre activa) y también, seleccionar al botón “Add” para agregar una o varias aplicaciones Android que desee que se ejecuten automáticamente cada vez que se encienda su dispositivo Android ,  es  decir como vemos tan solo  tiene que seleccionar las aplicaciones que desea iniciará automáticamente después de encendido del teléfono (arranque).

Otros parámetros que podrá  ajustar se ven  un poco más abajo ,los cuales pueden  ayudara hacer que haya un tiempo de espera antes de que la ejecución de estas aplicaciones en  el inicio. El primer valor corresponderá a la propia app,  mientras que el segundo, es el tiempo que debe esperar el sistema para que se vayan ejecutando el resto de aplicaciones Android.

i

Un detalle de esta app es que funciona  tanto en terminales Android con pantallas pequeñas(smartphones)  como terminales con pantallas  mas grandes como pueden ser  tabletas ,android TV, etc, dispositivos todos ellos donde en ocasiones nos puede venir muy bien poder tener disponibles al arrancar estos nuestra app favorita
 

Un ejemplo claro de uso de la app AutoStart   es usarla para iniciar Seguricasa .  La  app Seguricasa disponible en Google Play por 1€ pretende  que reciclemos o reutilicemos  un viejo terminal Android  que tengamos en desuso  fijándolo a la pared  , para que nos sirva tanto para el control de accesos ,como la monitorización del estado de suministro eléctrico  (la utilidad aquí de Autostart sera para que se inicie automáticamente la app Seguricasa en caso de agotamiento de la batería o de un apagado involuntario)

Dado que los inmuebles son el mayor activo de las personas tanto a nivel personal como a nivel de empresas o negocios,  es importante asegurarnos que no son accedidos por terceros o que siempre están alimentados eléctricamente, dada la gran dependencia del suministro de corriente alterna, por lo que es necesario tener constancia de cualquier caída en el suministro eléctrico.

Enviar notificaciones si se detecta un corte de red ,es posible sin ningún hardware adicional ,puesto que dejaría de estar alimentado externamente el Smartphone (por el cargador del terminal), circunstancia que puede ser monitorizada y procesada dentro de la aplicación  SEGURICASA  que es interpretada  como falta de red de corriente alterna.

Quizás lo interesante  de la aplicación es pues que no se necesita ningún cableado ni hardware adicional pues lo único que  requiere es el cargador que alimente el terminal ,una tarjeta SIM ( para que pueda enviar SMS’s o correo en caso de falta de suministro eléctrico)   y por ultimo un simple cartón que se fije solidario a la puerta de modo que al abrir la puerta de acceso tape el sensor de proximidad presente en el frontal de cualquier Smartphone.

 

 

La app Seguricasa puede enviar notificaciones automáticamente vía SMS o por correo electrónico según se desee en el momento que se detecte una falta de red en el suministro eléctrico o también la apertura o cierre de la puerta gracias al sensor de proximidad que incluye cualquier Smartphone y así como también  detectar actos de vandalismo sobre el terminal para notificarlo al usuario.

Como ejemplos de utilidad de esta aplicación seria la vigilancia de los alimentos perecederos (es decir de mantener la refrigeración ) o sistemas de calefacción ,aunque es obvio que todos sabemos cómo las consecuencias de una falta de red eléctrica puede abarcar otros muchísimos usos: servidores para servicios de TI, comunicaciones, seguridad , riegos automatizados, cultivos ,acuarios, etc.

Esta app, pues, está pensada dirigida a familias, pequeños comerciantes, o incluso negocios etc., ya que por su simplicidad está prevista para ser auto instalada por cualquier usuario. Seguricasa es una solución ideal pues para aquellas personas que no están dispuestos a pagar una cuota por un sistema de alarma pero les gustaría saber lo que ocurre en sus propiedades sobre todo con el suministro de corriente alterna en el acceso. La solución es única, pues no es necesario adquirir ningún hw adicional ya que se basa en un Smartphone para gestionar tanto los accesos como los cortes de red de corriente alterna de una vivienda o local

 

Como habrá podido observar , “AutoStart” ofrece una simplicidad bastante grande a la hora de manejar sel arranque automático  fiable sin ser root de cualquier aplicación como por ejemplo la aplicación Seguricasa