Android: Conexión simultánea con múltiples dispositivos BLE + sensor Acelerómetro

Standard

 

Imagen tomada de: http://pocketnow.com/2013/01/17/bluetooth-low-energy

Imagen tomada de: http://pocketnow.com/2013/01/17/bluetooth-low-energy

¡Qué tal, gente! Después de un algún tiempo sin publicar, traigo para ustedes este ejemplo práctico y resumido (aunque usted no lo crea) de una implementación a la medida que fue realizada recientemente para un proyecto en el que me encuentro colaborando.

La situación—brevemente explicada— es esta: es necesario, mediante una app Android para móvil, conectarse como mínimo con 3 dispositivos BLE 4.0 vestibles de manera simultánea y leer los datos de sus diversos sensores en tiempo real. Los dispositivos en cuestión no cuentan con el sistema operativo Android instalado.

Para fines prácticos, en el presente ejemplo sólo se leen y muestran los datos del sensor acelerómetro de los dispositivos BLE 4.0 utilizados. Cabe destacar, además, que se consiguió conectar con hasta 4 dispositivos simultáneamente, esto ya que no se contaba con una cantidad mayor de los mismos. Por lo tanto, me aventuro a conjeturar que es probablemente viable el conectar con más de 4 dispositivos sin problema mediante esta aplicación.

Y bien, sin mayor preámbulo, pasemos a la descripción de las clases y layouts necesarios para construir nuestra aplicación de prueba. Pueden encontrar en GitHub el CÓDIGO COMPLETO DEL PROYECTO.

Continue reading

Publicar App de Android

Standard

Hola a todos, en la publicación pasada les compartía acerca del proceso y algunas experiencias para publicar una App de iOS. A continuación les voy a compartir el proceso similar para una App en Android.

Antes de empezar, les comparto un checklist para antes de pensar en publicar tu App, este checklist aplica tanto para Android como para iOS. (algunos)

  • Paso 1: Todo empieza con un App Sólida.
    Es necesario contar con un concepto o base sólida de qué es lo que quieres lograr con tu App, al principio nació con una idea, pero al final debemos de estar seguro que esté cumpliendo con ese objetivo.

    • Consideración 1. Coleccionar Estadísticas de la App.
      Hay varios mecanismos para coleccionar estadísticas de uso, pero es importante el contar con mecanismos de este tipo en tu App.
    • Consideración 2. Protege tu Propiedad Intelectual.
      Selecciona una licencia a la cuál te vas a apegar.
    • Consideración 3. ¿Cómo tus usuarios van a obtener tu App?
      En Android esto se vuelve fundamental: ¿vas a distribuir tu App con un APK o a través de una Store?
    • Consideración 4. Dónde vas a publicar tu App.
      En Android tienes múltiples Stores.
    • Consideración 5. El dinero importa.
      Va a ser sin costo, si buscas monetizar tu App a través de su venta puede afectar que tanto bajen tu aplicación.
    • Consideración 6. Planeando para el futuro.
      Tienes que ir visualizando que nuevas características le vas a agregar a tu App, cuál es el siguiente paso en el desarrollo.

Algunos App Markets

app-markets-2 Continue reading

Android: Repetir un include y encontrar su ID con un string utilizando ciclos

Standard

 

Qué tal, gente, en esta ocasión volvemos con más Android “tricks”.

¿Les ha pasado que se topan de repente con la necesidad de construir un layout que presenta algún componente custom de manera repetitiva y necesitan solucionarlo sin intención de hacer un copy-paste redundante? Pues bien, a mí me pasó hace poco tiempo y, aunque existen varias alternativas diferentes para dar solución a este problema, comparto con ustedes una alternativa que apliqué y que en lo particular considero me ahorró algo de tiempo y esfuerzo. Continue reading

Adding Custom Fonts into our App.

Standard

Have you ever seen an android app with its native font? ughh!, you might agree with me when i say it does not look good. Despite there’s a little tiny set of “custom” or “stylish” fonts we can find in the typefaceproperty of any text containing view (see image below), sometimes it is not enough.

Captura de pantalla 2015-12-30 a las 9.32.51Captura de pantalla 2015-12-30 a las 9.34.57

So, what do we need to apply some fancier fonts into our app? Well, the first step it to create a new app, add your views and we are ready to go.

Create a new project, and add a verticalLayout. Inside put as many views as you want (in order to see more fonts examples), Next, we need some .ttf files. We can get plenty of them here. Continue reading

Probando UI App con API 21/22 Android (Básico)

Standard

