lunes, 25 de febrero de 2013

Android Developer. Yandex el Nuevo App Market.

Si seguramente leíste mi anterior entrada de los Android Market alternativos, esto te gustará:

Yandex, el otrora gigante ruso de la búsquedas, ha plantado cara a google y ha puesto en marcha su App Store, compitiendo directamente con google.

A nosotros como desarrolladores no nos importa quien venda, pero que se venda, así que es una alternativa antojable hasta que, en lo particular, pueda entrar a Baidu Developer. En lo particular, me llevó menos de 10 minutos en publicar mi app... eso es un éxito completo! =).

El alta de tu App, aparentemente, depende de Google Play. Al menos en mi caso. Pero estoy seguro que al querer ser la competencia de google, no habrá limitantes... :)

Tips:
- Trata de publicar su descripción en Ruso.

Link: https://developer.store.yandex.com/


suerte.

@pata_de_jaguar

domingo, 24 de febrero de 2013

Las Cinco Formas de ser un Desarrollador Blackberry.

Como mencioné antes, Blackberry se ha abierto a muchas opciones, una gran ventaja para todos.
¿Como convertirse en un Desarrollador Blackberry?

La primera forma: C/C++

Blackberry tiene una opción para los añejos hackers de C/C++ con el plus de contar con un gran aliado : QML, el Qt supervitamidado (Para los desarrolladores .net, imaginen que es como la combinacion de XAML y LINQ XD), ellos lo llaman Cascade. En fin... esto es el Native SDK, compatible con PlayBook y BB10.
La ventaja del NDK es que practicamente no existe limitantes para explotar las cualidades de los dispositivos Blackberry.

La segunda forma: HTML5 o WebWorks

Muchos de los programadores actuales tenemos conocimiento en HTML5 y sus compinches : Javascript y CSS3. Para nosotros, Blackberry tiene una plataforma a la que conoce como WebWorks, compatible con BB10 y PlayBook, también es la plataforma en la que se basan los chicos de Phonegap para trabajar con Blackberry.
Sus compilados .vmx (Adobe AIR like) es una especie de lenguaje intermedio tipo CLR, por lo cual tiene un rendimiento semejante al interpretado. También cabe mencionar, tema que se ampliará adelante, que sus API están limitadas por las otorgadas por Blackberry, no pudiendo ampliarla fácilmente con librerías de terceros. Aún con esto existe el WebWorks Commmunity API, una integración de terceros.
Lo único feo es que no traiga un SDK para Linux :( , pues solo está disponible para MacOS y Windows.
Este será el tema siguiente.

La tercera Forma: Apps AIR.

Si ya tienes una aplicación hecha en Adobe AIR solo basta con "compilarla"... desconozco el alcance de compatibilidad, pero no debe ser dificil su implementación.

La Cuarta forma : Java.

Quien no incluye a Java entre sus compatibilidades, se está perdiendo de mucho (principal lenguaje según el Indice TIOBE, descarta C/C++ porque este lenguaje es eterno XD).
Blackberry pone a su dispocisión un Framework Java y un entorno llamado JDE, Java es el lenguaje más llevado entre las plataformas Blackberry (Incluyendo el Smartphone que no mencioné, pero igual). cabe mencionar que JDE, el IDE Java para Blackberry no tiene larga vida, así que es mejor descargarse el gordo plugin de Eclipse que apenas pesa <>517MB.

La Quinta Forma: Android runtime.
Android runtime es la panacea de los flojos :), aqui puedes convertir tu apk android con ciertas condiciones. Aunque no esta muy pulida, promete mucho. de hecho, ha sido el camino que han tomado los desarrolladores android hacia blackberry.
Para transformar tu app android existen tres formas:
1.- Online.
2.- A través de unos binarios standalone.
3.- A través de un plugin de eclipse llamado Nature.

Será un tema que ampliaremos en adelante.

Bueno, espero les haya servido este artículo.

suerte.

@pata_de_jaguar

viernes, 22 de febrero de 2013

SQLite. La Clausula condicional CASE.

Retomando la importancia que tiene sqlite, ya que es el Motor de Base de datos más usado en dispositivos móbiles y sistemas embebidos.

¿Como operar con columnas según condiciones en SQLite?

A veces nos encontramos que queremos operar(SUM, COUNT) con algunos campos de la misma forma en que se hace con Engines con una mayor implementación. En el caso de SQLite no existe la clausula IF en SELECT, así que usaremos la clausula CASE.


CASE WHEN x > y THEN a ELSE b END.

Se lee.

CUANDO_EL_CASO_SEA valorX ES_MAYOR_A valorY ENTONCES DEVOLVER valorA SINO DEVOLVER valorB FIN.

