DOMANDA I linguaggi Android!

Stato
Discussione chiusa ad ulteriori risposte.

Blast2028

Nuovo Utente
36
1
Salve, porto le veci del mio gruppo di studio, ne siamo quattro per ora :D
Premetto che non abbiamo nessuna compentenza nei linguaggi di programmazione.

Volevamo buttarci sull' Android, ovvero creare videogame (dapprima basilari come giusto che sia) fino a poter creare qualcosa di complicato e anche altre app.

Ora le mie domande sono due:
1) Precisamente per la parte grafica, cosa potremmo sfruttare? Quali programmi/linguaggi di programmazione?
Per ora ci soffermiamo sul 2d.
2) Per quanto riguarda la parte del codice, cosa dovremmo studiare per apprendere queste conoscenze? Noi abbiamo scelto di usare Android Studio, quindi vorremmo sapere quale linguaggio sarebbe opportuno studiare!

Qualche link che rimanda alle guide sono ben accetti.
 

Fenix27

Utente Attivo
863
220
Salve, porto le veci del mio gruppo di studio, ne siamo quattro per ora :D
Premetto che non abbiamo nessuna compentenza nei linguaggi di programmazione.

Volevamo buttarci sull' Android, ovvero creare videogame (dapprima basilari come giusto che sia) fino a poter creare qualcosa di complicato e anche altre app.

Ora le mie domande sono due:
1) Precisamente per la parte grafica, cosa potremmo sfruttare? Quali programmi/linguaggi di programmazione?
Per ora ci soffermiamo sul 2d.
2) Per quanto riguarda la parte del codice, cosa dovremmo studiare per apprendere queste conoscenze? Noi abbiamo scelto di usare Android Studio, quindi vorremmo sapere quale linguaggio sarebbe opportuno studiare!

Qualche link che rimanda alle guide sono ben accetti.

Sicuramente la conoscenza di Java e avere un'ottima conoscenza dell'OOP.
 

Fausto Di Iorio

Nuovo Utente
104
9
Salve, porto le veci del mio gruppo di studio, ne siamo quattro per ora :D
Premetto che non abbiamo nessuna compentenza nei linguaggi di programmazione.

Volevamo buttarci sull' Android, ovvero creare videogame (dapprima basilari come giusto che sia) fino a poter creare qualcosa di complicato e anche altre app.

Ora le mie domande sono due:
1) Precisamente per la parte grafica, cosa potremmo sfruttare? Quali programmi/linguaggi di programmazione?
Per ora ci soffermiamo sul 2d.
2) Per quanto riguarda la parte del codice, cosa dovremmo studiare per apprendere queste conoscenze? Noi abbiamo scelto di usare Android Studio, quindi vorremmo sapere quale linguaggio sarebbe opportuno studiare!

Qualche link che rimanda alle guide sono ben accetti.
Ciao, Android è un linguaggio di programmazione che estende/modifica il java, ergo senza java non te ne fai nulla. Ti consiglio di studiare per bene il java e subito dopo passare ad android, in questo modo dovrai solo capire il funzionamento di un'app android invece di studiare un nuovo linguaggio. per intenderci, la maggior parte delle classi, metodi e costrutti di android sono java in tutto e per tutto, però ci sono classi e metodi propri di android(ovviamente scritti con la stessa sintassi del java). Le applicazioni android a differenza degli applicativi java ragionano in modo diverso: mentre nel java puoi avere un metodo main con entry point del programma o una servlet(qualora sia un app enterprise), in android hai delle activity. in java la parte da mostrare all'utente(gui e/o pagine web) sono quasi sempre fatte in html, in android c'è una specie di xml molto semplice da usare che si concretizza in file detti layout. In android c'è gradle, in java maven. android usa adapter e fragment per per mostrare i layout, java le servlet. insomma se vuoi fare direttamente android ti spiegheranno certamente il java e la sua sintassi ma non ti mostreranno abbastanza da poter utilizzare java a dovere con tutte le sue funzionalità. Se volete farne un possibile lavoro per il futuro o comunque fare le cose a dovere studiate il java, poi passate ad android. se volete fare qualche app a tempo perso ci sono libri android che spiegano solo l'essenziale del java.
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,668
11,452
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
mmmh, no su quasi tutta la linea!
  1. Android NON E' un linguaggio di programmazione ma un sistema operativo quindi
  2. Android NON estende Java e chiaramentente non lo modifica
  3. sebbene Java sia sicuramente il linguaggio di programmazione più usato per creare app in Android, è possibilissimo usare linguaggi totalmente differenti da Java per farlo: C, C++, C#, HTML+CSS+Javascript, Kotlin (che si prevede che in un futuro, non prossimo, potrebbe prendere il posto di Java come linguaggio preferito dagli sviluppatori)
  4. i servlet sono componenti software Java lato server, non servono a mostrare layout in un'app, tranne ovviamente che in risposta ad un'interrogazione di una app client ad un server web.
  5. i libri su Android che "spiegano l'essenziale di Java" non sono buoni neanche per usarli in bagno perché invece di pulire ti sporcano.
