Diseñando una aplicación para iPhone

Voy a tratar de sintetizar todo el trabajo que me llevó el desarrolar la aplicación Mussage para iPhone en una semana. Si todavía no sabés qué es Mussage, podés leer este post!.

Los pasos que fui realizando y las herramientas (en su mayoría gratuitas) que fui utilizando.

Diagrama de Casos de Uso

Primero que nada y basandome en la idea, hice un diagrama de casos de uso con yuml.me

MockUp

Luego armo un esquema de navegación de pantallas con el Balsamiq MockUp:

DER

Ya es hora de hacer un diseño de las tablas que va a tener la base de datos! Para eso usamos el diseñador de MySqlWorkBench

Xcode

Ya es tiempo de programar en Objective C…

Además utilicé los siguientes Frameworks, librerías y herramientas para iOs:

  • FMDB para SQLite
  • JSONKit para parseo y recepción de Json con el Server
  • MD5 para envio de Hash con el server y autenticar el login
  • Internacionalización de Strings y de Xib en Inglés y Español.
  • QuartzCore para animación de Vistas
  • MediaPlayer para reproducción de canciones del iPod
  • MessageUI para envío de mails dentro de la app

Lado Server ( PHP )

Desarrollé con la IDE Aptana Studio 3 la API para proveer de servicios a la app e interactuar con la Base de Datos.

Diseño Gráfico

Realmente no hice demasiado diseño gráfico, utilicé los controles standard de iOs y agregué algúnos iconitos, eso si…

Web para la Aplicación con HTML5

Para acompañar el lanzamiento de la app, una web basada en un Template y tuneada con PHP.

Publicar en el AppStore

Finalmente, a publicar la app!. Es un poco rebuscado el tema de los certificados y la preparación de una versión para Distribución, pero siguiendo las instrucciones en la web de apple se puede ir haciendo.
Hay que tener preparados los screnshots y el icono en distintos tamaños para iPhone 3G (y menor) y para iPhone 4 con Retina Display.

Listo!

Una vez que Apple aprueba nuestra app (tarda una semana) a empezar a promocionar nuestra app ! Bajarla y usarla!
Te invito a Probarla:
Exitos para todos!
Cualquier consulta dejame tu(s) comentarios acá, o buscame por twitter @jbagnato. Si querés podés solicitar un presupuesto para desarrollar tu app!.
.
.!.

El desafío de crear una Aplicación iPhone en 7 días


Antecedentes iOs

Hace unos 3 años que estoy programando aplicaciones para iPhone/iPad y la realidad es que aún no desarrollé ninguna propia. Durante un año estuve trabajando para una empresa Startup y aprendiendo el lenguaje de programación Objective C y participando en proyectos de varias apps (las cuales muy pocas vieron la luz): una app publicitaria para Toyota, un juego de matar zombies basado en un comic, una aplicación para aprender a cantar con Karaoke y otra similar a Twitter pero con mensajes por voz. Luego trabajé de forma Freelance para terceros y fui “evolucionando” en las versiones del iOs; nuevas APIs y del lado del servidor PHP y comunicación vía JSON.

Requerimientos Ideales

Siempre tuve varias ideas de aplicaciones iPhone, pero hasta el momento nunca las llevé a cabo. Como no tenía cuenta en el Apple Developer Program no podía publicar en el Appstore. Hace unos meses me suscribí al programa y eso me da la posibilidad de poder publicar. Ahora, sólo falta decidir la idea e implementarla.
Algo que fuí aprendiendo con el tiempo con respecto a las ideas es que para poder realizarlas deben ser simples. Lo simple es lo mejor. Sencillo, minimalista, que cumpla una función determinada; que no sea abrumadora para el usuario. La política de Apple es esa y lo dice en sus guías para desarrolladores: conviene que sea una aplicacion “pequeña” que hagan una sóla cosa pero que la hagan muy bien.

El desafío

Asi nació el nombre de Mussage para una idea que tuve a finales de 2009 para una aplicación iPhone que me parece que cumple con las condiciones: es simple, se enfoca en resolver una cosa y es viable. Ya les contaré en un próximo Post sobre ella. Ahora tengo el desafío de intentar desarrollarla en una semana que es el tiempo libre que tengo antes de empezar un nuevo trabajo freelance!. Podré hacerlo?…

Para lograrlo, me planteo un cronograma y cuento con una serie de herramientas gratuitas y muchas de ellas On-line.

