Accediendo al código fuente de las aplicaciones “no nativas” de iTunes

Posted in Programación with tags , , , , on 7 mayo, 2011 by febrer

Os voy a enseñar un sencillo pero eficaz método para acceder al código fuente de las aplicaciones “no nativas” del AppStore, y similares.

En tres sencillos pasos:

1.- Nos instalamos iTunes desde la sección de descargas de Apple en nuestro caso. http://www.apple.com/itunes/download/

2.- Buscamos la aplicación que nos interese y nos la descargamos . (nos pedirá un usuario y password, por lo deberemos estar registrados. (Es un sencillo formulario en el que no tenemos ni que introducir datos reales, jeje).

4.- Una vez instalada nuestra aplicación accedemos a la carpeta “Aplicaciones” de nuestro iTunes y seleccionamos la aplicación descargada y pulsamos botón derecho para acceder a la opción: “Mostrar en explorador de Windows”.

5.- En la carpeta varas que tienes un fichero con extensión (ipa): Simplemente lo renombras a zip y … tachan!!! Ya tienes acceso a los ficheros y código fuente de la aplicación. Navegando por la estructura de la aplicación observaras una carpeta con el nombre ‘www’, esta carpeta nos indica que la aplicación es “no nativa” y en ella se encuentran los ficheros javascript y html que la componen.

A partir de hay, el trabajo de analizar con que esta realizada una aplicación es cosa tuya en este post hablo un poco del tema. Por supuesto desde mi ignorancia, ya que yo soy programador .NET “puro y duro”, jeje.

En otros sistemas de venta el sistema el muy parecido. Pensar que las aplicaciones “no nativas” son simples zips que deben contener la aplicación web a ejecutar en nuestro móvil. Con las aplicaciones “nativas” también puedes utilizar esta técnica, pero accedes a programas compilados que evidentemente no tienen el código fuente.

En http://phonegap.com/apps, tenéis un gran repositorio de aplicaciones de las cuales aprender como están realizadas.

Anuncios

Appcelerator Titanium, PhoneGap, Sencha Touch, jQuery Mobile – Aclarando la confusión

Posted in Programación with tags , , , on 6 mayo, 2011 by febrer

La primera vez que accedía a la página web de PhoneGap, vi que era la solución a todos mis problemas: Un Framework que me permite desarrollar para todas las plataformas móviles, iPhone, Android, Symbian, incluso Windows Phone7 (en un futuro no muy lejano). Esto es lo que yo necesito!!, Es una bomba. Poder crear una aplicación y que funcione en todas las plataformas…

Qué tipo de aplicaciones podemos desarrollar en un móvil? Podemos desarrollar aplicaciones “no nativas” basadas en el navegador del móvil, y aplicaciones nativas (Objetive C/JAVA) que acceden directamente al hardware del móvil.

Sencha Touch y jQuery Mobile, son frameworks javascripts, que nos permiten desarrollar aplicaciones “no nativas” para el navegador de nuestro móvil con el mismo “look and feel” de las aplicaciones nativas.

PhoneGap y Titanium, lo que nos permiten es “empaquetar” (zip) nuestra aplicación web (con las correspondientes librerías js/css/HTML), permitiéndonos su distribución en los diferentes sistemas de venta (app store, Marketplace, etc …). Las librerías js/css3 incluidas en el paquete, pueden ser jQuery Mobile, Sencha Touch, u otro framework para móvil.

Pero Appcelerator Titanium va más allá. Con Titanium, puedes programar en js/Ruby/Python/PHP, y mediante su API/SDK, generar una aplicación nativa (Objetive C para iPhone/iPad, JAVA para Android). Con la consiguiente mejora de rendimiento al acceder directamente al hardware.

Información original obtenida de: http://beautyindesign.com/blog/titanium-phonegap-sencha-touch-jquery-mobile-clearing-up-confusion/

Mas info:

http://www.phonegap.com

http://www.appcelerator.com

http://www.sencha.com

http://jquerymobile.com/

Utilizando Subversion en Windows con Visual Studio

Posted in Sin categoría with tags , , , on 15 noviembre, 2010 by febrer

A diario trabajo con un servidor de control de código fuente de microsoft, Team Foundation Server o comúnmente llamado “TFS”. Es una gran herramienta, pero tiene el problema de no ser tan sencilla su utilización en entornos “sin servidor”, como puede ser el portátil que diariamente utilizo para programar “mis cosas”. Subversion es un buen producto, sencillo de instalar y muy completo.

Lo primero que tenemos que hacer es instalar una versión de Subversion para Windows. La versión de Subversion que he utilizado es la versión de 32bits “win32svn”.

Lo puedes descargar en: http://subversion.apache.org

Una vez dispongamos de subversion instalado, para configurar nuestro repositorio lo mejor es instalarse TortoiseSVN. Este producto se integra con el explorador de windows y permite crear y administrar nuestro repositorio comodamente sin utilizar la línea de comandos. La instalación de Subversion, no es necesaria si instalamos Tortoise, pero si queremos utilizar svnserver, si lo es.

Pasos para crear nuestro repositorio con TortoiseSVN:

1.- El repositorio de crea seleccionando una carpeta vacia y utilizando el menú contextual “Create repository here”.

2.- Una vez dispongamos de nuestro repositorio, debemos importar los fuentes en el. Nos situamos en la carpeta que queremos añadir a nuestro repositorio, y seleccionamos la opción “Import” del menú contextual.

3.- Para poder acceder a nuestro repositorio, podemos utilizar la opción “Repo-browser” del menú contextual.

4.- Si nuestra intención es acceder al repositorio mediante Visual Studio, recomiendo que te instales “Ankhsvn“. Es una completa aplicación que se integra con VS y permite cómodamente conectarnos a nuestro repositorio y trabajar con el. Para abrir nuestro repositorio, simplemente utilizar la opción: File -> Subversion -> Open from subversion… Seleccionamos nuestro repositorio con: file:///D:/datos/repositorio

5.- Si queremos disponer de nuestro repositorio “on-line”, necesitaremos utilizar “svnserver”. Este programa nos permite tener un mini servidor de subversion en nuestro equipo. Utiliza el puerto 3690, por lo que tenemos que habilitar el firewall y router para permitir el acceso a nuestro servidor.

Para ejecutar svnserver utilizaremos el comando:

"C:\Program Files\Subversion\bin\svnserve.exe" --daemon --root d:\datos\repositorio

Para crear la aplicación como servicio windows:

sc create svnserve binpath= "C:\progra~1\Subversion\bin\svnserve.exe --service --root d:\datos\repositorio" displayname= "Subversion" depend= tcpip start= auto

De esta forma, accederíamos al repositorio indicando la dirección: svn://localhost

Por defecto, svnserver permite el acceso en modo “solo lectura”. Para permitir acceso a nuestro repositorio, debemos modificar la configuración del repositorio en conf/svnserve.conf, añadiendo la líneas:

[general]
anon-access = none
auth-access = write
password-db = passwd

Editamos tambien el fichero “passwd”, e indicamos un usuario y password:

[users]
usuario = clave

Espero que esto os anime a utilizar control de código fuente en nuestros proyectos, por muy sencillos que sean, y con muy poca inversión, ya que todos los productos son gratuitos.

Pruebas unitarias para interfaz de usuario (CodedUI Test).

Posted in Microsoft, Programación with tags , , on 18 octubre, 2010 by febrer

En este interesante vídeo de Channel9, podemos ver un sencillo ejemplo de como crear pruebas unitarias de interfaz de usuario.
Esta funcionalidad esta integrada en Visual Studio 2010, y es un mecanismo muy útil para mejorar nuestras pruebas unitarias.

http://channel9.msdn.com/Blogs/Charles_Sterling/How-to-create-edit-and-playback-CodedUI-Tests-in-Visual-Studio-2010-Beta2

Desde SecondNug, nos ofrecen una charla práctica de la mano de Toni Recio, Project Manager en Pasiona y MVP de Microsoft.

Información y registro:
https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032464830&EventCategory=4&culture=es-AR&CountryCode=AR

Que lo disfrutes!

Acceder a las claves “foráneas” mediante SQLClient

Posted in Programación with tags , , , on 24 abril, 2010 by febrer

Una manera de acceder a los esquemas de SQL Server utilizando OleDb es mediante la función GetOleDbSchemaTable. Utilizando el parámetro System.Data.OleDb.OleDbSchemaGuid.Foreign_Keys, el acceso a las claves “foráneas” es muy sencilla. Esta función devuelve un DataTable con la información de las “Foreign Keys” de todas las tablas con la siguiente información:

FK_TABLE_NAME
FK_COLUMN_NAME
PK_TABLE_NAME
PK_COLUMN_NAME

De esta manera, podemos saber todas las relaciones de todas las tablas de nuestra base de datos.

Pero con SqlClient, este método no existe, la manera de acceder al esquema, es mediante la tabla “Information_Schema.*”. Un forma muy sencilla de obtener la misma tabla es realizando la siguiente consulta:

SELECT ccu.table_name AS FK_TABLE_NAME,
ccu.column_name AS FK_COLUMN_NAME,
rc.constraint_name AS PK_COLUMN_NAME,
ccu2.table_name AS PK_TABLE_NAME
FROM information_schema.constraint_column_usage ccu
JOIN information_schema.referential_constraints rc ON ccu.constraint_name=rc.constraint_name
JOIN information_schema.constraint_column_usage ccu2 ON rc.unique_constraint_name=ccu2.constraint_name

Ficheros de configuración y codificación

Posted in Programación with tags , , , , , on 15 abril, 2010 by febrer

Tras unos cuantos quebraderos de cabeza, ayer solucione un problema que posiblemente os pueda pasar a más de uno.

Esta relacionado con los ficheros de configuración de nuestras aplicaciones .NET (fichero .config), Windows 2003 Server (posiblemente en xp no pase) y acentos (quizás con un fichero sin caracteres extendidos, esto no ocurra). Casualidad el que estaba utilizando sí los tenía.

El problema radica en la codificación del fichero (Unicode, ANSI, UFT-8, etc …).

El problema nos lo encontramos al editarlo con “wordpad”. Este editor, cambia la codificación del fichero, haciendo que dicho fichero no sea reconocido correctamente por nuestra aplicación y dando un error en el visor de eventos que para nada aclara el verdadero problema.

Este es el detalle del error:

Event Type: Error
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5000
Date:  4/13/2010
Time:  2:43:15 PM
User:  N/A
Computer: SERVER1
Description:
EventType clr20r3, P1 k2dtc2xq5edgbqzwwi41i4xzrenn5n2p, P2 1.0.0.0, P3 4bbf2346, P4 system.configuration, P5 2.0.0.0, P6 4889de74, P7 1a6, P8 136, P9 ioibmurhynrxkw0zxkyrvfn0boyyufow, P10 NIL.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Para solucionarlo, simplemente hay que editar el fichero con “notepad”, y utilizar la opción “guardar como”, indicando UNICODE o UTF-8.

Posiblemente alguno ya conozca este problemilla, pero creo que es interesante compartirlo.

El generador de perfiles (Profiler) de Internet Explorer 8

Posted in Microsoft, Programación with tags , , , , on 25 febrero, 2010 by febrer

Como algunos de vosotros sabréis, IE8, dispone de una serie de herramientas de desarrollo accesibles desde el propio explorador pulsando la tecla F12.

 Desde estas herramientas, puedes acceder al código script de la página, a la hoja de estilos (Css), y al código html (mostrado en forma de árbol). Puedes incluso, desde la pestaña “Script”, depurar la aplicación con un sencillo depurador, creando puntos de ruptura, analizar variables, etc. Personalmente, la depuración prefiero realizarla desde el entorno de desarrollo Visual Studio, pero es una opción muy interesante si desarrollas con otros lenguajes de programación que no sean de Microsoft.

 La herramienta que me ha sorprendido, por su sencillez y eficacia, es el generador de perfiles ó “profiler”. Esta utilidad, nos permite tener una visión rápida de los tiempos utilizados por cada una de nuestras funciones (js o vbs) de nuestra aplicación. De una manera fácil, podemos determinar cuales son las funciones que utilizan más tiempo en ejecutarse, y solucionar problemas de rendimiento en nuestras aplicaciones. Permite tener una vista de las funciones y sub-funciones de nuestra aplicación, organizada jerárquicamente, para que fácilmente puedas navegar por las diferentes funciones y métodos viendo los tiempos incurridos por cada una de ellas.

 Su funcionamiento es muy sencillo. Simplemente, cargamos la página que deseamos analizar, pulsamos F12, activamos el modo “captura”, pulsando en “Iniciar la creación de perfiles” (en la pestaña “Generador de perfiles”), volvemos a acceder a nuestra aplicación, y ejecutamos el código que queremos analizar. Una vez ejecutado el código a analizar, pulsamos de nuevo F12, y detenemos la captura con “Detener la creación de perfiles”. Automáticamente, podremos visualizar un informe con todos los tiempos de nuestras funciones, pudiendo ordenarlo por el campo que deseemos. Cambiando la vista a “Árbol de llamadas”, podremos acceder a las diferentes funciones y tiempos organizados por las llamadas realizadas. Toda la información, se puede exportar a csv para un posterior análisis.

 Espero que esta utilidad os permita detectar problemas de rendimiento en vuestras aplicaciones web.

 Happy scripting!!