Invece concordo che, prima di iniziare a pensare di sviluppare qualcosa su/per/in Android, se non si ha alcuna conoscenza di altri linguaggi di programmazione, allora conviene sicuramente iniziare con lo studio di Java. Per inciso, l'essenziale di Java da sapere per approcciarsi ad Andorid è ben poco essenziale e consiste in:
  1. nozioni basilari: variabili, tipi primitivi, identificatori, costanti, stringhe, operazioni aritmetiche e logiche
  2. nozioni basilari di programmazione strutturata: istruzioni di controllo, cicli, metodi statici (grossolanamente: simili alle funzioni in linguaggi come il C)
  3. array mono e multidimensionali, operazioni su di essi
  4. ricorsione
  5. nozioni fondamentali di programmazione a oggetti: classi, metodi, incapsulamento ed information hiding, ereditarietà, polimorfismo
  6. classi astratte, interfacce
  7. eccezioni e loro gestione
  8. stream e file
  9. un po' di strutture dati (collection)
Non è invece richiesta la conoscenza di Swing e/o JavaFX (per la creazione delle GUI), sebbene un'occhiatina sarebbe il caso di darcela.
Dopo aver fatto un po' di esperienza su tutto questo (voglio dire minimo 3 mesi? meglio 6...), allora ci si avvicina ad Android.
 

Fausto Di Iorio

Nuovo Utente
104
9
mmmh, no su quasi tutta la linea!
  1. Android NON E' un linguaggio di programmazione ma un sistema operativo quindi
  2. Android NON estende Java e chiaramentente non lo modifica
  3. sebbene Java sia sicuramente il linguaggio di programmazione più usato per creare app in Android, è possibilissimo usare linguaggi totalmente differenti da Java per farlo: C, C++, C#, HTML+CSS+Javascript, Kotlin (che si prevede che in un futuro, non prossimo, potrebbe prendere il posto di Java come linguaggio preferito dagli sviluppatori)
  4. i servlet sono componenti software Java lato server, non servono a mostrare layout in un'app, tranne ovviamente che in risposta ad un'interrogazione di una app client ad un server web.
  5. i libri su Android che "spiegano l'essenziale di Java" non sono buoni neanche per usarli in bagno perché invece di pulire ti sporcano.
Invece concordo che, prima di iniziare a pensare di sviluppare qualcosa su/per/in Android, se non si ha alcuna conoscenza di altri linguaggi di programmazione, allora conviene sicuramente iniziare con lo studio di Java. Per inciso, l'essenziale di Java da sapere per approcciarsi ad Andorid è ben poco essenziale e consiste in:
  1. nozioni basilari: variabili, tipi primitivi, identificatori, costanti, stringhe, operazioni aritmetiche e logiche
  2. nozioni basilari di programmazione strutturata: istruzioni di controllo, cicli, metodi statici (grossolanamente: simili alle funzioni in linguaggi come il C)
  3. array mono e multidimensionali, operazioni su di essi
  4. ricorsione
  5. nozioni fondamentali di programmazione a oggetti: classi, metodi, incapsulamento ed information hiding, ereditarietà, polimorfismo
  6. classi astratte, interfacce
  7. eccezioni e loro gestione
  8. stream e file
  9. un po' di strutture dati (collection)
Non è invece richiesta la conoscenza di Swing e/o JavaFX (per la creazione delle GUI), sebbene un'occhiatina sarebbe il caso di darcela.
Dopo aver fatto un po' di esperienza su tutto questo (voglio dire minimo 3 mesi? meglio 6...), allora ci si avvicina ad Android.
Ciao, non concordo con quanto detto da te, ma premetto che su molte cose sono punti di vista, mi spiego meglio:
1) Android non è un linguaggio di programmazione bensì un sistema operativo esattamente come hai detto(leggerezza nel parlato mia), ma siccome nel linguaggio comune si dice "programmare android" o "programmare per android" o "programmare su android" si tende a trattare android come un linguaggio, in virtù anche del fatto che molte librerie standard sono proprie di android e di nessun altro linguaggio e ciò lo dimostra il package d'appartenenza:
import android.content.*;
import android.graphics.*;
import android.net.*;
import android.os.*;
import android.support.*;
import android.view.*;
import android.widget.*;