Mucho más simple: cuando el valor de X sea mayor que Y, entonces devuelve A, sino devuelve B.

Sean esto los datos:

Haremos una consulta, donde crearemos dos columnas con sumas condicionadas con  otro campo. Para efectos de este ejemplo, el tipo 1 son ventas, 0 son descuentos. Agruparemos los datos por vendedor.

SELECT nombre, SUM(CASE WHEN tipo=1 THEN monto ELSE 0 END) AS 'ventas',

SUM(CASE WHEN tipo=0 THEN monto ELSE 0 END) AS 'devoluciones'

FROM ventas

GROUP BY nombre


Iremos por partes:

SELECT nombre,


/* Sumar (seleccionar monto cuando tipo sea igual a 1) = ventas */ 

SUM(CASE WHEN tipo=1 THEN monto ELSE 0 END) AS 'ventas',


/* Sumar (seleccionar monto cuando tipo sea igual a 0) = devoluciones */  

SUM(CASE WHEN tipo=0 THEN monto ELSE 0 END) AS 'devoluciones' 
 
 /* desde la tabla ventas */

FROM ventas

/* Agruparlos por nombre */ 

GROUP BY nombre

 El Resultado es:

También podremos obtener el resultados con varios SELECT, pero lo óptimo es de esta forma.

Algo más complejo:

SELECT MAX([recibos].[fecha]) AS 'mes',

COUNT([recibos].[codigo]) AS 'conteo',

UM(CASE WHEN [recibos].[tipo] = -1 THEN ([recibos].[total]) ELSE 0 END) AS 'ventas',

SUM(CASE WHEN [recibos].[tipo] = 1 THEN [recibos].[total] ELSE 0 END) AS 'compras'

FROM [recibos]

WHERE  [recibos].[fecha] >= date('now','start of year')

