Andrew Brookins
On 23 grudnia, 2021 by adminW 2017 roku zadałem pytanie: „Czy można pisać kod na iPadzie?”. W 2019 roku odpowiedź jest w zasadzie taka sama: nie bardzo. Ale sprawy stają się interesujące.
Uaktualnienie: jeśli kodujesz na iPadzie, sprawdź moje szczegółowe spojrzenie na sposoby synchronizacji schowka iOS ze zdalną maszyną przez SSH. I również zbadane, jak korzystać z narzędzi dev przeglądarki na iPadOS za pomocą Inspect app w ostatnim post.
„Programowanie” na iOS: Shortcuts App
The iPad nadal brakuje zdolności do wykonywania żadnych natywnych programowania. To znaczy, nie znajdziesz tajne drzwi prowadzące do UNIX powłoki, gdzie można zainstalować homebrew i kompilator C. Jeśli tylko!
Możesz bezpiecznie zignorować Swift Playgrounds, chyba że Twoim celem jest nauka Swift. Playgrounds nie jest środowiskiem programistycznym ogólnego przeznaczenia; jest skierowane do dzieci uczących się kodować.
Najbliżej programowalności, która istnieje jako natywna funkcja systemu iOS, jest aplikacja Shortcuts, która może automatyzować małe zadania i łączyć aplikacje razem.
Jest to przemianowana wersja Workflow, popularnej aplikacji, która robiła mniej więcej to samo. Możesz użyć Skróty, aby ciąg razem serię działań, które można normalnie podjąć, jak włączanie Nie przeszkadzać, odtwarzanie konkretnego albumu (polecam Brute Force przez The Algorithm), i otwarcie aplikacji klienta SSH lub edytor tekstu.
Skróty jest prawdopodobnie przydatne dla kogoś, ale nie używam go dużo i to jest zbyt ograniczone dla mnie, aby nazwać to programowanie!
Edytowanie w Native iOS Text Editors
Jeszcze nie wszystko jest całkowicie stracone. Po pierwsze, jeśli przyznasz, że iPad Pro jest potencjalnym cienkim klientem, który paruje się z serwerem, to masz opcje. Istnieją świetne aplikacje SSH dostępne, takie jak Blink. Ale niekoniecznie trzeba się łączyć bezpośrednio z serwerem, aby zrobić wszystko. Jeśli wolisz edytować natywnie na iPadzie i zbudować system kół pasowych, które podniosą Twój kod do serwera w chmurze, być może z systemem ciągłej integracji, takim jak GitLab, to też jest możliwe. Zbadamy obie opcje.
Hej, napisałem książkę!
Świątynia wydajności baz danych Django to moja nowa książka, która łączy w sobie gry typu tabletop, bazy danych i Django. Poznaj zrujnowaną świątynię, ucząc się zaawansowanych sztuczek wydajności baz danych Django!
You Probably Can’t Run Your Code on iOS Unless It’s Python
There is some wiggle room around running your code directly on the iPad if you are a Python developer. Aplikacja Pythonista wzrosła w czasie z edytora tekstu Python koncentruje się na automatyzacji iOS do hackable Python środowiska programistycznego, który statków z głównych pakietów, takich jak NumPy, ma bash-jak powłoki zaimplementowane w Pythonie, i obsługuje plugins.
Inne niż Python, nie znalazłem żadnych ogólnie użytecznych interpreter lub kompilator aplikacji na iOS.
Uaktualnienie: Czytelnicy skierowali mnie do Continuous, C# i F# IDE dla iOS, oraz Rescript, JavaScript/node.js IDE dla iOS. Oba wyglądają obiecująco i mogą być odpowiednikiem Pythonisty, ale jeszcze ich nie używałem. Jest też Replete, aplikacja na iOS, która daje ci ClojureScript REPL (read-eval-print loop); podczas gdy zabawa, wydaje się mniej bogata w funkcje niż inne.
Native iOS Editors Are Getting Better
Są coraz bardziej przyzwoite edytory tekstu, które działają bez interpretera lub kompilatora. Aplikacje takie jak GoCoEdit i Textastic oferują doświadczenia edycyjne, które zaczęły zdobywać niektóre funkcje edytorów stacjonarnych, które wykraczają poza podstawy – np. wyszukiwanie rozmyte plików.
Te edytory zaczynają współpracować ze sobą i z potężną aplikacją Git – Working Copy i aplikacją Pliki dostarczoną przez Apple, aby uzyskać interesujące efekty. Working Copy może sprawdzić repozytorium Git i udostępnić je do edycji aplikacjom takim jak GoCoEdit; zmiany dokonane w edytorze odbijają się automatycznie w Working Copy, gdzie można je następnie zatwierdzić.
Features Missing from iOS Text Editors
Żaden z tych edytorów nie zapewnia doświadczenia odpowiedniego dla rzeczywistego rozwoju oprogramowania. Mówimy o Dreamweaverze, a nie o Emacsie.
Jednym z brakujących elementów jest obecnie wyszukiwanie projektu; to znaczy, biorąc pod uwagę katalog lub zestaw katalogów, pozwól użytkownikowi na wyszukiwanie tekstu we wszystkich plikach w nim. Jeśli używasz GoCoEdit lub iVim, możesz uzyskać przybliżenie tego poprzez użycie świetnego narzędzia wyszukiwania Working Copy, które zapewnia tę funkcję, aby znaleźć pliki, a następnie wybrać np. „otwórz w GoCoEdit” z menu udostępniania. Textastic z jakiegoś powodu nie oferuje tej funkcji. W każdym razie, jest to wykonalne, ale prawdopodobnie nie osiągniesz pożądanego „flow.”
Uwaga na temat iVim: jest coraz lepiej. Możesz mieć plik .vimrc
i pobrać wtyczki do systemu plików aplikacji. Podobno wtyczki działają tak długo, jak długo są napisane w Vimscript. Zauważ też, że to Vim 7, więc nie ma async.
Podczas pracy z edytora tekstu iOS nie oczekuj, że typowy wzorzec tworzenia aplikacji internetowych będzie miał zastosowanie. Chyba że używasz Pythonista, nie ma serwera uruchomiony swój kod na iPadzie, więc trzeba będzie trochę kleju, aby twój edytowany plik przenieść gdzieś, że faktycznie działa kod, jak serwer lub platforma serverless. Istnieje wiele sposobów, aby to osiągnąć w 2019 roku, być może obejmujących pewne wykorzystanie Pythonista, Zapier, IFTTT i / lub polecenia głosowego Siri w Shortcuts. Jeśli kodowanie na iPadzie to twoje nowe hobby, możesz oddać się wszystkim swoim najgorszym nawykom związanym z zaburzeniami koncentracji uwagi, badając ten temat.
Żaden z tych edytorów nie oferuje żadnych linterów ani formaterów kodu. Projekt iOS sugeruje, że uzyskanie linterów i formaterów zewnętrznych do aplikacji edytora do pracy prawdopodobnie będzie wymagać oddzielnej aplikacji, która obsługiwała linting i formatowanie wiadomości z tekstem jako wejście. W przeciwnym razie, edytor będzie musiał dostarczyć binarkę, np. gofmt
. W przypadku narzędzi napisanych w językach interpretowanych, przypuszczam, że edytor musiałby spakować cały język programowania lub cokolwiek, co robi Pythonista.
The Message-Passing Nature of iOS is Pretty Cool
Im więcej używasz iOS do robienia czegokolwiek nietrywialnego, tym bardziej zaczynasz odczuwać jego naturę message-passing. Zamiast aplikacji współdziałających ze sobą i z systemem operacyjnym za pośrednictwem plików i wywołań systemowych, wszystkie aplikacje wysyłają i odbierają wiadomości między sobą i systemem operacyjnym.
W ten sposób można znaleźć pliki w aplikacji Pliki, ale nie jest to tylko katalog plików. To bardziej jak jedno miejsce do wysyłania i odbierania wiadomości o plikach we wszystkich aplikacjach na iPadzie, w tym iCloud Drive.
Apps, które robią cokolwiek z plikami dodały bardziej zaawansowane funkcje, aby skorzystać z tych nowych wiadomości związanych z plikami, które obsługują inne aplikacje, więc wiele aplikacji edytorów tekstu może teraz robić takie rzeczy jak otwieranie katalogu plików narażonych przez inną aplikację (w 2019 roku, który jest „zaawansowany” dla iOS). Katalogi otwarte w ten sposób zwykle pozostaną w czymś takim jak pasek boczny w aplikacji i nadal będą dostępne tak, jakby były lokalne dla aplikacji.
W końcu zaczyna to czuć się całkiem fajnie i naturalnie; wracając do komputera stacjonarnego, możesz oczekiwać spójnego przycisku „udostępniania”, który nie istnieje. Gdyby tylko istniał edytor tekstu klasy profesjonalnej dostępny na iOS – a także kompilatory, interpretery, serwery internetowe itp.
Pobierz mój biuletyn.
Będziesz otrzymywać sporadyczne wiadomości e-mail, gdy będę wystarczająco podekscytowany jakąś technologią, aby o niej napisać.
Podłączanie się do prawdziwego komputera za pomocą SSH
Jeśli używasz Blink lub innej aplikacji SSH do połączenia się z serwerem, który może wykonać dowolny kod i uruchomić stamtąd Vima lub Emacsa, to typowy schemat z aplikacjami internetowymi napisanymi w dynamicznych językach, polegający na edycji pliku, czekaniu, aż serwer aplikacji przeładuje edytowany plik, a następnie odświeżeniu strony internetowej, może nadal działać.
Oczywiście będziesz odświeżał przeglądarkę na iOS. Sugeruję iCab ze względu na jego szerokie opcje dostosowywania, w tym hands-down najlepsze modyfikowalne skróty klawiaturowe, jakie widziałem na iOS.
Gdzie powinieneś uruchomić swój serwer w 2019 roku?
Dla ludzi, którzy potrzebują mocy i elastyczności zdalnego serwera i prawdziwego edytora, takiego jak Vim, jest jeszcze więcej opcji niż kiedyś.
Digital Ocean to świetny wybór, aby szybko zacząć. Strona internetowa ma świetny UI / UX, a wsparcie jest included.
Meanwhile, Google zobowiązanie do korzystania z 100% energii odnawialnej sprawia Google Cloud Platform atrakcyjnym wyborem, jeśli nie potrzebujesz wsparcia i chcesz spędzić trochę więcej wysiłku. Warstwa „zawsze za darmo” GCP zawiera instancję f1-micro, która może pracować jako maszyna wirtualna do rozwoju, w zależności od potrzeb.
Co również działa dobrze to stary Mac, który można skonfigurować jako serwer, ponieważ wtedy można synchronizować pliki między serwerem a iPadem za pomocą iCloud Drive, lub użyć osascript
do wysyłania sobie wiadomości tekstowych, które głęboko łączą się z aplikacjami iOS. W tym momencie świat staje się Twoją ostrygą. Apple ożywił Mac Mini, więc jest to realna para domowy serwer / komputer stacjonarny dla iPad.
Sięgając swój serwer WWW rozwoju z iOS Browser
Kilka lat temu roku, jeśli zostały rozwijających się aplikacji internetowych na zdalnym serwerze może trzeba było uruchomić serwer dev aplikacji na publicznie dostępnym porcie. Teraz istnieje aplikacja do tunelowania SSH o nazwie – wait for it! – SSH Tunnel.
Aby dostać się do serwera aplikacji (np. serwera deweloperskiego Django), najpierw należy utworzyć tunel do serwera (komputera), na którym działa serwer aplikacji za pomocą SSH Tunnel. Musisz zdefiniować nazwę hosta inną niż „localhost” w /etc/hosts
na serwerze, wskazując na 127.0.0.1. Następnie postępuj zgodnie z instrukcjami na stronie internetowej SSH Tunnel, aby ustawić odpowiednie ustawienia proxy dla używanego połączenia sieciowego iOS.
Po wykonaniu poświęcenia krwi możesz wpisać określoną nazwę hosta, np. old-faithful
i port, na którym działa serwer aplikacji, w wybranej przeglądarce iOS, np. http://old-faithful:4000
, aby załadować aplikację.
Browser Dev Tools, Where Art Thou?
Gdy musisz debugować aplikację internetową, istnieje teraz aplikacja dev tools o nazwie Inspect. Działa całkiem nieźle, choć brakuje mu solidnego środowiska debugowania JavaScript, które można uzyskać w przeglądarce na pulpicie. Mimo to, poza debuggerem JS, Inspect ma większość z tego, czego potrzebujesz: Inspekcja CSS/HTML i konsola JS, więc możesz przynajmniej zrobić console.log
debugowanie.
Brak aplikacji narzędziowej dev, takiej jak Inspect, był numerem jeden blokującym rozwój aplikacji internetowych na iPadzie przed 2018 rokiem. Korzystając tylko z tych narzędzi, możesz zrobić rozwój aplikacji internetowych z iPada. Czy będzie to świetne rozwiązanie? Nie wiem. Prawdopodobnie nie.
So There You Have It
W 2019 roku iPad i iOS są w zasadzie takie same jak w 2017 roku, jeśli chodzi o programowanie. To, co jest inne, to rosnąca liczba deweloperów aplikacji iOS obsługujących ludzi, którzy chcą pisać kod na iOS.
Zważywszy, że iOS został wydany 12 lat temu i dopiero teraz ma edytory tekstu podobne do Dreamweavera dostępne, z kilkoma sposobami na uruchomienie kodu poza aplikacjami „naucz się kodować”, proponuję, że będziesz mógł kodować na iPadzie w 2037 roku.
Dodaj komentarz