eaglesakuraの技術ブログ

技術的な話題とか、メモとか。

2019-01-01から1年間の記事一覧

続 RecyclerView in FragmentContainerView in MotionLayoutでリストが描画されない問題

Androidバージョンの切り分け これはAndroid 8.x以上で発生する Android 7.xでは発生しない 問題点1, そもそもRecyclerViewのWidth/Heightが0dpである デフォルトのvisibilityがGONEの場合、VISIBLEに切り替えてもレイアウトのサイズが再計算されない ワーク…

flutter buildで "Target kernel_snapshot failed" が出た場合の対処

エラー内容 flutter buildすると、dartコンパイル自体が異常終了する flutter clean flutter build aot Wrong full snapshot version, expected '20e5c4f7dc44368ac5a17643b93665f6' found '8343f188ada07642f47c56e518f1307c' Building AOT snapshot in rel…

2019年に作ったAndroid用ライブラリと、作った割に役立たなかったライブラリ

2019年、自分用に色々作っては「まあええやん」「コレあかん」という感じで新しいものを試したり壊したりしてきた ライブラリを作るのは個人的な趣味であり、いろんな設計を試せる娯楽であり、勉強でもある armyknife-* armyknifeシリーズ 自分用の十徳ナイ…

外出先での作業にモバイルモニターを導入した感想

動機 ほしかった やってみたかった 便利そうだった 購入したもの cocopar 12.5インチ/2K モバイルモニター/モバイルディスプレイ/薄型/IPSパネル/USB Type-C/標準HDMI/mini DP/保護カバー付/560g/3年保証 (カバー付)メディア: エレクトロニクス 4Kにしなかっ…

突然Google App Engineの特定APIが2回に1回しか繋がらなくなった問題への対処

状況 GAE/Go 1.12を使っている 複数のServiceをデプロイしていて、今回問題になったのは 認証用APIを提供しているService 環境セットアップのため、APIを連続で叩いてているとき、それはおこった 50回くらい同じAPIを叩く 動かなくなる直前 ナニもしていない…

Windows版Android Studioのターミナルでbashする

Windows版のTerminal IntelliJやAndroid Studioの標準Terminalはプラットフォームに合わせて起動する Windowsはcmd.exeが起動 bashのほうがなれてて使いやすい Terminalを変更する Settings > Tools > Terminal > Shell Path 標準だとcmdになってる こんなバ…

Windows版Android Studioの動作を軽くする

Windows版Android Studioは遅い どういうわけかデフォルト設定だと遅い CPUスペックとかに関係なく遅そう Code Completionが遅い LayoutEditorのプレビューが遅い そもそも起動が遅い どうにか高速化したい LinuxとかMacとかでは軽い 原因 Android Studio 3.…

開発リソースがないなら、Google Playのリリースは取り下げておけ、という経験則

こんな状況は危ない 昔は自社でアプリ開発してたけど、もうメンテしなくなって久しい とりあえずアップしておいて、使う人がいるならソレでいいや 何が起きるか Google Playは年1〜2回くらいはConsoleのアップデートがある アップデートにより、一部のアプ…

やっぱ時刻でIDとってるようなのはダメだな

何が起きたか 時刻ベース(ナノ秒)でUnique IDを割り振っていた 速度を向上させた UnitTestの実行速度が向上した みんなも使おうRyzen TR 人類皆RAM 64GB 何故かテストが落ちまくる ランダムで落ちまくる ランダムで成功する 1時間位頭抱えてた 問題点を見…

Flutterのプロジェクトが始まったらまずやること

XCodeと仲良くScheme設定 だいたいProductionとDevelop環境別れてるんだからSchemeを作成する SchemeとDebug/Releaseの組み合わせに合わせてConfigurationファイルを作成する 何をする用事がなくても、pre buildスクリプトはSchemeごとに設定しておく どうせ…

GAE/Go 1.12は認証ヘッダが重複しているとGoogle Frontendが自動的に400を返却する

どういう問題か GAE/Go 1.12にバージョンアップをした サーバー側のUnitTestは通過していた クライアント側のテストを行うと、特定APIがすべて400を返却していた ログが残っていない。少なくともGAEアプリコードに到達していない。 原因 クライアント側で Au…

日本でデジタル母子手帳を運用するとしたら?

この記事はなに? ちょっとした頭の体操である つらつら思ったことを書くだけ デジタル母子手帳 そのまま、いま子育て世代が(基本的に全員受け取っているハズの)母子手帳をスマホで見たり管理したりできるようになる 検索すると、色々ニュースやプレスリリ…

特定条件下でMotionLayout配下のViewが再描画されない問題のWorkaround

