PDA

Ver la Versión Completa : [ CONSULTA ] Empiezo a aprender a programar en Android, con Android Studio. Dudas.


AlexMnrs
12/08/13, 22:17:38
Buenas!

Finalmente he decidido ponerme EN SERIO de una vez por todas a aprender a programar en Android y lo voy a hacer directamente con Android Studio, que llevo siguiéndole los pasos desde su lanzamiento y la verdad es que había probado Eclipse con el plugin ADT, pero Android Studio me gusta más.

El caso es que me gustaría aprender a programar pensando directamente una app que me gustaría desarrollar y poco a poco ir sacándola con mucha paciencia. Pero como sabéis, prácticamente TODO ya está creado, a mí por lo menos no se me ocurre nada.

He querido empezar por el tema de las pestañas, no sé por qué, dije va, voy a aprender a crear pestañas, total que una vez añadido el tabHost y un par de pestañas, este sería el código:

TabHost tabHost = (TabHost) findViewById(R.id.tabHost);

tabHost.setup();

TabHost.TabSpec tabSpec = tabHost.newTabSpec("uno");
tabSpec.setContent(R.id.tabUno);
tabSpec.setIndicator("Uno");
tabHost.addTab(tabSpec);

tabSpec = tabHost.newTabSpec("dos");
tabSpec.setContent(R.id.tabDos);
tabSpec.setIndicator("Dos");
tabHost.addTab(tabSpec);

Lógicamente esto no lo he logrado sacar yo, por desgracia, sino que lo encontré en un vídeo sobre este IDE, y ahí llega mi duda. Me gustaría que me explicáseis, si fuera posible, un poquito el código porque no logro entenderlo. Ya en la primera línea se me hace extraño ver tanto TabHost al principio, 3 veces seguidas. Tampoco entiendo la diferencia en ponerlo con la "T" mayúscula o minúscula, ya que al parecer no es lo mismo.

Un amigo me aconsejaba ver videotutoriales de programación en Android con Eclipse, que según dice es prácticamente lo mismo que con Android Studio, hay mucha más información (de Android Studio hay muy pocos vídeos y tutoriales) y me va a servir, pero dudo que sea todo lo mismo no? Yo creo que así me liaré más, prefiero empezar LIMPIO y desde 0 con Android Studio, aprovechando que no sé nada.

Saludos!

kriogeN
12/08/13, 23:01:15
Si no entiendes la primera línea más te vale cogerte un buen tutorial de Android (y también de Java) y leer. Porque algo más básico que eso no se sirve. Es la forma de acceder a la "Vista" desde el "Controlador" para seguir el "Modelo Vista-Controlador" que tienen todas las interfaces móviles (Android, iOS, Blackberry y Windows Phone). Esta duda te la voy a resolver, pero repito, te aconsejo que te cojas un buen libro.

Por partes:

"TabHost tabHost" Declaras un objeto de tipo TabHost que se va a llamar tabHost

"findViewById" Es una función que tiene la clase Activity para acceder a los elementos que están en un Layout previamente asignado (estará en el onCreate). Le dices que busque el objeto que se llama como lo que está en el parámetro.

"R.id.tabHost" El parámetro para findViewById, estará dentro del Layout que le asignas a la Activity.

Y por último "(TabHost)" Esto es una técnica que se llama Casting, que tienen la mayoría de lenguajes, sirve para asignar un objeto de una superclase a un objeto que su tipo es el de una subclase. Obviamente si sabes a priori que el objeto de la superclase realmente es del tipo de la subclase. En este caso findViewById siempre devuelve "View", pero en este caso sabes que va a ser un TabHost, por lo tanto lo "casteas". Supongo que de este último párrafo no habrás entendido nada, me remito otra vez al libro o tutorial.

Y en cuanto a las mayúsculas y minúsculas de TabHost, demuestra que no tienes ni idea de Java. Paso fundamental para poder programar en Android. Leete un buen libro de Java, después uno bueno de Android, y después si sigues teniendo dudas vuélvete a pasar por aquí.

AlexMnrs
12/08/13, 23:37:22
Jajaja, exacto, de ese párrafo no he entendido ni papa. Bueno, pensaba que podría aprender a programar Android sin tener ni idea de Java porque en varios lugares se habla de la posibilidad, que según dicen no es necesario saber Java, sólo que lógicamente costará más.

Pero tienes razón, mejor me voy a buscar algún libro y me lo empollaré. No veo que se pueda programar en Android sin saber Java como se habla por la nube.

Saludos y gracias por la aclaración!

kriogeN
12/08/13, 23:50:53
Tampoco tienes que saber Java 100%, pero si los conceptos básicos: Clases, instancias, métodos estáticos, herencia, clases abstractas, interfaces...

Bongiovi
13/08/13, 01:57:34
Como ya te han comentado, necesitas una buena base de conocimientos de Java.
Tampoco necesitas ser un experto, yo mismo he empezado a estudiar Java hace un par de meses y ya me "defiendo" bastante bien con Android ;)

PD: te recomiendo empezar con el Curso en vídeo de 0utKast, puedes encontrarlo en Youtube. Es muy bueno.

providez
13/08/13, 11:15:29
Como no va a ser necesario aprender JAVA si se programa en JAVA! Otra cosa sería hablar de frameworks, que Android tiene el suyo propio. Pero todo el paradigma de orientación a objetos, modelo-vista-controlador, uso de APIs... hay que tener la base bastante clarita.

AlexMnrs
13/08/13, 21:54:33
Bueno pues poco más que añadir, muchas gracias a todos!

Empezaré con el curso de 0utKast, que ya lo conocía, y seguiré con el libro que me he descargado: Piensa en Java (4ª edición) de Bruce Eckel.

Saludos socios!