DOMANDA Quali strumenti/linguaggi studiare per sviluppare App per Android

Pubblicità

pixelpix

Utente Attivo
Messaggi
18
Reazioni
1
Punteggio
25
Buongiorno a tutti,
Sono parecchi anni che non mi cimento più con la programmazione ma comunque resto sempre un programmatore. In passato ho lavorato con diversi linguaggi C, C++, C#, un poco di Java ecc. (ho omesso quelli più datati). Questo per farvi capire che non sono un novellino ma solo che sono parecchio arrugginito.
Ho avuto l'idea per un progetto e vorrei svilupparla creando un'app per sistema Android. Quello che quindi mi sono chiesto è: da dove comincio?
Ho letto in giro vari post e ho trovato che si parla di Java, Kotlin, Flutter, ecc. Capirete quindi che mi sono trovato abbastanza disorientato anche perché vorrei capire quali tra questi linguaggi è quello più indicato da studiare per poi sviluppare l'app che ho in mente.
Per darvi qualche altro elemento di riflessione e per aiutarvi a consigliarmi al meglio voglio chiarire alcune cose.
L'app non è un gioco. Dovrebbe solo effettuare delle elaborazioni in base a delle scelte fatte dall'utente su dati presenti in un database relazionale. Quest'ultimo, essendo un database open è accessibile a chiunque ovviamente utilizzando le apposite specifiche di consultazione. Oltre a questo l'app dovrà anche salvare dei dati in locale e anche in questo caso dovrà crearsi un proprio database.
Ovviamente per rappresentare il tutto e per gestirlo si dovrà creare un'apposita interfaccia grafica visuale.
Infine non mi interessa che l'app sia cross-plattform. Voglio svilupparla esclusivamente per Android.
Insomma queste sono le caratteristiche dell'app.
Tornando quindi alla domanda più importante: in base a quanto ho detto quale sarebbe secondo voi il percorso e la soluzione migliore per perdere minor tempo possibile e per avere tutte le conoscenze necessarie allo sviluppo di questa app?
 

potresti considerare Qt allora


oppure Xamarin in questo caso

un poco di Java

Java è il linguaggio di default del SDK di Android

a cui va aggiunta la recente introduzione di Kotlin che, comunque, è Java-like e fatto apposta per essere appreso rapidamente dai programmatori Java


che è il framework multi-platform attualmente più in voga e ci sono fondate ragioni per questo successo

è basato sul linguaggio Dart, che doveva essere il sostituto di Javascript nei piani di Google

dopo il flop ( c'era da aspettarserlo visto che nessuno è riuscito a fare le scarpe a Javascript ) è stato adottato dal team Flutter ed è diventato il linguaggio di programmazione preferito per questo framework

riguardo Flutter, è un ottimo framework e imho estremamente semplice da apprendere e molto produttivo

e supporta Android, iOS, Windows, Linux, macOS, il web

L'app non è un gioco.

nel qual caso bisognerebbe puntare a ben altro, tipo Unity, Unreal, Cocos e compagnia

Dovrebbe solo effettuare delle elaborazioni in base a delle scelte fatte dall'utente su dati presenti in un database relazionale.

il che mi fa venire in mente la possibilità di creare un'app ibrida con un framework javascript

ma credo devieresti troppo dal modus operandi della programmazione classica

Quest'ultimo, essendo un database open è accessibile a chiunque ovviamente utilizzando le apposite specifiche di consultazione. Oltre a questo l'app dovrà anche salvare dei dati in locale e anche in questo caso dovrà crearsi un proprio database.

Se ti va bene ( nel senso di non avere particolarità necessità ) Sqlite è quello comunemente usato in ambito Android come dbms locale.

Tornando quindi alla domanda più importante: in base a quanto ho detto quale sarebbe secondo voi il percorso e la soluzione migliore per perdere minor tempo possibile e per avere tutte le conoscenze necessarie allo sviluppo di questa app?

Ovviamente partire con un linguaggio già conosciuto. Purtroppo a ciò bisognerà aggiungere tutte le API necessarie alla realizzazione dell'interfaccia e l'interazione col database.

Lo studio di un framework può essere più fastidioso dello studio di un linguaggio e portare via parecchio tempo. Ma è inevitabile.

Se conosci Java, vai di Android SDK che è la strada più corta. Potresti deviare su Kotlin volendo. Almeno dargli uno sguardo per capire se ti porterà via troppo tempo studiarlo. Ma ripeto che è stato fatto apposta per essere appreso rapidamente da chi già conosce Java.

Dai pure un'occhiata a qualche esempio in Flutter, dato che il framework è fatto molto bene e ti consente di realizzare GUI molto rapidamente. Il problema è che Dart è sicuramente più distante da Java di quanto lo sia Kotlin. Tuttavia credo che possa essere più semplice imparare ad utilizzare Flutter rispetto alle API native di Android.
 
Come suggerito da pabloski, trovo Flutter un progetto molto interessante e secondo me vale la pena darci un'occhiata. L'unica controindicazione e' che al momento e' meno diffuso di Java/Kotlin e quindi potresti trovarti in difficolta' in casi particolari in cui non esistono librerie gia' pronte. Per esempio, noi abbiamo dovuto metterlo temporaneamente da parte a causa della mancanza di Mapbox... Esisteva solo una versione non ufficiale che al tempo era abbastanza limitata.

Al netto di cio', fatta una ricerca preliminare per capire quali strumenti sono necessari, credo che personalmente tenterei la strada Flutter. Se non fosse percorribile per qualsiasi motivo, allora sicuramente Kotlin (o Java, se ti senti piu' a tuo agio).
 
