View Full Version : Linguaggi Xamarin
E' possibile utilizzare solo C#? Oppure si può utilizzare anche qualche altro linguaggio?
Grazie in anticipo
ingframin
21-10-2016, 14:13
Sicuramente l'ambiente supporta F#.
Non ho provato però Visual basic, quindi per quello non so dirti.
Python o Ruby ovviamente no?
ingframin
24-10-2016, 23:09
Purtroppo no. Python non va d'accordo col mobile.
Sent from my iPhone using Tapatalk
quindi solo C#
con Xamarin è possibile modellare un app, e poi in un solo colpo poterla distruire su Android, iOS e W10 ?
ingframin
25-10-2016, 15:55
quindi solo C#
con Xamarin è possibile modellare un app, e poi in un solo colpo poterla distruire su Android, iOS e W10 ?
Non esattamente.
Xamarin ti crea 4 progetti in C#, uno per ogni piattaforma + uno per la parte in comune.
In pratica la business logic va nella parte comune (model e controller per intenderci, se usi MVC) mentre l'interfaccia (view) e le cose specifiche di ogni sistema vanno nei progetti dedicati.
Una volta che tutto è configurato puoi fare build per W10M e Android su windows e per iOS su mac (con Xamarin studio) o da windows attivando la microsoft remote connection sul mac.
In pratica, puoi fare build per iOS solo su una macchina Apple (come da regole Apple).
su discorso iOS su Mac nessun problema, è ovvio
"Xamarin ti crea 4 progetti in C#, uno per ogni piattaforma + uno per la parte in comune."
viene però gestito in automatico?
ingframin
25-10-2016, 17:11
Non capisco che intendi con "viene gestito in automatico". La configurazione del progetto te la fa visual studio quando compili il wizard all'avvio, ma poi il codice per ogni piattaforma devo scriverlo tu.
Sent from my iPhone using Tapatalk
ok, va riscritto per ogni piattaforma?
cdimauro
25-10-2016, 21:23
Solo il lato presentazione.
ah ecco, quindi il layout va eseguito nelle 3 "modalità"
P.S. nemmeno con Ruby si può fare niente con Xamarin?
ingframin
27-10-2016, 17:50
ah ecco, quindi il layout va eseguito nelle 3 "modalità"
P.S. nemmeno con Ruby si può fare niente con Xamarin?
Ma il sito di Xamarin lo hai aperto almeno una volta?
Sent from my iPhone using Tapatalk
pabloski
31-10-2016, 10:05
ah ecco, quindi il layout va eseguito nelle 3 "modalità"
P.S. nemmeno con Ruby si può fare niente con Xamarin?
Nope. Ruby ha i suoi framework per mobile, tipo Rubymotion, Rhodes e Ruboto. Python ha Kivy. Lua ha Corona.
E c'e' un linguaggio + framework di cui mai nessuno parla, ovvero HaXe. Modellato sulla scia di Flash ( ma senza i noti bug ).
E dulcis in fundo, per app non particolarmente demanding, perche' non consideri React Native o Nativescript? Il primo sfrutta React, il secondo Angular. E ripeto "per app non particolarmente demanding". Niente giochi! Ma per quelli ci sono Cocos, Unity e compagnia.
molto gentile,
andando O.T. anche QT con C++ dovrebbe andare bene ovunque
pabloski
31-10-2016, 13:11
molto gentile,
andando O.T. anche QT con C++ dovrebbe andare bene ovunque
Qt/C++ lo puoi usare per sviluppare su qualsiasi piattaforma supportata da Qt ( e sono molte ).
Gli altri linguaggi li puoi usare, ma il setup e il deployment sono roba da nevrosi.
Se consideri che Qml e' alquanto maturo, e' evidente che puoi farci belle cosine. Chiaro che codice complesso, critico, che deve avere buone performance, non lo puoi scrivere in Javascript ma devi usare per forza C++.
Allo stato attuale imho la situazione per lo sviluppo multipiattaforma mobile e' questa:
- performance alte --> HaXe, Qt, Xamarin, vari framework Ruby/Lua, C++ con o senza Qt
- performance medio/basse -> React native, Nativescript
C'e' una libreria alquanto interessante, ovvero Sciter, che sfrutta Html/Ecmascript per l'UI e il resto lo si implementa in uno dei linguaggi che hanno bindings ( C++, Python, Go e qualche altro ). Il problema e' che per ora non e' disponibile per Android e Windows Phpne.
Ti consiglio di nuovo di farti un giro sul sito di HaXe, perche' e' uno strumento che merita.
giusto per concludere
Xamarin
oppure C++ + QT. Per quest' ultimo che IDE è opportuno utilizzare?
pabloski
31-10-2016, 15:36
giusto per concludere
Xamarin oppure C++ + QT.
Io direi Qt, ma altri direbbero Xamarin. Personalmente scelgo cosi' perche':
1. conosco C# molto poco
2. leggo in giro di vari bug ( alcuni non proprio banali ) in Xamarin e addirittura mi e' capitato di imbattermi in gente che lamentava peggioramenti da quando MS ha acquisito Xamarin
3. essendo WP praticamente un fiasco commerciale, ho dubbi sulla longevita' di Xamarin, oltretutto minacciato da Html5 che MS sta supportando pesantemente. E MS non e' timida nel buttare a mare tecnologie di sviluppo, lasciando i programmatori in braghe di tela ( vedi MFC, Forms, WPF che e' osteggiato da Html5 ).
Spero di non generare flame wars :D
Per quest' ultimo che IDE è opportuno utilizzare?
Beh, Qtcreator visto che e' quello ufficiale. Esiste un plugin per Visual Studio e pure CLion supporta Qt. Pero' non so a che livello stanno rispetto a Qtcreator.
Quindi Qtcreator con C++ e QT scelta migliore
Per testare un app per Android c' è la possibilità di installare il "simulatorino" integrato? (Qtcreator verrà installato su Ubuntu)
Quindi Qtcreator con C++ e QT scelta migliore
Per testare un app per Android c' è la possibilità di installare il "simulatorino" integrato? (Qtcreator verrà installato su Ubuntu)
http://doc.qt.io/qt-5/androidgs.html
anche Ruby accennavate al fatto che non ha niente da poter offrire su tutte le piattaforme?(tipo C++ e QT)
pabloski
03-11-2016, 10:55
anche Ruby accennavate al fatto che non ha niente da poter offrire su tutte le piattaforme?(tipo C++ e QT)
In che senso? Esistono framework per lo sviluppo multipiattaforma MOBILE per Ruby. Su PC, essendo un linguaggio interpretato, si usano tecniche simili al freezing di Python, per cui e' possibile realizzare applicazione per Windows, Linux e macOS.
open-source c' è qualcosa?
Inoltre non si arriva ai livelli di QT e C++ che con un layout e un codice è operativo su tutto
pabloski
05-11-2016, 17:51
Opensource o gratis? Rubymotion e' gratis nella versione Starter. Rhodes/Rhomobile e' opensource https://developer.zebra.com/community/rhomobile-suite
E anche questi ti consentono di scrivere un'app completamente multi-piattaforma, a differenza di Xamarin che ti costringe a codare piu' volte l'UI.
quindi layout+codice funziona su Android, iOS e W10M in un colpo solo?
Sia su ARM che X86?
pabloski
06-11-2016, 13:22
quindi layout+codice funziona su Android, iOS e W10M in un colpo solo?
Sia su ARM che X86?
I framework Ruby sono fatti per questo. Guarda tu stesso https://github.com/rhomobile/rho-samples
Ma, a parte Xamarin, gli altri puntano sull'avere una base di codice unica e multipiattaforma, senza che sia necessario implementare piu' volte l'UI.
anche Kivy sembra discretamente interessante
Però sia Ruby e Python con Kivy, funzionano su "tutto" (ARM, x86 ecc.....)?
pabloski
07-11-2016, 12:09
anche Kivy sembra discretamente interessante
Però sia Ruby e Python con Kivy, funzionano su "tutto" (ARM, x86 ecc.....)?
Non ti seguo. Tutti gli strumenti citati servono per realizzare applicazioni per Android e iOS ( e in alcuni casi pure per WP ). Pertanto DEVONO supportare ARM e alcuni supportano x86, primo perche' e' un supporto facile da ottenere dato che questi tool vengono dal mondo x86, secondo perche' esistono anche device mobile x86. Comunque questi ultimi sono in quantita' tali da essere trascurabili.
Kivy e' interessante, ma ripeto che non ha un widget set, soprattutto non uno che imita lo stile nativo delle varie piattaforme supportate. E questo e' un problema per alcune applicazioni.
alla fine nessuna soluzione è migliore delle altre, tutte hanno problemi più o meno gravi
pabloski
08-11-2016, 11:33
alla fine nessuna soluzione è migliore delle altre, tutte hanno problemi più o meno gravi
Beh e' cosi' per ogni cosa nel ramo dell'ingegneria. Bisogna valutare i trade-off. Si parte dal progetto che si vuole realizzare e si sceglie la tecnologia piu' adatta.
Comunque ( avendo spulciato questa roba per lungo tempo ) ti posso dare indicazioni di massima sulla strada da seguire:
- per app di produttivita' ti conviene usare React Native o NativeScript+Angular, oppure Qt...ovviamente i primi due hanno il vantaggio di essere basati su Javascript, per cui niente C++, possibilita' di condividere codice tra front-end e back-end
- per i giochi e' bene puntare su Unity, Cocos2D ( se il gioco e' 2D ), Kivy, Source, Unigine
Se gli sviluppatori hanno competenze C# e .NET, allora e' opportuno considerare Xamarin. Idem, se gli sviluppatori provengono dal mondo Flash/AIR, allora e' bene considerare HaXe.
Riguardo quest'ultimo, imho, e' un ottimo strumento e supporta tutte le maggiori piattaforme del momento.
alla fine QT con C++ non credo sia così deleterio, poi sicuramente React Native altra buona soluzione (giochi non interessano al momento)
Xamarin unico neo, è il dover riprodurre più volte l' interfaccia grafica, ma comunque dovrebbe essere un buon prodotto
Che file di output forniscono QT e Xamarin per distribuirlo sulle varie architetture?
pabloski
08-11-2016, 15:33
alla fine QT con C++ non credo sia così deleterio
E perche' dovrebbe esserlo? Se si ha la pazienza e l'abilita' di programmare proficuamente in C++, non vedo dove stia il problema.
poi sicuramente React Native altra buona soluzione (giochi non interessano al momento)
E' basato su React e Javascript, cioe' e' rapido realizzare programmi, puoi sfruttare competenze largamente diffuse.
Xamarin unico neo, è il dover riprodurre più volte l' interfaccia grafica, ma comunque dovrebbe essere un buon prodotto
Le UI multiple possono essere un problema in alcuni casi, perche' si tratta pur sempre di mantenere una base di codice piu' grande.
Inoltre ho letto vari articoli e commenti sui forum che dipingono un quadro non proprio roseo in termini di stablita'.
Che file di output forniscono QT e Xamarin per distribuirlo sulle varie architetture?
L'output e' fissato dalla piattaforma non dall'ambiente di sviluppo. Android vuole un APK, altrimenti non t'installa niente. iOS vuole gli IPA.
ok, molto gentile
per W10M semplicemente exe
In ogni caso, apk, ipa ecc..... è possibile costruirli in automatico al termine dello sviluppo?
Ciao,
scusa ma chi ti ha detto che con xamarin devi creare un interfaccia apposita per ogni piattaforma? Non è proprio così!
Xamarin Forms ti permette di sviluppare principalmente per :
android
ios
window 8
windows phone 8.1
uwa (w10 32/64; mobile; raspberry)
Con una unica interfaccia i cui elementi vengono tramutati in elementi nativi specifici della piattaforma. E volendo puoi intervenire la dove serve (se serve) in maniera specifica.
Il risultato finale è un file specifico (apk ecc) per ogni piattaforma.
pabloski
08-11-2016, 18:14
In ogni caso, apk, ipa ecc..... è possibile costruirli in automatico al termine dello sviluppo?
Un tool di sviluppo serio te lo permette. Altrimenti a che servirebbero tutte queste trappole?
pabloski
08-11-2016, 18:17
Ciao,
Xamarin Forms ti permette di sviluppare principalmente per :
C'e' pero' sempre da valutarne la convenienza e per le seguenti motivazioni:
1. forms e' un ulteriore layer di codice, quindi binari piu' grandi, performance ridotte
2. forms fa un buon lavoro nel rispetto del look&feel nativo, ma non ottimo
3. i bug di xamarin forms
4. e' inevitabile il confronto con .NET e quindi WPF, e viene da chiedersi "perche' non c'e'?"
Si, io mi trovo benissimo, e francamente non ho riscontrato particolari problemi come quelli citati. Magari dipende da come/cosa devi fare.
Ovviamente devi avere basi solide per quanto riguarda MVVM e XAML, anche se, come faceva notare pabloski, a volte una cosa che sei abbituato a fare in un certo modo ad esempio in wpf in Xamarin devi usare altra tecnica, ma se hai ben chiaro l'obbiettivo, e di quella cosa ne hai capito il senso, è facile trovare una soluzione. Inoltre la comunità è abbastanza grande.
pabloski
10-11-2016, 10:57
Mi sa che ti conviene provare, altrimenti passerai settimane a chiedere opinioni senza venirne mai a capo.
Come al solito in questo mestiere, e' tutta una questione di trade-off.
Sei un programmatore .NET/C#? Allora la prima strada e' Xamarin. Ovviamente considerando che WPF non c'e'.
Sei un programmatore Python? Hai poche chance in verita', visto che Kivy si presta per i giochi ma non tanto bene per app generaliste.
Sei un programmatore Ruby? Rhodes, Ruboto, e compagnia.
Sei un web developer? React Native and friends.
E poi ci sono i bug, che trovi ovunque. E c'e' il tipo di applicazione che potrebbe risentire profondamente delle limitazioni dello strumento scelto. Di recente ho dovuto reimplementare un software in .NET/WPF, che era stato realizzato con Qml, perche' c'e' bisogno di visualizzare grandi quantita' di dati tramite una normale tabella. Il problema e' che la ListView in Qml fa pena dal punto di vista delle performance. E no, volevo uno stile di UI moderno, ragion per cui non potevo usare la QListView di Qt classico.
Per cui opta prima per la tecnologia che conosci meglio, poi per quella che aumenta la produttivita' ( e i framework Javascript aiutano ), poi per quella che offre le migliori prestazioni.
E la dimensione/competenza della comunita' e' un altro fattore importante. La ListView di Qml non mi si aggiornava dopo aver eliminato dei record dal modello. Ho cercato sul forum, su Google, ma nieinte, sembrava esserci il vuoto cosmico. Ho dovuto studiarmi un po' la situazione e addivenire ad un hack ( bruttino ) che tamponasse il problema. Ecco, queste perdite di tempo alcuni non le tollerano.
sicuramente ben detto,
però C++ e QT non li abbatterei a priori
di Xamarin esiste un elenco di problemi noti riferito a Xamarin forms?
pabloski
10-11-2016, 19:54
però C++ e QT non li abbatterei a priori
Ovviamente no. Ma scriveva un programma in C++ non e' mai stato il massimo del divertimento.
Io prediligo linguaggi di alto livello, tipo Ruby, Python, volendo JS, Go.
di Xamarin esiste un elenco di problemi noti riferito a Xamarin forms?
Non che io sappia. Mi e' capitato di leggere vari articoli negli ultimi 2 anni, nonche' di lurkare sui forum del supporto.
Comunque non mi fisserei tanto sui bug. Se vuoi provare Xamarin fallo e testa in prima persona pregi e difetti di questa tecnologia.
solo ancora per curiosità, qualcuno ha provato Rhodes e Ruboto?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.