FAQ: Crear una aplicacion iPhone

¿Querés hacer tu app de iPhone y no sos programador? Tenés una idea pero no sabés como hacer para desarrollarla? En este artículo vamos a repasar las preguntas frecuentes que tienen los usuarios que quieren crear una aplicación para iPhone, iPad o en general cualquier dispositivo móvil, sea Android o WindowsPhone. Está basado en preguntas reales que recibimos.

diseñando tu aplicacion móvil

¿Cuál es el precio de una aplicación iPhone?

Casi siempre valorar una aplicación resulta difícil. Para no caer en parámetros subjetivos, se intenta seguir una métrica de horas de trabajo y en un precio por hora. El valor total serán la cantidad de horas trabajadas por ese valor. Dependiendo de la complejidad del proyecto, la cantidad de personas involucradas y el alcance del proyecto se calcula un precio final. El costo por hora puede rondar los 40 – 70USD. En el caso de un precio por hora de 40USD y un desarrollo de 2 meses tendría un precio final de 12.800 dólares. La revista Emprendedores.es habla de 10mil Euros para una app de 2 meses y de 100mil para apps de más de 6 meses (ver artículo aquí) Si querés pedir un presupuesto para tu proyecto, visita el formulario en mi web www.na8.com.ar/presupuesto

.

¿En que varían los precios?

Los precios pueden variar en muchas cosas; por ejemplo en si la app se realiza para iPhone solamente o también una versión para iPad, en si incluye un Administrador de Contenidos (CMS), si se lanzará en conjunto una Web, si tiene interacción con redes sociales, Base de Datos local y/o en servidor, si incluye o no el diseño gráfico… y varias opciones más que dependerán de la app a desarrollar.

¿Cuánto tiempo se tarda en hacer una app?

Preguntas Frecuentas sobre desarrollo para iPhone

También dependerá de la aplicación que se quiera realizar. Desarrollar un  juego pueden tomar desde 6 meses a 2 años. Una aplicación “normal” de pantallas navegables y sin mucha complejidad se puede realizar en un par de meses. En promedio las apliaciones normales llevan unos 3 meses de desarrollo y un mes adicional en el que se cierran detalles se realizan tests y correcciones para que se publican en los Markets.

.

¿Qué es un Administrador de Contenidos (CMS) y para qué lo necesito?

Crea tu propia appUn Administrador de Contenidos, “Sistema de Gestión de Contenidos” (CMS por sus siglas en inglés Content Management System) es un panel privado para que un administrador de una web pueda crear, editar o borrar contenidos. El ejemplo más conocido es un blog; en un blog los autores acceden con su usuario y clave a un panel especial en el que pueden crear artículos, subir fotos y videos y configurar la apariencia del blog. ¿Y el CMS qué tiene que ver con una aplicación de iPhone? La mayoría de las aplicaciones de iPhone interactúan con un server para proveer de contenidos a sus usuarios. Lo ideal es que en conjunto con el desarrollo de la aplicación móvil se desarrolle un CMS específico para la aplicación. Si por ejemplo tu aplicación le provee direcciones de restaurantes cercanos a tus usuarios, vas a necesitar un CMS que te permita cargar los restaurantes que querés que aparezcan, con su nombre, dirección, fotos, etc. Toda esa información la irás guardando en una base de datos en el servidor. Para que te quede claro: es como si cada restaurante que cargaras fuera un “post de tu blog”. Crear un CMS específico para tu aplicación es todo un desarrollo que puede resultar costoso, pero que te da la flexibilidad de actualizar los contenidos de tu app de forma independiente a tener que actualizar toda la aplicación si fuera estática (sin CMS).

¿Voy a necesitar contratar un servidor (hosting) y un .com ?

Lo más probable es que en conjunto con tu app lances una página web para promocionarla, para comentar quién sos, agregar una sección de ayuda al usuario, permitir a los usuarios contactarte y brindar soporte técnico. Para tener tu web necesitás contratar un servicio de hosting que cuestan aproximadamente 100USD al año (el típico “servidor compartido Linux”) y registrar un dominio .com cuesta unos 20USD. Si no tenés pensado crear una web de promoción, tendrás que ver si tu app necesita o no un CMS ya que si lo necesita vas a tener que contratar el hosting, aunque podrías ahorrarte registrar el dominio “.com”.

¿Para qué necesito una base de datos en mi app? Porqué hay una base de datos local y otra en el server? ¿Y qué es la memoria caché?

