Autore Topic: Cosa mi serve per iniziare?  (Letto 1985 volte)

Offline Pecas

  • Nuovo arrivato
  • *
  • Post: 47
    • Mostra profilo
  • Dispositivo Android:
    Samsung GS2
Cosa mi serve per iniziare?
« il: 20 Agosto 2012, 20:49:38 CEST »
Salve a tutti,
è poco più di 1 giorno che ho messo mano sul SDL di Android con Eclipse quindi scusate se dovessi dire cose inesatte. Ho conoscenza di programmazione php + db ma non di Java.

Il mio progetto nasce dalla volontà di imparare a programmare su Android e come progetto iniziale mi sono prefisso l'idea di creare un programma che mostrasse a video una View iniziale con 6 bottoni e a ogni bottone associare un Evento. In realtà ciò che accadrebbe dovrebbe essere la copia di un sito funzionante che sto sviluppando. Percui al click di un determinato bottone si dovrebbe aprire una seconda finestra che mostri 1 tabella ricavata da un file xml scaricato dal mio sito. Il file xml si autogenera al momento del richiamo, se il richiedente è chiaramente autorizzato. Pertanto devo prevedere anche la possibilità di effettuare una login sul programma di Android. Il tutto già funziona tramite il browser del cellulare ma che gusto ci sta a creare un programma che fa aprire il browser? Nessuno.

Percui... da dove posso iniziare?
Ho trovato un esempio funzionante su come usare una ListView dinamica che da un array genera 6 Items. Il fatto, ma questo posso vedere se riesco a farlo da solo, è che l'esempio carica delle label sui bottoni. Io vorrei caricare anche delle immagini. Vedrò come fare altrimenti voi sapete dirmi come fare? Poi come associo a questi Items Dinamici un evento specifico? Esiste una specie di "Select case item_1" apri ... che cosa gli posso far aprire? Un altro file xml (giusto?) nel quale creo una classe e all'evento onCreate dico di andarsi a prendere il file xml da remoto? So, ho letto, che devo dare delle permission ad Android per internet(corretto?). Ma per la login come faccio? Come genero un mini-form utente e pass per fare la login su un sito (apache2+php+zend+acl)? Avete una guida da linkare?

Ultima cosa... creare un menù dove mettere semplicemente ESCI e ABOUT. Questi se ho capito bene posso farli statici generando un menù direttamente da Eclipse.

Che cosa mi potete consigliare di leggere?

GRAZIE! e scusate ancora se sono confuse le cose che ho scritto.
 

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Cosa mi serve per iniziare?
« Risposta #1 il: 20 Agosto 2012, 21:58:45 CEST »
Intanto benvenuto.  :-)

Dunque, l'applicazione che descrivi puó sembrare semplice, venendo dal mondo php+db, ma in ambito android é relativamente complessa. Non tanto per la difficoltà in sè, ma perché l'approccio in android é completamentediverso. Al punto che é letteralmente impossibile rispondere a tuttele domande che hai posto, se parti da zero in android.

La cosa piú corretta da fare é effettivamente leggere qualche libro introduttivo, per esempio il Carli, oppure quello che scarichi gratuitamente da punto-informatico.it

E infine, per prendere confidenza con l'ambiente e il linguaggio, ci sono diversi tutorial ben fatti qua sul forum. Non sono assolutamente tempo perso.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Pecas

  • Nuovo arrivato
  • *
  • Post: 47
    • Mostra profilo
  • Dispositivo Android:
    Samsung GS2
Re:Cosa mi serve per iniziare?
« Risposta #2 il: 21 Agosto 2012, 00:22:03 CEST »
Ciao e Grazie sia per avermi spostato nella sezione corretta ma soprattutto per la celere risposta.

Dunque, io non ho ben capito la risposta nel senso che non capisco principalmente se è una limitazione di Android o se è un problema di competenza su Java.
Nel caso in cui sia Android a non poter fare quello che ho in mente beh qualcuno ha fatto qualcosa di simile basta pensare a tutte quelle apps che richiedono la login per funzionare, da qualche parte andranno pure a loggare. Per quanto mi riguarda io potrei fare, parlo di logica, un post della login e password sulla pagina php che mi gestisce la login. Nel caso ritorni false non mi ha autenticato. Oppure altrimenti potrei sfruttare il browser di default di Android(che mi pare sia proprio di default preinstallato ce lo hanno tutti insomma). Effettuo la login da lì e lo tengo nascosto. Finito il download del file xml di dimensioni irrisorie, killo la connessione insieme al browser. E' sporca come cosa ma mi potrebbe servire per mantenere una connessione attiva. Il tutto avviene tra l'altro in SSL con certificato vero.

