¿Para qué sistema operativo móvil debo codificar?

Me gustaría volver a escribir dos de nuestros programas para dispositivos móviles, pero estoy un poco perdido en cuanto a qué plataforma a la meta.

Para complicar esta decisión:

  • Tendría que aprender los idiomas y IDEs relevantes – mi codificación hasta la fecha ha sido casi todos basados ​​en web (PHP, JS, Actionscript, etc Algunos ASPX).
  • La mayoría de los usuarios parecen ser religiosos acerca de su decisión móvil, por lo que las conversaciones orales me dejan más confundido y luego iluminado.
  • Todavía no tengo un teléfono inteligente – tendrá que comprar uno una vez que sé qué plataforma para apuntar.
  • Ambos de mis programas son más para los usuarios de negocios, (uno sólo es útil para los CPA).
  • Soy un solo desarrollador, y no puedo desarrollar para más de una plataforma a la vez. Hacer lo correcto es importante.

Sobre la base de lo que he encontrado en la web, yo habría esperado RIM para ser un shoo-in, y el orden general para ser como sigue:

  1. RIM Blackberry – Más de ellos que cualquier otra marca. A pesar de los negativos, que han tenido el doble de las ventas (o tal vez 5X las ventas) de cualquier otro teléfono inteligente, y han seguido creciendo. Y, tienen usuarios de negocios.
  2. Android – De acuerdo con Schmidt, han vendido a todos menos a RIM (aunque no puedo encontrar donde lo leí ahora), y sólo están empezando. Según Comscore, ya están en el 8% del mercado y se espera que llegue a las reclamaciones de Shcmidt dentro de los seis meses.
  3. Nokia – El más grande del mundo. Si sólo se compensan entre Maemo o Symbian, estaría mucho menos confundido.
  4. IPhone: mucha más competencia por otras aplicaciones, menos ventas y un jefe que puede retrasar o cancelar mi aplicación en cualquier momento. ¿Es difícil aprender Cocoa?
  5. Windows Mobile – Word es que la versión 7 no será compatible con versiones anteriores y perderá cuota de mercado.
  6. Palm WebOS – Tal vez esto debería ir primero, ya que es el único que ofrece herramientas para hacer mi vida fácil como desarrollador de aplicaciones web. No hay competencia en el mercado. Pero no muchos usuarios tampoco.

Sin embargo, una búsqueda en StackOverflow muestra un número enormemente desproporcionado de preguntas de iPhone en comparación con Blackberry. Del mismo modo, hay claramente más aplicaciones en el iPhone, por lo que debe estar recibiendo el amor de desarrollador.

¿Cuál es la plataforma que debería desarrollar? Por favor, respaldar su respuesta con la lógica.

A continuación se muestra mi opinión personal basada en mi experiencia personal .

Estás olvidando algunos de los mayores problemas en el desarrollo móvil (lo mismo que hacen que mucha gente elija el iPhone al final). ¡Esto es particularmente importante si usted es un solo desarrollador!

1.Fragmentación

Para cada plataforma hay muchos dispositivos con diferentes resoluciones de pantalla, capacidades de hardware, capacidad de memoria, bugs, etc. A menos que esté desarrollando algo trivial (¿por qué no una aplicación web para móviles entonces?) Tendrá que adquirir y probar al menos la mayoría Populares. Esto también agrega costos de soporte a su aplicación. Tendrá que probarlo y actualizarlo para cada nuevo dispositivo.

2.Distribución

Todo el mundo está construyendo una App Store en estos días, pero iTunes sigue siendo la forma mejor y más confiable de pagar por contenido digital. Android es probablemente el segundo corredor, pero no es tan popular entre los usuarios empresariales. Yo tendría cuidado con Nokia si te preocupas por el mercado americano y con Palm si te importa el internacional.

Windows 7 Mobile parece una buena plataforma, pero será de 6 a 12 meses antes de que incluso se debe discutir. Ni siquiera considere la iteración de Windows Mobile actual.

3.Tools, Language, SDK, hardware