Bases de Datos para tu DispositivoSi tu aplicación móvil consulta datos en el servidor (probablemente de tu CMS), como textos o fotos, vas a estar haciendo que el usuario conecte a internet ya sea por wifi o 3G. Si para ver una foto descarga 1 Mega, eso tiene un tiempo de espera, no queremos que si la vuelve a marcar se haga la descarga de ese Mega y tenga que esperar y “consumir internet”. Entonces se crea lo que se llama “memoria caché” que -en este caso- guarda la foto de 1Mb en el dispositivo y si el usuario la vuelve a seleccionar la cargará desde esta memoria en vez de solicitarla al servidor. Así ahorramos “tiempo y dinero” del usuario y mejoramos su experiencia. Cuando contamos con un sistema un poco más complejo de interacción del usuario y el server, como por ejemplo tener relacionadas fotos con textos, audio, o información cargada por el usuario,  preferencias e información personal; para poder tenerla correctamente organizada y consultarla de forma veloz conviene crear una “base de datos local” (en el smartphone). Otra ventaja de la combinación de utilizar una caché y una base de datos local es que permitimos la “navegación offline” de la aplicación, para cuando el usuario este en zonas sin conectividad. Es decir que por más que no tenga conexión a internet -ej: en un avión- podrá seguir viendo la información (fotos, texto, etc) que descargó previamente.
La base de datos remota  (o del server) recolectará información de tu CMS y que también puede llegar a tener información cargada por tus usuarios, a modo de copia de respaldo, para consultas o estadísticas.

Entonces: ¿puedo agregar contenidos después? o Cada vez que quiera un cambio tengo que volver a programar la aplicación y gastar dinero? ¿Siempre voy a necesitar un programador?

Si contás con un CMS, es probable que tu app se mantenga igual y sólo tengas que hacer modificaciones de los contenidos, lo cual no tendría costos adicionales. Vos mismo te ocuparías de ir actualizando la aplicación.
Si en cambio querés agregar nuevas pantallas o funcionalidades a tu app, necesitarás que un programador modifique el código y volver a enviar la app a una revisión para subirla al market como una actualización. Por lo tanto tendrás que solicitar un presupuesto para valuar el precio de esos cambios.

¿Cómo sé que no me van a robar la idea?

Es muy común que nos hagan esta pregunta; muchas personas creen tener “LA idea” y tienen miedo a que les roben su GRAN idea. Yo mismo pasé por esa etapa 😛 . Pero la verdad es que muy pocos tienen una idea tan genial y revolucionaria que podría cambiar el mundo; no quiero desanimarlos, pero es que esto no lo digo yo; lo dicen los grandes inversores, especialistas y emprendedores. Casi todos están de acuerdo en que las ideas no valen nada (así como lo lees!). Lo que realmente vale es la ejecución del proyecto; el equipo y el desarrollo de ese emprendimiento. Además todos concuerdan que actualmente no se “inventa” nada nuevo, sino que por lo general se copia algo existente y se lo mejora, o se combinan funcionalidades en un mismo producto o se simplifica algo complejo para que sea accesible a un nuevo público. Pensá en Google; cuando apareció en 1997 ya existían muchos buscadores: Yahoo, Altavista, Terra y sin embargo revolucionó el sector por su diseño minimalista y una manera diferente de indexar y rankear Dejo un link que tal vez puedan ser útil para registrar marcas/ideas: http://www.lecantolas40.com.ar/como-registrar-marcas-e-ideas-emprendedoras/

¿Qué implica diseñar una app iPhone/Móvil? iPad/Tablet o una Web ?sitios web.

Partes de una aplicacion iPhoneRecordá todas las posibilidades que te brindan los dispositivos móviles: Hoy los smartphones tienen procesadores y memoria ram como una PC de escritorio. Además para interactuar con el entorno tienen acelerómetro, GPS, cámara de fotos, sensores, micrófono y altavoces, el propio “teléfono” y SMS. Y obviamente acceso a internet y con ello a contactos, calendario, correo electrónico y redes sociales y conectividad por Bluetooth. Todo eso con una pantalla táctil pequeña. Las tablets no cuentan con el teléfono, pero tienen pantalla más grande y mayor poder de procesamiento y memoria.
Al diseñar una aplicación para móviles, debemos tener en cuenta el tamaño de la pantalla para el diseño y usabilidad que tendrá para el usuario. Por ejemplo Apple recomienda botones con un tamaño MíNIMO de 40×40 pixeles para que el dedo de una mano humana pueda tocarlo.
Si al mismo tiempo vas a lanzar una app para móvil, tablet y web, es conveniente mantener un mismo estilo para que la aplicación sea consistente y fácilmente reconocible para el usuario.

¿Conviene integrar mi app en Redes Sociales?

El poder de comunicación de las redes sociales hoy en día es innegable. Son importantísimas y tienen el poder de hacer que las redes de contactos puedan viralizar contenidos en cuestión de horas. Siempre que puedas y que no sea de manera intrusiva es conveniente tener opciones de interacción con redes sociales desde tu app. Le dará un valor añadido a tu producto y le simplifica la vida al usuario, además te sirve como publicidad gratuita para que otros se animen a descargar tu app.

