Doriți să codificați de la distanță în Android Studio? Consultați JetBrains Projector, cea mai bună modalitate de a rula JetBrains IntelliJ IDE pe orice dispozitiv.
JetBrains este compania din spatele unora dintre cele mai populare IDE-uri, inclusiv IntelliJ IDEA, PyCharm și PhpStorm. Chiar și Android Studio, un fel de IDE intern al Google pentru dezvoltarea Android, se bazează pe IntelliJ.
În timp ce IDE-urile IntelliJ sunt populare dintr-un motiv (sunt bun), pot fi puțin grele uneori. IntelliJ și Android Studio pot ocupa o mulțime de resurse doar fiind deschise, de exemplu. Și dacă compilați ceva, ei vor folosi și mai mult. De asemenea, nu puteți (încă) să rulați cu adevărat chestii JetBrains pe dispozitive mobile, deoarece JetBrains nu are versiuni ARM ușor accesibile.
Deci, ce se întâmplă dacă nu ai un computer puternic sau nici măcar nu ai un computer? În mod normal, aici ar fi locul în care ați căuta alte IDE-uri care funcționează pe ARM. Dar JetBrains are un fel de soluție și se numește JetBrains Projector.
Ce este un proiector?
Probabil ați mai auzit de desktop la distanță sau VNC. Vă permite să interacționați grafic cu un computer printr-o rețea locală sau chiar pe internet. Proiectorul JetBrains funcționează puțin ca un desktop la distanță, dar fără unele dintre dezavantaje.
Pentru a utiliza proiectorul JetBrains, aveți nevoie de un computer undeva pe Internet pentru a-l găzdui. Aceasta ar putea fi o instanță AWS sau un server de acasă. Vă puteți conecta apoi la acesta din orice browser acceptat, inclusiv Chrome mobil și Firefox.
Dar în loc să afișați un întreg desktop și să trimiteți un flux video al acestuia înapoi către un client conectat, JetBrains Projector trimite informațiile necesare pentru ca clientul să afișeze un IDE ca și cum ar fi afișat la nivel local. Aceasta înseamnă că nu există compresie sau scalare a rezoluției, astfel încât IDE-ul pare aproape nativ.
De asemenea, JetBrains Projector nu se limitează doar la IDE-urile oficiale JetBrains. Atâta timp cât aveți un IDE care se bazează îndeaproape pe unul de la JetBrains, îl puteți utiliza cu JetBrains Projector. Aceasta include Android Studio.
De ce un proiector?
Cel mai mare motiv pentru care ați putea dori să faceți dezvoltare la distanță este despre care am vorbit în introducere: ce se întâmplă dacă nu aveți un computer puternic bazat pe x86? Ai putea cumpăra unul semi-puternic special pentru munca de dezvoltare sau ai putea să pornești un server cloud și să folosești JetBrains Projector.
Poate fi util și dacă doriți doar să descărcați cerințele de resurse. De exemplu, am un laptop de gaming destul de puternic, cu un i7-9750H și 32 GB de RAM. Este suficient chiar și pentru proiectele mari cu care mă ocup. Dar dacă vreau să fac altceva în plus față de dezvoltare, care necesită și resurse, de exemplu urmărind YouTube, jucând un joc? Apoi lucrurile încep să se destrame.
Dar am un server Ryzen 7 5800X cu 32 GB RAM în el. Așa că am instalat JetBrains Projector pe asta. Acum pot doar să deschid o nouă fereastră Chrome și să mă conectez la ea de pe laptop fără să-mi fac griji cu privire la jonglarea cu resursele. Serverul se construiește, de asemenea, mult mai rapid decât laptopul meu, așa că este o situație câștigătoare.
Cum se folosește un proiector?
Proiectorul JetBrains este menit să fie găzduit pe o mașină Linux. Asta nu înseamnă că nu îl puteți rula pe macOS sau pe Windows cu WSL, dar s-ar putea să întâmpinați unele probleme ciudate din cauza asta.
Pentru a-l configura, tot ce trebuie să faceți este să mergeți la Instalator de proiectoare GitHub repo și urmați instrucțiunile de acolo. Vă vor ghida prin instalarea dependențelor și configurarea unui IDE. Există chiar și câțiva pași de depanare WSL dacă aveți nevoie de ei.
Apoi, vă puteți conecta la adresa serverului dvs. folosind portul și tokenul corect (dacă ați setat unul), iar acum aveți un IDE care rulează pe dispozitivul dvs. fără nicio umflare.
Dezvoltare Android
Sunt un dezvoltator Android, așa că, deși aș putea folosi IntelliJ IDEA pentru dezvoltare, Android Studio tinde să funcționeze mai bine. Deși JetBrains Projector acceptă IDE-uri terțe, acum este la fel de simplu ca și utilizarea interfeței încorporate de linie de comandă pentru a le descărca și instala. Totuși, este încă destul de simplu.
Pentru a utiliza Android Studio cu JetBrains Projector, tot ce trebuie să faceți este să descărcați și să extrageți Android Studio de undeva. Apoi îl puteți adăuga manual la proiector prin linia de comandă specificând calea.
Există, de asemenea, o altă problemă cu dezvoltarea Android și Projector: rularea aplicațiilor. Fără nimic în plus, puteți codifica aplicații și vizualiza previzualizări în Projector, dar nu puteți utiliza un emulator sau vă puteți conecta la un dispozitiv real pentru a rula și depana aplicațiile. Sau poți?
Este aproape ca și cum Google se aștepta ca acest tip de scenariu să se întâmple, deoarece ADB se poate conecta la un server la distanță prin Internet. Tot ceea ce este necesar este un tunel SSH de la client la serverul Projector. Am setat Android Studio pe proiector să nu încerce să gestioneze ADB și să utilizeze portul 5038. Apoi folosesc doar un fel de client SSH (OpenSSH, plink etc.) pentru a crea un tunel care trimite serverul ADB care rulează local pe portul 5037 către serverul de pe portul 5038. Uşor!
Dacă doriți mai multe detalii despre cum să funcționeze Android Studio și tunelul SSH, consultați aceasta document GitHub de Joaquim Verges.
O notă despre Android Studio și alte IDE-uri terțe bazate pe JetBrains: nu le puteți actualiza de pe ecranul proiectorului. Va trebui să accesați direct serverul de la distanță și să le actualizați de acolo. Asigurați-vă că instanța de proiector corespunzătoare este oprită înainte de a o face.
Dezvoltare Android Android
Deoarece JetBrains Projector rulează într-un browser și vă puteți conecta de la ceva ca un telefon Android, ca exemplu complet aleatoriu, am vrut să încerc ceva.
Android 11 a introdus capacitatea de a activați ADB wireless direct de pe dispozitiv. Deși unii producători au expus setarea înainte de atunci, aceasta nu este disponibilă pentru toate dispozitivele certificate de Google, atâta timp cât sunt pe Android 11 sau o versiune ulterioară. În timp ce depanarea fără fir este menită să fie utilizată de pe un computer, nu trebuie să fie.
Aplicații ca Shizuku demonstrează că este posibil pe Android 11 să te conectezi cu ADB la dispozitivul tău... de pe dispozitiv, fără să te gândești măcar să folosești un computer. În timp ce Shizuku folosește acest lucru pentru a permite aplicațiilor să ruleze operațiuni ridicate, cred că probabil că puteți vedea unde se duce acest lucru.
Așa că am făcut o aplicație! Nu știu dacă îl voi face vreodată public, dar este destul de simplu. Am o bibliotecă SSH în ea împreună cu un binar ARM64 ADB. Folosesc binarul ADB pentru a mă conecta la dispozitivul pe care îl folosesc, apoi folosesc biblioteca SSH pentru a crea un tunel de redirecționare de la dispozitivul meu la serverul Projector. Și, în sfârșit, îl folosesc pentru a stoca și a lansa adrese URL ale proiectorului.
Bam, în curs de dezvoltare pentru Android... de la Android! De fiecare dată când nu sunt acasă, dar vreau să lucrez la dezvoltarea Android, pot să-mi scot Samsung Galaxy Tab S7. Am o tastatură Bluetooth și un mouse Bluetooth (notă secundară: dacă utilizați proiectorul, veți într-adevăr doriți să utilizați un mouse sau un trackpad. Nu se descurcă bine cu intrarea tactilă), așa că pot dezvolta și depana fără a fi nevoie să schimb dispozitivele și fără a fi nevoit să trag cu un laptop mult mai greu.
Probleme
Proiectorul JetBrains este încă în dezvoltare destul de timpurie, așa că nu este perfect.
- Uneori este puțin întârziat atunci când răspundeți la lucruri precum derularea și glisarea, iar comenzile pot deveni neplăcute.
- În mod aleatoriu, atunci când vizualizați codul bibliotecii (fie decompilat, fie în vizualizarea sursă), greutatea fontului devine foarte mare și totul rămâne în întârziere. Totuși, este posibil să fi fost remediat în momentul scrierii acestui articol.
- Unele plugin-uri nu vor funcționa corect. Deoarece acesta nu este un flux video direct, pluginurile precum browserele încorporate pur și simplu nu vor afișa nimic.
- Nu există suport pentru serverul X și probabil că nu va exista. Acest lucru poate face dificilă dezvoltarea aplicațiilor desktop și browser, dar puteți utiliza oricând un tunel SSH cu redirecționare X și un server X local dacă aveți într-adevăr nevoie de el.
- Uneori, interfața se blochează și trebuie să reîmprospătați pagina sau chiar să reporniți serviciul server pentru a-l face să funcționeze din nou.
Și mai sunt.
Dar este totul un dealbreaker? Cu siguranță nu pentru mine. Sunt perfect în regulă cu o experiență puțin mai puțin șlefuită (folosesc Android Studio Canary, până la urmă), mai ales dacă înseamnă că pot descărca toată munca de compilare pe alt computer și chiar pot dezvolta pentru tableta mea de pe mine comprimat.
Chiar și cu problemele sale, încă îmi place foarte mult proiectorul JetBrains. Face posibilă dezvoltarea de pe mobil, mută încărcarea resurselor de la un computer local la unul la distanță și este, de asemenea, foarte cool.
Știu că alte IDE-uri, cum ar fi Visual Studio, vă permit să descărcați compilația pe un computer la distanță, dar asta necesită totuși să aveți IDE-ul instalat și rulat local.
Personal, sunt foarte încântat să văd unde merge proiectorul JetBrains de aici, deoarece este deja destul de incredibil acum. Sperăm că vor putea rezolva unele dintre problemele pe care le-am descris mai sus, dar chiar și acum, proiectorul ar trebui să fie utilizat în siguranță pentru proiecte gata de producție.
Dacă doriți să încercați proiectorul JetBrains pentru dvs., aici este linkul din nou la ghidul de instalare și de instalare inițială. Dacă doriți să configurați Android Studio în proiector, iată link-ul din nou, de asemenea.