Blackberry, Android y Nokia están basados ​​en Java y utilizan Eclipse como IDE. En teoría deberían funcionar en cualquier sistema operativo, pero Android tiene algunos problemas en Windows, mientras que Blackberry requiere Windows. Para todos los 3 necesitará hardware realmente decente para ejecutar los emuladores y el IDE sin pensar en suicidio. La depuración en el dispositivo es de inexistente a no muy agradable.

IPhone – ObjetiveC / C / C ++. Necesitará una Mac ejecutando OSX. Incluso un mini hará. Para distribuir debes estar en el programa Developer – 99 $. Todo lo demás es gratis. XCode es un buen IDE y el emulador y la depuración en el dispositivo son los mejores del mercado. Hay muchos marcos para crear aplicaciones que utilizan diferentes tecnologías, como web o flash. No puedo comentar.

Palm – el más cercano a lo que ya sabes, basado en tecnologías web para el desarrollo de alto nivel. Para cualquier cosa más avanzada basada en C ++ SDK (no tengo experiencia con eso todavía).

Windows Mobile – C # / Windows / Visual Studio. Puede que tenga que pagar por algunas de las herramientas de dev.

Punto 4.Bonus

IPod Touch y iPad no tienen contrapartes. ¿Ha seguido el frenesí de pre-orden en los últimos 2 días? Sí, conozco los tablets Android, verifique el punto 1 anterior.

Espero que esto ayude, pero tal vez solo te confundí más. Al final, debe estar más preocupado por la calidad de su software y el valor que proporciona. Si es bueno encontrará su mercado.

Ambos de mis programas son más para los usuarios de negocios, (uno sólo es útil para los CPA).

Si tiene usuarios, pregúnteles qué teléfonos utilizan .

La mayoría de los usuarios parecen ser religiosos acerca de su decisión móvil, por lo que las conversaciones orales me dejan más confundido y luego iluminado.

Entonces no mida por la calidad de la conversación. Medida por recuento bruto, o recuento bruto ponderado por upsell probable (es decir, los usuarios de largo plazo de sus aplicaciones que han estado pagando por actualizaciones y mantenimiento tienen un historial más probado de darle dinero que alguien que compró su aplicación ayer).

Luego, una vez que sepa cuáles son las plataformas de teléfonos inteligentes más fuertes entre sus usuarios , puede decidir cómo abordar mejor uno o varios de ellos.

Tendría que aprender los idiomas y IDEs relevantes – mi codificación hasta la fecha ha sido casi todos basados ​​en web (PHP, JS, Actionscript, etc Algunos ASPX).

Entonces tal vez se adhieren a eso. Las únicas razones por las que realmente necesita una aplicación nativa son porque desea ejecutar desconectado (y con HTML5, que incluso estará cubierto) o si desea hacer cosas que no pueden lograrse a través de un navegador web móvil (por ejemplo, integrarse con otros En dispositivos en Android).

Palm WebOS – Tal vez esto debería ir primero, ya que es el único que ofrece herramientas para hacer mi vida fácil como desarrollador de aplicaciones web.

Disparates. Bueno, OK, que el IDE que vi algunas capturas de pantalla de era bastante astuto, si se envía (perdí la pista). Pero no es como WebOS es el único Web OS.

Hay formas de desarrollar aplicaciones locales para teléfonos que no utilizan WebOS que usan HTML / CSS / Javascript. PhoneGap está más cerca de las aplicaciones Web tradicionales AFAICT; Appcelerator Titanium Mobile es un poco extraño, pero también utiliza esas tecnologías. Ambos le permiten dirigirse a Android y iPhone con un conjunto de código fuente; PhoneGap también le permite enviar a Blackberry y, finalmente, a Symbian.

Ahora, especialmente para PhoneGap, estos tendrán la sensación de los sitios web móviles más de lo que serán aplicaciones nativas. Eso puede o no ser un gran problema para sus usuarios. Si nada más, le permitiría obtener los pies mojados en el móvil y juzgar el interés relativo, a continuación, determinar si es necesario para subir la curva de aprendizaje en Java o Objective-C.

