Sto lavorando su un progetto sia su iOS / Android / macOS / Linux (Windows è opzionale, e sicuramente nessuna versione del sito web). Esistono molti dati correlati alle pagine Web e il team ha deciso di archiviare i dati in un formato di markdown specifico (non nel normale formato * .md) per soddisfare i requisiti del dominio specifico trattato. I file di markdown personalizzati sono archiviati in un database online e sono molto più compatti di altri formati, ad es. html per risparmiare spazio e traffico.
Ora, affinché i client possano leggere i contenuti, dobbiamo analizzare i markdown sul lato server o lato client. Il piano è di convertire in html e visualizzarlo in una visualizzazione web sul lato client. Questo è un dilemma a causa di quanto segue:
-
L'invio dei dati in formato markdown consente di risparmiare molto traffico in quanto il formato è stato progettato per essere compatto.
-
La velocità di analisi non è un problema. Ogni file di markdown è piuttosto breve. Le cache rimarranno sui computer client, quindi il reparsing non è necessario.
-
Memorizzare entrambe le versioni html (come cache) e markdown sembra uno spreco di spazio e scartare le versioni di markdown è scomodo se dobbiamo modificarle ulteriormente.
Sono a conoscenza di diverse domande su Stack Overflow che suggeriscono all'unanimità l'analisi lato server, ma in realtà non rispondono alle mie esigenze. Innanzitutto, l'analisi non viene eseguita nei browser, quindi non verranno scaricate librerie aggiuntive. Inoltre, suggeriscono un'analisi iniziale sul lato server e ripubblicano sul lato client se il contenuto cambia. Tuttavia, nel mio caso i markdown sono statici e agli utenti non è consentito apportare modifiche. Inoltre, riguardano il normale formato di markdown (* .md) invece di un formato personalizzato.
L'unico vantaggio dell'analisi sul lato server che posso pensare è di evitare la duplicazione del codice. Le versioni mobili verranno scritte con Flutter (quindi le parti principali sono scritte in Dart). La versione macOS coinvolgerà alcuni Swift e C ++ e la versione Linux riguarderà il C + + e forse un po 'di Java per la GUI (in modo che sarebbe più facile portare il prodotto a Windows se necessario in futuro). So che posso scrivere tutto in C ++ direttamente, ma ad oggi chiamare C ++ da Flutter è ancora un problema.
Poiché questa è una situazione molto più generale, penso di aver bisogno di un consiglio qui. Qualsiasi aiuto è apprezzato.