I Ich fand, dass der Wechsel zu Titanium Alloy von Classic für mich richtig war. Ich hatte das Gefühl, dass die klassische Titanium-Entwicklung nicht strukturiert genug war, und gab mir nicht genügend Anleitung für eine gute Strukturierung meiner App. Alloy stellt Ihrem Code eine MVC-Struktur zur Verfügung, die Sie jedoch nicht vollständig davon abhalten konnten, Ihre eigenen zu rollen oder eine der Community-Bibliotheken mit MVC-Funktionen zu verwenden. In dieser Hinsicht würde ich sagen, dass es flexibler ist, Classic über Alloy zu verwenden, weil Sie wählen können, wie Sie Ihre Struktur erreichen, anstatt in die Struktur von Titanium Alloy zu passen. Davon abgesehen habe ich mich nie durch Alloy eingeschränkt gefühlt.
Wie Sie in Titanium entwickeln, ist Ihre Präferenz. Es gibt keine richtige Antwort auf die Verwendung von Alloy oder die Verwendung von classic. Wenn es dir besser geht, benutze es. Ich denke, dass mir der strukturierte Ansatz zur Trennung von Anzeige und Geschäftslogik von Alloy eine Struktur bietet, die für mich bei der Entwicklung einer App sinnvoll ist.
Ich habe nicht gefunden, dass Legierung weniger flexibel als klassisch ist. Da Sie klassischen Code in Ihrem Alloy-Projekt verwenden können, können Sie fast alles in Alloy, das Sie in klassischen tun können.Ich bin mir sicher, dass es einige Randfälle sind, auf die ich noch nicht gestoßen bin, wo man vielleicht einfacher ist als andere, wenn man einen bestimmten Anwendungstyp programmiert. Es mag sein, dass der Klassiker weniger flexibel ist, weil ich nicht glaube, dass Sie Alloy in Ihrer klassischen App verwenden können. Ich glaube nicht, dass der Compiler wissen würde, wie man das baut.
Immer, wenn ich einschätze, ob ich eine bestimmte Technologie verwenden werde, mache ich eine Reihe von experimentellen Miniprogrammen, um sicherzustellen, dass alle Fähigkeiten für die Anforderungen meiner Anwendung vorhanden sind. Wenn ich das Gefühl habe, dass es nicht passt oder es zu schwierig ist, diese Anforderungen zu erfüllen, verwende ich diese Technologie nicht. Zum Beispiel, als ich zu Alloy wechselte, stellte ich sicher, dass die Ti.Paint-Bibliothek immer noch funktionierte. Wenn nicht, würde ich immer noch klassisch verwenden.
Genau wie klassisch gibt es Steuerungen für Alloy. Es gibt bereits ein elegantes Alloy-basiertes Schiebe-Menü-Modul. Ich verwende die Ti.Paint-Bibliothek, die vor Alloy existierte und kein Alloy-spezifisches Modul ist.
http://gitt.io/ ist ein guter Ausgangspunkt für die Suche nach Alloy-Modulen/Widgets.
index.xml
<Alloy>
<Window id="win">
<View id="content" />
</Window>
</Alloy>
1) In Ihrer index.js Datei würden Sie die folgenden Funktionen zu verwenden klassische Codierung haben eine Legierung Ansicht zu manipulieren.
index.js
var myview = Ti.UI.createView({
backgroundColor: 'green'
});
$.content.add(myview);
2) Ich glaube nicht, Sie Alloy-Code in Ihrem klassischen Projekt verwenden können. Wie Sie bereits erwähnt haben, muss der Code übersetzt werden und ein klassisches Projekt würde diesen Schritt wahrscheinlich überspringen.
3) Fragen Sie, ob Sie Teile des Codes basierend auf Android oder IOS-spezifisch hinzufügen oder entfernen können? Sie könnten dies wahrscheinlich mit include/require-Anweisungen tun, die strategisch zwischen if (Ti.Platform.osname == "android") -Anweisungen platziert werden, um den gewünschten Code zu erhalten. Wenn der Code für Android ist, benötigen Sie dieses, wenn es für IOS ist, in diesem.
4) Es wurde nie versucht, die Leistung zwischen klassischen und auf Legierungen basierenden Projekten zu überprüfen. Ich denke, seit ich gewechselt habe und nie ein Thema bemerkt habe, das mich oder meine Kunden stört, habe ich nie viel darüber nachgedacht. Es ist durchaus möglich, dass Alloy automatisch Code generiert, der in einigen Fällen langsamer ist. Ich habe es nie bemerkt.
Ich glaube, dass die Effizienz, die ich bei der Verwendung von Alloy erhalte, bei weitem überwiegt. Außerdem, wenn ich das Gefühl hatte, dass mir die Art und Weise, wie ein bestimmtes Steuerelement durch Alloy erstellt wurde, nicht gefiel, konnte ich den klassischen Code verwenden und definieren, dass ich selbst die Kontrolle über eine Definition aus einem klassischen Projekt habe.