BTW, Maemo está siendo reemplazado por Meego, para promover su confusión de Nokia. Todos los derechos reservados

Yo recomendaría probar Android, porque:
Es mas simple
– menos restricciones como la firma de api de Blackberry o BlackBerry Alliance
– hay más preguntas de samples / articles / OS
– Android Market vs BB aplicación mundial
– será fácil encender BlackBerry o J2ME puro en el futuro (sólo en caso de que desee portar su aplicación a otras plataformas, Android utiliza java extendida, BlackBerry utiliza java microedición, ambos utilizan Eclipse + plugin como IDE)
– los dispositivos son menos costosos en general mal por sí mismos y como argumento

Con Nokia (Symbian y MeeGo) se puede desarrollar en Qt. Debe poder implementar la misma aplicación en ambos sistemas sin problemas. Con su fondo como un dev web puede utilizar QtScript \ JavaScript, etc. para obtener los resultados deseados.

Si usted está pensando en iniciar su propia tienda de desarrollo, a continuación , consulte mi consejo en este post para ignorar la tecnología y en su lugar mirar el modelo de negocio de cada plataforma . Pregúntese si cada plataforma realmente ofrece una manera para que el desarrollador pequeño gane dinero.

Cada plataforma tiene compensaciones en el modelo de negocio. Por ejemplo, la restrictiva tienda de aplicaciones para iPhone significa que Apple puede rechazar su aplicación y significa que Apple puede responsabilizarnos de cualquier manipulación intencional o accidental de transacciones a través de su aplicación. Por otro lado, debido a la supervisión de Apple y el historial probado, el usuario final es más probable que compre una aplicación desconocida de un pequeño desarrollador sólo para ver si podría funcionar para ellos. Es poco probable que lo harían sin algún tipo de descuido.

Sólo se necesitará una infracción de seguridad importante para dañar gravemente la marca de un móvil. Si el modelo más abierto de Andriod no puede asegurar su plataforma, así como el iPhone, toda la marca podría resultar dañada por una sola aplicación malintencionada. Si los usuarios finales se queman una o dos veces por otros desarrolladores, es menos probable que tengan una oportunidad en su aplicación.

Si va a hacer una programación de vida, no puede realmente especializarse en un único lenguaje / API. Usted debe aprender buenas prácticas generales de programación, así como constantemente educarse en nuevas herramientas. Usted debe estar dispuesto a aprender cualquier idioma y cualquier ambiente. Por supuesto, la gente se especializa pero desde la perspectiva de tener una carrera de 30-40 años, usted tiene que permanecer flexible. Heck, cuando estaba en la universidad, Cobal (escupir) era lo grande y todo el mundo se preguntaba si esta nueva "C" iba a despegar a pesar de que parecía un poco dudoso. Ahora mumble-mumble años más tarde, parece que estoy aprendiendo un nuevo idioma / API cada semana.

Sin embargo, al comenzar con su conjunto de habilidades particulares y tener que arrancar todo lo que podría ser mejor utilizar una API basada en HTML como PhoneGap . Eso le permitirá (1) aprovechar su conjunto de habilidades existentes y (2) darle cierta flexibilidad al elegir plataformas.

Una vez que hayas ganado algo de dinero y consigas algo de experiencia, puedes entrenarte en el API específico de una o más de las plataformas principales.

Sólo recuerde que no hay una respuesta correcta para cada desarrollador. Usted trae su propia historia a la ecuación. Algo que funcione para usted no funcionará para otra persona. El costo de oportunidad de aprender Objective-C o Java puede ser más bajo o más alto para usted que alguien más. Del mismo modo, para una operación de arranque, si pudiera poner una aplicación para una plataforma pequeña en 30 días con su conjunto de habilidades existentes, sería mejor que tomar un año para poner una aplicación para la plataforma con mayor cuota de mercado.