Per caso, lurkando sul forum, ho trovato la risposta che diedi ad un altro utente 2 anni fa. La domanda era più o meno simile https://forum.tomshw.it/threads/sviluppo-app-android.798655/#post-7471835

Perdonate la mia fissazione con Flutter :D

Comunque sia, come anche scritto da icox, dovresti essere in una botte di ferro, dato che la tua app sarà una GUI con un layer per comunicare con un db remoto e uno locale. Quello locale consiglio di implementarlo con Sqlite.

Ed è tutta roba ampiamente supportata da Flutter.
 
Buongiorno a tutti,
Sono parecchi anni che non mi cimento più con la programmazione ma comunque resto sempre un programmatore. In passato ho lavorato con diversi linguaggi C, C++, C#, un poco di Java ecc. (ho omesso quelli più datati). Questo per farvi capire che non sono un novellino ma solo che sono parecchio arrugginito.
Ho avuto l'idea per un progetto e vorrei svilupparla creando un'app per sistema Android. Quello che quindi mi sono chiesto è: da dove comincio?
Ho letto in giro vari post e ho trovato che si parla di Java, Kotlin, Flutter, ecc. Capirete quindi che mi sono trovato abbastanza disorientato anche perché vorrei capire quali tra questi linguaggi è quello più indicato da studiare per poi sviluppare l'app che ho in mente.
Per darvi qualche altro elemento di riflessione e per aiutarvi a consigliarmi al meglio voglio chiarire alcune cose.
L'app non è un gioco. Dovrebbe solo effettuare delle elaborazioni in base a delle scelte fatte dall'utente su dati presenti in un database relazionale. Quest'ultimo, essendo un database open è accessibile a chiunque ovviamente utilizzando le apposite specifiche di consultazione. Oltre a questo l'app dovrà anche salvare dei dati in locale e anche in questo caso dovrà crearsi un proprio database.
Ovviamente per rappresentare il tutto e per gestirlo si dovrà creare un'apposita interfaccia grafica visuale.
Infine non mi interessa che l'app sia cross-plattform. Voglio svilupparla esclusivamente per Android.
Insomma queste sono le caratteristiche dell'app.
Tornando quindi alla domanda più importante: in base a quanto ho detto quale sarebbe secondo voi il percorso e la soluzione migliore per perdere minor tempo possibile e per avere tutte le conoscenze necessarie allo sviluppo di questa app?
Ciao,
se vuoi sviluppare prettamente per Android e non ti interessa il cross-platform allora impara Kotlin che ora è il linguaggio più supportato. Google oramai gli esempi li fa prettamente in Kotlin.
Poi sviluppi in modo più rapido rispetto a Java
Nulla vieta di usare Java :) (anche perchè kotlin gira su una JVM)
Io sviluppo in Android in Java, ma sto imparando Kotlin perchè mi semplifica la vita

Cross-platform ti consiglio flutter, framework di google.
Qui dovrei imparare il linguaggio Dart.
 
Pubblicità
Pubblicità
Indietro
Top