Per quanto riguarda lo scarico e la lettura del file XML ricordo di aver trovato un esempio(forse questo: http://www.anddev.it/index.php/topic,101.0.html) in merito e cmq se non lo scarica significa che l'utente non è stato autenticato, o perchè non ha mai effettuato il login oppure perchè non ha le autorizzazioni. In entrambi i casi sulla app di Android, per me non cambia. Non caricherò il dato gestendo poi l'errore.

Leggo pure che Android ha le classi per JSON. Io non sono pratico di questo ma più di jQuery che uso spesso nel sito. Credo che si possa fare. L'unica cosa è che forse lo scarico dell'XML mi garantisce di capire cosa non va, JSON mi restituirebbe una stringa da analizzare. Boh non saprei. Devo verificare anche la velocità e la compatibilità. E cmq il file xml lo potrei riutilizzare nel caso in cui la connessione non sia disponibile, sito non raggiungibile o connessione assente, per leggere le info scaricate offline. Un JSON perderebbe di efficacia. Cmq i siti che una volta effettuato il login scaricano le info come fanno? Che usano per interrogare i DB che risiedono altrove?

Se invece il problema è sui 6 bottoni allora non capisco. La label me l'ha scritta. Se al posto della label gli metto il riferimento a un file(in qualche modo da scoprire) non va? Forse immagine + label non si può fare? no problem per me i bottoni sono sempre quelli quindi creo un'immagine con la label integrata. Mi pare già di averne fatte di queste prove per il sito.

Per i manuali vedo di scaricare quello di punto-informatico.it e vedo che riesco a farci  :-)

Grazie ancora!!!!!

Offline Pecas

  • Nuovo arrivato
  • *
  • Post: 47
    • Mostra profilo
  • Dispositivo Android:
    Samsung GS2
Re:Cosa mi serve per iniziare?
« Risposta #3 il: 21 Agosto 2012, 01:08:42 CEST »
Per il form di login potrei partire da questo video:
<a href="http://www.youtube.com/watch?v=wW3nQzw6PnY" target="_blank">http://www.youtube.com/watch?v=wW3nQzw6PnY</a>

E modificare ciò che m'interessa. Dopotutto lui fa esattamente quello che serve a me e in php :D . Non so bene cosa significhino "s:...." e "l:...." ecc ecc... ma lo scoprirò  ;-)
In questo modo la mia App riuscirebbe a mantenere una sessione attiva?


E con l'esempio 2 di questo link posso creare il gridview con 6 bottoni:
http://www.mkyong.com/android/android-gridview-example/

Sta solo iniziare a mettere tutto assieme  o_O

Che ne pensi?
Grazie!
« Ultima modifica: 21 Agosto 2012, 01:24:06 CEST da Pecas »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Cosa mi serve per iniziare?
« Risposta #4 il: 21 Agosto 2012, 09:24:14 CEST »
Sintetizzando al massimo, quello che volevo scrivere è che si può far tutto, ma è completamente diverso da come sei abituato a fare in php+mysql (a meno che tu non metta un browser nell'applicazione e poi faccia tutto come web app), non solo per il linguaggio, ma per gli strumenti che hai a disposizione.

Comunque, il mio consiglio è di leggere le fondamenta dell'android framework, capire cosa sono le activity, il relativo ciclo di vita, gli intent, come si definiscono ed usando i principali elementi di interfaccia utente. Se hai poca voglia di leggere, puoi provare i tutorial più semplici, facendo riferimento alla documentazione/libro per quello che non capisci.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Pecas

  • Nuovo arrivato
  • *
  • Post: 47
    • Mostra profilo
  • Dispositivo Android:
    Samsung GS2
Re:Cosa mi serve per iniziare?
« Risposta #5 il: 21 Agosto 2012, 15:26:31 CEST »
Aggiornamento.

Al momento ho una bell'applicazione che non fa nulla.
Ho:
- 6 bottoni sfruttando la GridView;
- 4 layout che vengono richiamati dai bottoni
- 1 menù che appare solo nella main, cliccando sul tasto Menù del dispositivo, con 3 item(sync, about, exit) che se cliccati fanno il loro lavoro tranne sync che dovrebbe fare qualcosa ma fa altro.

Quello che non capisco è perchè il menù non si visualizza con le icone e soprattutto perchè è in grigetto. Vedo che negli esempi è a 2/4 bottoni nero su 2 righe e invece a me è un menù verticale. Credo sia un problema di style ma non so bene. Non vorrei che fosse anche un'incompatibilità tra la versione di SDK minimo. Io ho settato:
Codice (Java): [Seleziona]
        android:minSdkVersion="11"
        android:targetSdkVersion="15"
Va bene? Basta questo?

Grazie!

Offline Pecas

  • Nuovo arrivato
  • *
  • Post: 47
    • Mostra profilo
  • Dispositivo Android:
    Samsung GS2
Re:Cosa mi serve per iniziare?
« Risposta #6 il: 21 Agosto 2012, 19:12:50 CEST »
Aggiornamento (posso continuare a scrivere nel post?)

Oltre a quanto scritto sopra ora ho anche un form di login completamente funzionante che effettua l'autenticazione correttamente sul server anche in HTTPS su cui gira apache2 + php. Il video postato sopra non mi è servito proprio. Ho studiato e letto su altri script. Per il momento sono soddisfatto.

Non ho compreso il problema al menù ma ciò tempo.

Ora provo il download e lettura dei file xml scaricati dopo l'autenticazione e la gestione delle policy  ;-)

Sono davvero soddisfatto del mio lavoro.  8-)

Offline Pecas

  • Nuovo arrivato
  • *
  • Post: 47
    • Mostra profilo
  • Dispositivo Android:
    Samsung GS2
Re:Cosa mi serve per iniziare?
« Risposta #7 il: 21 Agosto 2012, 22:10:36 CEST »
Prossimi obiettivi:
  • download, lettura e visualizzazione del/dei files xml
  • gestione della scadenza della sessione che sul sito è di 30 min se non fa nulla l'utente
  • gestione delle autorizzazioni un minimo anche nel programma visto che per il momento mi attengo a quelle rilasciate solo dal sito
  • gestione delle variabili globali in modo da poter richiamare variabili anche da altre parti (es la login dell'utente una volta autenticato)
  • storicizzazione dei files xml in una cartella di tmp in modo da garantire un minimo di lettura delle info offline
  • abbellimento grafico del programma
  • test forzato su tutte le macroaree dui vari dispositivi Android

Se procedo a questi ritmi forse per fine sett una mini bozza del mio primo programma riesco a metterla in test  8-)

Offline rs94

  • Utente normale
  • ***
  • Post: 227
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Cosa mi serve per iniziare?
« Risposta #8 il: 22 Agosto 2012, 15:08:19 CEST »
Per mia esperienza la fase di test porta via un sacco di tempo, c'è sempre qualcosa che non funziona come vorresti :D

Comunque, sperando di non dire una cavolata: il menù lo vedi in verticale perchè da android 3.0 honeycomb i menù sono così (anche su ics).

Su gingerbread invece vedi i menù che hai descritto tu, su due righe ecc...

Per avere quelli "vecchi" prova a settare la minsdk e targetsdk a 8 o 9. (non so se funzioni)


Complimenti per la velocità di apprendimento :)
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline Pecas

  • Nuovo arrivato
  • *
  • Post: 47
    • Mostra profilo
  • Dispositivo Android:
    Samsung GS2
Re:Cosa mi serve per iniziare?
« Risposta #9 il: 22 Agosto 2012, 16:41:06 CEST »
Per mia esperienza la fase di test porta via un sacco di tempo, c'è sempre qualcosa che non funziona come vorresti :D
Si ma infatti è una bozza.

Citazione
Per avere quelli "vecchi" prova a settare la minsdk e targetsdk a 8 o 9. (non so se funzioni)
Non funziona. Però alcuni programmi visualizzano correttamente i menù con le icone  :-(

Citazione
Complimenti per la velocità di apprendimento :)
Grazie. Trovo che, a parte il linguaggio Java che per me è completamente nuovo, i costrutti siano Molto simili al Zend Framework che uso per programmare in PHP. Percui ci sono Molte similitudini soprattutto nella divisione dei compiti nelle macro aree di Android.