Ayuda desarrollo de apps móviles.

MoreN

Buenas gente,
Estoy intentando adentrarme un poco para hacer mis pinitos sobre desarrollo de aplicaciones para moviles y he estado informandome sobre programas, lenguajes etc, pero queria saber vuestra opinion.
Practicamente no tengo mucha idea de programación (tengo un cursillo básico en C# que hice en el instituto), y por ahora quiero algo que me sirva tanto para iOS como para Android, he leido de páginas/apps como PhoneGap y Apache Cordova, que literalmente, te dan todo hecho pero con código básico (por lo que deduzco que será muy limitado) y también he oido hablar de Xamarin pero de este tengo menos idea.

Me podriais decir mas o menos por donde tirariais vosotros y ¿por qué?
PD: se que a programar no se aprende de la noche a la mañana pero no me importa tirarme X tiempo aprendiendo mientras pueda llegar a algo.

Gracias por adelantado!

HeXaN

React Native porque da gran rendimiento y es medio fácil de usar.

2 1 respuesta
Peinacabras

Te recomiendo comenzar por android, hay mas documentación y mas simple para testear que iOS, ademas de los mil cursos que hay por internet.

Un saludo.

1 2 respuestas
Martita-

#3
Pero quiere algo que le sirva para ambas.

Te diria que te miraras React Native o Ionic 2.

1 1 respuesta
MoreN

#2 #4 Gracias a ambos mirare React Native a ver que tal es.
#3 Como comentan mas abajo mi idea es algo para ambos, pero gracias igualmente!

Adrute

Hola,
Android en si es más fácil porque al final es java que es algo que todos más o menos sabemos.
Para poder exportar a todo tiene muy buena pinta Xamarin pero es muy rentable Ionic porque utiliza angular 2 y es muy rentable aprenderlo.

A parte ten en cuenta que para compilar la app de iOS necesitarás un mac.

Un saludo!

BLZKZ

React native, aunque aún le queda madurar un poco. Otra opción puede ser xamarin

r2d2rigo

#1 si sabes C# Xamarin de cabeza, ni caso a los que te recomiendan que te metas en movidas de React o Ionic.

Con Xamarin puedes hacer igualmente un solo proyecto y exportar a todas las plataformas mediante Xamarin Forms. Lo unico que vas a tener que aprender XAML aunque es relativamente facil.

1 respuesta
Zerokkk

#8 ¿?

No le veo sentido ninguno a lo que dices. Xamarin está bien, pero no sé por qué lo pones por encima de RN o Ionic 2, cuando son sin duda alguna el state of art del desarrollo móvil económicamente eficiente.

Yo la única ventaja que le veo a Xamarin a día de hoy, es que si estás metido en .NET y C#, y te da pereza meterte en JS, viene de perlas porque apenas tienes que aprender cosas nuevas, pero vamos, que no más.

Aún así, me gustaría que ampliases tu comentario, y comentaras qué le ves tan genial a Xamarin. Quizá me estoy perdiendo algo, oye.

1 respuesta
r2d2rigo

#9

  • Aprendes a programar la plataforma tal cual es, salvo que con otro lenguaje. Con React te estancas en React.
  • Puedes aprender a alto nivel (Xamarin Forms) y luego ir bajando para comprender como funciona iOS/Android por debajo.
  • Aunque los moviles actuales monten quad core, la velocidad y el consumo de bateria siempre van a ser cruciales. Cosas que no salen muy favorecidas con un lenguaje interpretado como es JS.
  • JS no deberia salir del navegador.

No me hagas reir con "state of the art", que todo el mundo se este subiendo a la moda actual no significa que sea el camino adecuado.

2 respuestas
BLZKZ

#10 creo que no sabes como funciona RN y has patinado bastante xD

2 1 respuesta
r2d2rigo

#11 se de sobra que instancia componentes nativos pero la logica sigue siendo JS que corre en su propio thread. Por buena que sea la VM que tiene por detras, AOT se sigue meando en JIT.

1 respuesta
Zerokkk

#10

En React Native se usan componentes nativos, y en Ionic 2 el código que se interpreta (que por cierto, tampoco es mucho ya que gran parte de las cosas corren en nativo también), es mínimo, piensa que Angular 2 ha aligerado mucho, mucho este proceso. Al final, el consumo de batería, rendimiento y tiempos de carga, haciendo la app correctamente y sin matarse mucho, se acerca peligrosamente al de las nativas.

Es que te leo y me da la sensación de que te has quedado en la situación que había hace 2-3 años, cuando el desarrollo híbrido ya tiraba decente pero las apps nativas seguían sacándoles mucho terreno. A día de hoy la diferencia es mínima con estas dos herramientas, y ahora que se le añade Nativescript, más aún.

No te niego que Xamarin pinta genial, creo que de aquella era lo mejor que podía existir, pero a día de hoy creo que sale más rentable mejorar conocimientos de JS metiéndose en ES6/TS por la inmensa comunidad y herramientas que hay detrás, que meterse en el framework genérico más condenado al fracaso que es el de .NET/C#, a menos que los chicos de Oracle la caguen a saco con Java.

Y por cierto...

JS no deberia salir del navegador.

Repito, me da a mí que no tienes mucha idea de cómo está el lenguaje a día de hoy xD. Seguro que para ti las promises son lo último en JS o algo así. De verdad te digo que deberías echarle un vistazo a las últimas de Node, ES6, y con Express probar a montarte algo sencillito para probar. No sólo lo vas a hacer a toda ostia, sino que el rendimiento se va a comer al de .NET/J2EE.

Siempre lo diré: el único problema que tiene este lenguaje es que se puede programar de demasiadas maneras diferentes, y hacer códigos demasiado hipsters que no entiende ni Cristo.

#12 React concretamente no sé si lo hace, pero Node compila en assembly, por lo que ejecutas código assembly directamente. Probablemente React se bas en el mismo principio, no lo sé. Angular 2 usa AOT compilation.

1 1 respuesta
r2d2rigo

#13 me estas diciendo que Xamarin esta "condenado al fracaso" cuando tiene > 7 años de vida, sobrevivio a la venta de Novell a Attachmate y la ha comprado Microsoft recientemente? Va a morir antes que React Native, que:

  • no ha llegado ni a la version 1,
  • se duda que Facebook lo vaya a mantener a largo plazo cuando inventen una moda nueva,
  • tiene una clausula de patentes?

Hago proyectos con TypeScript en mi tiempo libre y se de sobra el panorama de JS. Estareis contentos con async/await, no? Que bien que lo vayais a tener en ES2017 cuando en .NET lo llevamos usando desde 2012. Y me rio de aqui a lima con tu comentario de que el rendimiento de Node se come a .NET/Java, googlea un poco y mira en que esta montada Stack Overflow.

Node compila a assembly solo en tiempo de ejecucion gracias a V8, pero esto es una feature del runtime, por lo que cuando ejecutas React Native en movil no esta disponible (iOS no permite generacion de codigo en tiempo de ejecucion). La compilacion a AOT de Angular2 es simplemente una transpilacion de HTML a JS para ganar algo de rendimiento, pero igualmente estas corriendo JS a la hora de ejecutar. No existe NADA a dia de hoy que compile JS a codigo estrictamente nativo en tiempo de compilacion, la diferencia de rendimiento siempre va a estar ahi.

Paro ya de discutir porque estos hilos siempre acaban igual, cuando tengas un poco mas de experiencia y tengas que lidiar con proyectos que necesitan > 2 años de mantenimiento, ya me diras como de divertido es basar toda tu stack en JS.

4 1 respuesta
Zerokkk

#14 Eso sigue sin negar que el tiempo de desarrollo es menor y la diferencia de perfomance a día de hoy es mínima xD. Pero bueno, nada más que objetar. Por supuesto que mantener un proyecto de JS por el que han pasado distintos devs es un coñazo, y lo sé bien.

Camp1

Una pregunta desde la ignorancia, que venetajas tiene lenguajes como Ionic o React Native vs Java (además de la compatibilidad con IOS).

Lo que he desarrollado por mi cuenta ( es poco ) con fin didactico siempre ha sido en java, usando android studio. Me gustaría saber las ventajas por si me interesaría migrar a otro lenguaje.

#17 js es un "lenguaje" XD

2 respuestas
BLZKZ

#16 no son lenguajes, es javascript con lo que se desarrolla con Ionic o React Native.

eXtreM3

#16 que venetajas tiene lenguajes como Ionic o React Native vs Java

Te dice que ionic o react no son lenguajes, son frameworks (ya que has hecho una comparativa directa con java)

Y JS sí es un lenguaje, no lo pongas entre comillas.

Camp1

cierto, mybad. Bueno alguien me aclara las ventajas?

1 respuesta
eXtreM3

#19 pues la principal ventaja es el tiempo de desarrollo, lo que se convierte en ahorro en costes de producción.

HeXaN

https://blog.discordapp.com/using-react-native-one-year-later-91fd5e949933#.4baor3w55

1