Estoy de acuerdo con Mark, crear una aplicación nativa es tu mejor opción.
Hay muchas opciones por ahí como
- Titanio,
- Sencha
- jquery Mobile
- (siéntase libre de agregar los que faltan aquí)
que todos tienen sus fortalezas y debilidades. jquery mobile realmente solo es adecuado para el reemplazo básico del sitio web, mientras que Sencha y Titanium le permiten crear aplicaciones reales, tienen la ventaja de que puede desarrollar en Coffeescript o Javascript si realmente le gustan las llaves. También le permiten ejecutar en diferentes plataformas, ¿por qué molestarse con las aplicaciones nativas?
- ¿Hay alguna manera de habilitar o deshabilitar rápidamente la configuración del proxy en un iPhone?
- ¿Cuál es la opinión de Apple sobre URIBeacon? ¿Lo ven como una competencia para iBeacon o complementario a iBeacon?
- ¿Cuál es mejor, Parse o Firebase?
- ¿Debo actualizar mi iPhone 6 a iOS 11 o no? ¿Cuáles son los motivos de ambos casos?
- ¿Cómo realizaría el código Haskell alguna acción de E / S (por ejemplo, getline o putStr) si el tipo de E / S no fuera una instancia de mónada?
En mi opinión, Apple ha logrado condicionar a los usuarios a que las aplicaciones son similares a episodios de TV o canciones, una pieza de entretenimiento que se compra sin pensarlo demasiado, siempre que un amigo lo recomiende o tenga una calificación alta. Para poder lograrlo, necesita crear una aplicación perfecta que sea lo más rápida posible y haga un buen uso de la funcionalidad integrada del dispositivo.
Tiene que estar diseñado para ese dispositivo y no debe distinguirse en la experiencia del usuario de otras aplicaciones, lo que para muchos escenarios significa nativo. Por supuesto, hay excepciones a esto, como cuando ya tiene una gran base de usuarios de su presencia en la web que simplemente convierte e itera con el tiempo, pero para aplicaciones realmente nuevas sin usuarios esto se mantiene.
Entonces, ¿qué puede esperar cuando elige nativo:
C objetivo
Es un lenguaje interesante. Por un lado, es una afrenta a 20 años de diseño de idiomas, por otro lado, funciona extremadamente bien en la configuración móvil. Tiene suficientes características para hacer felices a los desarrolladores experimentados (me vienen a la mente los bloques), por lo que no es tan malo. Si conoce a Ruby y ha hecho un trabajo de java / c # antes, se sentirá como en casa.
Objective-C / Gestión de memoria
iOS hasta la versión 4 tiene administración de memoria manual, lo cual es una molestia. Sin embargo, la decisión de no incluir un recolector de basura en tiempo de ejecución fue buena, especialmente teniendo en cuenta los modelos de iPhone más antiguos. No permitiría que la administración de la memoria sea parte de su proceso de toma de decisiones, ya que esta es un área que mejorará en el futuro.
Las API de iOS
Aquí es donde las aplicaciones nativas realmente brillan. La API de iOS es extremadamente fuerte y resuelve muchos problemas de forma inmediata. Apple está escuchando claramente a los desarrolladores e intenta incorporar las características que los desarrolladores necesitan en las próximas versiones.
Ninguno de los otros proveedores se acerca a la gran cantidad de posibilidades.
Xcode 4
Personalmente, detesto los IDEs (después de haber usado muchos de ellos durante 2 décadas) ya que su razón de ser es casi siempre la abstracción insuficiente del lenguaje de programación y las bibliotecas subyacentes. Sin embargo, es como es, y para un IDE Xcode 4 es bastante bueno y especialmente el generador de interfaces se ve realmente agradable. Dadas las complejidades involucradas al tratar con la compilación objetiva-c y sin tiempo de ejecución de lenguaje común, creo que los ingenieros de Apple merecen nuestro respeto. Le tomará uno o dos días comprenderlo realmente y descubrir cómo funciona todo junto, pero luego podrá ser productivo.
Rampa hasta el tiempo
Comenzar a usar iOS no es tan difícil y no lleva demasiado tiempo. Debería poder pasar del objetivo de aprendizaje c a tener su primera aplicación en el proceso de aprobación en 3 a 4 semanas, suponiendo que tenga una buena experiencia en programación.
El ciclo del producto
Esto, por supuesto, es la mayor debilidad de las aplicaciones nativas. Simplemente no tiene las buenas pruebas A / B y la implementación continua que nos encanta de la web. Eso es lo único que debes aceptar.
El backend
También pensaría en usar
- node.js
- mongodb
- coffeescript
- mangosta
- exprimir
como su back-end (si necesita uno), alojado en heroku, y tal vez http://app.net/ para alojar su página de aplicación. Para geolocalización, http://simplegeo.com es su primera opción, y las API de google y yahoo.