View Full Version : App mobile cross platform
ingframin
18-10-2016, 08:05
Buon giorno,
in questi giorni mi è venuta un'idea per un app per la gestione della spesa/economia domestica.
Cosí mentre elaboro l'idea e cerco di mettere su carta cosa l'applicazione deve effettivamente fare, ho cominciato a fare ricerca su come implementarla.
Or incomincian le dolenti note
a farmisi sentire; or son venuto
là dove molto pianto mi percuote.
In pratica io non ho mai fatto un'app. Ho fatto un disastroso tentativo di un'app per Android mai neanche arrivata a buon punto.
Quindi vi snocciolo i problemi, vediamo se sapete darmi qualche consiglio:
1) Quanto è complicato fare una app cross platform? Dando una veloce occhiata ai tutorial e alla documentazione online ho come l'impressione che dal punto di vista dell'architettura le cose siano diverse tra iOS e Android...
2) Vale la pena considerare Xamarin? Non sono un provetto programmatore C# ma sicuramente mi viene meglio che non javascript ad esempio...
3) È pura follia considerare C++?
4) Sapete consigliarmi qualche libro a riguardo di sviluppo di App cross platform?
Stavo pensando di comprare questo:
Xamarin Mobile Application Development: Cross-platform C# and Xamarin.forms Fundamentals di Daniel Hermes
oppure:
Mastering Xamarin.Forms: Build Rich, Maintainable Multiplatform Native Mobile Apps With Xamarin.forms di Ed Snider
oppure:
Seven Mobile Apps in Seven Weeks: Native Apps, Multiple Platforms di Tony Hillerson
5) Giusto per curiosità: Siccome sono piuttosto fluente in python, vale la pena provare Kivy?
A voi la parola :read:
In attesa degli esperti (sono interessato pure io alle eventuali risposte), in teoria CREDO potresti usare anche solo Qt (e quindi C++), ma non so, all'atto pratico, quanto si possa essere produttivi (già il C++ di suo è quello che è). :D
ingframin
18-10-2016, 12:29
In attesa degli esperti (sono interessato pure io alle eventuali risposte), in teoria CREDO potresti usare anche solo Qt (e quindi C++), ma non so, all'atto pratico, quanto si possa essere produttivi (già il C++ di suo è quello che è). :D
In effetti non avevo pensato a Qt...
Xamarin è figo per mille motivi, uno tra tutti è che molte librerie sono pre wrappate in C#... Questa è da studiare bene, grazie della dritta :)
In effetti non avevo pensato a Qt...
Xamarin è figo per mille motivi, uno tra tutti è che molte librerie sono pre wrappate in C#... Questa è da studiare bene, grazie della dritta :)
Qui (http://doc.qt.io/qt-5/supported-platforms.html) trovi le piattaforme che supportano Qt. Non so dirti molto di più, se non che l'IDE (QtCreator) non sembra male.
Xamarin è molto interessante, ma ancora, non so all'atto pratico se sia davvero così bello come sembra o se abbia della magagne.
P.S.: riguardo Qt stai molto attento alla licenza, se vuoi distribuire la tua app. :)
ingframin
18-10-2016, 16:07
In principio non ho nessun problema a distribuire la mia app con licenza GPL, certo devo capire come funziona. Avere i sorgenti allegati non è molto pratico, dovrei fare un repository su GitHub o qualcosa del genere... Se l'app ha successo avere il codice open source è un problema, ma è anche vero che a quel punto posso anche comprare la licenza di QT.
Sent from my iPhone using Tapatalk
cdimauro
18-10-2016, 20:41
Buon giorno,
in questi giorni mi è venuta un'idea per un app per la gestione della spesa/economia domestica.
Cosí mentre elaboro l'idea e cerco di mettere su carta cosa l'applicazione deve effettivamente fare, ho cominciato a fare ricerca su come implementarla.
Or incomincian le dolenti note
a farmisi sentire; or son venuto
là dove molto pianto mi percuote.
In pratica io non ho mai fatto un'app. Ho fatto un disastroso tentativo di un'app per Android mai neanche arrivata a buon punto.
Quindi vi snocciolo i problemi, vediamo se sapete darmi qualche consiglio:
1) Quanto è complicato fare una app cross platform? Dando una veloce occhiata ai tutorial e alla documentazione online ho come l'impressione che dal punto di vista dell'architettura le cose siano diverse tra iOS e Android...
Esatto.
2) Vale la pena considerare Xamarin? Non sono un provetto programmatore C# ma sicuramente mi viene meglio che non javascript ad esempio...
Val la pena.
3) È pura follia considerare C++?
No, ma con un linguaggio managed hai sicuramente meno rogne e miglior produttività.
4) Sapete consigliarmi qualche libro a riguardo di sviluppo di App cross platform?
Stavo pensando di comprare questo:
Xamarin Mobile Application Development: Cross-platform C# and Xamarin.forms Fundamentals di Daniel Hermes
oppure:
Mastering Xamarin.Forms: Build Rich, Maintainable Multiplatform Native Mobile Apps With Xamarin.forms di Ed Snider
oppure:
Seven Mobile Apps in Seven Weeks: Native Apps, Multiple Platforms di Tony Hillerson
Qui è meglio chiedere a Unrealizer.
5) Giusto per curiosità: Siccome sono piuttosto fluente in python, vale la pena provare Kivy?
A voi la parola :read:
Non so come sia messo Kivy, perché è da un bel pezzo che non ne controllo lo stato, ma all'epoca non aveva supporto alle mappe, GPS, e sensori.
Se non ti servono, puoi provare con Kivy, con cui dovresti procedere molto più velocemente rispetto agli altri strumenti.
sottovento
19-10-2016, 06:55
Scusate l'intromissione, ma l'argomento e' interessante.
Anch'io avrei necessita' di sviluppare una app, principalmente per Android ma se fosse cross-platform non mi dispiacerebbe, anche se la portabilita' non e' il target principale.
Stavo valutando Cordova, che finora non e' stato menzionato: c'e' un motivo? Sapete qualcosa che non so?
Sono ancora alle fasi preliminari e posso ancora decidere cosa/come fare. Le specifiche non sono ancora chiare, l'unica cosa che so e' che si trattera' di un'applicazione di Realta' Aumentata.
Stavo pensando di sviluppare in maniera nativa oppure usando Cordova, ma qui non e' stato nemmeno menzionato e la cosa mi ha un po' preoccupato...
ingframin
19-10-2016, 09:01
Io sono un super principiante in ambito app e non conosco Cordova...
Xamarin me lo sono trovato tra capo e collo quando ho installato visual studio community qualche giorno fa e avevo pensato di provarlo.
Cordova usa Java?
cdmauro, Kivy ha ancora problemi con la camera su iOS che è l'unico sensore che mi serve :cry:
Io sono un super principiante in ambito app e non conosco Cordova...
Xamarin me lo sono trovato tra capo e collo quando ho installato visual studio community qualche giorno fa e avevo pensato di provarlo.
Cordova usa Java?
cdmauro, Kivy ha ancora problemi con la camera su iOS che è l'unico sensore che mi serve :cry:
Ho letto qualcosina su Xamarin e sembra davvero un ottimo ambiente. Gli esperti però dovrebbero/potrebbero chiarire in quali casi ci si può fermare alle UI realizzate con Xamarin.Forms e quando, invece, andare su Xamarin.Android e Xamarin.iOS.
sottovento
19-10-2016, 10:06
Ho letto qualcosina su Xamarin e sembra davvero un ottimo ambiente. Gli esperti però dovrebbero/potrebbero chiarire in quali casi ci si può fermare alle UI realizzate con Xamarin.Forms e quando, invece, andare su Xamarin.Android e Xamarin.iOS.
Ho letto qualcosa anch'io, ma di segno opposto: la piu' importante (per me) e' che sembra che Xamarin generi applicazioni inutilmente grandi (parecchi MB per app triviali), e che spesso e' lento.
E' importante rimarcare che non l'ho mai usato, riporto solo quello che ho letto.
Riguardo Cordova, ho letto che permette di sviluppare in javascript creando l'HMI con i tool standard html5/js/css...
E' inoltre dotato di librerie che permettono l'accesso alle varie funzionalita' quali segnale gps, mappe, ecc. In teoria quindi Cordova dovrebbe permettere di fare tutto o quasi.
Ho letto anche molte critiche a Cordova, molte comprensibili, soprattutto riguardo la manutenibilita' e la possibilita' di creare interfacce che siano 100% native (non lo sono, evidentemente, visto che l'HMI e' praticamente una pagina HTML). Se quindi sei alla ricerca di un framework che ti permetta di avere il look and feel nativo, Cordova deve essere scartato.
Visto che ci siamo: ho visto ARToolKit che permette di creare applicazioni di Realta' Aumentata ed e' anche lui cross-platform; qualcuno ne sa niente?
(Scusa, non credo che sia interessante per te, ma visto che si parlava di sviluppo mobile...)
Ho letto qualcosa anch'io, ma di segno opposto: la piu' importante (per me) e' che sembra che Xamarin generi applicazioni inutilmente grandi (parecchi MB per app triviali), e che spesso e' lento.
E' importante rimarcare che non l'ho mai usato, riporto solo quello che ho letto.
Riguardo Cordova, ho letto che permette di sviluppare in javascript creando l'HMI con i tool standard html5/js/css...
E' inoltre dotato di librerie che permettono l'accesso alle varie funzionalita' quali segnale gps, mappe, ecc. In teoria quindi Cordova dovrebbe permettere di fare tutto o quasi.
Ho letto anche molte critiche a Cordova, molte comprensibili, soprattutto riguardo la manutenibilita' e la possibilita' di creare interfacce che siano 100% native (non lo sono, evidentemente, visto che l'HMI e' praticamente una pagina HTML). Se quindi sei alla ricerca di un framework che ti permetta di avere il look and feel nativo, Cordova deve essere scartato.
Visto che ci siamo: ho visto ARToolKit che permette di creare applicazioni di Realta' Aumentata ed e' anche lui cross-platform; qualcuno ne sa niente?
(Scusa, non credo che sia interessante per te, ma visto che si parlava di sviluppo mobile...)
Onestamente non so dire nulla riguardo Cordova, quindi mi astengo. Rimarrebbe da capire se la differenza sia solo nel "look and feel", o se C# e il framework Xamarin permettano di "fare di più" rispetto a HTML5/JS/e compagnia cantante.
sottovento
19-10-2016, 10:45
Onestamente non so dire nulla riguardo Cordova, quindi mi astengo. Rimarrebbe da capire se la differenza sia solo nel "look and feel", o se C# e il framework Xamarin permettano di "fare di più" rispetto a HTML5/JS/e compagnia cantante.
Si, ho anch'io quel dubbio, purtroppo ne so troppo poco.
Dimenticavo: c'e' anche Codename One, che "promette" di essere cross platform e di sviluppare con java:
https://www.codenameone.com/
Il modo di operare pero' mi piace poco: i package per i vari sistemi vengono generati dal loro sito web. Si sviluppa, si fa l'upload del progetto e si ottengono i pacchetti di installazione per le piattaforme. Mah
[Kendall]
19-10-2016, 10:54
Per quanto riguarda la mia esperienza, limitata ad applicativi amatoriali seppur per nulla banali, ho avuto modo di fare il porting di una app che avevo inizialmente scritto solo per ios su android (che adesso in realtà è diventata la piattaforma principale sulla quale mi sto concentrando).
Io mi sono affidato ai framework nativi e quello che posso dirti è che mi sono trovato molto bene a lavorare in parallelo con swift (ios) e kotlin (android). A me kotlin ha proprio cambiato la vita nel programmare su android (mal sopporto java).
Sono due linguaggi che hanno parecchio feeling tra di loro quindi la traduzione della codebase ha portato via davvero poco tempo rispetto a quello che ho invece impiegato per la realizzazione delle interfacce grafiche (anche se, pure qui, c'è da dire che il tempo maggiore è stato legato al realizzare il concept dell'interfaccia, poi la realizzazione se hai una certa confidenza con i framework richiede relativamente poco tempo).
Per quanto riguarda i framework per la realizzazione di app multipiatta credo che la problematica più importante sia relativa al fatto che non ti permettono di realizzare app con un look & feel fedele in tutto e per tutto a quelli delle varie piattaforme.
Comunque, giusto per capire:
1) Si tratta di una app per uso personale o hai intenzione di distribuirla sui vari store?
2) Il modello dati, comunicazione e in generale tutto quello che non concerne direttamente l'UI sarebbe molto esteso?
3) Quanto è importante per te mantenere il look & feel delle varie piattaforme?
SaintTDI
19-10-2016, 11:12
Buon giorno,
in questi giorni mi è venuta un'idea per un app per la gestione della spesa/economia domestica.
Cosí mentre elaboro l'idea e cerco di mettere su carta cosa l'applicazione deve effettivamente fare, ho cominciato a fare ricerca su come implementarla.
Or incomincian le dolenti note
a farmisi sentire; or son venuto
là dove molto pianto mi percuote.
In pratica io non ho mai fatto un'app. Ho fatto un disastroso tentativo di un'app per Android mai neanche arrivata a buon punto.
Ciao :) anche io ho da sempre in mente di fare un App di bilancio familiare, dove si possono inserire tutte le spese ed entrate, ma che sia MULTI UTENTE! Purtroppo ci sono tantissime app che gestiscono il tuo denaro, ma nessuna di esse è Multi Utente, cosa veramente ridicola visto che se parliamo di bilancio familiare, è anche normale essere 2 o più persone a gestire i soldi di casa.
Purtroppo anche se Perito informatico, sono al livello 0,5 come esperienza su linguaggi di programmazione moderni (purtroppo lavoro da 12 anni su Siebel che è completamente diverso).
Ma quello che pensavo di fare io, per renderlo multi piattaforma, ovvero, utilizzarla su iOS (il più importante per me visto che io e mia moglie abbiamo 2 iPhone) e PC (quindi sito Web) e Android, è fare l'app appunto solamente Web. Cosi utilizzarla da iOS e Android viene gratuita... ovviamente con accorgimenti grafici necessari.
Alla fine per un app di bilancio familiare, non serve niente di prioritario dei sistemi iOS e Android, si potrebbe essere figo l'implementazione del Touch Id e Touch 3D su iOS... ma alla fine meglio che funziona la ciccia sotto :D
scusa se mi sono dilungato e magari c'entra poco con il tuo discorso... però ti potrebbe essere d'aiuto come spunto ;)
tomminno
19-10-2016, 11:38
Ciao :) anche io ho da sempre in mente di fare un App di bilancio familiare, dove si possono inserire tutte le spese ed entrate, ma che sia MULTI UTENTE! Purtroppo ci sono tantissime app che gestiscono il tuo denaro, ma nessuna di esse è Multi Utente, cosa veramente ridicola visto che se parliamo di bilancio familiare, è anche normale essere 2 o più persone a gestire i soldi di casa.
Purtroppo anche se Perito informatico, sono al livello 0,5 come esperienza su linguaggi di programmazione moderni (purtroppo lavoro da 12 anni su Siebel che è completamente diverso).
Ma quello che pensavo di fare io, per renderlo multi piattaforma, ovvero, utilizzarla su iOS (il più importante per me visto che io e mia moglie abbiamo 2 iPhone) e PC (quindi sito Web) e Android, è fare l'app appunto solamente Web. Cosi utilizzarla da iOS e Android viene gratuita... ovviamente con accorgimenti grafici necessari.
Alla fine per un app di bilancio familiare, non serve niente di prioritario dei sistemi iOS e Android, si potrebbe essere figo l'implementazione del Touch Id e Touch 3D su iOS... ma alla fine meglio che funziona la ciccia sotto :D
scusa se mi sono dilungato e magari c'entra poco con il tuo discorso... però ti potrebbe essere d'aiuto come spunto ;)
Parli di multiutenza, ma i cellulari sono monoutente, a meno che qualcuno non sia disposto a mandare le informazioni sul suo bilancio familiare ad un tuo server per cui più app installate su smartphone differenti riescano ad accedere agli stessi dati.
Sarà per questo che tutte le app sono monoutente? ;)
SaintTDI
19-10-2016, 11:44
Parli di multiutenza, ma i cellulari sono monoutente, a meno che qualcuno non sia disposto a mandare le informazioni sul suo bilancio familiare ad un tuo server per cui più app installate su smartphone differenti riescano ad accedere agli stessi dati.
Sarà per questo che tutte le app sono monoutente? ;)
no perchè molte app cmq usano un Sync su un loro server. Anzi, molte si possono anche connettere direttamente al tuo conto bancario e prendere direttamente li le informazioni di bonifici, prelievi bancomat e via dicendo :)
Quindi non è un problema di dati che girano su internet, ok giustamente c'è poca gente che collega queste App ai propri conti bancari, ci mancherebbe... ma che i dati che inserisco io a mano, vanno a finire su un server, sinceramente poco mi importa, visto che possono essere benissimo dati fittizi.
sottovento
19-10-2016, 12:28
;44135178']Per quanto riguarda la mia esperienza, limitata ad applicativi amatoriali seppur per nulla banali, ho avuto modo di fare il porting di una app che avevo inizialmente scritto solo per ios su android (che adesso in realtà è diventata la piattaforma principale sulla quale mi sto concentrando).
Io mi sono affidato ai framework nativi e quello che posso dirti è che mi sono trovato molto bene a lavorare in parallelo con swift (ios) e kotlin (android). A me kotlin ha proprio cambiato la vita nel programmare su android (mal sopporto java).
Sono due linguaggi che hanno parecchio feeling tra di loro quindi la traduzione della codebase ha portato via davvero poco tempo rispetto a quello che ho invece impiegato per la realizzazione delle interfacce grafiche (anche se, pure qui, c'è da dire che il tempo maggiore è stato legato al realizzare il concept dell'interfaccia, poi la realizzazione se hai una certa confidenza con i framework richiede relativamente poco tempo).
Per quanto riguarda i framework per la realizzazione di app multipiatta credo che la problematica più importante sia relativa al fatto che non ti permettono di realizzare app con un look & feel fedele in tutto e per tutto a quelli delle varie piattaforme.
Comunque, giusto per capire:
1) Si tratta di una app per uso personale o hai intenzione di distribuirla sui vari store?
2) Il modello dati, comunicazione e in generale tutto quello che non concerne direttamente l'UI sarebbe molto esteso?
3) Quanto è importante per te mantenere il look & feel delle varie piattaforme?
E' molto interessante.
Mi viene una domanda: nel caso di modifiche (bug fix piuttosto che estensioni) sei comunque obbligato a fare le stesse cose sulle due piattaforme, giusto?
So che magari non e' un grosso problema, ma e' solo per capire
ingframin
19-10-2016, 12:42
Vorrei distribuirla sui vari store senza ombra di dubbio. Ancora sono a livello di definizione dell'idea, non ho ancora un modello di dati su carta. Ho avuto l'idea domenica scorsa e siamo a mercoledì, mi serve del tempo per rifinire il concetto, stabilire un minimo di funzionalità di base e cominciare il progetto vero e proprio.
Non ho idea di quanto sia complicato o importante mantenere il look and feel nativo. Scoprirlo fa parte del mio mini studio di fattibilità. Cosa hai in mente?
Sent from my iPhone using Tapatalk
malatodihardware
19-10-2016, 13:51
Personalmente mi sono trovato di fronte allo stesso problema ed alla fine ho scelto Cordova con il framework Ionic2, principalmente per una questione di comodità visto che sono molto più pratico con JS e per la versatilità del css nella veste grafica.
Sono ancora in fase di sviluppo ma le prestazioni non sembrano male, almeno su dispositivi di fascia medio alta (testato su Nexus 5, 5X e iPhone 6S), il grande vantaggio è che con Intel XDK puoi provare direttamente la app sui telefoni semplicemente installando App Preview e la compilazione è fatta da intel stessa, senza bisogno di installare altri tool sul pc o avere un Mac.
Dimenticavo: altro grande vantaggio è che si ha già anche la versione web, indipendente dalla piattaforma e fruibile con qualsiasi browser.
[Kendall]
19-10-2016, 13:52
E' molto interessante.
Mi viene una domanda: nel caso di modifiche (bug fix piuttosto che estensioni) sei comunque obbligato a fare le stesse cose sulle due piattaforme, giusto?
So che magari non e' un grosso problema, ma e' solo per capire
Te lo confermo, le modifiche devono essere apportate ad entrambi i sorgenti (a rendere più rapida la cosa c'è la similitudine tra i due linguaggi, ma si tratta sempre di linguaggi compilati diversamente, con librerie "core" diverse. Kotlin alla fine dei discorsi rimane pur sempre un linguaggio per JVM).
ingframin
20-10-2016, 10:49
Personalmente mi sono trovato di fronte allo stesso problema ed alla fine ho scelto Cordova con il framework Ionic2, principalmente per una questione di comodità visto che sono molto più pratico con JS e per la versatilità del css nella veste grafica.
Sono ancora in fase di sviluppo ma le prestazioni non sembrano male, almeno su dispositivi di fascia medio alta (testato su Nexus 5, 5X e iPhone 6S), il grande vantaggio è che con Intel XDK puoi provare direttamente la app sui telefoni semplicemente installando App Preview e la compilazione è fatta da intel stessa, senza bisogno di installare altri tool sul pc o avere un Mac.
Dimenticavo: altro grande vantaggio è che si ha già anche la versione web, indipendente dalla piattaforma e fruibile con qualsiasi browser.
Io non so nulla di CSS, HTML e Javascript... Ho ancora ia brividi se penso a quante madonne ho tirato dietro a javascript e CSS per fare il sito del negozio alla sorella della mia ragazza...
Se l'alternativa a C# è Javascript mi tengo volentieri C# :D
L'approccio nativo non è malaccio ma mi serve un mac sempre a disposizione mentre con Xamarin posso fare la compilazione da remoto su quello della mia ragazza.
Intel XDK supporta altri linguaggi oltre a Javascript?
malatodihardware
20-10-2016, 18:24
Javascript o Typescript (estensione di Javascript tipizzata)
Tra l'altro XDK lo uso solo per test e compilazione, per lo sviluppo preferisco la GUI di Visual Studio, anche perché il backend è con WebApi C# e quindi ho tutto sott'occhio.
Teoricamente visto che anche VS supporta Cordova potrebbe essere possibile debuggare e compilare con quello, ma su XDK è tutto molto più automatizzato.
Dal punto di vista user experience nativa, migliori prestazioni e piena compatibilità (lasciando perdere i linguaggi) secondo me la soluzione ideale è Xamarin per ios/android/wp, una versione web ottimizzata per uso da PC, una web per mobile (per coprire le piattaforme minori come BB etc..).
Usare Xamarin (anche se prestazionalmente e con UI nativa superiore a Cordova) secondo me implica il fatto di dover comunque realizzare una versione web, anche solo per poter essere utilizzata da PC o dispositivi su cui non si vuole installare nulla.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.