¿Debo elegir Swift o Ionic para desarrollar una aplicación para iOS?

Puede sorprenderlo, pero la respuesta es: NI. Para su inicio aún considere ir con Objective. Aquí es por qué:

la mayoría de la gente tiene un buen punto aquí. Pero es el punto de vista de un hacker, no el punto de vista de un emprendedor, creo. (use nueva tecnología moderna o use algo solo para desarrollar 1 plataforma)

Al mismo tiempo, déjame desglosarlo para que tomes tu propia decisión:

1.IONIC: podría ser bueno para una creación de prototipos súper rápida para múltiples plataformas, si su aplicación se beneficia de múltiples plataformas a la vez y los clientes tolerarán resultados no nativos. Úselo si hace todo lo que desea de la caja de la forma en que lo hace iónico: estilo como está, componentes proporcionados por iónico, ok con limitaciones de iónico.

Pros:

  • prototipo rápido y fácil si sabes js.
  • 2 plataformas a la vez
  • muchos componentes listos o casi listos para la producción
  • puede hacer que audo despliegue la función de su código js para que no tenga que esperar al lanzamiento de Apple una semana o más después de cada nueva compilación
  • Bien documentado si lo usa fuera de la caja sin mucha personalización

Contras:

  • Tiempo para dedicar a personalizar algo de la manera que desee
  • No hay una sensación 100% nativa del proyecto a pesar de que algunos componentes parecen nativos
  • Todavía tengo que ajustar para iOS y Android por separado
  • Dedique algo de tiempo a automatizar su proceso de construcción para ambos.
  • No hay ventaja de Xcode o Android Studio para revelarmenet
  • El rendimiento de su aplicación nunca es el mismo que el nativo (no importa lo que hayamos intentado, a menos que pasemos mucho más tiempo ajustando js \ csss de lo que llevaría hacerlo en nativo; la representación de imágenes de página sigue siendo web)
  • la capacidad de respuesta en diferentes resoluciones y retratos versus tabletas se puede hacer rápidamente, pero es muy feo. Cualquier cosa más allá: muchísima personalización de CSS.

Nota: Mira nuestra aplicación llamada “REVIYOU” en app \ google stores, aquí hay un enlace – Reviyou – está hecho con iónico y ahora nos estamos alejando de él a nativo. Apreciaremos también los comentarios en las tiendas 🙂

2.Swift: Úselo para su propio proyecto divertido, especialmente si ya conoce el objetivo C o si está seguro de que tendrá CERO problemas con el uso de Swift 1.2 que está en modo beta en este momento.
Pros:

  • Super fácil de comparar con el objetivo
  • Parece un lenguaje futuro de iOS, por lo que es una buena inversión a largo plazo
  • nativo y bien establecido ya
  • Muy buen soporte de XCODE para un desarrollo más rápido \ bebugging, etc.

Contras:

  • Swift 1.2 todavía está en beta
  • La comunidad sigue siendo mucho más pequeña que para Objetivo
  • Si tiene un problema, es posible que todavía no encuentre una solución lo suficientemente rápido en el desbordamiento de la pila
  • Para el iwatch, los complementos y algunas cosas locas, es posible que aún necesites objetivos, por lo que si no lo sabes, terminarás aprendiendo 2 idiomas
  • Nativo significa esperar una o dos semanas para obtener la aprobación de Apple cada vez

y nuestra elección en este momento: OBJETIVO C. Nunca lo hemos usado antes, así que no estamos locos por eso o algo así.
3.Objetivo: idioma nativo establecido con todo el soporte y la documentación que necesita para un desarrollo rápido del código listo para producción nativa. Pasar a Swift dentro de un año será fácil después de eso cuando Swift sea más maduro.
Pros:

  • Súper maduro en términos de documentación, materiales de aprendizaje, libros, estudio de desarrollo, todos los posibles problemas y errores. Significa cero retrasos.
  • Native con todos los beneficios, rendimiento, UX y complementos súper establecidos de Native (piense en los componentes IONIC)

