8
votes

Application iOS / Android natif sur Windows Phone

J'ai une application iPhone (avec une contrepartie Android), développée en Xcode et écrite dans l'objectif-c. Il s'agit d'une application iOS indigène classique, qui fonctionne déjà et téléchargée dans l'App Store. De même, la version Android est construite avec Java et liée aux SDK Android. Il est téléchargé sur le marché.

On m'a demandé de porter l'application sur Windows Phone. Est-ce possible sans modifier le code? Je ne connais pas Windows Phone Dev, mais on dirait que c'est un complètement Écosystème séparé pour les applications en développement (langage de programmation différent, EDI différent, différent de l'App Store, etc.).

Puis-je aller de Android sur Windows Phone ou de iOS à Windows Phone?

PhoneGap - ou des plates-formes similaires - ne sont pas des options car le code est déjà écrit dans Objective-C et Java.


1 commentaires

La principale question est réellement si elle est possible de porter une application iPhone (ou Android) sur Windows Phone directement sans code de code de code


5 Réponses :


1
votes

À mon avis, il n'y a aucun moyen de passer directement une application iPhone à l'application Windows Phone. Vous devez développer une application Windows Phone avec son environnement nécessaire comme Visual Studio, Windows Phone SDK et avec Windows OS.

Vous pouvez également utiliser une plate-forme transversale telle que PhoneGap s'il peut être adapté à votre exigence.


0 commentaires

2
votes

Non, vous ne pouvez pas, les applications WP sont construites avec C # ou .NET et dans Visual Studio IDE. Il n'y a pas de moyen automatisé de porter une application native d'IOS ou Android Android auparavant construite avec Objetive-C ou Java à WP.


0 commentaires

8
votes

Comme iOS et Android, Windows Phone est un système d'exploitation complètement différent et nécessite actuellement une plate-forme de développement complètement différente.

Il n'est pas possible de prendre le code existant et de le faire fonctionner sur un téléphone Windows.

  • iOS utilise généralement l'objectif-c pour le développement d'applications. Même s'il y avait un moyen de compiler l'objectif-C sur un téléphone Windows, il serait intrinsèquement liée aux fonctionnalités de la plate-forme et aux contrôles d'interface utilisateur. Bien que vous puissiez écrire du code en C ++ et partagez-la, avec une application iOS, vous aurez toujours besoin certains dans l'objectif-c .
  • Android Les applications utilisent Java normalement. Java n'est pas disponible pour la plate-forme Windows Phone. Donc, la langue est sortie. En outre, comme IOS, les fonctionnalités de la plate-forme ne sont pas nécessairement partagées et le contrôle et les comportements de l'interface utilisateur sont différents. Les applications Android peuvent utiliser C ++ (si vous avez du code à l'aide de l'utilisation), mais il a Limitations , et en l'utilisant à nouveau, vous attachez le code à la plate-forme Android potentiellement. Certains code peuvent être portables.
  • Les applications Windows Windows sont généralement écrites en C # / C ++ et XAML ou DirectX. Bien qu'il y ait une similitude dans les langues (Java et C #), vous rencontrerez de plus en plus de différences de plate-forme qui pourraient nécessiter des efforts importants pour convertir. De la manière dont les demandes de réseau sont faites pour manipuler des threads seront différentes (et beaucoup d'autres). Objective-C est également très différent de C ++.

    sauf si vous n'aviez utilisé quelque chose comme Xamarin et écrit la logique commerciale sous-jacente à l'aide d'une plate-forme commune (c # /. Net ), vous devrez considérer un port vers Windows Phone un nouveau départ.

    Il n'est pas possible de réutiliser tout le code qui a été écrit. Avec un effort minutieux, vous pouvez partager du code commun (s'il était écrit en C ++), mais comme le code partagé ne fonctionnera pas directement avec UI (et d'autres fonctionnalités de la plate-forme), vous devez toujours faire l'interface utilisateur sur chaque plate-forme. , contourne des limitations et personnaliser potentiellement l'expérience utilisateur de chaque plate-forme.

    Microsoft a fourni des indications sur le portage et a fourni des liens avec une table d'équivalence d'API ici .


2 commentaires

@Avanz, il y a beaucoup de technologies multiplateform, comme PhoneGap, Xamarin, Codename One, Qt. Mais n'importe lequel d'entre eux vous permettent de porter une application sur une autre plate-forme si vous n'avez pas construit cette application à l'aide de cette plate-forme sur la première place. Dans la question, l'OP dit "PhoneGap - ou des plates-formes similaires - ne sont pas des options puisque le code est déjà écrit dans l'objectif C et Java.", Arrêtez donc de commenter qu'il est possible avec qt, car ce n'est pas, s'il n'en est pas de code natif Le code ne fonctionnera pas sur d'autres plates-formes


L'ensemble de l'application iOS est construit avec Objective-C, toute l'application Android est construite avec Java, je ne sais pas où avez-vous eu l'a utilisé C ++, car je ne l'ai pas lu depuis Catefe. Donc, il n'y a pas de port facile ou instantané. Même si vous utilisez Codename One, qui utilise Java pour le développement, le code Java Android existant ne fonctionnera pas. Il est clair pour nous que vous puissiez utiliser C ++ pour le développement inter-plateforme, mais ce n'est pas la question ici



1
votes

On dirait que vous avez une basebase Obj-C existante pour iOS et une base de code Java pour Android. Peu importe la façon dont vous le coupez, vous regardez [ré] écrire le code pour obtenir quelque chose sur WP8.

Je ne sais pas comment "UI Heavy" votre application est; En général, le code de l'interface utilisateur est le plus spécifique de la plate-forme (sauf si vous êtes prêt à supporter de «plate-forme cross» qui pourrait ne pas avoir de bonnes ux).

Vous pouvez envisager de garder le code non-UI principalement uni C ++ et d'utiliser obj-C, etc. uniquement pour les pièces où vous devez parler au cadre. Il sera plus facile de prendre en charge plusieurs plates-formes avec C ++.

J'ai pris cette approche avec une application sur laquelle je travaille; Il est ciblé pour iOS mais c'est environ 80% C ++ (y compris Open GL). Si je décide de porter à Android, je dois juste gérer le code de 20%, principalement du code UI-ISH.


0 commentaires

3
votes

Oui, vous pouvez utiliser le pont Windows de Microsoft pour iOS pour convertir votre code d'application iOS en code de plate-forme mobile Windows.

Vous devez utiliser WinObJC SDK fourni par Microsoft à cet effet.

Suivez ce lien pour plus de détails.


0 commentaires