Sea lo que sea que elija, es más importante comenzar a ejecutar lo antes posible que planificar todo antes de comenzar. En mi experiencia, el dithering de la planificación excesiva le duele más en el largo plazo que eligiendo un camino suboptimal. En la vida real en realidad no tienes que hacerlo bien desde el principio. Lo que tienes que hacer es ser flexible y lo suficientemente determinado como para recuperarte de los muchos, muchos, muchos errores que inevitablemente harás.

Ir con lo que tienes, jugar a sus fortalezas existentes, obtener el producto enviado y aprender a medida que vaya. No pienses demasiado …

… acaba de ejecutar.

¿Qué API necesita? ¿Cuál es su modelo de negocio?

9/10 Simplemente escribiría una aplicación web. Es plataforma cruzada.

Si tienes un fondo webdev, Nokia podría ser bastante fácil – Puedes crear widgets (* .wgz) que se ejecutan usando el navegador, pero tienen acceso a apis telefónico.

Tenga en cuenta que por el momento solo tiene tres opciones válidas: Iphone, Android y BlackBerry. Si usted no está apuntando los mercados de los EEUU entonces el Blackberry es una opción non-also.

(Nokia tiene demasiadas plataformas y los dispositivos están con malos UX, Plam está muriendo, Window Mobile eventualmente se pondrá al día, pero no pronto)

Si usted tiene una aplicación de negocios que sus usuarios son más probable que utilizan BlackBerry o Iphone (Android sigue en aumento).

Desarrollar para cualquiera es una cuestión de cuota de mercado y usted debe realmente comprobar con sus usuarios lo que están utilizando.

Tenga en cuenta que si usted es un desarrollador web que debe considerar la adopción de con alguien que sabe cómo desarrollar a esas plataformas (no es trivial) o incluso considerar la posibilidad de escribir un HTML5 web-app que funcionaría en Android e IPhone.

Otra cosa a tener en cuenta es no mirar la penetración del mercado por un teléfono inteligente en particular. Lo que realmente le importa a qué smartphone puedo vender más. Por ejemplo, Symbian s60 tiene la cuota de mercado más grande en un LONG shot, pero los usuarios gastan menos TON en aplicaciones. Otro ejemplo es BlackBerry. Su cuota de mercado está por delante del iPhone, sin embargo, la aplicación de terceros se vende es mucho menos que en el iPhone. Dicho esto, si está creando una copia de 10 aplicaciones en el iPhone que serían únicas en una BlackBerry, es posible que esté mejor en BlackBerry, ya que no tendrá que compartir los ingresos con otras 10 aplicaciones. Usted realmente necesita mirar cada tienda de aplicaciones, ver lo que la competencia es, y el factor de cuánto los usuarios realmente pasan en las tiendas de aplicaciones.

Dependiendo de la naturaleza de sus aplicaciones, podría considerar que prácticamente todas estas plataformas utilizan Webkit. Esto significa que con una sola aplicación web bien diseñada, puede orientarse a todas estas plataformas, así como a los usuarios de escritorio. Si desea vender su aplicación en las tiendas de aplicaciones correspondientes, hay Phonegap y Rhomobile.

  • ¿Cómo detectar una presión de contacto largo con javascript para Android y iPhone?
  • Restringir las llamadas a API. Permitir sólo mi aplicación para móviles
  • ¿Cómo iniciar / enviar SMS desde una página web HTML5 usando funciones nativas de dispositivos?
  • Determinar y vincular eventos de clic o "toque"
  • ¿Cómo puedo crear una función similar a JQuery Slider en la aplicación web de iPhone / Android?
  • Permitir sólo iphone / ipad / ipod / android para acceder a los archivos en directoy, todos los demás redirigir a google.com
  • UIImageView para mostrar el progreso de carga de la aplicación
  • Fuerza la orientación del retrato en el iPhone con phonegap
  • Desplazamiento suave / Desplazamiento inercial / Desplazamiento dinámico
  • Resolución de pantalla para Android y iPhone diseño en Photoshop
  • ¿Cómo autenticar una aplicación móvil sin nombre de usuario y contraseña?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.