Andrew Brookins
On decembrie 23, 2021 by adminÎn 2017 am întrebat: „Poți să scrii cod pe un iPad?”. În 2019, răspunsul este practic același: nu prea. Dar lucrurile devin interesante.
Update: dacă codificați pe un iPad, consultați privirea mea detaliată asupra modalităților de sincronizare a clipboard-ului iOS cu o mașină la distanță prin SSH. De asemenea, am explorat modul de utilizare a instrumentelor de dezvoltare a browserului pe iPadOS folosind aplicația Inspect într-o postare recentă.
„Programarea” pe iOS: aplicația Shortcuts
Încă nu există pe iPad posibilitatea de a face programare nativă. Adică, nu veți găsi o ușă secretă care să ducă la un shell UNIX în care să puteți instala homebrew și un compilator C. Măcar de-ar fi așa!
Puteți ignora cu siguranță Swift Playgrounds, cu excepția cazului în care scopul dvs. este să învățați Swift. Playgrounds nu este un mediu de programare de uz general; este orientat către copiii care învață să programeze.
Cel mai apropiat de programabilitate care există ca funcție nativă a iOS este aplicația Shortcuts, care poate automatiza sarcini mici și poate conecta aplicații între ele.
Aceasta este versiunea Apple rebranduită a Workflow, o aplicație populară care făcea mai mult sau mai puțin același lucru. Puteți folosi Shortcuts pentru a înșirui o serie de acțiuni pe care le-ați putea face în mod normal, cum ar fi activarea funcției Nu deranjați, redarea unui anumit album (recomand Brute Force de la The Algorithm) și deschiderea unei aplicații client SSH sau a unui editor de text.
Shortcuts este probabil utilă cuiva, dar eu nu o folosesc prea mult și este prea limitată pentru ca eu să o numesc programare!
Editing in Native iOS Text Editors
Nu totul este însă complet pierdut. În primul rând, dacă admiteți că iPad Pro este un potențial client subțire care se asociază cu un server, atunci aveți opțiuni. Există aplicații SSH excelente disponibile, cum ar fi Blink. Dar nu trebuie neapărat să vă conectați direct la server pentru a face totul. Dacă preferi să editezi în mod nativ pe iPad și să construiești un sistem de scripeți care să-ți ridice codul până la un server cloud, poate cu un sistem de integrare continuă precum cel de la GitLab, acest lucru este de asemenea posibil. Vom explora ambele opțiuni.
Hey, am scris o carte!
The Temple of Django Database Performance (Templul performanței bazelor de date Django) este noua mea carte care îmbină jocurile de masă, bazele de date și Django. Explorați un templu ruinat în timp ce învățați trucuri avansate de performanță a bazelor de date Django!
Probabil că nu vă puteți rula codul pe iOS decât dacă este Python
Există o oarecare libertate de manevră în ceea ce privește rularea codului dvs. direct pe iPad dacă sunteți un dezvoltator Python. Aplicația Pythonista a crescut în timp de la un editor de text Python axat pe automatizarea iOS la un mediu de dezvoltare Python hackabil care se livrează cu pachete majore precum NumPy, are un shell asemănător cu Bash implementat în Python și suportă plugin-uri.
În afară de Python, nu am găsit nicio aplicație de interpretare sau compilator în general utilă pe iOS.
Update: Cititorii mi-au recomandat Continuous, un IDE C# și F# pentru iOS, și Rescript, un IDE JavaScript/node.js pentru iOS. Ambele par promițătoare și ar putea fi echivalente cu Pythonista, dar nu le-am folosit. Există, de asemenea, Replete, o aplicație pentru iOS care vă oferă un ClojureScript REPL (buclă de citire-evaluare-imprimare); deși amuzantă, pare mai puțin bogată în funcții decât celelalte.
Native iOS Editors Are Getting Better
Există din ce în ce mai multe editoare de text decente care rulează fără componenta de interpret sau compilator. Aplicații precum GoCoEdit și Textastic oferă experiențe de editare care au început să dobândească unele dintre caracteristicile editorilor de desktop care depășesc elementele de bază – de exemplu, fișierele fuzzy-finding.
Aceste editoare încep să colaboreze între ele și cu puternica aplicație Git Working Copy și cu aplicația Files furnizată de Apple pentru a produce efecte interesante. Working Copy poate verifica un depozit Git și îl poate pune la dispoziția aplicațiilor precum GoCoEdit pentru editare; modificările efectuate în editor se reflectă automat înapoi în Working Copy, unde le puteți apoi confirma.
Caracteristicile care lipsesc din editorii de text pentru iOS
Nici unul dintre acești editori nu oferă însă, de unul singur, o experiență potrivită pentru dezvoltarea efectivă de software. Vorbim de Dreamweaver, nu de Emacs.
O piesă care lipsește în prezent este căutarea de proiecte; adică, dat fiind un director sau un set de directoare, permiteți utilizatorului să caute text în toate fișierele din acesta. Dacă folosiți GoCoEdit sau iVim, puteți obține o aproximare a acestui lucru folosind minunatul instrument de căutare al Working Copy, care oferă această funcție, pentru a găsi fișiere și apoi alegeți, de exemplu, „deschide în GoCoEdit” din meniul de partajare. Textastic nu oferă această funcție din anumite motive. Oricum, se poate lucra la limită, dar probabil că nu veți obține „fluxul” căutat.”
Nota secundară despre iVim: s-a îmbunătățit. Puteți avea un fișier .vimrc
și să descărcați plugin-uri în sistemul de fișiere al aplicației. Se presupune că plugin-urile funcționează atâta timp cât sunt scrise în Vimscript. De asemenea, rețineți că este Vim 7, deci fără async.
În timp ce lucrați dintr-un editor de text pentru iOS, nu vă așteptați să se aplice modelul tipic de dezvoltare a aplicațiilor web. Cu excepția cazului în care utilizați Pythonista, nu există un server care să ruleze codul dvs. pe iPad, așa că veți avea nevoie de un lipici pentru a face ca fișierul editat să fie transferat undeva unde se execută efectiv codul, cum ar fi un server sau o platformă serverless. Există multe modalități de a realiza acest lucru în 2019, implicând, eventual, o anumită utilizare a Pythonista, Zapier, IFTTT și/sau o comandă vocală Siri în Shortcuts. Dacă programarea pe un iPad este noul dvs. hobby, atunci vă puteți satisface toate cele mai rele obiceiuri de tulburare a deficitului de atenție explorând acest subiect.
Nici unul dintre acești editori nu oferă nici liniere sau formatatori de cod. Designul iOS sugerează că, pentru a face să funcționeze linteri și formatatori externi unei aplicații de editor, ar trebui probabil să fie nevoie de o aplicație separată care să suporte linting-ul și formatarea mesajelor cu text ca intrare. În caz contrar, editorul va trebui să furnizeze binarul, de exemplu, gofmt
. Pentru instrumentele scrise în limbaje interpretate, presupun că editorul ar trebui să grupeze întregul limbaj de programare sau orice altceva face Pythonista.
The Message-Passing Nature of iOS is Pretty Cool
Cu cât folosești mai mult iOS pentru a face ceva non-trivial, cu atât mai mult începi să simți natura sa de transmitere a mesajelor. În loc ca aplicațiile să interacționeze între ele și cu sistemul de operare prin intermediul fișierelor și apelurilor de sistem, toate aplicațiile trimit și primesc mesaje între ele și cu sistemul de operare.
Așa vă găsiți fișierele în aplicația Fișiere, dar aceasta nu este doar un director de fișiere. Este mai degrabă un loc unic pentru a trimite și a primi mesaje despre fișiere în toate aplicațiile de pe iPad, inclusiv iCloud Drive.
Aplicațiile care fac orice cu fișiere au adăugat funcții mai avansate pentru a profita de aceste noi mesaje legate de fișiere pe care alte aplicații le acceptă, astfel încât multe aplicații de editor de text pot face acum lucruri precum deschiderea unui director de fișiere expus de o altă aplicație (în 2019, care este „avansat” pentru iOS). Directoarele deschise în acest mod vor rămâne, de obicei, în ceva de genul unei bare laterale în aplicație și vor continua să fie accesibile ca și cum ar fi fost locale pentru aplicație.
În cele din urmă, acest lucru începe să se simtă destul de cool și natural; revenind la un computer desktop, v-ați putea aștepta la un buton consistent de „partajare” care nu există. Dacă ar exista un editor de text de nivel profesional disponibil pe iOS – și compilatoare, interpretoare, servere web etc.
Obțineți buletinul meu informativ.
Voi primi un e-mail ocazional atunci când sunt suficient de entuziasmat de o tehnologie pentru a scrie despre ea.
Conectarea la un computer real cu SSH
Dacă folosiți Blink sau o altă aplicație SSH pentru a vă conecta la un server care poate executa cod arbitrar și a rula Vim sau Emacs de acolo, atunci modelul tipic cu aplicațiile web scrise în limbaje dinamice de editare a unui fișier, așteptând ca serverul aplicației să reîncarce fișierul editat și apoi reîmprospătând o pagină web poate funcționa în continuare.
Vă veți reîmprospăta un browser pe iOS, desigur. Vă sugerez iCab datorită opțiunilor sale extinse de personalizare, inclusiv, fără îndoială, cele mai bune comenzi rapide de tastatură modificabile pe care le-am văzut pe iOS.
Unde ar trebui să vă rulați serverul în 2019?
Pentru persoanele care au nevoie de puterea și flexibilitatea unui server la distanță și de un editor adevărat precum Vim, există chiar mai multe opțiuni decât erau înainte.
Digital Ocean este o alegere excelentă pentru a începe rapid. Site-ul web are o interfață UI/UX excelentă, iar asistența este inclusă.
Între timp, angajamentul Google de a utiliza energie 100% regenerabilă face din Google Cloud Platform o alegere atractivă dacă nu aveți nevoie de asistență și doriți să depuneți un pic mai mult efort. Nivelul „always free” al GCP include o instanță f1-micro, care ar putea funcționa ca VM de dezvoltare, în funcție de nevoile dumneavoastră.
De asemenea, ceea ce funcționează bine este un Mac vechi pe care îl puteți configura ca server, pentru că atunci puteți sincroniza fișiere între server și iPad-ul dumneavoastră folosind iCloud Drive, sau puteți folosi osascript
pentru a vă trimite mesaje text care se leagă în profunzime de aplicațiile iOS. În acel moment, lumea este o stridie pentru tine. Apple a reînviat Mac Mini, așa că acesta este o pereche viabilă de server de acasă/computer desktop pentru iPad.
Apărarea serverului web de dezvoltare de pe un browser iOS
Cu câțiva ani în urmă, dacă dezvoltai o aplicație web pe un server la distanță, ar fi trebuit să rulezi serverul de dezvoltare al aplicației pe un port accesibil publicului. Acum există o aplicație pentru tunelare SSH numită – așteptați! – SSH Tunnel.
Pentru a ajunge la serverul dvs. de aplicații (de exemplu, serverul de dezvoltare Django), mai întâi stabiliți un tunel către serverul (calculatorul) pe care rulează serverul de aplicații cu SSH Tunnel. Veți dori să definiți un alt nume de gazdă decât „localhost” în /etc/hosts
pe server, îndreptat către 127.0.0.0.1. Urmați apoi instrucțiunile de pe site-ul web al SSH Tunnel pentru a seta setările proxy corecte pe conexiunea de rețea iOS pe care o utilizați.
După ce efectuați sacrificiul de sânge, puteți tasta numele de gazdă pe care l-ați specificat, de ex. old-faithful
și portul pe care rulează serverul aplicației dvs. în browserul iOS ales, de exemplu http://old-faithful:4000
pentru a încărca aplicația.
Browser Dev Tools, Where Art Thou?
Când aveți nevoie să depanați aplicația web, există acum o aplicație de instrumente de dezvoltare numită Inspect. Aceasta funcționează destul de bine, deși îi lipsește mediul robust de depanare JavaScript pe care îl obțineți pe un browser desktop. Totuși, în afară de un depanator JS, Inspect are majoritatea lucrurilor de care aveți nevoie: inspecție CSS/HTML și o consolă JS, astfel încât să poți face cel puțin console.log
depanare.
Lipsa unei aplicații de instrumente de dezvoltare precum Inspect a fost blocajul numărul unu pentru dezvoltarea de aplicații web pe iPad înainte de 2018. Folosind doar aceste instrumente, puteți face dezvoltare de aplicații web de pe iPad. Va fi grozav? Nu știu. Probabil că nu.
Așa că asta e
În 2019, iPad și iOS sunt practic la fel ca în 2017, în ceea ce privește programarea. Ceea ce este diferit este numărul din ce în ce mai mare de dezvoltatori de aplicații pentru iOS care se adresează persoanelor care doresc să scrie cod pe iOS.
Din moment ce iOS a fost lansat acum 12 ani și abia acum sunt disponibile editoare de text asemănătoare cu Dreamweaver, cu puține modalități de a rula cod în afară de aplicațiile „învață să codezi”, propun că vei putea să codezi pe un iPad în 2037.
.
Lasă un răspuns