タグ

Androidとmetaprogrammingに関するraimon49のブックマーク (2)

  • iOSDCで「コード生成による静的なDependency Injection」について話した & 口頭原稿を公開

    Sep 18, 2017 このところかなり忙しく、iOSDCでちゃんとしたことを話せるのか不安でしたが、なんとか無事に終わりました。あまり会場を盛り上げることができず、後半はしどろもどろで死にたくなりましたが、面白かったと言ってくれた方もそれなりにいたので少し安心しました。 DIは今回の話以外にも色々なことに挑戦していて、最初はデフォルト引数を使った手動のinitializer injectionから始めて、SwinjectやCleanseなどのライブラリを試してみたり、Cake Patternを模倣してみたりしていました。それらを通じて、自分が求めるDIのプラクティスは 依存の宣言とインスタンスの取得のためのコードが単純かつ十分に少ない コンパイル時に依存関係の解決が検証される というものだとわかりました。もしも「dependencyの宣言さえしておけば、あとはコンパイルエラーを直してい

    iOSDCで「コード生成による静的なDependency Injection」について話した & 口頭原稿を公開
    raimon49
    raimon49 2017/09/20
    プロトコルベースのDI生成 SourceKitの活用例としても面白い
  • Android らしい Java - 4. コード生成

    Java にはリフレクションがあり、当時は目新しかった。 人々がリフレクション API を使いこなしだすと遅さが目立ち始めた。ライブラリ開発者はリフレクションを実行時バイトコード生成で置き換えた。こうして Java のバイトコード編集ライブラリが発達した。 言語仕様にアノテーションが追加されたのも同じ頃。アノテーションと実行時バイトコード生成が Java フレームワークのデザインに与えた影響は大きく、モダンなサーバサイド Java は案外簡潔なコードを書けたりする。XML がアノテーションになっただけ、とは言わない約束。いちおう型をチェックできるし、冗長といわれる Java だって XML よりは簡潔だし。 Android Java は実行時に Java バイトコードを解釈できない。だから Java のコード生成資産が使えない。実行時にロードできる DEX にもデータを一旦ファイルに書かな

    Android らしい Java - 4. コード生成
  • 1