バージョン "implementation"("androidx.constraintlayout:constraintlayout:2.0.0-beta2") 問題点 MotionLayout配下にFrameLayoutを配置し、動的にコンテンツを入れ替える MotionLayoutはアニメーションで2つのレイアウト間を遷移させている 特定条件下で…

2019年壊れたものとその対応

Mac Book Pro 15inch late 2013 バッテリー膨張によりトラックパッドと筐体の歪みが発生 修理で20k飛ぶ Pixel3 購入直後に画像処理プロセッサが死んでいることが発覚 良品交換 しようと思ったら多重決済をしてしまい、一時的に30万円が吹っ飛ぶ Huawei P20…

In-App Updates API導入に失敗した

In-App Updatesの特徴 ユーザーにアップデート通知を能動的に行える 公式UIなので、Androidを使用しているユーザーだったり、文字を呼んでくれるユーザーであればアップデートを促せる なぜ失敗したか Closed Channelでは機能しない 特殊用途のアプリでは使…

VSCode InsiderのRemote開発機能を試した

残念ながらRemoteはLinux x86のみ対応 MacをRemoteにして、FlutterやNativeアプリ開発をUbuntuから行いたかった RemoteはLinux x86_64のみ対応なので接続に失敗 残念 ここで施行は途切れている

CircleCIのsave_cacheステップで `x509` エラーが出る

正常にSaving Cacheが行えない こんなエラーが出て、Saving Cacheに失敗する場合がある Skipping cache - error checking storage: error fetching info: RequestError: send request failed caused by: Head https://circle-production-customer-artifacts.…

Ubuntu 19.04をインストールした環境でAndroid Emulatorが激重になる問題の対処

状況 Thinkpad X1 Carbonを購入したので、Ubuntu 19.04をクリーンインストールしてセットアップした Android Emulatorを起動したが、動作が異様に遅い 1〜2fps程度しか動作しない 問題の観察 QEMUはインストール済みで、KVMは正常起動する Dockerが動作して…

Thinkpad X1 Carbon 2018を購入~OSセットアップまで

セットアップ Ubuntuを基本にしつつ、Windows 10 Proを併用するつもりだったので、購入してすぐにいろいろ弄り倒す。 失敗1 初期セットアップ時にMicrosoftログインをしてしまった Users/<メアド>/Home ディレクトリになってしまう 任意のディレクトリ名にす…

ライブラリプロジェクトでFirebase SDKを使ったUnitTestを動作させる

なぜコレが必要か? Firebase SDKを組み込んだ処理は、通常 Google Services Plugin と google-services.json をアプリに組み込むことで動作する このPluginはApplicationビルド用のプロジェクトでしか動作しない ライブラリプロジェクトにFirebase SDKを組…

30代がエンジニアを続けるための第一歩

なにがあったのか 仕事や確定申告やアレやコレで寝不足だった それでも子どもは元気だった 子どもが保育園から病気もらってきてしばらく登園禁止になった それでも子どもは元気だった 確定申告も待ってくれなかった なにがおきたか 3週間ちかく風邪の症状に…

実質2日でDatastoreをFirestore移行した話

謝罪 ごめんなさいごめんなさいごめんなさいごめんなさいごめんなさいごめんなさいごめんなさいごめんなさい。 本番環境のFirestoreをONにしてしまったのは僕です。 何が起こったのか アプリから利用されるサーバーをGAE/Goで開発していた GCPプロジェクトは…

Androidアプリエンジニアが触れたAngularDartの所感

なぜWebアプリを作ることになったか Androidアプリ内でオープンソースライセンスを表示するためのUIが必要だった アプリとブラウザ両方からアクセスできるようにしたかった 規模が小さいため、Webアプリ開発の勉強としてちょうどよいので、作ることにした GA…

Swagger 2.0は枯れた技術か負債なのか

swagger 2.0 2014年にリリース 多くのソリューションで使われている メジャーで1つバージョンが古い かなりの数の言語で吐き出せる しかし対応ライブラリの選定が古い Android用の出力はVolleyが使われてるぞ swagger 3.0(OpenAPI) 最新!新しい! Kotlin用…

FlutterとXamarinとAndroid Nativeと

Flutter を使う機会があったので、所管をざっくりと。 個人的に思うFlutterを使う際に留意すべき点 Flutterのレンダリングは Skia ベースの独自エンジンで動いている Android的に言えば、どんな画面もView1枚である Plugin実装を読むと、 TextureId を取得…

AS3.2系から3.3系へのマイグレーション

graldeバージョン更新 before: gradle-4.10 after: gradle-4.10.1 google-services Plugin更新 3.2系ではGoogle Services Plugin 4.1 系じゃないと正常動作しなかったけど、3.3系では 4.2 系じゃないと正常動作しない。 同時に複数バージョンAndroid Studio…