shion のアバター画像もくもくログページ一覧ブログ一覧技術メモ一覧ライセンス表記利用規約外部リンクconnpassGitHubSpeaker DeckTwitter[工事中]Shion のもくログバージョン1.2.5

もくもくログ

主にIT 関連のメモをもくもくと綴っていきます

最終更新日:2020/05/02 07:58:452020/04/25 ~ 05/01 のもくもく日記進捗管理

もくもく 前回までは

2020/04/18 ~ 04/24 のもくもく日記 をご覧ください。

今回の目標

  • Android ライブラリの整備
    • Debugger の機能検討
    • IntentBuilder 1.1.x の実装を進める
    • WebViewBuilder の機能検討
  • REPLInDocker シリーズの整備
  • XAppRecipe の整備

途中経過

その1

Android でカメラ撮影Intent を投げると、撮影結果をonActivityResulet で受け取るんだけど、その結果Intent.data でサムネイルを返すこともあるらしい……ん?
これ、IntentBuilder で実装するとしたら、どこに定義すべきなんだろう?

まずは試しにBuilder 実装にcompanion object として定義してみた……。

class TakePictureIntentBuilder : IntentBuilder<SupplierIntent>() {
    companion object {
        fun parseThumbnail(resultIntent: Intent?): Bitmap? = resultIntent
            ?.getParcelableExtra("data")
    }

    ......
}

なんか変じゃね?
結果に対して組み立てするわけでは無いので、下記のように書き換えてみた。

class TakePictureIntent(
        val imageUri: Uri
) : SupplierIntent() {
    companion object {
        fun parseThumbnail(resultIntent: Intent?): Bitmap? = resultIntent
                ?.getParcelableExtra("data")
    }


    init {
        action = MediaStore.ACTION_IMAGE_CAPTURE
        addFlags(FLAG_GRANT_WRITE_URI_PERMISSION)
        putExtra(MediaStore.EXTRA_OUTPUT, imageUri)
    }

    ......
}
class TakePictureIntentBuilder : IntentBuilder<TakePictureIntent>() {

    ......
}

ちなみにEspresso テストコードをEmulator で実行してみたけど、サムネイル取れんかったので、本当に機能しているかは不明orz

その2

JetBrains さんから便利そうなブラウザ拡張が出てた。
GitHub などのリポジトリページを表示すると、下記画像のように対応するIDE にクローンできるみたい。
欲を言えば、Android Studio も対応してくれると嬉しいなw

JetBrains 拡張を試した様子

その3

Android で外部アプリに対してcontent uri を発行し、それをIntent で投げたんだけど、うまく処理できない……って件を解決できた。
Intent 設定時にaddFrags() でFLAG_GRANT_READ_URI_PERMISSION を指定し、発行したURI に対して権限を付与すれば良かったようだ。
セキュリティの考慮点は下記を確認すると良いかも。

4. 安全にテクノロジーを活用する — Androidアプリのセキュア設計・セキュアコーディングガイド 2019-12-01 ドキュメント

その4

Ionic 3 + Capacitor は気をつけないとTypeScript バージョン違いによるコンパイルエラーになるので、マジ注意w
https://github.com/ionic-team/capacitor/issues/1526

でも、TypeScript 2.9.2 にすると今度はAoT コンパイルできなくなる可能性があるので、素直にIonic 4+ に移行した方が良いかも。
https://twitter.com/shion_engineer/status/1136290878593495040

今回の成果

関連リンク

成果物

一覧に戻る