Cronograma

  1. día 1 Diseño: UML, DER (base datos) y estructura web, mockup de navegación de la app
  2. día 2: Creación de Login (iPhone + web PHP)
  3. dia 3: Estructura iPhone app, navegación entre pantallas
  4. día 4: Acceso a la librería de iTunes y envío de datos JSON al server
  5. día 5: Recibir listado de mensajes recibidor y envío de mensajes a otros users
  6. día 6: Internacionalización y Testing, detectar Memmory leaks
  7. día 7: Diseño gráfico y Publicación en la App Store.

Herramientas

  • iPhone Mobile

    • X-Code para codear Objective C.
    • Articulos en el iOS Dev Center de Apple.
    • Libreria FMDB para base de datos SQLite.
  • Otros

    • Servidor Apache
    • Base de Datos MySql
    • CLiente FTP Filezilla
    • Producteev para administrar las tareas en Mac, iPhone o Web, muy bueno para mantenerse ordenado (free)
    • Packs de íconos gratuitos
En un próximo Post les cuento más acerca de la idea a desarrollar: “Mussage, Musical Message“.
A codear!!!
.
.
UPDATE: Debido a la gran cantidad de preguntas que recibí acerca del desarrollo de aplicaciones iPhone / Mobile / Tablets, he creado un nuevo Post de FAQs en el que iré colectando y actualizando para tratar de responder y despejar sus dudas! El link es FAQ: Crear una aplicación iPhone
UPDATE 2: También creé un formulario para que me envien solicitud de presupuestos para desarrollo de aplicaciones para iPhone o Android.
.
.

Qué es Twitter y para qué sirve

Qué es Twitter?

Twitter surge como una herramienta similar a un blog pero en la que vemos limitada nuestra cantidad de caracteres a escribir por artículo a 140 letras. Se asemeja a una caja de texto donde ponemos nuestro “status” (como en el MSN Messenger o en el gTalk) donde uno escribe brevemente su estado de ánimo actual, qué estas haciendo, algún pensamiento o frase. Actualmente se comparten links a blogs o noticias, fotos y videos.

Igual no lo entiendo!! Para que me sirve?

A lo largo del resto de este informe, vamos a tratar de responder a esa pregunta. Muchas de las personas que todavía nunca usaron Twitter se preguntan si existiendo los Blogs, la mensajería instantánea o Facebook era necesario este nuevo servicio. La realidad es que Twitter incorporó nuevos conceptos que antes no existían y así se hizo fuerte. Por un lado al tener una capacidad limitada de texto obliga al que escribe a que sea conciso y vaya al grano. Por otro lado aparecen nuevas definiciones y roles como el del “followers” (no existía antes) y se explicará un poco mejor a continuación.

Nuevos conceptos: followers y noticias en tiempo real

A diferencia de Facebook en donde para contactarse dos personas ambas deben aceptarse, en Twitter podemos seguir a otra persona sin necesidad de que ella sea nuestra “amiga”. Ese es el concepto de Follower. Y podemos seguir a muchas personas y también otros pueden estar interesados en seguirnos a nosotros y lo que decimos en nuestros twitts.
El otro concepto que nace con Twitter es el de las noticias en tiempo real y creadas o reportadas por los mismos twitteros. Paso a explicarlo; cuando el servicio ganó una masa crítica e importante de usuarios y teniendo la posibilidad de twittear desde el teléfono móvil, se empezaron a difundir noticias y novedades mucho antes de que aparezcan en TV o radio. Un buen ejemplo fue cuando se estrelló un avión en Nueva York, donde el accidente fue cubierto en tiempo real por twitter, es decir a medida que iba pasando por las personas que estaban en las cercanías del lugar. Y toda esa cobertura fue antes de que llegue la CNN u otros medios periodísticos.

Sin intermediarios: Famosos en Twitter

Al generar un lazo directo entre “seguidor y seguido” podemos vincular nuestro Time Line con las novedades que escriben las celebridades, famosos, marcas u otros personajes que nos interesen. La novedad de esto es que NUNCA ANTES hubo una vía tan directa de relación entre el “fan” y su “Dios”. El otro día me enteré que Alanis Morisette estaba embarazada por palabras de ella misma en su twitt. Pensemos que antes para enterarnos de este tipo de noticias se seguía un circuito mucho más largo y complicado: el representante de la cantante avisa a un medio, luego eso lo levanta un intermediario de prensa (Reuters) y finalmente llega a algun periódico online local que luego comentará algún locutor en la radio.

Twitter Vs Facebook