Muy buen día, hoy me propongo a hablarles un poco de lo que son pruebas en android.

El objetivo es dar una pequeña muestra de cómo podemos utilizar las herramientas proporcionadas por google para probar nuestras apps.

Esta primera versión está basada en la guía oficial que podemos encontrar aquí.

Pues a lo que vamos, lo primero que vamos a hacer es crear una app nueva con un activity vacío. Para este ejemplo llamaré a la app “ApplicationTest” y al activity “MainActivity”.

Ahora que ya tenemos nuestro proyecto vamos a validar que tengamos instalada Testing Support Library.

Para conseguir lo anterior es bastante simple, vamos y abrimos nuestro “Android SDK Manager”, para esto simplemente damos click en el ícono correspondiente Screen Shot 2015-12-17 at 14.01.39 con lo cual se nos mostrará la siguiente imagen.

Screen Shot 2015-12-17 at 14.02.40 (Asegurarte de estar en la pestaña “SDK Tools”). Continue reading

Sending E-mails from Android

Standard

Getting Started

As a user, have you ever seen an android app that sends you interesting information?. As a developer, have you ever feel you would like to send valuable info to your users through their email with information?… Well, this is a commonplace problem among android applications. A first approach of sending emails (and the easiest) is to use the built-in Email apps installed in our device. However, this is only useful in some cases. When we need to send information with no user input/intervention this heads to a little harder approach, Pure code!, sending everything “behind the scenes”.

Intents Approach

Of course there is an email “intent” utility that you could use almost in all devices when we are developing an app. However, this intent allows the user to explicitly modify data before sending the email, which is not always the desired functionality. For instance, we will not extensively describe this functionality here, but you may see how it works in the next images:

i1         i2 Continue reading

Genymotion: Emula de manera más rápida y eficiente tus apps Android

Standard

 

Genymotion logo

 

Qué tal, gente. Actualmente nos encontramos con una abrumadora diversidad de dispositivos Android en el mercado, ante lo cual es necesario desarrollar aplicaciones capaces de dar soporte a todos ellos… o en su defecto, a la mayor cantidad posible. No en todos los casos es viable ni práctico el contar con muchos dispositivos físicos de características diferentes (sea tamaño de pantalla, resolución, hardware, versión de Android, etc.) para realizar pruebas de apariencia y rendimiento en ellos, por lo cual es una común necesidad el uso de emuladores para llevar a cabo esta tarea.

Imagino que todo Android developer, si pretende autodenominarse tal, debe conocer el tortuoso camino al noveno círculo del infierno que puede llegar a representar el tratar de emular una aplicación contando con recursos de hardware limitados… y valiéndose solamente del emulador default de Android Studio.

Con esa dantesca situación como antecedente, en esta ocasión comparto con ustedes una herramienta bastante útil y práctica para el desarrollo y testeo de aplicaciones Android que, gracias a su uso simple y respuesta notablemente rápida (más rápida que la mayoría de los dispositivos Android), se ha formado ya una considerable cantidad de seguidores que no dudan (evidentemente me incluyo) en recomendarla y hablar sobre los beneficios prácticos que ésta nos ofrece.

Continue reading

Pupulating and Interacting with Listview Control in Android

Standard

Hmmm… What is a ListView???

It’s very commonplace to see ListView controls in android apps. They are a very useful tool when we need to show data to our app’s users (See the image bellow).

ListVIew sample

I have been currently working with several ListView controls and it has become really easy to manage them when you finally understand the way they are implemented.

A ListView control is able to handle as many columns and as many rows as we need. A row may refer to an object inside our ListView. In the other hand, a column may refer to an attribute of the object. It’s quite simple to design and manage our ListView no matter how many columns or rows we need. Continue reading

Implementing Kiosk Mode in Android

Standard

What is Kiosk Mode?

What is “Kiosk Mode” and why would you want to use it? Kiosk Mode basically allows a single Android application to have full control of the system. The user is prevented from leaving the current application or running other applications. Think of a hypothetical ATM machine that is running Android. It would be bad if the user could get out of the “ATM app” and start poking around with the underlying system. The idea is to run only one custom app and prevent any other applications to run (or only whitelisted applications). In this blog post I would like to share the approaches that you can take and the possible challenges you’ll face while developing these type of applications.

General Requirements for such applications:

  • Only one app is allowed to run.
  • App should automatically boot on device’s startup.
  • Only whitelisted contacts are allowed to be contacted (via Phone or SMS)
  • Only whitelisted apps are allowed to be used.
  • Tracking which applications are installed or uninstalled.
  • Disable status bar.

Continue reading