GROUP BY strftime(\"%m\", [recibos].[fecha]) ORDER BY [recibos].[fecha]

Más info  : http://www.sqlite.org/lang_expr.html

Pero la explicación lo dejamos para después.

Suerte.

@pata_de_jaguar





miércoles, 20 de febrero de 2013

Android Developer. 25 Alternativas a Google Play.

Si eres desarrollador de Android, y buscas darle alas a tu nueva App, esta lista es para tí. Te comparto 25 Alternativas a Google Play, el Android Market Oficial:

Amazon App Store https://developer.amazon.com/ Gratis de Inicio. No se logran muchas descargas, pero te da el privilegio de estar con uno de los vendedores más famosos de la red.
AndroidPit http://www.androidpit.com/ Sin duda uno de los Mejores, obtienes un gran número de descargas. Tu app puedes subirla, siempre y cuando exista en Google Play. De momento, no he podido subir la versión de paga de mi app.
SlideMe https://slideme.org/ Es la mejor, solo con decir que en este market he podido obtener un 100% más de descargas que en la propia Google Play. Puedes subir tus versiones de paga sin problemas. Cuenta con su propia app para descargas.
AppBrain https://developers.appbrain.com/ Este market es solo para promocionar tu App, no puedes subirla fisicamente, si no vincularla. Lo mejor que tiene es de market es su herramienta para desarrolladores llamada Apptimizer Extended, que hace una especie de SEO de tu app, ayuda a para mejorar su visibilidad en la red.
AOnline https://www.andapponline.com/ Yo recomendaría solo subir versiones de prueba o gratuitas. De cualquier forma es otra opción.
AndroidZoom http://www.androidzoom.com/ En este market no he podido subir ninguna versión de mi app, aunque depende de la existencia de la app en Google Play, tiene problemas al detectarlos.
AppTown http://www.apptown.com/ Tiene los mismo detalles que AndroidZoom.
getJar https://developer.getjar.com/ No se especializa en android, de hecho... nació para teléfonos anteriores a los Teléfonos Inteligentes. La publicación de la app depende de la existencia en Google Play, o de un archivo directo. Cualesquiera que elijas, no podrás cambiarlo a menos que lo subas nuevamente. Cuenta con herramientas de análisis.
Aptoide https://www.aptoide.com/ Es un market de comportamiento raro. Aparentemente, en la versión normal, no se puede establecer precio a tu app. Así que solo sirve para las gratuitas. No he logrado grandes descargas de aqui, de hecho, al inicio empecé bien y luego, las descargas casi se esfumaron.
Samsung Apps http://seller.samsungapps.com/ En este market, no he logrado que autorizen mi app, se ponen muy exigentes para los beneficios que obtienes. De echo, ya ni en Amazon se ponen tan delicados, y eso que que Kindle está basado en Android con sus propios hacks, lo que no lo hace 100% compatible.
Insyde Market http://developer.insydemarket.com/ Es un Market Chino, de los muchos que hay, la ventaja que tiene es que no te marginan como lo hacen en los demás, tiene una versión en Inglés, lo que facilita la publiación. Algo que es clave en los mercados Chinos es su descripción en esta lengua. Algo a veces ajenos a los hispanos. Cuenta con su propio App builder llamado Katana... curioso. No son tan exigentes.
soc.io http://mall.soc.io/ Nunca había escuchado de este Market, sin embargo es bueno. Algo limitado para promocionar tu app... pero una buena opción.
Appslib http://appslib.com/developers/appli_add.html Un poco tardado en entrar, no he tenido grandes descargas, pero en fín. Otra opción.
AndroidLib http://www.androlib.com/ Bastantes fallos, ni siquiera puedes hacer un login.
Camangi Market http://www.camangimarket.com/sharelist.html Market Asiatico, con soporte en Coreano,  Japonés y Chino. Algo bueno, el único detalle que tuve es que no aceptaron mi app con Airpush, asi que hice una version con admob.
NexVa.com http://cp.nexva.com/product/view Muy tardado en la Autorización. Da la impresión que está muy descuidado. Lo recomiendo solo para apps gratuitas.
Phoload http://www.phoload.com/developer/?software= Hasta ahora, mi app está marcado como "under review", muy tardado.
apps.opera https://apps.opera.com/ De autoría de Mejor Navegador para Android (Opera Mini, en mi opinión). Lo recomiendo, Aunque no sé porqué solo se publican en http://www.handster.com y no en apps.opera.com
Appchina http://dev.appchina.com/ Igual que Insyde Market, el único detalle es que piden la descripción en Chino simplificado.
AndroidTapp http://www.androidtapp.com Tan útil como AndroidZoom... no he logrado nada.
Appia.com https://dev.appia.com/YourProducts.dp Bastante tardado en la Autorización, aunque se supone que es distribuidor director de las operadoras tales como Telcel, verizon, Vodafone, etc. No he logrado ninguna descarga.
MOBANGO http://developer.mobango.com/ Solo pude subir mi app. hasta ahora no he podido acceder a mi Panel de Control, tal vez sea un fallo en el login.
Mobile9 http://gallery.mobile9.com Según entiendo es una de varias páginas afiliadas. Buena si lo que quieres es dar a conocer tu app. Soporta varias plataformas.
iPandaApp http://download.pandaapp.com/ El mismo caso que Mobile9, solo que con publicidad molesta.
BrotherSoft http://author.brothersoft.com/ Aparentemente puedes subir tu App, pero al final solo puedes publicar aplicaciones para Mac y Windows.

Si tienes una más que agregar, sea bienvenida.

suerte:
@pata_de_jaguar

domingo, 17 de febrero de 2013

Escanea tu App desde tu pc en busca de Virus.

A veces nos bajamos algún programa para móvil desde fuentes "desconocidas" o de redes p2p, en esto, la seguridad debe jugar un papel importante, por ello debemos verificar la app móvil antes de llevarlo a nuestro teléfono y aunque para los nuevo teléfonos existen antivirus, no es la mejor idea correr un programa tan absorbente de recursos.
Si de verdad tienes duda de que el programa Android(.apk), el programa para tu móvil(.jar), u otros similares (.sisx, .sis, .cab) es libre de virus, malware y otros bichos, antes de llevarlo a tu dispositivo, existen algunas soluciones en Línea para estas tareas y que puedes ejecutarlo desde la comodidad de nuestra Computadora portátil o de escritorio.
La primera página  a la que me voy a referir es un verdadero Escáner online, y aunque es beta, no está de más probarlo. Soporta .apk, .jar, .ca, .sis y .sisx.

http://scan.netqin.com/en/

La segunda página es más parecida a un ranking de seguridad, busca en las distintas app stores y le asigna un ranking de seguridad según su propio examen.
http://appview.mobilesecurity.com/

Y como siempre, no está de más escanear nuestra app, pues puede que al conectarlo al pc nos envíe un bicho... para esto... la lista de escaner para virus, online:
http://www.askvg.com/ultimate-collection-of-best-free-online-virus-scanners/

Todo lo necesario para cuidarnos...

suerte.

@pata_de_jaguar

sábado, 16 de febrero de 2013

Instalar JDK8 en Ubuntu.

Si deseas Instalar JDK8 en Ubuntu, en un entorno de producción... piénsalo dos veces...
La verdad no se si en otras versiones de ubuntu sucede lo mismo, pero no lo recomiendo en un entorno productivo, a veces hay que quedarse con los más viejo pero funcional (y veces inseguro :( ) que con con más nuevo.
Les explico mis razones:
Bug Eclipse  que no permite Actualizar con JDK 8:

'An internal error occurred during: "Contacting Software Sites".
org/eclipse/ecf/core/identity/ID'
 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=400198
https://bugs.eclipse.org/bugs/show_bug.cgi?id=399801

Errores de duplicación en llamadas a binarios desde bash:

loquesea ~ $ java
bash:/usr/bin/java No such file or directory

http://askubuntu.com/questions/207552/no-such-file-or-directory-when-invoking-java

http://askubuntu.com/questions/100480/java-location-in-ubuntu-using-which-java

Además que este problema afecta a todos los binarios invocados o trabajados desde bash, para corregirlo reinstalen: ia32-libs libc-bin libc-i386 libc6 ya que no se arregla solo purgando: oracle-java8-installer .

 Espero les sirva.... suerte.

@pata_de_jaguar

domingo, 10 de febrero de 2013

Plugin Phonegap/Cordova Authorize.net Tests

Confieso que soy bastante miedoso para manejar dinero, aún que en mi trabajo de contador los he manejado de todo tipo. No es algo que me guste, el dinero es de la cosas que junto al poder, pueden volver demonios a los santos. Sin embargo, con la faceta de programador, te encuentras con todo tipo de retos.
Al agregar funcionalidades a mi Programa DroidMart, he estado experimentando con la Librería de Authorize.Net, que les dejaré al final de este pequeño post.

Como saben, Authorize.Net, da la posibilidad de obtener  pagos en linea de las Tarjetas de Crédito más importantes en el Mundo. Por ahora, solo manejado en dólares.

Instrucciones:

Regístrense como Desarrollador y creen una cuenta de prueba en http://www.authorize.net/.

Bajense el SDK de java AIM en este Link.

Copien el recurso anet_java_sdk/src/main/java/* a su src del proyecto phonegap en eclipse. Quedando algo así:

No se olviden de Agregarlo a su config.xml.

Copien la clase java:
Copien el Archivo javascript:
Agréguenlo como referencia y prueben:
Authorize.net tiene un SDK para android, pero la verdad, con las muchas pruebas que hice, no me convención en usarlo para una aplicación Phonegap/Cordova.

No olviden que es pre-pre-beta XD.

Lo proximo que agregaré son los pagos con bitcoin y paypal.... hasta luego.

saludos.
@pata_de_jaguar



viernes, 8 de febrero de 2013

AirPush Detectado como Virus. Desarrollo Android

Como saben, Airpush es una de las redes de Advisor que se estan haciendo populares, ya que económicamente es más viable para el programador, tal como Leadbolt. Caso contrario con admob de Google. En fin, la necesidad de algunos ingresos es primordial para todos, y los desarrolladores sabemos que no vamos a llegar a ser como Kim dotcom, pero algo hay que hacer. Como sus similares, AirPush tiene un eCPM mas elevado, pero con prácticas más intrusivas. Por si piensas agregarlo como tu Advisor, piensalo, ya que algunos antivirus lo detectan como Malware, siendo que el 99% de aplicaciones Android son de tipo Adware ¿Quién queda libre de pecado?....
Aquí les dejo lo que me concluyó un Market Chino respecto a mi aplicación:



"Thank you for your kindly support! We appreciate your kindly share in Camangi Market! Recently, we had reviewed your application, "FreeMart Free POS" During the app testing process, we have found the following issues.


[Testing Result]

After investigated the issue of virus found in your applications, the reason is showed as below:

1. In your applications, there is "Adware.AirPush.D " ads API in your applications which may cause some unknown app install automatically by "Adware.AirPush.D", under the definition of NOD32 antivirus software, it can cause virus in users' device.

2. Countermeasure: please consider to remove "Adware.AirPush.D " in your applications to avoid the risk.

3. By CamangiMarket apk verify team's strategy, we need to decline the apk first to prevent the risk of virus may cause to the users."



Espero tengan mejor suerte que su servidor...

Saludos.

@pata_de_jaguar

lunes, 4 de febrero de 2013

Crea tu BD Sqlite de Forma fácil y rápida.

Hoy les presento un minitutorial para generar tu DB Sqlite de forma fácil y rápida, usando herramientas disponibles gratuitamente, tal es el caso de mysql Workbench.
Para este tuto, debemos tener instalado lo siguiente:

Linux(Claro, si no... ¿como?).
MySQL Workbench.
MySQL Server.
SQLite bin.

Aquí les dejo el vídeo:



Los scripts mencionados lo puedes bajar desde esta liga : http://www.opencorebanking.com/uploads/radsqlite.zip

Perdón por lo mal hecho... pero la intencion es lo que cuenta... XD.

@pata_de_jaguar