Si tengo Facebook, hace falta tener Twitter? no son lo mismo? respuesta: No son lo mismo. Si bien son redes sociales porque nos enlazamos con diversas personas y compartimos comentarios y opiniones son muy distintos. Una de las diferencias ya la dijimos y radica en su conexión entre usuarios que no es necesariamente bidireccional como en Facebook. Además Twitter se caracteriza por ser muy simple: un texto breve, tal vez un link y listo. Facebook es un aglomerado de servicios: subir fotos y videos, agenda de eventos, juegos online, encuestas y muchas otras cosas. La sencillez de twitter lo vuelve muy práctico para su uso desde teléfonos móviles tanto para leer como para actualizar el estado propio.

Evolución natural: los hashtags

Twitter nació a principios de 2006 y poco a poco fue cambiando y aparecieron mejoras. Una característica muy interesante que surgió por los propios usuarios fueron los “hashtags”. Los hastags son etiquetas que se usan para identificar el Twitt y para ello se usa e caracter #. Por ejemplo podrían usarse #musica, #cine o ahora es cada vez más común ver tags de búsquedas laborales con #empleo. Son muy útiles al momento de buscar en tiempo real y para filtrar información.

Entonces Twitter sirve para…

Como conclusión no sé si podemos decir específicamente para qué sirve Twitter, probablemente tendrá varias funciones distintas según cómo lo use cada persona. Pero tal vez generalizando un poco y a raiz de lo que describimos anteriormente podemos decir que Twitter es una herramienta de comunicación online, acotada y concisa.

Como empezar?

Si logré convencerte -al menos un poquito- de que Twitter sirve y es útil para algo, podés empezar dirigiendote a twitter.com y crear una cuenta con tu nombre de usuario. Recomendación: registrá un nombre corto!.

Y si querés contactarte conmigo mi usuario es @jbagnato, Saludos!

.

Instala lo básico a tu Mac

Ok, acabas de comprar tu nueva Macbook. Que software le instalo? lo indispensable, lo imprescindible… lo que no te puede faltar!!!

Primero que nada

Antes que nada, hacé un Update del Sistema Operativo:  si viene con un OS X Leopard pasalo a Snow Leopard. Eso actualiza el Safari también.

Growl – para tener notificaciones. Es a tu gusto, pero muy recomendado.

Lo básico

Open OfficeOpen Office – para editar archivos de texto, planillas de cálculo y presentaciones. (Compatible con Word, Excel y Powerpoint)

VLC – para ver películas AVI, DIVX y ciertos formatos no soportados por el QuickTime. Ademas para escuchar radios online.

Adium – Es un multi-cliente de chat. Soporta el Messenger, Gtalk y Facebook entre otros

Skype – conocidisimo cliente de chat y videoconferencia

TextMate – Muy buen editor de textos. (Recomendado por Wacko)

Chrome / Firefox / Opera – Navegadores web para los que (como a mi) no les convence el Safari.

Expod – Si tenés un iPod o un iPhone y querés bajarte la música al disco sin que iTunes te borre todo Expod es lo que necesitas.

Intermedio

Dropbox – Almacenamiento de tus carpetas  sincronizado en la nube. Para tener tus archivos en cualquier momento, en cualquier lugar y en tu mac, pc o móvil.

Cyberduck – Clientes de FTP y SFTP.

Transmission / BitTyrant – cliente Bittorrent.

jDownloader – multiples descargas de rapidshare, megaupload, hotfile, etc.

Adquisition – Cliente P2P para buscar y bajar archivos

Handbreak – para cambiar de formato videos. Muy útil para pasar películas de gran tamaño a la pantalla de tu móvil.

SIMBL – Unos Hacks para dar mayor poder a tu Mac. Requiere instalar el SIMBL y luego los plugins que nos interesen de la lista de plugins disponibles.

Para Desarrollo:

SDK Xcode – para codear en Objective C aplicaciones Mac / iPhone / Ipad / Ipod Touch

MacPorts – administrador de varios packetes utiles, para instalar desde linea de comando, entre otros:

apache2
php5
mysql5
postgresql80

Charles – Proxy, para ver los request y responses que van y vienen.

Eclipse – Ide de programacion en Java, Php, Web, C, C++ y modelado.

Sequel Pro – cliente para Mysql

Seguramente hay muchas otras aplicaciones para Mac muy útiles y necesarias. Voy a tratar de ir manteniendo la lista actualizada. Si tenés sugerencias no dudes en escribirme o comentar en el Post, gracias!.