2020-01-01から1年間の記事一覧
Google App Engine 言語/ランタイムバージョンが限定される 複数バージョンをデプロイして、複数の指定バージョンを簡単に試せる staticファイルの配信が簡単 Go1.9時代(第1世代GAE)はいつも使っていた 今はstaticファイルの配信に使う Firebaseホスティング…
問題点 Windowsファイルシステムはドライブレター(C:とか)やパスセパレータ(¥)がLinux/Macと異なる Uri.fromFile()を実行したとき、ドライブレターやバッククォート(日本語だと円マーク)を含んだ文字列がURLエンコードされる KTXのUri.toFile()を行う…
起きた事象 Windows版Android StudioのGradle Sync(像のアイコン押すと走るやつ)が異様に遅い 普通に gradlew 実行だけでも遅い MacやUbuntuだと早い 具体的にはこのくらい Windows: gradlew 40秒, WSL2も同じくらい NVMe PCIe 4.0接続しているので、スト…
Wire square.github.io Protocol Buffersを採用した理由 大量のデータを扱う処理で、画面外の情報を一時的にファイルやDBに退避したい ついでにIntentで渡したりするのも簡単にやりたい モデルの定義を簡素化したい POJO定義してJSONエンコードも(Intentにp…
AndroidのJDK Android Studioに付属しているJDKはJava8相当 なので、公式にはJava8でビルドするのが良いと思われる なぜJava11対応が必要になったのか CircleCIが用意しているAndroidビルド用Docker Imageが突然Java11になった ああもうしゃーないなぁとか思…
メイン開発マシンのスペックアップのため、一部のパーツを入れ替えたので今後のためにメモ。 メイン開発マシンのスペック(2017~) 基本スペック Ryzen 1950X メモリ 2400MHz / 8GB×8 GeForce GTX 1060 NVMe SSD 512GB×2 表OS / Windows 10 / ストレー…
発生した問題 最近購入したMac Book Pro 13inch / 2020 / RAM32GBでIntellijをインストール gradle syncが行えない 必ず失敗し、ログも表示されない IntelliJ自体のログを見ると、 Java home is different と言われてDaemon接続に失敗しているらしい 解決 An…
日本語化の利点 日本語話者なので、自然に使えるでしょう 初学者に勧めやすい これは重要。超重要 日本語Visual Studioから、英語Eclipseに移った当時(10年以上前)、必死に日本語パックの初期設定とか探した EAP版の問題点 フィードバック済み Run... とか…
問題点 MotionLayoutの中にChildFragmentでConstraintLayoutの中にFragmentの中にカメラプレビューを置いた ユーザーの操作にあわせてアニメーションしたり、Viewを入替えたりする サムスン、Huaweiの端末(もしくはAndroid 8以上?)でChildFragment.replac…
新型PCが発売される季節なので、選定の際の要件を定義しておく。 状況を整理するのは良いことだ。 利用シーン 会社が運営している施設で作業するのに使う 往復で徒歩40〜50分くらいになる 基本的に自宅作業なので、気分転換にカフェとかで仕事する 平時であ…
Wofkflow Dispatcherとは GitHub - eaglesakura/workflow-dispatcher Androidアプリ開発でよくある 画面やActivityやプロセスを跨ぐ可能性のある非同期処理 をなるべく簡単に扱うためのライブラリ Annotation Processorを使って、定形処理を出力する startAc…
秘伝のタレとは 年単位で職人によって継ぎ足され、熟成されたソースである 衛生環境が良い秘伝のタレは素晴らしい味だが、常に良い衛生環境の中で育つわけではない 深呼吸する 何事も、一歩ずつ解決しなければならない コードフォーマッタを適用する 最初に…
失敗時のログ Execution failed for task ':app:minifyReleaseWithR8'. > Multiple entries with same key: Method $$ServiceLoaderMethods.$load0 Proto L java.util.Iterator =Encoded method Method $$ServiceLoaderMethods.$load0 Proto L java.util.Ite…
前提 masterやdevelpoブランチでビルドが通っている その状態で作業branchを作成する branchを作ったら、何も更新してなくてもすぐにpushしてCIは通しておく 理由 CIが壊れるのは自分の更新だけが理由ではない CI設定の間違い サーバーが更新されて動作しな…
やりたいこと interface定義と、その実装をなるべくキレイに切り分けたい インターフェース定義用モジュール // ":interface-module" に定義を書いていく... interface AuthService { fun login(id: String, password: String) } 実装用モジュール // ":impl…
この記事ではコマンドラインによるフルビルドのみを対象にする gradleのソースコードと挙動観察での現時点での推測 ビルド速度に影響する要素 CPU論理コア数 シングルコアスペック メモリ プロジェクト自体の並列性 gradleのworker設定 gradleには --max-wor…
問題点 表題のまま 100個くらいのUnitTestがgoroutineで2〜3のトランザクションを並列発行した フリーズした 回避 UnitTest時のみ、トランザクションが集中する箇所でmutexによる排他制御を入れた まあしゃあない
Google Cloud Platformのサーバーデータはどこに保存するか SQL系は月額固定課金なので、気軽には使えない(お金持ちを除く) なので従量課金制の保存先としてDatastoreを気に入っていた DatastoreとMemcache DatastoreはFirestoreと両立できない アプリがFi…
雑感 条例が最短で春に施行される なるべく簡単に香川県民スマホ禁止条例に対応しなければならない X-AppEngine-City, X-AppEngine-CityLatLong Google App Engineはリクエスト元のIPからざっくりとした国・都市情報を取得できる X-AppEngine-City ヘッダを…
前提 LiveDataのonActive/onInactiveで処理を行わせていた 強制的にLiveDataをactiveにするため、次のようなExtensionを作った LiveDataをactiveにしたいだけなので Observerはナニも処理していない // 強制的にLiveDataをactiveにする fun <T> LiveData<T>.forceA</t></t>…
BREWとは 最近ではSnapdragonで有名なクアルコムがかつて開発していたOS 日本人的には auの KCP/KCP+ だ ガラケー全盛のauを支えようとしていた、かつての クソ OSだ 2010年代が終わり、記憶が消えてしまう前に、彼について記録と記憶を留めておこうと思う B…