Contras:

  • No “moderno”, y más difícil que rápido como lenguaje básico de elección
  • mismo problema con la aprobación de Apple Swift tiene

Resumen: hicimos una prueba de concepto inicial para los clientes y nos llevó bastante tiempo hacer UX correctamente para que no se vea muy descuidado con iónico. Queríamos cubrir ambas plataformas desde el principio. Tal vez si comenzáramos con Native podríamos haber ahorrado algo de tiempo, depende de cuántas personas tenga, qué proyecto realice y qué tan bien diseñado debería ser. No nos estamos mudando a nativos y para ahorrar tiempo estamos tratando de hacerlo con un objetivo que no conocemos, no con rapidez. El objetivo de aprendizaje rápido para un desarrollador decente no es un problema: ahorrar tiempo para que su inicio evite problemas extraños y problemas que nadie tuvo antes, es una razón principal para ir con Objective.

Fin: Espero que alguien encuentre útil este desglose y tome la decisión correcta para su proyecto. Al final, piense en los usuarios. Qué tan rápido puede entregar algo para ellos, si les gustaría y cuánto rendimiento \ UX es importante para ellos desde el principio. Todo es factible, pero lo que importa para una startup es tomar las decisiones de prioridad correctas y progresar lo más rápido posible con las opciones disponibles.

Actualización a abril de 2016:

Obviamente, a medida que pasa el tiempo, cada vez tiene menos sentido comenzar con Objective, aunque Swift todavía está cambiando. Pero la comunidad creció sustancialmente en los últimos 2 años.

Ahora estoy usando Swift 2.2 para mis proyectos paralelos y estoy contento con él mientras todavía necesito hacer encabezados de puente a las bibliotecas de Objective y confiar en ellos en gran medida y cuando busco en Google algunas respuestas, a menudo necesito usar soluciones sugeridas en Objective \ Swift 1.2 e intento convertirlos a Swift 2.2 por mí mismo.

Pero una vez más, Objective se siente muy viejo y es más divertido usar Swift.

La respuesta siempre será rápida para esta pregunta. Es un lenguaje moderno adecuado con todas las ventajas y desventajas. Todas las documentaciones que ya están convertidas ya se están actualizando con las versiones más nuevas de Swift. En cuanto a la aplicación nativa vs híbrida, la aplicación nativa siempre será la ganadora. Puede ahorrar algo de tiempo usando Ionic, pero siempre estará limitado en términos de funcionalidad u optimización.

PD Brindamos increíbles servicios de desarrollo de aplicaciones móviles.

Déjame decirte cómo tomé mi decisión de aprender Swift sobre hacer Ionic, y puedes tomar la tuya. Permítanme también evitar eso diciendo que realmente me gusta y respeto lo que está haciendo el equipo de Ionic.

Vengo del mundo de la programación web, y después de unos años de hacerlo, puedo decirte que no me importa. No soy bueno en eso, y de ninguna manera lo sé todo, pero tengo la confianza suficiente para poder encontrar las respuestas que busco y hacer que las cosas sucedan, al menos dentro del alcance de los idiomas que conozco.

iOS, para mí, es un mundo completamente nuevo. No es más difícil, es simplemente diferente. Las cosas no funcionan como esperaba que funcionen, y aunque algunas cosas de hardware son extremadamente poderosas, algunas cosas de Interfaz / UX están muy atrás. Una aplicación que podría haber creado prototipos en la web en 3 días me está tomando un par de semanas para lanzar en Swift, demasiadas cosas que no anticipé que se interponen entre mi visión y lo que es posible en el alcance de cosas.

Antes de embarcarme en el rápido viaje, pensé en Ionic, y mi razonamiento fue el siguiente.

