13 ポイント 投稿者 GN⁺ 2024-09-23 | 1件のコメント | WhatsAppで共有
  • AndroidでCコードを実行したいですか?
  • このフレームワークでは約2秒でAPKを生成し、インストールして自動実行できます。APKサイズは約25kBです
    • API 30(Android R+)では、ARM64 + ARM32をサポートするため45kBです。
  • このフレームワークのデモには以下が含まれます:
    • OpenGL ES対応ウィンドウの作成
    • 加速度計/ジャイロ入力、マルチタッチ
    • キー入力用のAndroidキーボード
    • APKにアセットファイルを保存し、AAssetManagerで読み込む
    • サウンド使用などの権限サポート
    • USBデバイスへの直接アクセス
  • 免責事項: このコードの使用は自己責任です。商用アプリ制作では問題がある可能性があります。

Why?

  • ときには普通のやり方に収まらないことをしたくなる
    • オンライン上のあらゆる議論は、通常のプロセスを使うことに集中している
    • こうしたプロセスは変化していくため、特定の作業をこなしながら最新状態を保つのが難しい
    • Makefileを使えば、実行されるコマンドを正確に確認でき、独自ルールを追加し、ビルドを調整できる
  • Cは普遍的な言語である
    • RawdrawはESP8266からRaspberryPi、Windows、Linux、さらにはAndroidまで、あらゆる環境で動作する
    • コードを一度書けば、どこでも使える
  • ビルドプロセスを余計なもので膨らませなければ、重要な部分だけが残る
    • そのため開発や配布などが容易になる
    • すべてにかかる時間が大幅に少なくなる
  • これは、インターネット上のラッダイトたちに一撃食らわせるという側面もある
    • Stack Overflowの質問に「それは不可能だ」や「あなたは間違っている」と書き込む人たち
    • JNIで権限を要求するのは「Javaでやるべきだ」といった類いのばかげた話
    • 何が可能で何が不可能かという意見にはまったく興味がない
    • これはコンピュータサイエンスだ。制限はない。好きなようにできる。ただのビットにすぎない。お前に支配される筋合いはない

1件のコメント

 
GN⁺ 2024-09-23
Hacker Newsのコメント
  • 「自分はやりたいことは何でもできる。ただのビットにすぎない。お前に所有されるものではない。」に共感する

  • Android開発ではJavaとKotlinのエコシステムが不便。Javaは扱いづらい言語で、Kotlinはまだましだが、ビルドツールやパッケージ管理、IDEの利用が煩雑。作者に感謝したい

  • Android Studioのインストールが必要そうに見える。Android SDKだけをダウンロードできる方法があるのか気になる

    • Makefileを少し見た限りではGradleを避けているようだが、Javaで書かれた別のツールを呼び出している
    • GradleなしでFlutterアプリをビルドする方法を見てみたい
  • C++/OpenGL ESエンジンをクロスプラットフォームで開発していた記憶があり、満足感があった

  • この方法は、OpenGLを通じてUIを提供し、Androidシステムとあまり相互作用しないアプリケーションに有用

    • NDKは、従来のJava製Androidアプリケーションで速度を上げるために小さなCコードを書く用途で使われる
    • このハックにより、全画面で動作するOpenGLアプリを純粋なCで書ける
    • キーボード、ADC入力、USBのようなものへの限定的なアクセスを提供する
    • AndroidフレームワークをCで再実装するわけではなく、NDKはNDKコードがフレームワークと相互作用できる限定的なアクセスを提供する
    • 主なユースケースは、クロマ抽出に基づくリアルタイムの音声反応ビジュアライゼーションをサポートするプログラム
  • XCodeやAndroid Studioを使うたびに、ViteのおかげでWeb開発者がどれほど恵まれているかを思い知らされる

    • すべてがうまく動く。シンプルなプラグインシステムで何でも統合できる
    • 必要なプラグインがないときは、簡単にカスタムプラグインを作れた
    • Viteが壊れると完全に詰む。別の方法を探すか、パッチが出るまで待つしかない。Viteの内部を自力で直すのはほぼ不可能
  • Elonのように資金力のある人が、Linuxをモバイルで動くようにすべき。進行中の取り組みはあるが進展は遅い。二重独占を打ち破り、この種の作業をずっと簡単にしてくれるはず

  • Luaをこのシステムに組み込んで高水準のロジックを書けば、アクセシビリティ対応をあまり必要としないゲームやメディアプレーヤーのようなものに有用だろう

    • パフォーマンスが重要な部分では、Cライブラリを簡単に接続したり、直接Cコードを書いたりできる
    • (その後、コアを段階的にZigで書き直す)
  • Java/Kotlinのツールはモバイル開発において最悪。他にも優れた言語やツールがたくさんあるのに、なぜいまだにこれを維持しているのか分からない。GoogleがAndroid開発向けにGoをネイティブな代替手段として提供しなかった理由も理解できない

  • いまだにMakeを使っている人たちには驚く。この20年のあいだに別の言語が作られてきたことを知らないように見える