angularJS condivisione del codice attraverso l'app Ionic ibrida e il normale sito web mobile

10

Ok, quindi nel nostro 'laboratorio dell'innovazione', c'è attualmente una spinta per usare Ionic, un framework di app ibrido costruito su Cordova per l'accesso nativo e angularJS per il 'codice web'.

Ci sono anche alcuni progetti che sono puro web mobile, usando ad esempio il bootstrap Angular + per il responsive design.

La questione è che alcuni progetti in arrivo dovranno avere sia un sito web mobile che app native (ibrido ionico). La maggior parte delle funzioni e schermate sarà la stessa, condividendo il back-end e la maggior parte dell'interfaccia utente, ma ci sarà ancora qualche differenza.

Quindi la mia domanda è; Come architettura un progetto in modo che possa essere sia un progetto ionico che un normale sito web angolare con 2 diversi approcci di implementazione. La maggior parte del codice viene riutilizzata, ma alcune visualizzazioni per il sito Web mobile e alcune visualizzazioni per l'app ibrida (utilizzando più componenti e convenzioni native), forse anche alcune differenze di routing.

È una buona idea?

E nel codice condiviso, c'è un modo semplice per sapere in quale caso sei? alcuni IF, alcune direttive inattive al di fuori del loro contesto, ecc.

Sembra che ci sia una sorta di collegamento mancante che potrebbe non essere a conoscenza.

Grazie in anticipo.

    
posta MikaelW 19.10.2015 - 11:04
fonte

2 risposte

1

Puoi creare un kernel condiviso che contiene alcuni atomics Componenti ( link ) / Servizi.

App Web, app Android, app ios, app di supervisione ... tutti useranno le funzionalità fornite dal kernel, in modo adattivo.

Immagina se vuoi implementare un'app per Android. L'utilizzo del collegamento ha senso, insieme ad alcune funzionalità Android. L'app per iOS avrà un design diverso ( link ) ecc ...

Costruisci un'implementazione solida e usa i componenti atomici e adattali!

    
risposta data 07.03.2018 - 11:24
fonte
0

Per le app mobili che utilizzano Ionic e le app Web che utilizzano AngularJS o Angular, è molto comune che alcune di queste app abbiano funzionalità condivise e che si colleghino al server e ottengano alcuni dati, ma ciò non significa che non avrai copia di quel codice nei tuoi nuovi progetti.

Il mio punto è che se sai che ci saranno solo differenze di livello dell'interfaccia utente e il progetto richiede un'app web e un'app mobile e puoi avere 3 livelli in cui l'interfaccia utente per l'app web può essere angolare e l'app mobile può essere in ionico. I benefici che si ottengono dall'usare funzioni native come Cordova PhoneGap o ionico forse molto di più che mantenere tutto in un unico tipo.

Voglio solo chiarire che non è difficile passare da una interfaccia utente all'altra nel caso in cui il client desideri che un'app Web venga convertita all'app mobile nativa.

Vorrei iniziare con le seguenti domande

  1. Questo progetto richiede un'interfaccia utente separata per dispositivi mobili?
  2. Questo progetto richiede funzioni mobili native?
  3. Questo progetto richiede funzioni di interfaccia utente e di backedn separate per dispositivi mobili?

Se la tua risposta è sì per tutti e 3 allora crea due progetti. Se la tua risposta è sì per 1 e 2, crea il backend angolare e l'app web insieme all'app ionica o PhoneGap. Se la tua risposta è sì a 1 solo allora ti consiglio di usare angolare per entrambi.

Se a un certo punto vuoi o utilizzare viste angolari in ionico (cerca materiale ionico-ng) avrai lo stesso codice per front-end, app per dispositivi mobili e app web. Alla fine sarai in grado di gestirti in modo indipendente:

  1. Migrazioni del database
  2. Funzionalità di back-end lato server con API che si collega a 1 per i dati
  3. Applicazione web front-end che utilizza le viste angolari che utilizzano 2
  4. Se è necessaria un'app per dispositivi mobili, utilizza Ionic / PhoneGap per risolvere le dipendenze dei dispositivi, ma utilizza Angular per creare visualizzazioni e consumare 2.

Spero che questo aiuti e apra un po 'di discussione.

    
risposta data 16.11.2017 - 14:03
fonte

Leggi altre domande sui tag