I sentivo che il passaggio alla lega di titanio dal classico era giusto per me. Sentivo che il classico sviluppo di Titanium non era strutturato abbastanza né mi forniva abbastanza indicazioni su un buon modo per strutturare la mia app. Alloy fornisce una struttura MVC al tuo codice, ma la versione classica non ti impediva completamente di eseguire il rollover o di utilizzare una delle librerie della community con funzionalità MVC. A questo proposito, credo che direi che è più flessibile usare Classic su Alloy, perché puoi scegliere come realizzare la tua struttura, piuttosto che inserirla nella struttura della Titanium Alloy. Detto questo, non mi sono mai sentito limitato da Alloy.
Come si sviluppa in titanio è la vostra preferenza. Non esiste una risposta corretta all'uso di Alloy o all'utilizzo classico. Se lavori meglio per te, usalo. Sento che l'approccio strutturato alla separazione di display e business logic di Alloy mi fornisce una struttura che per me ha senso quando si sviluppa un'app.
Non ho trovato che Alloy sia meno flessibile del classico. Dato che puoi usare il codice classico nel tuo progetto Alloy, puoi praticamente fare tutto in lega che puoi in classico.Sono sicuro che sono alcuni casi limite, che non ho incontrato, in cui uno potrebbe essere più semplice di un altro quando si codifica un tipo specifico di applicazione. Può essere che il classico sia meno flessibile perché non penso che tu possa utilizzare Alloy nella tua app classica. Non credo che il compilatore saprebbe come costruirlo.
Ogni volta che valuto se userò una particolare tecnologia, realizzo una serie di mini programmi sperimentali per assicurarmi che tutte le funzionalità siano presenti per i requisiti della mia applicazione. Se sento che non si adatta o è troppo difficile raggiungere tali requisiti, non uso questa tecnologia. Ad esempio, quando sono passato a Alloy, mi sono assicurato che la libreria Ti.Paint continuasse a funzionare. Se non lo facessi, userò comunque il classico.
Proprio come classico, ci sono i controlli per Alloy. Esiste già un modulo per menu scorrevoli basato su Alloy piuttosto carino. Io uso la libreria Ti.Paint, che esisteva prima di Alloy e non è un modulo specifico Alloy.
http://gitt.io/ è un ottimo punto di partenza per la ricerca di moduli/widget in lega.
index.xml
<Alloy>
<Window id="win">
<View id="content" />
</Window>
</Alloy>
1) Nel file index.js, si avrebbe la seguente per utilizzare la codifica classica per manipolare una vista in lega.
index.js
var myview = Ti.UI.createView({
backgroundColor: 'green'
});
$.content.add(myview);
2) non credo che è possibile utilizzare il codice lega nel progetto classico. Come accennato in precedenza, è necessario eseguire la conversione sul codice e un progetto classico probabilmente salterà tale fase del processo.
3) Stai chiedendo se è possibile includere o rimuovere parti del codice in base a se è specifico per Android o IOS? Probabilmente potresti farlo con le istruzioni include/require posizionate strategicamente tra le istruzioni if (Ti.Platform.osname == "android") per richiedere o meno il codice che desideri. Se il codice è per Android, richiedi questo, se è per IOS, richiede in quello.
4) Non è mai stato tentato di verificare le prestazioni tra progetti classici e basati su Alloy. Penso che, dal momento in cui sono passato e non ho mai notato un problema che disturba me o i miei clienti, non ci ho mai pensato molto. È del tutto possibile che Alloy generi automaticamente codice che in alcuni casi è più lento. Non l'ho mai notato.
Sento che l'efficienza che ottengo nell'usare Alloy supera di gran lunga quella di una preoccupazione immediata. Inoltre, se sentissi che non mi piaceva il modo in cui un particolare controllo veniva creato attraverso Alloy, potevo usare il codice classico e definire io stesso il controllo avendo il controllo di una definizione da un progetto classico.