2010-10-31 19 views
2

Je suis un développeur iOS et j'ai trouvé une grande bibliothèque qui gère toutes sortes de calculs liés à l'astronomie pour moi. Le problème est qu'il est écrit en Java. Bien que je possède suffisamment d'expérience avec les langages proches de Java, je ne peux pas exécuter Java sur iOS. Je voudrais le porter, mais étant donné que je n'ai jamais porté quelque chose avant. Comme je l'ai dit, je ne pense pas que la langue sera le problème. C'est une bibliothèque assez simple, impliquant principalement des objets Date et des maths. J'essaye de comprendre la meilleure manière de faire le portage. Est-ce que je commence par les méthodes/fonctions principales de chaque classe, ou puis-je aller ligne par ligne dans chaque fichier jusqu'à ce que j'aie tout traduit?Approcher le portage d'une bibliothèque (Java) (vers Objective-C): Méthodologie?

+0

De quelle bibliothèque s'agit-il? –

Répondre

1

Puisque cela semble être une bibliothèque de fonctions, cela ne dépendrait d'aucune fonction spécifique à la plate-forme.

Portage cela devrait vraiment être simple. Vous pouvez porter la fonction par fonction, peut-être commencer par les fonctions qui sont importantes pour votre application. La partie vraiment délicate (étant donné qu'il s'agit d'une librairie math) assurera que cela fonctionne correctement: vous devriez avoir le même ensemble de tests unitaires que la lib originale. Le mieux serait de créer une classe Java wrapper qui appelle votre lib via JNI pour que vous puissiez lancer des tests unitaires originaux sur votre lib. (Fixations sans plate-forme) Objective-C lib pur devrait fonctionner aussi bien sur OS X et iOS, vous pouvez exécuter des tests sur OS X. Faites quelque chose comme ceci:

  1. Regardez lib Java d'origine, et de créer API fonctionnellement similaire en Objective-C: mêmes classes, mêmes noms de méthodes.
  2. Reprenez les classes Java d'origine et remplacez tout le contenu des méthodes par des appels JNI à votre bibliothèque native.
  3. Implémentez la fonctionnalité dans votre bibliothèque.
  4. Exécutez les tests unitaires java (qui appelle maintenant votre lib native) pour vous assurer que votre lib fonctionne correctement.

Pour faciliter le développement de JNI vous pouvez utiliser JNA ou tout autre emballage JNI énumérés here.

+0

De rien. –

2

Commencez simplement où vous voulez. Généralement, vous voudrez commencer près du noyau, et travailler votre chemin. Rappelez-vous ces trois étapes:

  1. Faire fonctionner
  2. Make It Right
  3. Faites vite/propre

Alors ne vous inquiétez pas l'obtenir à la recherche assez ou quoi que ce soit juste à côté de la hop, faites-le fonctionner comme il se doit, testez-le. Ensuite, regardez où vous pouvez refactoriser si possible, etc.

+0

Points forts. J'ai cette mauvaise habitude d'essayer de rendre le code propre la première fois. – Moshe