Andrew Brookins
On 12月 23, 2021 by admin2017年に “iPadでコードを書けるか?”と質問しました。 2019年も基本的に答えは同じで、そうではありません。 しかし、物事は面白くなってきています。
更新: iPad でコードを書く場合は、iOS のクリップボードを SSH でリモート マシンと同期する方法についての私の詳しい考察を確認してください。 また、最近の投稿で、Inspect アプリを使って iPadOS でブラウザ開発ツールを使用する方法を探りました。
iOS での「プログラミング」: ショートカット アプリ
iPad には、ネイティブのプログラミングを行う機能はまだありません。 つまり、homebrew と C コンパイラーをインストールできる UNIX シェルにつながる秘密のドアを見つけることはできません。 もしあれば!
Swift Playgrounds は、Swift を学ぶことが目的でない限り、安全に無視することができます。 Playgrounds は汎用プログラミング環境ではなく、コードを学ぶ子供向けです。
iOS のネイティブ機能として存在するプログラミング可能性に最も近いのは、小さなタスクを自動化し、アプリを一緒に接続できる Shortcuts アプリです。 Shortcuts を使用して、Do Not Disturb をオンにする、特定のアルバム (The Algorithm の Brute Force がお勧めです) を再生する、SSH クライアント アプリまたはテキスト エディタを開くなど、通常行う一連のアクションをひも付けできます。
Shortcutsはおそらく誰かにとって便利ですが、私はあまり使用しないし、プログラミングと呼ぶにはあまりにも限定的です!
Editing in Native iOS Text Editor
しかしすべてが完全に失われることはありませんでした。 まず、iPad Pro がサーバーとペアになる潜在的なシンクライアントであることを認めるなら、選択肢はあります。 Blink のような素晴らしい SSH アプリが利用可能です。 しかし、必ずしもサーバーに直接接続してすべてを行う必要はありません。 iPad上でネイティブに編集し、GitLabのような継続的インテグレーションシステムを使って、クラウドサーバーまでコードを持ち上げる滑車システムを構築したい場合も、それはそれで可能です。
Hey, I Wrote a Book!
The Temple of Django Database Performance は、卓上ゲーム、データベース、Django をマッシュアップした私の新しい書籍です。 Djangoデータベースパフォーマンスの高度なトリックを学びながら、廃墟となった寺院を探索しましょう!
You Probably Can’t Run Your Code on iOS Unless It’s Python
Python開発者であれば、iPadでコードを直接実行することについて多少のゆとりがあるようです。 Pythonista アプリは、iOS の自動化に焦点を当てた Python テキスト エディタから、NumPy などの主要なパッケージが同梱され、Python で実装された bash のようなシェルを持ち、プラグインをサポートする、ハック可能な Python 開発環境へと時間とともに成長しました。
Python 以外の iOS では、概して有用なインタプリタまたはコンパイラ アプリを発見していません。 読者の方から、iOS 用の C# および F# IDE である Continuous と、iOS 用の JavaScript/node.js IDE である Rescript を紹介されました。 これらは両方とも有望で、Pythonista と同等かもしれませんが、私は使ったことがありません。 また、ClojureScript REPL (read-eval-print loop) を提供する iOS アプリ、Replete もあります。
Native iOS Editors Are Getting Better
インタプリタやコンパイラのコンポーネントなしで実行するまともなテキスト エディターが増えてきています。 GoCoEdit や Textastic などのアプリは、基本を超えたデスクトップ エディターの機能 (ファイルのファジー検索など) を獲得し始めた編集体験を提供します。
これらのエディターは、互いに、また強力な Git アプリ Working Copy や Apple 提供の Files アプリと協力して、興味深いエフェクトを生み出し始めています。 Working Copy は Git リポジトリをチェックアウトし、GoCoEdit などのアプリで編集できるようにします。エディターで行った変更は自動的に Working Copy に反映され、そこでコミットすることができます。 Emacs ではなく Dreamweaver の話です。
現在欠けている機能の 1 つはプロジェクト検索で、ディレクトリまたはディレクトリのセットを与えると、ユーザーはその中のすべてのファイルからテキストを検索できるようになります。 GoCoEdit または iVim を使用している場合、この機能を提供する Working Copy の優れた検索ツールを使用してファイルを検索し、共有メニューから「GoCoEdit で開く」などを選択することで、近似した機能を得ることができます。 Textasticはなぜかこの機能を提供していません。 いずれにせよ、これはピンチには有効ですが、おそらく求められる「フロー」は実現できないでしょう。
iVim についての余談です。 .vimrc
ファイルを持ち、プラグインをアプリケーションのファイル システムにダウンロードできます。 おそらく、プラグインは Vimscript で書かれている限り動作します。 また、Vim 7 なので、async がないことにも注意してください。
iOS のテキスト エディターから作業している間、Web アプリケーション開発の典型的なパターンが適用されるとは思わないでください。 Pythonista を使用しない限り、iPad 上でコードを実行するサーバーはありません。したがって、編集したファイルをサーバーまたはサーバーレス プラットフォームのような実際にコードを実行する場所に転送するための何らかの接着剤が必要になります。 2019年にこれを実現する方法はたくさんあり、おそらくPythonista、Zapier、IFTTT、および/またはShortcutsのSiri音声コマンドを何らかの形で使用することが含まれます。 iPad でのコーディングがあなたの新しい趣味であるなら、このトピックを探求するあなたの最悪の注意欠陥障害の習慣をすべて満喫できます。
これらのエディターのいずれも、リンターまたはコード フォーマッターを提供しません。 iOS の設計では、エディター アプリの外部でリンタおよびフォーマッタを動作させるには、おそらくテキストを入力としてリンタおよびフォーマット メッセージをサポートする別のアプリが必要です。 そうでなければ、エディタがバイナリ(例:gofmt
)を提供する必要があります。 インタープリタ型言語で書かれたツールについては、エディターがプログラミング言語全体をバンドルするか、Pythonista が何をしているかになると思います。
The Message-Passing Nature of iOS is Pretty Cool
iOS で自明ではないことを行うほど、そのメッセージ パッシング特性を感じ始めることでしょう。 アプリケーションがファイルやシステム コールを介して互いや OS とやり取りする代わりに、すべてのアプリケーションは互いや OS との間でメッセージを送受信します。 ファイルを扱うアプリは、他のアプリがサポートするこれらの新しいファイル関連メッセージを利用するため、より高度な機能を追加しており、多くのテキスト エディター アプリは、別のアプリが公開したファイルのディレクトリを開くといったことができるようになりました (iOS にとって「高度」である 2019 年のことです)。 この方法で開かれたディレクトリは、通常、アプリのサイドバーのようなものにとどまり、アプリにローカルであるかのようにアクセスし続けることができます。
最終的に、これはかなりクールで自然に感じ始めます。デスクトップ コンピュータに戻ると、存在しない一貫した「共有」ボタンを期待してしまうかもしれません。 iOS で利用できるプロフェッショナルなテキストエディタがあればいいのですが……コンパイラ、インタープリタ、Web サーバーなど。
Get my newsletter.
私があるテクノロジーについて書くほど興奮したときに、時々メールが届きます。
SSH で実際のコンピュータに接続する
任意のコードを実行できるサーバーに Blink や他の SSH アプリで接続し、そこから Vim や Emacs を実行すれば、ファイルを編集し、アプリサーバーが編集したファイルを再ロードするのを待って、Web ページを更新するという動的言語で書かれた Web アプリによくあるパターンはまだ機能できます。 iCab をお勧めするのは、私が iOS で見た中で最高の変更可能なキーボード ショートカットを含む、豊富なカスタマイズ オプションのためです。
Where Should You Run Your Server in 2019?
リモート サーバーのパワーと柔軟性と Vim などの真のエディターを必要とする人にとって、以前よりもさらに多くのオプションがあります。
すぐに始められる Digital Ocean は素晴らしい選択と言えます。 Web サイトの UI/UX は素晴らしく、サポートも含まれています。
一方、100% 再生可能な電力を使用するという Google の取り組みは、サポートが必要なく、もう少し手間をかけたい場合、Google Cloud Platform を魅力的な選択肢にします。 GCP の「常に無料」の階層には f1-micro インスタンスが含まれており、ニーズによっては開発 VM として機能します。
また、サーバーとしてセットアップできる古い Mac も有効で、サーバーと iPad の間で iCloud Drive を使用してファイルを同期したり、osascript
を使用して iOS アプリケーションに深くリンクしたテキスト メッセージを自分に送信したりすることができるからです。 その時点で世界はあなたの手の中にあるのです。 Apple は Mac Mini を復活させたので、iPad 用のホーム サーバー/デスクトップ コンピューターのペアとして有効です。
Reaching Your Development Web Server from an iOS Browser
数年前、リモート サーバーで Web アプリケーションを開発していた場合、アプリケーションの開発サーバーを一般にアクセス可能なポートで実行しなければならなかったかも知れません。 現在では、SSH トンネリング用のアプリとして、「待ってください! – SSH Tunnel.
アプリケーションサーバ (例えば Django の開発サーバ) に到達するために、まず SSH Tunnel を使ってアプリケーションサーバが動作しているサーバ (コンピュータ) へのトンネルを確立するのです。 サーバ上の /etc/hosts
に “localhost” 以外のホスト名を定義して、 127.0.0.1 を指すようにします。 その後、SSHトンネルのWebサイトの指示に従って、使用しているiOSネットワーク接続で正しいプロキシ設定を行います。
血祭りを行った後、指定したホスト名を入力します、例えば
Browser Dev Tools, Where Art Thou?
Web アプリケーションをデバッグする必要がある場合、現在では Inspect という開発ツール アプリが提供されています。 デスクトップ ブラウザーで得られる堅牢な JavaScript デバッグ環境には欠けますが、かなりよく機能します。 それでも、JSデバッガ以外のInspectは、必要なもののほとんどを備えています。 CSS/HTML 検査と JS コンソールがあるので、少なくとも console.log
デバッグはできます。
Inspect のような開発ツール アプリの欠如は、2018 年までに iPad での Web アプリ開発における一番のブロッカーとなりました。 これらのツールだけを使って、iPadからWebアプリ開発ができるようになります。 それは素晴らしいことでしょうか? 私は知りません。 おそらく無理でしょう。
So There You Have It
2019年のiPadとiOSは、プログラミングに関しては、2017年と基本的に同じです。 異なるのは、iOS でコードを書きたい人に応える iOS アプリ開発者の数が増えていることです。
iOSは12年前にリリースされ、Dreamweaver のようなテキストエディタを使えるようになったばかりで、「コードを学ぶ」アプリ以外にコードを実行する方法がほとんどないことを考えると、2037年には iPad でコーディングできるようになることを提案したいです。
コメントを残す