Para hacerlo realmente bien en Ionic, necesitaría pasar tiempo descubriendo sus API y cómo funciona todo junto. Probablemente necesite probar algunos prototipos y demostraciones, y asegurarme de hacer las cosas correctamente. Eventualmente, podría diseñar mis aplicaciones usando JS y CSS, y enviarlas más rápido como lo haría en la web. Pero incluso entonces, probablemente llegaría a momentos en que las cosas que quiero hacer no están disponibles, o no son compatibles, o son demasiado difíciles de ejecutar con Ionic. Sin saber mucho sobre su marco, simplemente podría decir cuándo y cómo aparecerían esos bloqueos de carreteras.

Casi exactamente los mismos desafíos que los anteriores serían (y son) los desafíos para aprender e implementar aplicaciones iOS en Swift. En realidad, como lenguaje Swift es bastante fácil y Xcode se hace lo suficientemente bien como para que puedas encontrar rápidamente lo que necesitas. La estructura de iOS y su funcionamiento es, en mi opinión, mucho más difícil de comprender. Pero, considerando todo, una vez que termine de aprender cómo funciona iOS y entienda bien Swift, entonces estoy listo para hacer magia en un dispositivo iOS. Apple está poniendo más peso en la rapidez, especialmente haciéndolo de código abierto, lo que significa que ahora aprendería que estaría listo para un largo plazo.

Podría haber aprendido Ionic, pero luego confiaría en mantenerme al día con sus API y su forma de hacer las cosas. En cambio, elegí seguir con Apple. Seguramente no se irán por mucho tiempo.

Según la lógica de “pero con Ionic también podrías hacer Android”, para mí se aplica la misma lógica. Cuando estoy listo para lanzar una versión de Android de mi aplicación iOS (suponiendo que incluso quisiera), entonces aprendería cómo hacer las cosas a la manera de Google. No puede ser mucho más difícil.

Espero que esto te ayude a tomar tu decisión. Si tiene alguna pregunta solo pregunte.

ps La aplicación fue aprobada por Apple. Compruébalo si estás interesado – Recibo Donkey en App Store

Para uno de los proyectos, tuve que elegir un marco híbrido y después de crear prototipos de casos de uso básicos (inicio de sesión, geolocalización, etc.) y elegir uno, funcionó inicialmente, pero a medida que comenzamos a implementar funcionalidades complejas (que incluían procesos en segundo plano, notificaciones, etc.) el código comenzó a sentirse pesado y la aplicación comenzó a volverse descuidada (rendimiento y usabilidad), luego leí sobre un nuevo y genial marco que resolvió esos problemas, así que migré al nuevo y después de un mes más o menos … los nuevos problemas (principalmente relacionados con el rendimiento, las animaciones) comenzaron a molestar sin ayuda confiable del rastreador de problemas y foros de github, decidí matar el proyecto y adoptar Swift.

Aproximadamente 5 meses en el proyecto ahora, que comenzó con 2 desarrolladores completamente nuevos en iOS y Swift y 1 desarrollador con experiencia previa en iOS, está funcionando como magia sin dolores de cabeza de rendimiento y puede jugar con cualquier API sin envoltura cordova.

No permita que mi respuesta lo distraiga. Mi intención aquí es que los requisitos de su aplicación decidan la tecnología.

Aquí hay algunos, si responde que sí, considere escribir una aplicación nativa
1. ¿Necesita animaciones / transiciones personalizadas?
2. La aplicación tendrá airplay, carplay, soporte de Watch, kit de inicio, soporte de kit médico y desea actualizar su aplicación tan pronto como Apple lance una actualización
3. Necesita proceso en segundo plano y notificaciones
4. Planea portar su aplicación a OS X

Estos son los pros y los contras de desarrollar su aplicación utilizando marcos híbridos como Ionic

Pros:

  • Implementar en cualquier momento. Es especialmente bueno corregir errores de producción lo más rápido posible. La revisión de la actualización de Apple tarda de 2 a 3 días en finalizar.

