Approccio per lo sviluppo di software che dovrà essere trasferito su più piattaforme mobili in futuro

7

Attualmente sto facendo il progetto preliminare per un nuovo prodotto che la mia azienda sposterà presto. Inizieremo su Android, ma in seguito avremo bisogno di sviluppare rapidamente IPhone, IPad .... e poi le porte di Windows 8 dell'applicazione.

Fondamentalmente l'unico codice che non sarebbe riutilizzabile è il codice specifico della vista e le funzioni multimediali. Questo sarà un client SIP (ovviamente l'utente dell'app non lo saprà) con diversi campanelli e fischietti per i nostri specifici scopi aziendali.

Il mio pensiero iniziale è di sviluppare tutto il motore in C e fornire una buona API per la libreria C poiché JAVA e .NET consentiranno il richiamo nativo, e dovrei solo essere in grado di collegarmi direttamente alla C lib in obiettivo- C.

Esiste un approccio migliore per un vasto riutilizzo del codice che rimane vicino alla piattaforma nativa? Cioè Non voglio dipendenze come mono-droide e simili o complicati schemi di interpreti / traduttori.

Non mi interessa ricodificare la vista (s) per ogni piattaforma, ma non voglio avere più versioni del motore principale. Inoltre, se voglio avere dei buoni meccanismi di astrazione (come direi, C ++) è possibile? Ho letto che C ++ non è consentito per i dispositivi IPad e Iphone.

Mi piacerebbe gestire la decodifica dei media nella libreria C, ma presumo che dipenda dalla piattaforma in modo che probabilmente non sia nemmeno un'opzione. Qualche idea qui?

    
posta Jonathan Henson 25.10.2012 - 18:50
fonte

3 risposte

3

Dato che ci si sta avvicinando per il client SIP, e per lo stesso PJSIP fornisce una grande libreria per l'utilizzo della funzionalità SIP al client.

Ho anche implementato un'applicazione simile, e per lo stesso ho creato un codice C che gestiva tutti i miei obiettivi. Quindi, come per la piattaforma iOS e Android per la gestione delle attività in background e per fornire tutta l'implementazione dell'interfaccia utente nativa, ho eseguito lo sviluppo di app native in Objective-C e Java rispettivamente.

Poi in iOS, non c'è alcun problema nell'usare il codice C, e per Android ho usato l'integrazione JNI.

    
risposta data 25.10.2012 - 20:07
fonte
1

Vorrei esaminare Apache Cordova (era PhoneGap) che consente una GUI multipiattaforma basata su HTML5 / js. La parte interessante per me è che tutto il codice è impacchettato nel client piuttosto che essere eseguito come un modello client / server web (sebbene, ovviamente, si possa ancora parlare con un server di rete per i dati). So che una GUI HTML5 non sarà così scattante come quella nativa, ma le prestazioni non sono una preoccupazione importante per la maggior parte delle GUI a meno che non si abbiano requisiti specifici come i giochi.

Per l'accesso alla tua API C crosss-platform, Cordova ti permette di scrivere un per chiamare il codice nativo.

    
risposta data 25.10.2012 - 20:35
fonte
0

Adobe ha lavorato nella compilazione incrociata di ActionScript per diverse piattaforme telefoniche. Sono abbastanza sicuro che Flash possa essere compilato su Android e iOS ora, così come su AIR (che potrebbe ottenere Windows Phone); Non sono sicuro di quanto funzioni correttamente per il protocollo SIP, ma penserei che supporti i media abbastanza bene. (Ma in questo caso non ho ancora sviluppato nessuno sviluppo.) Il Flash player ha un accesso limitato al sistema ma sento che il supporto di AIR è molto meglio, quindi potresti essere in grado di utilizzare alcune librerie decenti.

Modifica

App AIR per Android

App AIR per iOS

    
risposta data 25.10.2012 - 21:43
fonte

Leggi altre domande sui tag