Ver la versión completa : Otros Lenguajes Desarrollo para móviles: Xamarin vs Cordova vs Loquesea++
josepzin
31/07/2018, 17:59
Estoy bastante verde con este tema pero me gustaría meterme porque veo a mi alrededor que hay demanda de estas cosas.
Por lo que vi las opciones son mas o menos estas:
- Xamarin: por lo que he leido el resultado son aplicaciones nativas, asi que seguro es muy potente. C#.
- Cordova/Phone Gap: es parecido a hacer una web, y quizás es lo más cerca que está a lo que hago yo habitualmente. Segun parece el resultado es bastante decente.
- Titanium Appcelerator SDK: ni idea, lo he visto por ahi nombrado.
- Android Studio: creo que es Java.
- MIT App Inventor: al principio me pareció una chorrada pero veo que la gente hace cosas, aunque seguramente es mucho mas limitado que las otras opciones. Lo estuve probando y está simpatico. Obviamente no creo que sirva para algo serio, pero al final un apk es un apk.
- Empresas que te dan un maker y luego te cobran un alquiler mensual.
¿Que me podeis decir? eh? eh??!!
Carlos24
31/07/2018, 21:11
Android studios es un IDE como visual studios pero orientado a Android y puedes programar en C/C++ si utilizas el NDK nativo pero debes de crear alguna manera de cargar la librería nativa compilada en java.
Java loader <-> JNI Codigo C/C++ utilizando NDK y puedes aprovecharte de frameworks como sdl2 , Qt.
josepzin
31/07/2018, 21:57
Me acabo de instalar MS Visual Studio con Xamarin y Cordova.
Primero creé un proyecto nuevo Xamarin, me pareció mandarín :P ;)
Luego creé uno nuevo Cordova y eso ya es otra cosa, veo index.html, css, javascript.
A ver si termina de una pvta de descargar e instalar cosas, que va de a GIGAS... que hambre de espacio tiene esto.
-----Actualizado-----
Supongo que lo suyo sería meterme con algo como Xamarin, que es nativo y seguro que el lenguaje es cosa de ponerse, como todos. Pero ahora mismo creo que voy a tirar para el lado de Cordova, que sabiendo HTML y demás creo que puedo sacar algo más rapido.
Carlos24
31/07/2018, 22:26
Si es buena elección para empezar , Cordova es programar html5 tal cual tienes tu web y el mismo te lo compila y te crea el apk o el ejecutable por ti con ciertas determinaciones en las versiones mínimas
La última versión 7.x.x de cordova solo soporta Android 4.4 y superior si quieres dar soporte a Android anterior puedes compilalo con cordova 6.x.x que abarca hasta Android 4.1.
Y la limitación de IOS es ios8 sino ha cambiado creo recordar por el resto va bastante bien muy versátil como una página web se tratara no tiene mayor inconveniente.
akualung
03/08/2018, 22:16
Ahora mismo en desarrollo móvil hay dos tecnologías en el candelero que son Ionic y React Native. Yo precisamente me quiero mirar alguna de estas dos para un cutre-proyectillo que tengo en mente. De momento me está llamando más la atención Ionic, por ser casi del todo web y estar basado en Angular, lo que me forzaría a ponerme a estudiarlo en serio de una vez.
josepzin
04/08/2018, 00:18
Muchas gracias por los consejos. Ionic no lo habia sentido nombrar, React Native sí, aunque en principio lo había descartado para empezar, también les dare un vistazo a ambos.
Ahora mismo en desarrollo móvil hay dos tecnologías en el candelero que son Ionic y React Native. Yo precisamente me quiero mirar alguna de estas dos para un cutre-proyectillo que tengo en mente. De momento me está llamando más la atención Ionic, por ser casi del todo web y estar basado en Angular, lo que me forzaría a materme a estudiarlo en serio de una vez.
Con conocimiento de causa, evita Ionic, es un rebranding de Cordova. Ionic es una página web corriendo en una webview en la app. En cualquier cosa que no sea un Samsung de gama alta va a ir a pedales, y en todo caso se nota bastante las apps no nativas. Angular 2 ha salido un poco pufo también, a Google le siguen comiendo la tostada entre React y Vue.
React Native sólo corre la lógica en JavaScript, las vistas son nativas y corre en una máquina virtual en C++ sin mucho overhead.
Y ahora el sales pitch, ponle Flow por encima para tiparlo :P
josepzin
04/08/2018, 00:49
Con conocimiento de causa, evita Ionic, es un rebranding de Cordova. Ionic es una página web corriendo en una webview en la app. En cualquier cosa que no sea un Samsung de gama alta va a ir a pedales, y en todo caso se nota bastante las apps no nativas.
Justo venia a comentar eso, en una web leo esto:
Ionic y los plugins de Cordova
Tal y como os he comentado antes, Ionic trabaja bajo Cordova, por lo que podremos utilizar todos los plugins que estén desarrollados para el framework e incluso desarrollar los nuestros propios. En esta url podéis ver todos los que actualmente están en el repositorio de Apache Cordova: http://plugins.cordova.io/
Angular 2 ha salido un poco pufo también, a Google le siguen comiendo la tostada entre React y Vue.
React Native sólo corre la lógica en JavaScript, las vistas son nativas y corre en una máquina virtual en C++ sin mucho overhead.
Por lo que dices, React Native sería una mejor opción. Vue no lo había sentido nombrar.
Y ahora el sales pitch, ponle Flow por encima para tiparlo :P
Chacho, habla en cristiano!
Chacho, habla en cristiano!
Que trabajo en https://flow.org/ y hace buen conjunto con React Native :D
josepzin
04/08/2018, 01:10
Ahhh, si, ya lo he visto en tu otro hilo de ostentación :P
Todavía estoy verde, con tanto frameworks y opciones.
Por lo que veo Vue es otro framework javascript.
A ver si entiendo la diferencia entre Cordoba y estos frameworks javascrits:
- Cordova trabaja con una estructura tipo pagina web y luego crea basicamente una app que es un visualizador web?
- React, Vue, etc trabajan solo con javascript usando MVC y generan una aplicación nativa o "nativa"?
-----Actualizado-----
Y pregunto:
¿Que tal Xamarin, C++ o Java?, me imagino que se está usando más Javascript porque es un lenguaje mas ¿popular? ¿por las webs?... no sé, ni idea, pregunto.
Hacer aplicaciones en Android es más complejo de lo que debería. Esto se sabe, es un problema en general. Hay un montón de problemas y chorripolleces para hacer cosas básicas, y luego encima tienes que aprenderte todas las APIs del sistema, y cuáles evitar. Ésto va a ser un problema uses lo que uses, aunque todos los que no son el framework oficial hacen por mejorar lo existente.
Cordova es una manera de empaquetar una app que sólo tiene un visualizador web. Ionic, React, Vue, Angular y demás son librerías de JavaScript para hacer páginas en general. Unos son widgets de UI, otros son de arquitectura. Si no recuerdo mal la app entera corre en una sola pantalla con muchas páginas.
React *Native* es una manera de correr React pero cuando creas UIs, éstas utilizan los widgets nativos del sistema de Android e iOS. Cuando te mueves entre páginas, se mueven entre pantallas como las aplicaciones nativas. La diferencia es que tu lógica de negocio, el "main" de cada pantalla nativa, delega a JavaScript y a partir de ahí tu tiras. Al usar UIs nativas va todo un poco más suave que con Cordova.
C++ es inviable excepto para juegos y tiene una complejidad bestial porque no hay una manera sencilla de gestionar memoria en java y C++ de manera compartida, o mandar clases y objetos complejos entre los lenguajes. Es como aprender a correr empezando con los campeonatos de europa, no tiene sentido y no vas a aprender.
Y Xamarin existe en un espacio donde hace algo similar a lo que hace React Native, pero desde C#. Debe funcionar bien, y creo que ya no necesitas licencia para usarlo. El mayor problema es que te atas a Microsoft, Visual Studio y demás mandanga.
¿Por qué JavaScript? Porque es muy facilito para empezar y hacer algo que tira a duras penas sin tener que aprender acerca de clases o tipos o patrones de diseño, lo que atrae a mucha gente. Hay recursos para aprender y ecosistema para aburrir, casi lo mismo que con Java a pelo.
^MiSaTo^
04/08/2018, 08:15
Uff yo venía a recomendar Kotlin y Swift. Vamos, nativo. XD yo tb tengo experiencia para aburrir y al final los frameworks multiplataforma (y sobre todo los basados en web) no van del todo bien.
En iOS al menos el motor de js está capado para aplicaciones así que no va todo lo bien que debería.
En iOS al menos el motor de js está capado para aplicaciones así que no va todo lo bien que debería.
Capado en qué sentido?
Bueno, yo hablo desde mi total inexperiencia en apps móviles, y un año trabajando con Xamarin.
Al principio quise aprender directamente con Android Studio (bueno, usando eclipse :P), pero en cuanto la primera y segunda lección que hice usaban lenguaje de marcas, tipo XML, abandoné.
En el trabajo usamos Xamarin, y la verdad es que lo veo bastante cómodo. Estoy acostumbrado a Java, y C# no me supone ningún problema. Es cierto que me tengo que pelear con XAML, que es otro lenguaje tipo XML, para hacer los formularios de pantalla, pero ya no me peleo tanto con él, y una vez te acostumbras a eso y al MVVM (Modelo-Vista-VistaModelo), es bastante fácil y rápido hacer programas de escritorio. Y hay addons para casi todo.
Sí, te entierras con Microsoft, pero ahora tienen esa licencia "comunity" que es gratis mientras no cobres ciertas cantidades de pasta.
No sé si es código nativo o no, pero sí te puedo decir que hay dos formas de programar: usando sólo las librerías multiplataformas, por lo que pasar de un dispositivo a otro es coser y cantar, o añadiendo código específico para cada plataforma, y así usar al 100% las posibilidades de cada máquina (hay cosas que puedes hacer en Android que en iOS o en multiplataforma no, por ejemplo, cambiar el color del control "selector" (o como se llame, que no me viene a la cabeza)... a menos que descargues la última beta, o te crees un "custom renderer").
Ya meterme en OpenGL, juegos y demás, ya no lo sé, sólo hacemos aplicaciones de formularios y comunicación con una WebApi en un servidor con SAP. Pero la última app para firmar documentos la he hecho en dos semanas, incluyendo la creación del PDF y guardarlo en SAP.
Eso sí, yo empecé usando un proyecto Demo CRM, cambiándole los colores y añadiendo algunas cosas. Contiene mucha información y varias maneras de hacer lo mismo... lo cual ayuda y te lía al mismo tiempo ^^U
josepzin
04/08/2018, 14:28
Uff yo venía a recomendar Kotlin y Swift.
Chica, es que tu estás en otra liga!! :)
Supongo que se pueden hacer dos grupos:
- nativos: Kotlin, Swift, Java, Xamarin, C++ , etc
- web: Cordova, Reacts, Vue, Angular, etc
En mi caso la opción web es la más simple para tener algo rápido.
Cualquiera de las nativas me implica aprender uno de esos lenguajes y además cómo se aplica a crear cosas para móviles.
En mi caso la opción web es la más simple para tener algo rápido.
Cualquiera de las nativas me implica aprender uno de esos lenguajes y además cómo se aplica a crear cosas para móviles.
Desde hace tiempo, cuando alguien me dice eso, inmediatamente pienso en Xamarin y su "WebView". Sí, es tal como suena: una vista que añades a la página que estás haciendo, que muestra (y permite navegar por) una página web :D:D:D
De momento sólo la he usado para ejecutar un visor de PDFs en JavaScript :D
No sé, de desarrollo móvil no tengo mucha idea, pero no estamos mezclando churras con merinas ? Kotlin (<- mi recomendación para cualquiera) o javascript son lenguajes, mientras que React Native es un... framework?
Hace unos dias los de AirBnb sacaron un articulo en medium que creo que puede ayudarte a elegir:
https://medium.com/airbnb-engineering/react-native-at-airbnb-the-technology-dafd0b43838
Al final de éste hay una serie de enlaces con más detalle, pero ojo, es sólo la opinión de los ingenieros de una empresa (AirBnb), tu caso de uso puede ser más que suficiente con cualquier cosa que elijas; pero sí te diría que escojas lo que escojas, retrasa la decisión todo lo posible.
josepzin
12/08/2018, 17:39
Bueno, a ver, estuve mirando e intentando probar un poco de todos.
Uno de los problemas que me he encontrado es que mi portatil no tira algunas de estas soluciones, ya sea por falta de espacio en algun caso o porque el procesador le falta potencia... asi que algunas cosas las probé en una torre un poco mas potente que tengo medio archivada.
Así que las cosas determinantes fueron basicamente que funcione en mi ordenador y que yo pille el funcionamiento rápido.
Entre las opciones nativas le di un vistazo a Xamarin, Andoid Studio y no me acuerdo cuál otra. Mi conclusión rápida fue que me iba a llevar demasiado tiempo sacar algo con eso... asi que por ahora descartados.
Luego pasé a las opciones tipo web, aquí el gran candidato es React Native, que usa Javascript como base (mini punto) y genera una aplicación nativa (otro minipunto), pero no fui capaz de instalarlo, seguí un par de tutoriales y hay que instalar varias cosas etc etc. Al final lo dejé por no ser capaz de ponerlo en marcha, seguro que al final lo hubiera conseguido, me habré liado o me falta alguna cosa, lo que sea... pero para no perder más el tiempo al final fui a lo que pude hacer funcionar bien y además en un sistema que controlo bastante: Cordova.
Así que siendo Cordova el elegido me puse a probar cosas, plugins y frameworks UI.
Esto de los framewoks UI es todo un mundo, pasé por unos cuantos y al final me he quedado con Bootstrap, no estoy seguro que sea el mejor pero me pareció bastante completo y simple, he probado varios (Onsen UI, Ratchen, JQuery Mobile UI o Framework7). Algunos me parecieron demasiado simples otro demasiado complejos y otros con demasiadas cosas para lo que necesito.
Y bueno, tengo muchas dudas pero voy avanzando. A ver si esta semana me confirman un trabajo que tendría que sacarlo rápido y luego ya veo si me pongo a mirar React Native.
Segata Sanshiro
14/08/2018, 16:19
Ánimo yusepcin. A los que no somos desarrolladores profesionales (hablo por mí, que desarrollo para Android por mera curiosidad) cada vez se nos pone más cuesta arriba dedicarnos a ello. Si no lo haces a tiempo completo es muy difícil seguir el ritmo al que Google obsoleta partes de la librería y saca cosas nuevas. Al final es más satisfactorio (como hobby) el desarrollo de videojuegos.
En eso estamos todos de acuerdo :D
Iba a abrir un hilo para preguntar por esto mismo, pero ya me doy por contestado, me he instalado android studio para empezar con kotlin (ya programé en java con el sdk android hace años, con la version 2 o 3 de Android...) y Xamarín lo toqué en el ciclo hace 6 años, pero no sabía que ya estaba liberado. Probaré esto ya que me siento más cómodo con C# que con Java o javascript, quiero retomar la programación y empezar a hacer apps moviles (para android basicamente). Mañana instalo todo (tengo acceso a versiones de visual studio por ser estudiante).
josepzin
05/11/2018, 02:18
Yo en principio voy a hacer un par de trabajos con Cordova, al menos las pruebas que hice pude resolver "a lo web" las cosas que necesita la aplicación. Al menos me he asegurado que con lo que sé de web puedo sacar el proyecto adelante.
Pero de ahora a que lo empiece igual me da tiempo de curiosear alguna otra opción, por ejemplo Kotlin.
La limitación que tiene Cordova (por las pruebas que hice) es que el player de audio/video no funciona bien en versiones anteriores de Android, cuando digo anteriores me refiero a 4 o 5, que en esos no funciona. Vale, que el porcentaje de gente que tiene estas versiones no es mucha pero me jode que no funcione el audio/video siendo que la aplicación sí funciona :P
el porcentaje de gente que tiene estas versiones no es mucha Al contrario, hay mucha. La adopción de nuevas versiones de Android es desastrosa. Aquí están los stats oficiales de la Play Store: https://developer.android.com/about/dashboards/.
EDIT: Los números son mejores que hace un par de años. Bien, veo que han avanzado algo al menos.
^MiSaTo^
05/11/2018, 08:13
Yo en principio voy a hacer un par de trabajos con Cordova, al menos las pruebas que hice pude resolver "a lo web" las cosas que necesita la aplicación. Al menos me he asegurado que con lo que sé de web puedo sacar el proyecto adelante.
Pero de ahora a que lo empiece igual me da tiempo de curiosear alguna otra opción, por ejemplo Kotlin.
La limitación que tiene Cordova (por las pruebas que hice) es que el player de audio/video no funciona bien en versiones anteriores de Android, cuando digo anteriores me refiero a 4 o 5, que en esos no funciona. Vale, que el porcentaje de gente que tiene estas versiones no es mucha pero me jode que no funcione el audio/video siendo que la aplicación sí funciona :P
Si solo fuese esa la limitación xD
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.