Andrew Brookins
On 23 joulukuun, 2021 by adminVuonna 2017 kysyin: ”Voitko kirjoittaa koodia iPadilla?”. Vuonna 2019 vastaus on periaatteessa sama: ei oikeastaan. Mutta asiat muuttuvat mielenkiintoisiksi.
Päivitys: Jos koodaat iPadilla, tutustu yksityiskohtaiseen katsaukseeni tavoista synkronoida iOS:n leikepöytä etäkoneen kanssa SSH:n kautta. Tutkin myös, miten selaimen kehitystyökaluja voi käyttää iPadOS:ssä Inspect-sovelluksen avulla tuoreessa postauksessa.
”Ohjelmointi” iOS:ssä: Shortcuts-sovellus
Ipadilta puuttuu edelleen kyky tehdä mitään natiivia ohjelmointia. Toisin sanoen et löydä salaista ovea, joka johtaa UNIX-kuoreen, johon voit asentaa homebrew’n ja C-kääntäjän. Jos vain!
Voit huoletta sivuuttaa Swift Playgroundsin, ellei tavoitteesi ole oppia Swiftiä. Playgrounds ei ole yleiskäyttöinen ohjelmointiympäristö; se on suunnattu lapsille, jotka opettelevat koodaamaan.
Lähimpänä ohjelmoitavuutta, joka on olemassa natiivina toimintona iOS:ssä, on Shortcuts-sovellus, jolla voi automatisoida pieniä tehtäviä ja liittää sovelluksia toisiinsa.
Se on Applen uudelleenbrändätty versio suositusta Workflow-sovelluksesta, joka teki suurin piirtein saman asian. Shortcutsin avulla voit liittää yhteen sarjan toimintoja, joita normaalisti teet, kuten Älä häiritse -toiminnon kytkemisen päälle, tietyn albumin soittamisen (suosittelen The Algorithm -yhtyeen Brute Forcea) ja SSH-asiakassovelluksen tai tekstieditorin avaamisen.
Shortcuts on luultavasti hyödyllinen jollekulle, mutta minä en käytä sitä paljon, ja se on liian rajallinen, jotta voisin kutsua sitä ohjelmoinniksi!
Tekstin muokkaaminen iOS:n natiivissa tekstinkäsittelyohjelmassa
Kaikki ei ole kuitenkaan vielä menetetty kokonaan. Ensinnäkin, jos myönnät, että iPad Pro on potentiaalinen thin client, joka muodostaa parin palvelimen kanssa, sinulla on vaihtoehtoja. Saatavilla on loistavia SSH-sovelluksia, kuten Blink. Mutta sinun ei välttämättä tarvitse ottaa yhteyttä suoraan palvelimeen tehdäksesi kaiken. Jos haluat mieluummin muokata natiivisti iPadilla ja rakentaa hihnapyöräjärjestelmän, joka nostaa koodisi pilvipalvelimelle, kenties GitLabin kaltaisen jatkuvan integroinnin järjestelmän avulla, sekin on mahdollista. Tutustumme molempiin vaihtoehtoihin.
Hei, kirjoitin kirjan!
Djangon tietokantasuorituskyvyn temppeli (Temple of Django Database Performance) on uusi kirjani, joka sulauttaa yhteen tabletop-pelaamisen, tietokannat ja Djangon. Tutki raunioitunutta temppeliä samalla kun opit kehittyneitä Djangon tietokantasuorituskyvyn niksejä!
Sinä et luultavasti voi ajaa koodiasi iOS:llä, ellei se ole Pythonia
On jonkin verran liikkumavaraa siinä, että voit ajaa koodiasi suoraan iPadilla, jos olet Python-kehittäjä. Pythonista-sovellus on kasvanut ajan mittaan iOS-automaatioon keskittyneestä Python-tekstieditorista hakkeroitavaksi Python-kehitysympäristöksi, joka toimitetaan tärkeimpien pakettien, kuten NumPyn, kanssa, jossa on Pythonilla toteutettu bashin kaltainen komentotulkki ja joka tukee liitännäisohjelmia.
Pythonin lisäksi en ole löytänyt iOS:stä mitään yleisesti käyttökelpoisia tulkki- tai kääntäjäsovelluksia.
Päivitys: Lukijat ohjasivat minut Continuousiin, C#- ja F#-IDE:hen iOS:lle, ja Rescriptiin, JavaScript/node.js-IDE:hen iOS:lle. Nämä molemmat näyttävät lupaavilta ja saattavat vastata Pythonista, mutta en ole käyttänyt niitä. On myös Replete, iOS-sovellus, joka antaa sinulle ClojureScript REPL:n (read-eval-print loop); vaikka se onkin hauska, se vaikuttaa vähemmän ominaisuuksiltaan monipuolisemmalta kuin muut.
Natiivit iOS-editorit paranevat
On yhä enemmän kunnollisia tekstieditoreja, jotka toimivat ilman tulkki- tai kääntäjäosaa. GoCoEditin ja Textasticin kaltaiset sovellukset tarjoavat muokkauskokemuksia, jotka ovat alkaneet saada joitakin työpöytäeditoreiden ominaisuuksia, jotka menevät perusasioita pidemmälle – esimerkiksi tiedostojen sumea etsiminen.
Nämä editorit alkavat työskennellä toistensa ja tehokkaan Git-sovelluksen Working Copy ja Applen tarjoaman Tiedostot-sovelluksen kanssa mielenkiintoisten efektien tuottamiseksi. Working Copy voi tarkistaa Git-tietovaraston ja asettaa sen GoCoEditin kaltaisten sovellusten muokattavaksi; editorissa tehdyt muutokset heijastuvat automaattisesti takaisin Working Copyyn, jossa ne voi sitten commitata.
Ominaisuudet, jotka puuttuvat iOS-tekstieditoreista
Kään näistä editoreista ei kuitenkaan yksinään tarjoa varsinaiseen ohjelmistokehitykseen sopivaa kokemusta. Puhumme Dreamweaverista, emme Emacsista.
Yksi puuttuva palanen tällä hetkellä on projektin haku; eli kun annetaan hakemisto tai joukko hakemistoja, käyttäjälle annetaan mahdollisuus etsiä tekstiä kaikista siinä olevista tiedostoista. Jos käytät GoCoEditiä tai iVimiä, voit saada tämän likimääräisesti käyttämällä Working Copyn loistavaa hakutyökalua, joka kyllä tarjoaa tämän ominaisuuden, etsimällä tiedostoja ja valitsemalla sitten esim. jakovalikosta ”open in GoCoEdit”. Textastic ei jostain syystä tarjoa tätä ominaisuutta. Joka tapauksessa, se on käyttökelpoinen pinteessä, mutta et luultavasti saavuta tavoiteltua ”flow’ta”.
Sivuhuomautus iVimistä: se on parantunut. Sinulla voi olla .vimrc
tiedosto ja ladata lisäosia sovelluksen tiedostojärjestelmään. Oletettavasti liitännäiset toimivat, kunhan ne on kirjoitettu Vimscriptillä. Huomaa myös, että kyseessä on Vim 7, joten ei asynciä.
Kun työskentelet iOS-tekstieditorilla, älä odota, että web-sovelluskehityksen tyypillinen malli pätee. Ellet käytä Pythonista, iPadissa ei ole palvelinta, joka pyörittää koodiasi, joten tarvitset jonkinlaista liimaa, jotta muokkaamasi tiedosto siirtyy jonnekin, joka todella pyörittää koodia, kuten palvelimelle tai serverless-alustalle. On monia tapoja toteuttaa tämä vuonna 2019, mahdollisesti käyttämällä jonkin verran Pythonista, Zapieria, IFTTT:tä ja/tai Sirin äänikomentoa Shortcutsissa. Jos koodaaminen iPadilla on uusi harrastuksesi, voit hemmotella kaikkia pahimpia Attention Deficit Disorder -tottumuksiasi tutkimalla tätä aihetta.
Kään näistä toimittajista ei tarjoa mitään linereita tai koodin muotoilijoita. iOS:n suunnittelu viittaa siihen, että editorisovelluksen ulkopuolisten linterien ja muotoilijoiden saaminen toimimaan edellyttäisi luultavasti erillistä sovellusta, joka tukisi linttausta ja muotoiluviestejä, joiden syötteenä on teksti. Muussa tapauksessa editorin on tarjottava binääri, esim. gofmt
. Tulkatuilla kielillä kirjoitetuille työkaluille editorin täytyisi kai niputtaa koko ohjelmointikieli tai mitä Pythonista tekee.
IOS:n viestinvälitysluonne on aika siisti
Mitä enemmän käytät iOS:ää mihinkään ei-triviaaliin, sitä enemmän alat tuntea sen viestinvälitysluonteen. Sen sijaan, että sovellukset olisivat vuorovaikutuksessa toistensa ja käyttöjärjestelmän kanssa tiedostojen ja järjestelmäkutsujen kautta, kaikki sovellukset lähettävät ja vastaanottavat viestejä toistensa ja käyttöjärjestelmän välillä.
Siten löydät tiedostosi Tiedostot-sovelluksesta, mutta se ei ole pelkkä tiedostojen hakemisto. Se on enemmänkin yksi paikka, jossa voit lähettää ja vastaanottaa viestejä tiedostoista kaikissa iPadin sovelluksissa, mukaan lukien iCloud Drive.
Sovellukset, jotka tekevät jotain tiedostojen kanssa, ovat lisänneet edistyneempiä ominaisuuksia hyödyntääkseen näitä uusia tiedostoihin liittyviä viestejä, joita muut sovellukset tukevat, joten monet tekstinkäsittelysovellukset voivat nyt tehdä asioita, kuten avata hakemiston, jossa on tiedostoja, jotka on altistettu jollekin toiselle sovellukselle (vuonna 2019, joka on iOS:n kannalta ”edistynyttä”). Tällä tavoin avatut hakemistot pysyvät yleensä sovelluksen jonkinlaisessa sivupalkissa ja ovat edelleen käytettävissä ikään kuin ne olisivat sovelluksen paikallisia.
Tämä alkaa lopulta tuntua aika siistiltä ja luonnolliselta; kun palaa työpöytätietokoneeseen, voisi odottaa johdonmukaista ”jaa”-painiketta, jota ei ole olemassa. Kunpa iOS:lle olisi saatavilla ammattilaistason tekstieditori – ja kääntäjiä, tulkkeja, web-palvelimia jne.
Tilaa uutiskirjeeni.
Saat satunnaisesti sähköpostia, kun olen tarpeeksi innostunut jostain teknologiasta kirjoittaakseni siitä.
Yhteyden muodostaminen oikeaan tietokoneeseen SSH:lla
Jos käytät Blinkiä tai jotain muuta SSH-sovellusta muodostaaksesi yhteyden palvelimelle, joka voi suorittaa mielivaltaista koodia, ja suorittaaksesi sieltä käsin Vim- tai Emacs-ohjelmia, dynaamisilla kielillä kirjoitetuille web-sovelluksille tyypillinen kuvio, jossa muokkaat tiedostoa, odotat sovelluspalvelimelta muokatun tiedoston latautumista uudestaan ja sen jälkeen verkkosivun päivittämistä, voi silti toimia.
Käytät tietenkin selaimen selainta iOS:llä. Suosittelen iCabia sen laajojen muokkausmahdollisuuksien vuoksi, mukaan lukien ehdottomasti parhaat muokattavat pikanäppäimet, joita olen nähnyt iOS:ssä.
Missä sinun pitäisi käyttää palvelintasi vuonna 2019?
Leille, jotka tarvitsevat etäkäyttöisen palvelimen tehoa ja joustavuutta sekä Vimin kaltaista todellista editoria, vaihtoehtoja on entistä enemmän.
Digital Ocean on loistava valinta, jos haluat päästä nopeasti alkuun. Verkkosivustolla on hieno UI/UX, ja tuki sisältyy hintaan.
Mikäli Googlen sitoutuminen 100-prosenttisesti uusiutuvan energian käyttöön tekee Google Cloud Platformista houkuttelevan valinnan, jos et tarvitse tukea ja haluat käyttää hieman enemmän vaivaa. GCP:n ”aina ilmainen” taso sisältää f1-micro-instanssin, joka voisi toimia kehitys-VM:näsi tarpeistasi riippuen.
Hyvin toimii myös vanha Mac, jonka voit asettaa palvelimeksi, koska silloin voit synkronoida tiedostoja palvelimen ja iPadin välillä iCloud Driven avulla tai lähettää itsellesi tekstiviestejä, jotka linkittyvät syvälinkkeinä iOS-sovelluksiin osascript
. Siinä vaiheessa maailma on sinun osterisi. Apple on elvyttänyt Mac Minin, joten se on toteuttamiskelpoinen kotipalvelin/pöytätietokone -parivaljakko iPadin kanssa.
Kehitysverkkopalvelimen tavoittaminen iOS-selaimesta
Muutama vuosi sitten vuonna Jos kehitit web-sovellusta etäpalvelimella, sinun olisi ehkä pitänyt ajaa sovelluksen dev-palvelinta julkisesti käytettävissä olevassa portissa. Nyt SSH-tunnelointiin on olemassa sovellus nimeltä – odota! – SSH Tunnel.
Sovelluspalvelimen (esim. Djangon kehityspalvelimen) tavoittamiseksi luot ensin SSH Tunnelilla tunnelin palvelimelle (tietokoneelle), jolla sovelluspalvelin toimii. Haluat määritellä palvelimelle muun host-nimen kuin ”localhost” kohdassa /etc/hosts
, joka osoittaa osoitteeseen 127.0.0.1. Seuraa sitten SSH Tunnelin verkkosivujen ohjeita asettaaksesi oikeat välityspalvelinasetukset käyttämällesi iOS-verkkoyhteydelle.
Kun olet suorittanut veriuhrin, voit kirjoittaa määrittelemäsi isäntänimen, esim. old-faithful
ja portin, jossa sovelluspalvelimesi toimii, haluamaasi iOS-selaimeen, esim. http://old-faithful:4000
, ladataksesi sovelluksen.
selaimen dev-työkalut, missä olet?
Kun haluat debugata verkkosovelluksen, on nyt olemassa dev-työkalusovellus nimeltä Inspect. Se toimii melko hyvin, vaikka siitä puuttuukin työpöytäselaimella saatava vankka JavaScriptin debuggausympäristö. Silti Inspectissä on JS-debuggeria lukuun ottamatta suurin osa siitä, mitä tarvitset: CSS/HTML-tarkastus ja JS-konsoli, joten voit ainakin tehdä console.log
virheenkorjausta.
Inspectin kaltaisen kehitystyökalusovelluksen puute oli ennen vuotta 2018 web-sovelluskehityksen este numero yksi iPadilla. Pelkästään näillä työkaluilla voit tehdä verkkosovelluskehitystä iPadilla. Tuleeko siitä mahtavaa? En tiedä. Todennäköisesti ei.
So There You Have It
Vuonna 2019 iPad ja iOS ovat ohjelmoinnin kannalta periaatteessa samat kuin vuonna 2017. Erilaista on iOS-sovelluskehittäjien kasvava määrä, joka palvelee ihmisiä, jotka haluavat kirjoittaa koodia iOS:llä.
Kun otetaan huomioon, että iOS julkaistiin 12 vuotta sitten, ja vasta nyt on saatavilla Dreamweaverin kaltaisia tekstieditoreja ja vain vähän tapoja suorittaa koodia ”opi koodaamaan” -sovelluksia lukuun ottamatta, ehdotan, että voit koodata iPadilla vuonna 2037.
Vastaa