Andrew Brookins
On 23 prosince, 2021 by adminV roce 2017 jsem se ptal: „Můžete psát kód na iPadu?“. V roce 2019 je odpověď v podstatě stejná: ne tak docela. Ale začíná to být zajímavé.
Aktualizace: Pokud programujete na iPadu, podívejte se na můj podrobný pohled na způsoby synchronizace schránky iOS se vzdáleným počítačem přes SSH. V nedávném příspěvku jsem se také zabýval tím, jak na iPadOS používat vývojářské nástroje prohlížeče pomocí aplikace Inspect.
„Programování“ na iOS: aplikace Zkratky
Na iPadu stále chybí možnost nativního programování. To znamená, že na něm nenajdete tajné dveře vedoucí do UNIXového shellu, kde byste si mohli nainstalovat homebrew a kompilátor jazyka C. Kéž by!
Swift Playgrounds můžete s klidem ignorovat, pokud není vaším cílem naučit se Swift. Playgrounds není univerzální programovací prostředí; je zaměřeno na děti, které se učí programovat.
Nejblíže programování, které existuje jako nativní funkce iOS, je aplikace Shortcuts, která dokáže automatizovat drobné úkoly a propojovat aplikace dohromady.
Jde o rebrandovanou verzi populární aplikace Workflow od Applu, která dělala víceméně totéž. Pomocí Shortcuts můžete spojit řadu akcí, které běžně provádíte, například zapnout funkci Nerušit, přehrát konkrétní album (doporučuji Brute Force od The Algorithm) a otevřít aplikaci klienta SSH nebo textový editor.
Shortcuts se asi někomu hodí, ale já ji moc nepoužívám a je příliš omezená na to, abych ji nazval programováním!“
Editace v nativních textových editorech iOS
Však není vše úplně ztraceno. Zaprvé, pokud připustíte, že iPad Pro je potenciální tenký klient, který se spáruje se serverem, pak máte možnosti. K dispozici jsou skvělé aplikace pro SSH, například Blink. Ale nemusíte se nutně připojovat přímo k serveru, abyste mohli dělat všechno. Pokud byste raději upravovali nativně na iPadu a zkonstruovali systém kladek, které váš kód vytahují na cloudový server, třeba pomocí systému kontinuální integrace, jako je GitLab, je to také možné. Prozkoumáme obě možnosti.
Hej, napsal jsem knihu!“
The Temple of Django Database Performance je moje nová kniha, která spojuje stolní hry, databáze a Django. Prozkoumejte zničený chrám a zároveň se naučte pokročilé triky pro výkon databází Django!
Pravděpodobně nemůžete spouštět svůj kód na iOS, pokud to není Python
Pokud jste vývojáři v Pythonu, existuje určitý prostor pro spouštění kódu přímo na iPadu. Aplikace Pythonista se postupem času rozrostla z textového editoru Pythonu zaměřeného na automatizaci iOS na hackovatelné vývojové prostředí Pythonu, které se dodává s hlavními balíčky, jako je NumPy, má shell podobný bashi implementovaný v Pythonu a podporuje zásuvné moduly.
Kromě Pythonu jsem na iOS nenašel žádné obecně užitečné aplikace pro interprety nebo kompilátory.
Aktualizace: Čtenáři mě odkázali na Continuous, IDE pro C# a F# pro iOS, a Rescript, IDE pro JavaScript/node.js pro iOS. Obě vypadají slibně a mohou být ekvivalentem Pythonisty, ale nepoužíval jsem je. Existuje také Replete, aplikace pro iOS, která vám poskytne ClojureScript REPL (read-eval-print loop); je sice zábavná, ale zdá se méně funkčně bohatá než ostatní.
Nativní editory pro iOS jsou stále lepší
Existují stále slušnější textové editory, které běží bez interpretu nebo kompilátorové komponenty. Aplikace jako GoCoEdit a Textastic nabízejí editační prostředí, které začíná získávat některé funkce desktopových editorů, jež jdou nad rámec základů – např. rozmazané vyhledávání souborů.
Tyto editory začínají spolupracovat mezi sebou a s výkonnou aplikací Git Working Copy a aplikací Soubory poskytovanou společností Apple a vytvářejí zajímavé efekty. Working Copy umí kontrolovat úložiště Git a zpřístupnit je k úpravám aplikacím, jako je GoCoEdit; změny provedené v editoru se automaticky promítnou zpět do Working Copy, kde je pak můžete odevzdat.
Funkce chybějící v textových editorech pro iOS
Žádný z těchto editorů však sám o sobě neposkytuje zážitek vhodný pro skutečný vývoj softwaru. Mluvíme o Dreamweaveru, ne o Emacsu.
Jedním z chybějících prvků je v současné době vyhledávání v projektu; to znamená, že při zadání adresáře nebo sady adresářů umožní uživateli vyhledávat text ve všech souborech v něm. Pokud používáte GoCoEdit nebo iVim, můžete se tomu přiblížit tak, že pomocí skvělého vyhledávacího nástroje Working Copy, který tuto funkci poskytuje, najdete soubory a pak v nabídce sdílení vyberete např. možnost „otevřít v GoCoEditu“. Textastic tuto funkci z nějakého důvodu nenabízí. Každopádně je to v nouzi použitelné, ale kýženého „flow“ tím pravděpodobně nedosáhnete.
Poznámka na okraj k iVimu: zlepšil se. Můžete mít .vimrc
soubor a stahovat zásuvné moduly do souborového systému aplikace. Údajně zásuvné moduly fungují, pokud jsou napsány ve Vimscriptu. Také si uvědomte, že jde o Vim 7, takže žádný async.
Při práci z textového editoru pro iOS nečekejte, že se uplatní typický vzorec vývoje webových aplikací. Pokud nepoužíváte Pythonistu, na iPadu není žádný server, na kterém by běžel váš kód, takže budete potřebovat nějaké lepidlo, aby se váš upravený soubor přenesl někam, kde skutečně běží kód, například na server nebo bezserverovou platformu. Existuje mnoho způsobů, jak toho v roce 2019 dosáhnout, případně s využitím Pythonisty, Zapieru, IFTTT a/nebo hlasového příkazu Siri v aplikaci Shortcuts. Pokud je kódování na iPadu vaším novým koníčkem, pak se při zkoumání tohoto tématu můžete oddat všem svým nejhorším návykům spojeným s poruchou pozornosti.
Žádný z těchto editorů nenabízí ani žádné lintery nebo formátovače kódu. Konstrukce systému iOS naznačuje, že zprovoznění linterů a formátovačů vně aplikace editoru by pravděpodobně vyžadovalo samostatnou aplikaci, která by podporovala lintování a formátování zpráv s textem jako vstupem. V opačném případě bude muset editor poskytnout binární kód, např. gofmt
. U nástrojů napsaných v interpretovaných jazycích by asi editor musel přibalit celý programovací jazyk nebo cokoliv, co dělá Pythonista.“
The Message-Passing Nature of iOS is Pretty Cool
Čím více používáte iOS k čemukoliv netriviálnímu, tím více začnete pociťovat jeho message-passing povahu. Místo toho, aby aplikace komunikovaly mezi sebou a s operačním systémem prostřednictvím souborů a systémových volání, všechny aplikace posílají a přijímají zprávy mezi sebou a operačním systémem.
V aplikaci Soubory tak najdete své soubory, ale není to jen adresář se soubory. Je to spíš jediné místo pro odesílání a přijímání zpráv o souborech ve všech aplikacích na iPadu, včetně iCloud Drive.
Aplikace, které se soubory něco dělají, přidaly pokročilejší funkce, aby mohly využívat tyto nové zprávy týkající se souborů, které ostatní aplikace podporují, takže mnoho aplikací textových editorů nyní umí například otevřít adresář se soubory vystavený jinou aplikací (v roce 2019 je to pro iOS „pokročilé“). Takto otevřené adresáře obvykle zůstanou v něčem, jako je postranní panel v aplikaci, a budou nadále přístupné, jako by byly lokální v dané aplikaci.
Koneckonců to začíná být docela fajn a přirozené; když se vrátíme ke stolnímu počítači, možná byste očekávali důsledné tlačítko „sdílet“, které neexistuje. Kéž by byl v iOS k dispozici profesionální textový editor – a kompilátory, interprety, webové servery atd.
Získejte můj newsletter.
Občas dostanete e-mail, když mě nějaká technologie nadchne natolik, že o ní napíšu.
Připojení ke skutečnému počítači pomocí SSH
Pokud se pomocí Blinku nebo jiné aplikace SSH připojíte k serveru, který může spouštět libovolný kód, a spustíte z něj Vim nebo Emacs, pak může stále fungovat typické schéma u webových aplikací napsaných v dynamických jazycích, kdy upravíte soubor, počkáte, až server aplikace načte upravený soubor, a pak obnovíte webovou stránku.
Na iOS budete samozřejmě obnovovat prohlížeč. Doporučuji iCab kvůli jeho rozsáhlým možnostem přizpůsobení, včetně jednoznačně nejlépe modifikovatelných klávesových zkratek, které jsem na iOS viděl.
Kde byste měli provozovat svůj server v roce 2019?
Pro lidi, kteří potřebují výkon a flexibilitu vzdáleného serveru a skutečného editoru, jako je Vim, existuje ještě více možností než dříve.
Digital Ocean je skvělá volba pro rychlý začátek. Webové stránky mají skvělé uživatelské rozhraní/UX a součástí je i podpora.
Pokud nepotřebujete podporu a chcete vynaložit trochu více úsilí, je Google Cloud Platform atraktivní volbou díky závazku společnosti Google používat 100% obnovitelnou energii. Úroveň GCP „vždy zdarma“ zahrnuje instanci f1-micro, která by podle vašich potřeb mohla fungovat jako váš vývojový virtuální počítač.
Dobře funguje také starý Mac, který můžete nastavit jako server, protože pak můžete synchronizovat soubory mezi serverem a iPadem pomocí iCloud Drive nebo si pomocí osascript
posílat textové zprávy, které se hluboce propojí s aplikacemi pro iOS. V tu chvíli je svět vaše ústřice. Apple oživil Mac Mini, takže je to životaschopná dvojice domácího serveru a stolního počítače pro iPad.
Dostupnost vývojového webového serveru z prohlížeče iOS
Před několika lety rok, pokud jste vyvíjeli webovou aplikaci na vzdáleném serveru, jste možná museli spustit vývojový server aplikace na veřejně přístupném portu. Nyní existuje aplikace pro tunelování SSH s názvem – počkejte si! – SSH Tunnel.
Chcete-li se dostat na server aplikace (např. vývojový server Djanga), musíte nejprve pomocí nástroje SSH Tunnel vytvořit tunel na server (počítač), na kterém běží server aplikace. Na serveru budete chtít definovat jiné jméno hostitele než „localhost“ v poli /etc/hosts
, které bude směřovat na adresu 127.0.0.1. Poté podle pokynů na webu SSH Tunnel nastavte správné nastavení proxy serveru v síťovém připojení iOS, které používáte.
Po provedení obětování krve můžete zadat zadaný název hostitele, např. old-faithful
a port, na kterém běží váš aplikační server, do zvoleného prohlížeče pro iOS, např. http://old-faithful:4000
, a načíst aplikaci.
Prohlížeči Dev Tools, kde jsi?“
Pokud potřebujete odladit webovou aplikaci, je nyní k dispozici aplikace Dev Tools s názvem Inspect. Funguje docela dobře, i když jí chybí robustní prostředí pro ladění JavaScriptu, které získáte v desktopovém prohlížeči. Přesto má Inspect kromě ladicího programu JS většinu toho, co potřebujete:
Nedostatek aplikace dev tools, jako je Inspect, byl před rokem 2018 překážkou číslo jedna pro vývoj webových aplikací na iPadu. Pomocí právě těchto nástrojů můžete provádět vývoj webových aplikací ze zařízení iPad. Bude to skvělé? To nevím. Pravděpodobně ne.
Tak to máte
V roce 2019 jsou iPad a iOS, co se týče programování, v podstatě stejné jako v roce 2017. Co je jiné, je rostoucí počet vývojářů aplikací pro iOS, kteří vycházejí vstříc lidem, kteří chtějí psát kód na iOS.
Vzhledem k tomu, že iOS byl vydán před 12 lety a teprve nyní jsou k dispozici textové editory podobné Dreamweaveru, přičemž existuje jen málo způsobů, jak spouštět kód kromě aplikací typu „nauč se kódovat“, navrhuji, že na iPadu budete moci programovat v roce 2037.
Napsat komentář