Contras:

  • Es una mierda para todo lo demás: velocidad de desarrollo, rendimiento, limpieza del código, tener la sensación de tener un control total de su aplicación.

Básicamente, si siente que va a tener muchos errores de producción, vaya con Ionic. Tu vida será un infierno, pero bueno, tendrás menos errores de producción. ¡HURRA!.

Personalmente, opto por mejores pruebas para proteger contra errores de producción.

Creé una aplicación de tutorial AngularJS usando Ionic Framework y AngularJS 2. Es solo una aplicación de una semana. La UI salió muy bien.

Y ahora está disponible en Google Play Store

Angular JS Tutorial – Aplicaciones de Android en Google Play

Contiene los cuatro idiomas (HTML, HTML5, JAVASCRIPT y ANGULARJS) con conceptos fáciles de aprender con ejemplos.

Por favor, eche un vistazo y comparta sus pensamientos.

Estoy usando iónico ahora, prefiero usar nativo en lugar de híbrido porque tengo tantos problemas (casi errores de IU) como: congelar cuando se muestra alerta y cargar al mismo tiempo, algo funciona en iOS pero no funciona en Android (algunos dispositivos no todos) o de lo contrario … debe separar la configuración para evitar problemas en ambas plataformas, a veces no sé por qué mi proyecto no funcionará, no hay error, advertencia para ayudar, en ese caso verifico todo el proyecto y pasé un día para eso (por ejemplo: usando ng2-translate y for got “ , ” en el archivo json translate).

La comunidad de cordova proporciona muchos complementos que permiten el acceso a funciones nativas, puede escribir el suyo en el código nativo si no puede encontrar cualquier complemento que tenga la función que desea.

el rendimiento y la seguridad son insuficientes, el tamaño del archivo siempre es más grande para compararlo con el nativo, si su aplicación tiene una interfaz de usuario flexible y desea soporte de Android 4.1, debe tener un paso de peatones, aumentará el tamaño de la aplicación al menos unos 20Mb (no recuerdo).

Perdón por mi mal ingles.

Todos disfrutamos desarrollando aplicaciones nativas de iOS con Swift u Objective-C y al final tenemos una maravillosa aplicación de iOS para dispositivos iOS como teléfonos y tabletas. Pero no estamos apuntando a todo el mercado, solo al porcentaje de usuarios. Si desea aumentar su base de usuarios, también debe optar por otra plataforma, para eso necesita contratar otro recurso, para que su aplicación esté disponible para las otras plataformas. Después de eso, tendrá que mantener las dos bases de código.

Visite aquí para ver el artículo detallado: ¿Por qué estamos cambiando a Ionic de iOS nativo?

Gracias,
Tecnologías Oodles

Depende de su requerimiento como todos los demás dicen.

Pero, también depende de su experiencia.

Si eres un desarrollador de iOS: Swift debe ser una opción.

O si eres un desarrollador web: creo que Ionic es el más adecuado.

También tengo una respuesta aquí, por qué uno debería elegir Ionic.

Si ya conoce AngularJS, elija Ionic si es un proyecto simple y rápido, aunque actualmente estoy construyendo un proyecto complejo usando Ionic + AngularJS con un equipo y me está yendo muy bien.

Si desea ser contratado para el desarrollo de iOS, Swift lo haría porque es uno de los idiomas nativos para el desarrollo de iOS.

Para resumir, si planeas ampliar tu aplicación a una gran audiencia, entonces ve con Swift, si no, Ionic hace el trabajo (sin embargo, demuestra ser poderoso).

Eso depende. Pero si solo se dirige a iOS, es mejor usar Swift.

¿Para un proyecto personal o para desarrollar con un presupuesto bajo? Probablemente jónico. Si desea aprender habilidades que lo emplearán más adelante en una empresa, Swift.