Lo sviluppo di app web su ChromeOS è quasi identico a quello su qualsiasi altro sistema operativo. Qualsiasi editor di codice, IDE, strumento o linguaggio che viene eseguito in Linux funziona su ChromeOS. ChromeOS offre anche funzionalità progettate appositamente per facilitare lo sviluppo web.
Editor di codice e IDE
Qualsiasi editor di codice o IDE che viene eseguito su Linux verrà eseguito su ChromeOS. Linux su ChromeOS è un'installazione Debian e gli editor di codice e gli IDE per Debian vengono solitamente installati in tre modi. Visual Studio Code, ad esempio, fornisce un.debfile su cui puoi fare doppio clic per installarlo dall'app File. IntelliJ, invece, ti consente di scaricare un file tar contenente il suo eseguibile che puoi estrarre nel container Linux ed eseguire. Sublime Text ti chiede di installarlo daapt.
Lingue e strumenti
Indipendentemente dal fatto che il tuo stack sia JAM o LAMP o che tu sia un programmatore Python o Gopher, se funziona su Linux, puoi eseguirlo su ChromeOS. Quando installi lingue e strumenti, ti consigliamo di utilizzare i gestori delle versioni delle lingue per semplificare il processo di installazione e upgrade e per consentirti di passare da una versione all'altra della lingua per ogni progetto su cui lavori. RVM, il gestore delle versioni di Ruby, è uno dei migliori e più vecchi esempi di gestore delle versioni del linguaggio, che ti consente di gestire sia Ruby che le dipendenze (chiamate gemme) per più versioni di Ruby. La maggior parte degli altri linguaggi dispone di gestori delle versioni simili. Questo sito, creato su Node.js, supporta Volta e NVM per la gestione delle versioni di Node. Se preferisci gestire la lingua e gli strumenti tramite Docker, puoi farlo.
Tunneling localhost e port forwarding
Mentre Linux per ChromeOS è in esecuzione all'interno di una VM, i server in esecuzione nell'ambiente Linux vengono inoltrati automaticamente al browser Chrome principale. Ciò significa che puoi utilizzare tutti gli strumenti di Chrome che preferisci per sviluppare le tue app web e non devi preoccuparti di capire come testare ciò che stai creando. A volte, però, vuoi condividere una porta del computer con altri dispositivi sulla stessa rete. Quando devi farlo, leggi come configurare il port forwarding.
Il Chrome che ami
Anche su ChromeOS sono disponibili tutti gli strumenti di sviluppo che conosci e apprezzi di Chrome. Poiché le porte Linux vengono inoltrate a Chrome, puoi utilizzare tutta la potenza di Chrome DevTools, incluso Lighthouse, per sviluppare le tue app, insieme a fantastiche estensioni di Chrome, come Accessibility Insights for Web. Per farlo, avvia il server web nell'ambiente Linux e vai a localhost:PORT (sostituisci PORT con il numero di porta del server) nel browser Chrome principale. Se necessario, puoi anche utilizzare penguin.linux.test come fallback per localhost.
Più di Chrome
Lo sviluppo di app web su ChromeOS ha un superpotere di cui nessun altro sistema operativo desktop può vantarsi: il supporto a livello di piattaforma per i browser mobile reali. Quando sviluppi app web su ChromeOS, non sei vincolato solo al test in Chrome. Con il Google Play Store, puoi installare browser mobile reali e utilizzarli per testare la tua app web. Puoi anche installare altri browser desktop completi che vengono eseguiti su Linux ed eseguire i test anche lì. Gli utenti di ChromeOS utilizzeranno la tua app web in Chrome, ma comprendiamo l'importanza di creare applicazioni web che raggiungano tutti, indipendentemente dalla scelta del browser.
Testare l'app web in altri browser Linux è piuttosto semplice: installa i browser seguendo le istruzioni di installazione di Linux e utilizzali normalmente, con accesso a localhost. I browser installati tramite il Google Play Store, tuttavia, devono essere trattati come se si trovassero su un dispositivo esterno. Per rendere disponibile il server in questi browser, trova il tuo indirizzo IP eseguendo hostname -I nel terminale e utilizza l'indirizzo IP risultante al posto di localhost durante la navigazione, ricordandoti di includere anche la porta.