¿Si mi app no va a ser gratis, como me pagan? ¿cómo vendo mi app?

Una vez realizado el desarrollo de tu app, viene la fase de publicación en los markets. Si es de Apple en el App Store y si es para Android en el Play Store. Cuando publicas decides un precio, puede ser gratuita o de pago. El precio por lo general es de 1 dólar. Ten en cuenta que tanto Apple como Google se quedan con el 30% de tus ganancias. Es decir que si tienes 100 decargas a 1 USD en realidad vas a cobrar 70 USD.

¿Cómo hacen download (descargas) de mi app los usuarios?

Una vez publicada tu aplicación en el Market correspondiente los usuarios la pueden descargar desde allí. Los usuarios no descargan la app desde tu web ni desde un servidor de hosting ni de tu computadora. La única forma para que descarguen (y paguen) es a través de los mercador oficiales tanto de Apple como de Google.

.

.

¿Puedo vender mi app sin pasar por Apple / Google?

No. Para vender tu aplicación (al menos legalmente!) es necesario publicar en los mercados oficiales de Apple y Google. Si no tendrías que cambiar tu modelo de negocio y ofrecer otras alternativas.

¿Porqué Apple tiene que aceptar mi aplicación? ¿Por que motivos no la aceptaría? ¿El mercado de Android es igual? ¿cuánto tardan en revisarla?

Apple tiene una política de control y revisión de las aplicaciones antes de publicarlas. Entre otras cosas revisa que la aplicación no contenga desnudez, que no sea ofensiva ni discriminatoria, que no viole derechos de copyright y tecnicamente que no exceda las limitaciones de memoria del dispositivo, que no contenga bugs y que no robe información privada del teléfono. El proceso demora 1 semana.
Google no controla las apps previamente, y contiene algunas políticas diferentes y a veces aparecen apps que son potencialmente peligrosas o que se comportan como virus o spamm. El mismo público se encarga de denunciar a esas aplicaciones y luego Google actua y las da de baja.

¿Ustedes hacen aplicaciones? ¿En donde están? ¿Como puedo contactarlos?

Crea tu propia aplicacion a partir de una idea

Actualmente estamos desarrollando aplicaciones para móviles iPhone / Android y Tablets / iPad. Además creamos sitios web  (HTML5 + CSS3) y aplicaciones web (como ser adaptaciones de apps de smartPhones) para soporte de teléfonos Nokia, BlackBerry o WindowsPhone. Realizamos CMS a medida, webs de lanzamiento e integracion en redes sociales. Nuestra modalidad de trabajo es freelance.
Contamos con presencia en Argentina y España e hicimos desarrollos para diversos lugares del mundo (México, USA, Argentina, España, Uruguay).
Cualquier consulta o solicitud de presupuesto ponte en contacto con nosotros, o dejanos un comentario en este Post. Te invito a que me sigas en twitter @jbagnato y que visites mi web personal www.na8.com.ar

Espero tus comentarios para desarrollar para iOs / Android

Resumiendo…

Espero que estas preguntas frecuentes (FAQ) y sus respuestas para el desarrollo de aplicaciones iPhone/móviles les sirvan para aclarar algunas de sus dudas y puedan avanzar y seguir creando nuevas apps. Mi intención es seguir agregando temas, preguntas que hagan (y sus respuestas) y consultas con el tiempo para ir mejorando este post.

Por supuesto los invito a que me hagan comentarios, consultas o solicitudes de presupuestos!

.

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!.
.
.!.

Mussage para iPhone, Mensajes Musicales

Qué es Mussage?

Les dejo un video que explica qué es y su funcionamiento

link a YouTube

La idea

Una idea simple con elementos que ya existen pero combinandos de una nueva forma; voy a explicarme a través de unos conceptos clave:

  • La mayoría de las personas utiliza los mensajes de texto
  • Se envian mensajes entre amigos, familiares y pareja.
  • A todos les gusta escuchar música.
  • Todos guardan enormes cantidades de canciones en el iPod, entre 1.000 y 7.000 según la capacidad del dispositivo.

A partir de esto pensé: ¿No sería bueno poder enviar una canción con un texto a un amigo? y la realidad es que no hay ninguna aplicación que te deje hacer esto de forma sencilla. Otro obstáculo son los derechos de copyright de los artistas…

EUREKA!