Ragion per cui potevo certamente esprimermi meglio e chiedo scusa, presterò maggiore attenzione :)
Per quanto riguarda il discorso delle servlet: esse sono classi java, ragion per cui, come fatto anche lato android, ho parlato in modo molto semplicistico, mi sembrava scontato dire che sono classi java(ergo lato server ovviamente).
"android usa adapter e fragment per per mostrare i layout, java le servlet."
Tu probabilmente avrai avuto da ridire con questa frase, ma sia chiaro(e pensavo lo fosse in modo molto più generico e semplicistico) che intendevo dire: android tramite le activity, gli adapter ed i fragment esegue il setContentView o l'inflate per mostrare un layout, mentre java mostra genericamente le jsp tramite una servlet e la request(in genere tramite il requestDispatcher).
Ti devo dare totalmente ragione per il tuo terzo punto in quanto non sapevo si potessero usare oltre al java per un app android SOLO la triade HTML CSS Javascript. non ho neanche citato gli altri linguaggi perchè per sviluppare su android il java è la scelta ottimale(facilità, documentazione e supporto per integrare lib esterne).
Per quanto riguarda i libri non sono del tutto d'accordo: come già anticipato nella risposta i libri java sono ovviamente un paio di mondi al di sopra dei libri "all-in-one android-java", ma se studi da qualche buono libro android si riescono a ricavare abbastanza nozioni, ma dipende dai libri. Ce ne sono davvero tanti e io ne ho letti 3 di cui uno ha abbastanza teoria di java. Sono un po' in disaccordo con quanto hai detto sull'essenziale java da sapere per fare android:
secondo me non ci sono argomenti fissi da sapere: dipende sempre dall'app che si vuole fare, ad esempio nei miei sviluppi android non sono mai serviti array(ho sempre preferito le collection e le reputo molto più importanti come argomento ma è un parere), non mi sono mai serviti i file(ovviamente dipende sempre dall'app che si vuol creare) ma soprattutto non mi è mai servita la ricorsione che è una scelta implementativo propria. Torno a ripetere che bisogna fissare degli obiettivi e poi si parla di argomenti, ma siamo sicuramente d'accordo che un buon libro java è la cosa migliore da consigliare ad un novizio così da coprire al meglio tutti gli argomenti ed avere una conoscenza a 360° del linguaggio che male non fa MAI. Se mi permetti un'ultima osservazione poi: swing è totalmente deprecato da anni, javaFX invece lo trovo di per sè verboso ma soprattutto inutile per android che ha un ottimo supporto per gli sviluppi delle UI. Grazie per la critica, devo sicuramente rivedere il mio modo di parlare!
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,668
11,452
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Trovo quantomeno singolare la tua osservazione sulla ricorsione: è vero che nella pratica si usa raramente, ma fa parte del bagaglio culturale di qualunque programmatore che voglia/possa definirsi tale. Poi se si usa o no è un altro discorso.

Ricorsione a parte, mi sembra di capire che non hai mai affrontato Java in modo "organico"; i punti da 1. a 9. del mio precedente post sono le nozioni minime da sapere per programmare a oggetti in Java SE. Diversamente si hanno delle lacune disastrose: non è questione di sapere "Java essenziale per Android", il punto è che non ci si può permettere di ignorare quegli argomenti, sempre che si voglia programmare seriamente.

E' piuttosto bizzarra la tua affermazione "non mi sono mai serviti i file"... stiamo parlando di programmazione o no? Quale programmatore non ha bisogno prima o poi di usare i file? Anche se scrivi il gioco più stupido del mondo come il tris, per salvare lo stato della partita devi farlo per forza su un file!
Il primo obiettivo è SAPER PROGRAMMARE, in almeno un linguaggio di programmazione (per es. Java) usando strumenti/API che ti mette a disposizione.
E poi scusa, Java ti semplifica la vita in modo decisivo: maneggiare i file è questione di poche istruzioni, non c'è nessuna scusa per non affrontare l'argomento.

Mi sa che l'unica cosa su cui concordiamo in pieno è che, in ottica Android, JavaFX/Swing sono inutili.
Tuttavia Swing è tutt'altro che morto: Oracle ha già chiarito che non verranno fatti miglioramenti a Swing e che il futuro è di JavaFX, ma le API Swing restano parte integrante di JavaSE, non sono deprecate e non lo saranno ancora molto a lungo.
 
