Je travaille à la création d'une application iPhone avec Titanium Mobile 1.0 et je constate qu'elle se compile en un binaire natif pour iPhone. Comment cela marche-t-il? Il semblerait que l'analyse du code JavaScript et la traduction directe en Objective-C nécessiteraient beaucoup de travail fastidieux, sans utiliser un langage surchargé comme Objective-J et Cappuccino de 280 North.
Réponses
Trop de publicités?Titane prend votre code Javascript, analyse et prétraite et puis pré-compile en un ensemble de symboles qui sont réglées en fonction sur vos demandes utilise du Titane Api. À partir de ce symbole de la hiérarchie, nous pouvons construire un symbole de la dépendance de la matrice qui correspond à la sous-jacentes de Titane de la bibliothèque de symboles pour comprendre l'Api (et leurs dépendances, des cadres, etc) spécifiquement dans votre application a besoin. Je suis en utilisant le mot-symbole dans un semi-générique, car il s'est un peu différent en fonction de la langue. Dans iPhone, le symbole correspond à un vrai C symbole qui en fin de compte des cartes à une compilation .o fichier qui a été compilé pour ARM/i386 architectures. Pour Java, et bien, c'est plus ou moins un .fichier de classe, etc. Une fois que l'extrémité avant peut comprendre votre matrice de dépendance, nous avons ensuite invoquer le SDK compilateur (c'est à dire de GCC pour iPhone, Java pour Android) pour ensuite les compiler votre application dans la version finale du binaire natif.
Oui, une simple manière de penser, c'est que votre code JS est compilé près d'un à un en les représentant des symboles dans nativeland. Il y a toujours un interprète exécute en mode interprété autrement les choses comme dynamique de code ne fonctionne pas. Cependant, il est beaucoup plus rapide, beaucoup plus compact et il est à peu près aussi proche de pur natif de cartographie que vous pouvez obtenir.
Nous sommes évidemment encore beaucoup à faire pour améliorer cela et travailler sur cela. Jusqu'à présent, dans notre dernière 1.0 tests, il est presque impossible de distinguer le même objectif-c code directement (comme dans la plupart des cas, c'est exactement mappé). À partir d'un point de vue de la fac d'informatique, nous pouvons désormais commencer à optimiser les choses que l'homme ne pouvait vraiment pas facile à faire, un peu comme le compilateur GCC le fait déjà aujourd'hui.
Si j'ai mon paquet simple amplement code j'obtiens un ~80 MO archive gzip (Code d'origine ~1 ko). Au sein du forfait - entre autres - vous pouvez trouver ma source html et js fichiers. Il y a aussi beaucoup de bibliothèques ssl (par exemple) est livré avec le package (parce que vous pouvez avoir un accès de bas niveau à un tas de choses à l'intérieur de ce cadre).
Je pense qu'ils prennent votre code et l'enrouler autour d'une sorte d'interprète logiciels et bibliothèques. Dans mon cas, ce serait comme si je pack mon code html et du code js à côté d'un petit navigateur qui n'affiche mon site.
Comment jamais, tant que le code fonctionne sur tout système prise en charge de la même manière son une belle chose.