¿Por qué no enviarle un mensaje de texto a un amigo con una canción que tiene en SU PROPIO smartphone?
Me pasa con frecuencia que como tengo tantas canciones en mi iPhone nunca sé realmente qué discos y artistas tengo guardados y de vez en cuando utilizo el modo Random para escuchar música y me sorprendo diciendome “no sabía que tenía esta canción”.
Además otro punto positivo de la idea es que se supone que las canciones que uno tiene son sus favoritas, las que más te gustan. Entonces si envío una canción a un usuario de su propia biblioteca de canciones, es difícil que no le guste!.
Lo mejor de todo: es simple de programarla en iPhone, no requiere un equipo monstruoso ni meses de trabajo, al menos para desarrollar la idea básica. Obviamente después se puede mejorar y agregarle features, pero el concepto de la idea es realizable por un sólo developer.

Nacimiento

Asi nació Mussage -mezcla de las palabras en inglés Music + Message- una aplicación desarrollada en una semana, como les comentaba en un post anterior. Fue una semana dura, de horas y horas de programación, diseño y aprendizaje!. Envío para la revisión de Apple y ya está aprobada!!

Disponible en iTunes AppStore

La aplicación ya está lista para bajar a tu iPhone, iPod Touch o iPad en el app store de Apple, para bajarlo ahora mismo hace click en la imagen:
Ya se encuentra la versión 1.1 con significantes mejoras hechas a la versión anterior.
Además los invito a visitar la Web de Mussage enhttp://www.na8.com.ar/mussage que tiene información adicional de la aplicación.

Futuro

Quiero agradecer a mi Wapis que me ayudó en los dibujitos del video-tutorial e hizo la grabación del relato del video super bien! Además el logo también es de ella!. Muchas Gracias!!!
El futuro de la aplicación se irá viendo, seguramente se pueden hacer muchas mejoras! Espero sus comentarios y sugerencias!!
Es posible que desarrolle una versión para Android y una específica para el tamaño de pantalla del iPad.
.
.
.
Juan Ignacio Bagnato.
.
.

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.
.
.

Vivir en la Web con Chrome OS

El Chrome Os es un sistema operativo (SO) creado por Google que tiene como principal característica que está basado en la red. Esto quiere decir que el único software que necesitamos es un navegador web.

El fabricante toma como premisa que todas las actividades que realizamos cotidianamente están en internet, por lo tanto nuestra computadora se transforma en una “terminal boba” en donde sólo tipeamos direcciones de sitios web y ejecutamos nuestras tareas.

Por el momento existe un “programa Piloto” (para residentes de USA) para testear el SO en donde Google entrega una Notebook Cr-48 (feo nombre!) que tarda en arrancar unos breves 10 segundos. Entonces lo que vemos en pantalla es un minimalista Navegador web: el Chrome.

Cómo es Chrome OS?

Al iniciar nuestra sesión del ordenador con el usuario de Gmail, tenemos acceso a nuestro correo, contactos, calendario y chat. El navegador sincroniza y guarda nuestro estado por si la notebook fallara, explotara, la robaran o simplemente nos loguearamos en otra máquina con Chrome OS y mantendría completamente el estado en el que se encontraba: las pestañas abiertas en el mismo orden, los documentos “auto-guardados” con las últimas palabras tecleadas y el chat con alguien preguntando “estás ahi?”.

Para editar documentos en línea tenemos el Google Docs, en donde podemos escribir textos, completar planillas de calculo, hacer “presentaciones Powerpoint”. Además a través del Chrome Market tenemos acceso a cientos de aplicaciones gratuitas y pagas que nos ofrecen soluciones a todas las necesidades que tengamos: productividad, estilo de vida, comunicación y lo más importante; juegos.

Algunos puntos a favor

Toodo toodo se actualiza solito, es decir el sistema operativo -que básicamente consiste en ser un webbrowser- se actualiza periódicamente desde internet para mantenernos seguros y con los últimas innovaciones de la red al día.
El sistema es super liviano y ejecuta velozmente; pensemos que técnicamente todo el procesador y memoria de la computadora está dedicado exclusivamente a que naveguemos “cómodos” por internet. Y eso es mucho poder de procesamiento y velocidad en el 2011.

Algunos puntos en contra

Tener todos nuestros archivos, fotos, videos e identidad subida a la red resulta un poco aterrador en caso de que alguien lograra descifrar nuestra clave personal de acceso.

Entonces…

Todo esto no podría haber existido unos años atrás; se necesitó de computadoras rápidas y con mucha memoria, de internet,  una sociedad que se vuelca cada vez más a la red a compartir conocimientos, la evolución del HTML5, la web 2.0, la aparición del Cloud Computing, la telefonía móvil, el abaratamiento de costos y todo eso para meter nuestras vidas -comprimidas- en diversos servidores del mundo.

El Chrome OS es un buen nuevo enfoque para un sistema operativo, para hacer temblar a la saga Windows de Microsoft que estuvo dominando el mercado hogareño durante más de 20 años y para -al menos- preocupar al repunte del OS X de Apple. Tiene buenas ventajas sobretodo por su velocidad y simplicidad de uso y por la genial integración al poderoso y multipropósito “mundo de Google”.