Question

Je travaille sur la construction d'une application iPhone avec Titanium Mobile 1.0 et je vois qu'il compile jusqu'à un binaire natif iPhone. Comment cela marche-t-il? On dirait que cela prendrait beaucoup de soulever des objets lourds pour analyser le code JavaScript et faire une traduction directe en Objective-C sans avoir une langue superset comme 280 North Objective-J et Cappuccino.

Était-ce utile?

La solution

Titanium prend votre code Javascript, il analyse et prétraite, puis pré-compile en un ensemble de symboles qui sont résolus en fonction de vos applications utilise des API de titane. De cette hiérarchie de symboles, nous pouvons construire une matrice de dépendance symbole qui correspond à des symboles de la bibliothèque de titane sous-jacents à comprendre les API (et les dépendances connexes, cadres, etc.) spécifiquement à vos besoins d'applications. J'utilise le symbole de mot d'une manière semi-générique car il est un peu différent en fonction de la langue. Dans iPhone, le symbole correspond à un symbole vrai C qui mappe en fin de compte à un fichier compilé .o qui a été compilé pour les architectures ARM / i386. Pour Java, eh bien, il est plus ou moins un fichier .class, etc. Une fois que l'avant peut comprendre votre matrice de dépendance, nous invoquons le compilateur SDK (c.-à-GCC pour iPhone, Java pour Android) pour compiler ensuite votre application dans la finale binaire natif.

Alors, une façon simple de penser est que votre code JS est compilé presque un à un dans les symboles représentatifs dans nativeland. Il y a encore un interprète en cours d'exécution en mode interprété autrement les choses comme code dynamique ne fonctionnerait pas. Cependant, il est beaucoup plus rapide, beaucoup plus compact et il est aussi proche de la cartographie natif pur que vous pouvez obtenir.

Nous sommes évidemment toujours eu beaucoup de place pour améliorer cela et travaille. Jusqu'à présent, dans notre dernier test 1.0, il est presque impossible à distinguer de la même c objectif le code directement (puisque dans la plupart des cas, il est exactement mis en correspondance avec cela). Du point de vue CompSci, nous pouvons maintenant commencer cependant d'optimiser les choses qui ont vraiment un être humain ne pouvait facilement le faire -. Un peu comme le compilateur GCC fait déjà aujourd'hui

Autres conseils

Comme jhaynie dit, l'application est compilée en code natif, mais il y a encore un interprète en place pour exécuter javascript, ce qui permet à l'application d'être très dynamique.

Appcelerator Titanium

Si je package peut code simple grand que je reçois ~ archives gzip 80Mo (code d'origine ~ 1ko). Au sein du paquet - entre autres - vous pouvez trouver mon code source HTML et les fichiers js. Il y a aussi beaucoup de bibliothèques (ssl par exemple) livrés avec le paquet (parce que vous pouvez avoir accès de bas niveau à beaucoup de choses dans ce cadre).

Je pense qu'ils prennent votre code et enveloppent une sorte de logiciel d'interprétation et les bibliothèques. Dans mon cas, ce serait comme si je pack mon code html et js à côté d'un petit navigateur qui affiche uniquement mon site.

Comment jamais, tant que le code fonctionne sur tous les systèmes pris en charge de la même manière est une chose agréable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top