Ultima modifica:

Fausto Di Iorio

Nuovo Utente
104
9
Trovo quantomeno singolare la tua osservazione sulla ricorsione: è vero che nella pratica si usa raramente, ma fa parte del bagaglio culturale di qualunque programmatore che voglia/possa definirsi tale. Poi se si usa o no è un altro discorso.

Ricorsione a parte, mi sembra di capire che non hai mai affrontato Java in modo "organico"; i punti da 1. a 9. del mio precedente post sono le nozioni minime da sapere per programmare a oggetti in Java SE. Diversamente si hanno delle lacune disastrose: non è questione di sapere "Java essenziale per Android", il punto è che non ci si può permettere di ignorare quegli argomenti, sempre che si voglia programmare seriamente.

E' piuttosto bizzarra la tua affermazione "non mi sono mai serviti i file"... stiamo parlando di programmazione o no? Quale programmatore non ha bisogno prima o poi di usare i file? Anche se scrivi il gioco più stupido del mondo come il tris, per salvare lo stato della partita devi farlo per forza su un file!
Il primo obiettivo è SAPER PROGRAMMARE, in almeno un linguaggio di programmazione (per es. Java) usando strumenti/API che ti mette a disposizione.
E poi scusa, Java ti semplifica la vita in modo decisivo: maneggiare i file è questione di poche istruzioni, non c'è nessuna scusa per non affrontare l'argomento.

Mi sa che l'unica cosa su cui concordiamo in pieno è che, in ottica Android, JavaFX/Swing sono inutili.
Tuttavia Swing è tutt'altro che morto: Oracle ha già chiarito che non verranno fatti miglioramenti a Swing e che il futuro è di JavaFX, ma le API Swing restano parte integrante di JavaSE, non sono deprecate e non lo saranno ancora molto a lungo.
Come avevo anticipato sono scelte implementative: so cosa sono, so come si utilizzano e ho già utilizzato tutti gli argomenti citati, ma in ambito di sviluppi android non è obbligatorio nè sempre utile avvalersi della ricorsione e dei files. Io ad esempio preferisco fare quanto più affidamento possibile su variabili di un database per salvare uno stato o (se il gioco fa affidamento alla connessione internet) avvalersi di un servizio rest, l'importante è comunque cercare di non appesantire troppo con la creazione di files visto che i giochi con tutte le immagini, sprites e/o modelli già pesano. Ovvio che in alcuni casi sono necessari. Il problema è che da un punto di vista pratico alcuni degli argomenti citati sono totalmente inutili(sempre parlando in ottica android): la ricorsione, per quanto sia un algoritmo affermato, o la si usa o no; io so cos'è e non la uso eppure non mi sono mai trovato in difetto nè a lavoro nè in progetti privati. L'utilizzo dei files in android lo evito quanto più possibile per mantenere le risorse utilizzate quanto meno ingombranti possibili. VERISSIMO è che in molti casi sono necessari, OBBLIGATORIO è conoscerli. Io stesso ritengo un ignorante che non ha mai fatto uso di buffer, strem, reader, scanner, IOUtils o quant altro si preferisca infatti non ho detto che non bisogna conoscerli, ma solo che non mi sono mai serviti nel caso della ricorsione e che non mi sono mai serviti i files ma ho specificato che dipende dall'app che si vuol fare. Io per lo più lavoro nella programmazione lato web in java ed ho alcune app android che fanno uso di servizi rest per recuperare dati da un db esposti mediante php. Capirai che nel mio caso è puramente opzionale l'utilizzo dei files(fatta eccezione per la cache che per definizione obbliga ad utilizzarli). Comunque la discussione credo si stia decentrando troppo, io volevo solo dire che l'utilizzo di molti argomenti del java non sarà mai messa in pratica lato android ma sono pienamente d'accordo(e l'ho anche detto) che se si vuol fare una cosa per lavoro o per la vita anche a scopo ricreativo allora va fatta bene studiando ogni punto del linguaggio. Ultima nota: conosci ZK? lo trovo nettamente più efficace di SWNG, sebbene relegato all'utilizzo lato web. per le GUI in ambiente standalone non parlo perchè mi ha fatto sempre un po' schifo come le gestisce java(sia swing che javaFX) pertanto le ho studiate e applicate solo in maniera didattica.
 
Stato
Discussione chiusa ad ulteriori risposte.

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili