Autore Topic: Iniziare a Fare: linguaggi, framework, ambienti sviluppo  (Letto 881 volte)

Offline Pictor

  • Nuovo arrivato
  • *
  • Post: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Y300
  • Sistema operativo:
    Windows 7
Iniziare a Fare: linguaggi, framework, ambienti sviluppo
« il: 22 Novembre 2013, 14:10:14 CET »
Ciao a tutti! Sono appena arrivato :)

Sto cercando di capire come muovere i primi passi e su cosa orientarmi per iniziare a fare un pò di pratica.

I dubbi principali sono:

- quale linguaggio e/o framework utilizzare?
Ok, Java, ma tra le alternative cosa c'è di versatile e/o leggero e/o veloce?
Mi avevano parlato di Ruby OnRails come alternativa, ma credo abbia bisogno di girare su browser (quindi niente App standalone?)
Io in realtà provengo dal web e me la cavo più con html, css, javascript, più che con C#, Java, Perl (tutta roba che ho fatto ma mai approfonditamente).

- quale ambiente di sviluppo?
Svilupperò su un vecchio laptop non molto prestante. Eviterei ambienti di sviluppo eccessivamente pesanti (è molto che non li uso ma ricordo Visual Studio, Eclipse, non erano proprio leggeri).

- Per il design delle UI delle apps cosa suggerite?
XML grezzo? Ci sono tools versatili che velocizzano il design (anche roba drag'n'drop)? E in quali ambienti?

Infine

- Cosa ne pensate dell'utilizzo di software o portali web per lo sviluppo facilitato di applicazioni? (e qui i puristi si scateneranno!!)
Sono utili? Quanto sono limitati? Permettono poi la modifica/personalizzazione a mano del codice?

Mi farebbe piacere ricevere un suggerimento (o link a comparazioni già fatte) da chi è nel campo da un pò di tempo! :)

Non vorrei partire dalle basi basi (Hello World vari), progredire lentamente, e poi scoprire che c'erano interi framework o altro che potevano farmi concentrare più sulla parte Produttiva/Creativa piuttosto che perdermi nei meandri del codice (cosa che studierò e sviluppero con calma, nel tempo, avendoci a che fare).

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:Iniziare a Fare: linguaggi, framework, ambienti sviluppo
« Risposta #1 il: 22 Novembre 2013, 14:49:44 CET »
- quale linguaggio e/o framework utilizzare?
Ok, Java, ma tra le alternative cosa c'è di versatile e/o leggero e/o veloce?
Mi avevano parlato di Ruby OnRails come alternativa, ma credo abbia bisogno di girare su browser (quindi niente App standalone?)
Io in realtà provengo dal web e me la cavo più con html, css, javascript, più che con C#, Java, Perl (tutta roba che ho fatto ma mai approfonditamente).

Risposta rapida: nessuna vera alternativa.

Risposta lunga: Il modo canonico e completamente supportato di fare app è usare Java con SDK (app che girano nella Dalvik) o C++ con NDK (app ad altissime prestazioni). Ci sono alternative con altri linguaggi e framework, ma relativamente poco usate e comunque non supportate come i precedenti.

- quale ambiente di sviluppo?
Svilupperò su un vecchio laptop non molto prestante. Eviterei ambienti di sviluppo eccessivamente pesanti (è molto che non li uso ma ricordo Visual Studio, Eclipse, non erano proprio leggeri).

L'ambiente principale, molto rodato, ma che sarà progressivamente abbandonato nei prossimi anni, è Eclipse.
Un nuovo ambiente, ancora in beta, ma fortemente spinto e supportato, è Android Studio.

- Per il design delle UI delle apps cosa suggerite?
XML grezzo? Ci sono tools versatili che velocizzano il design (anche roba drag'n'drop)? E in quali ambienti?

Mi spiace dirtelo, ma scordati il disegno "visuale" delle interfacce. Qualcosa c'è, però non da' minimamente i risultati che vorresti.
Le UI dovrebbero essere pensate come se tu dovessi progettare un sito web in HTML+CSS. Piazzi di DIV, imposti margini, allineamenti e lasci che le dimensioni esatte siano definite dal framework.

Io di solito vado di XML grezzo e uso la parte visuale per controllare l'XML che ho scritto.

- Cosa ne pensate dell'utilizzo di software o portali web per lo sviluppo facilitato di applicazioni? (e qui i puristi si scateneranno!!)
Sono utili? Quanto sono limitati? Permettono poi la modifica/personalizzazione a mano del codice?

Dipende dal tuo obiettivo. Se è strettamente il "time-to-market" senza eccessive pretese di personalizzazione, puoi anche provare.

Non vorrei partire dalle basi basi (Hello World vari), progredire lentamente, e poi scoprire che c'erano interi framework o altro che potevano farmi concentrare più sulla parte Produttiva/Creativa piuttosto che perdermi nei meandri del codice (cosa che studierò e sviluppero con calma, nel tempo, avendoci a che fare).

Proposito legittimo il tuo: cercare qualcosa che ti porti velocemente all'obiettivo, possibilmente toccando meno codice possibile. Sinceramente non saprei quale framework consigliarti, perchè questo forum è dedicato proprio alla parte che vorresti evitare.  ;-)

A limite, se sei già "skilled" in web-apps, potresti provare con phonegap, dove programmi in HTML+CSS+JS.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Pictor

  • Nuovo arrivato
  • *
  • Post: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Y300
  • Sistema operativo:
    Windows 7
Re:Iniziare a Fare: linguaggi, framework, ambienti sviluppo
« Risposta #2 il: 22 Novembre 2013, 15:36:08 CET »
Grazie mille!
Risposte efficaci ed utilissime!   :-)

Risposta lunga: Il modo canonico e completamente supportato di fare app è usare Java con SDK (app che girano nella Dalvik) o C++ con NDK (app ad altissime prestazioni). Ci sono alternative con altri linguaggi e framework, ma relativamente poco usate e comunque non supportate come i precedenti.
Mmmmh... immaginavo ;)

Quindi rischio d'impelagarmi ad imparare roba su cui non troverò molte risorse, o che andranno a decadere in futuro...

Tra Java e C++ quali peculiarità ci sono? (premetto che praticamente non ho quasi mai programmato veramente con nessuno dei due)

Cioè, per me, Java ha sempre avuto senso per la portabilità (e poco senso per la prolissità e pesantezza), in ambito PC.
Ma C++ è più performante e più "classico"; quindi sarebbe forse la scelta preferita.

In ambito Android immagino che Java sia più supportato (e comunque veloce/ottimizzato) rispetto a C++.
Per quali vantaggi scegliere C++ ?
(escluso ovviamente l'ambito gaming; ed inoltre leggo che C++ crea applicazioni più grandi in termini di bytes)

Inoltre gli IDE tipo Android Studio, Eclipse, IntelliJ supportano solamente Java, no?

Ed, infine, se volessi fare la portabilità delle mie App verso iOS/iPhone non mi converrebbe sviluppare in C++?

edit:
java - Why shouldn't an Android app be written in C/C++ because you "simply prefer to program in C/C++"? - Stack Overflow

Ok, Java sembra la strada migliore (anche in previsione di un futuro lavorativo nel campo). Anche se ho sempre il dubbio su iOS (nonostante io sopporti poco lo smarphone Apple).

Citazione
Un nuovo ambiente, ancora in beta, ma fortemente spinto e supportato, è Android Studio.
Ho visto il video di presentazione e mi pare un ottimo ambiente, molto integrato, e abbastanza smart.
Sto cercando di capire da articoli vari quale sia il suo stato attuale (quanto sia beta, quanto manchi ad una stable, quanto crasha, quanto è consigliabile/sconsigliabile).

Eclipse un pò lo odio "a pelle".
IntelliJ invece, oltre ad esser la base di AStudio, è più stabile? E' "consigliabile"?

Citazione
Mi spiace dirtelo, ma scordati il disegno "visuale" delle interfacce. Qualcosa c'è, però non da' minimamente i risultati che vorresti.
Le UI dovrebbero essere pensate come se tu dovessi progettare un sito web in HTML+CSS. Piazzi di DIV, imposti margini, allineamenti e lasci che le dimensioni esatte siano definite dal framework.
Mmmh, al solito; la roba automatica non fa miracoli (o sicuramente sporca molto il codice).

Ho trovato roba tipo "App UI Design" che lavora direttamente su smartphone; dovrei provarlo per capire la qualità del risultato prodotto.

Citazione
Io di solito vado di XML grezzo e uso la parte visuale per controllare l'XML che ho scritto.

Dipende dal tuo obiettivo. Se è strettamente il "time-to-market" senza eccessive pretese di personalizzazione, puoi anche provare.
Voglio iniziare a far pratica, ma buttare giù i primi risultati in modo abbastanza veloce.
Questi prodotti li userei solo per creare una bozza "sporca" e lavorare su qualcosa di "pre-cotto" (passami il termine ;) ), personalizzando, smussando, e leggendo del codice già pronto (senza dovermi cercare/studiare ogni singolo metodo, da zero, prima di avere idea di come fare una cosa: dal semplice output, alle librerie base, all'inserimento di un bottone o una droplist).

Più che altro ho paura che prodotti del genere, oltre alla poca libertà, non ti permettano poi di importarti il tuo progetto nell'IDE per modificartlo e affinarlo a piacimento via codice.

Citazione
Proposito legittimo il tuo: cercare qualcosa che ti porti velocemente all'obiettivo, possibilmente toccando meno codice possibile. Sinceramente non saprei quale framework consigliarti, perchè questo forum è dedicato proprio alla parte che vorresti evitare.  ;-)
Beh, non lo disdegno certamente... anzi!!  ;-)
Se prendo il via sicuramente verrà fuori il mio spirito curioso, smanettone, pignolo; e finirò a fare tutto a manina (allo stesso modo con cui ho sempre odiato gli IDE in ambito web e preferendo sempre dei robusti editor di testo  :D )
Citazione
A limite, se sei già "skilled" in web-apps, potresti provare con phonegap, dove programmi in HTML+CSS+JS.
Ci dò un'occhiata!!  :-)

Post unito: 23 Novembre 2013, 12:03:29 CET
Mmmh, ho dato un'occhiata a PhoneGap, ma vedo che è un pò limitato nell'integrazione con il device. Rischio di sviluppare, poi voler interagire molto col device, e ritrovarmi impossibilitato.
E poi c'è il solito problema degli standard non seguiti alla lettera dai vari produttori che obbligano a debug e workaround vari.


Lo tengo in considerazione, proverò a farci qualcosa, ma credo che aspetterò di vedere cosa diventerà con il passaggio ad Adobe; quest'ultima di solito porta alla diffusione di massa, ma pure a prestazioni scarse (sono ancora un pò offeso per come mi hanno "rovinato" Flash :( ).
Eventualmente stavo vedendo anche Titanium che ha meno compromessi (come potenziale) anche se è più macchinoso (IDE dedicato, interfaccia grafica non in HTML/CSS).




Sto installando Android Studio. Mi sa che mi "rassegnerò" a Java (che è comunque un valore aggiunto ;) ).


L'importante sarà capire i modi per velocizzare il lavoro: velocizzare il design della UI (ma mi hai detto che è da farsi a mano), e sfruttare librerie/framework già pronti senza stare a reinventare la ruota (come ogni volta mi ritrovo a fare) o a perdersi tra i conflitti tra librerie (altra cosa che mi ritrovo spesso a fare, soprattutto con JS).
« Ultima modifica: 23 Novembre 2013, 12:03:29 CET da Pictor, Reason: Merged DoublePost »