CORDEA blog

Android applications engineer

アプリ向け Error monitoring, Crash reporting tools

結構ある Name Android iOS Flutter Pricing for individuals Pricing for teams *1 Crashlytics ✅ ✅ ✅ $0 $0 Sentry ✅ ✅ ✅ $0 $26 Bugsnag ✅ ✅ ✅ $0 $18 Rollbar ✅ ✅ ✅ $0 $0 Smartlook ✅ ✅ ✅ $0 $0 Shake ✅ ✅ ⚠️ *2 $0 $160 Raygun ✅ ✅ ✅ $40 $40 Instabug…

GitHub Flavored Markdown で Store badges を揃える

App Store, Google Play, Microsoft Apps などの install badge を README などに配置したい時、 Google Play の badge は image 自体に margin があるので、それぞれを揃えて表示するのがとっても面倒。 margin などは使えないので img の width と height …

Age of Empires IV で Game Mode の Mod 作るときの tips

小ネタAge of Empires IV Mod Workshop 勝敗を決める Core_SetPlayerVictorious/Core_SetPlayerDefeated を使う これは新しく Mod 作った時の example code にある注意点としては、Player が負けて AI が生き残っているような場合を作ると概要が開けず待ちぼ…

Windows PC で BSoD 頻発してたのを直した

Windows PC が BSoD 起こすようになったけど直ったメモ大まかな構成 AMD Ryzen 7 5800X NVIDIA GeForce RTX 3070 Driver 30.0.14.7111 ASRock B550M-ITX/ac 問題としては BSoD (VIDEO_TDR_FAILURE) BSoD (DPC_WATCHDOG_VIOLATION) Driver 読み込みエラー (co…

Flutter で 2 つの Path を組み合わせる Path#combine

Android における Path#op あるいは Canvas#clipPath のようなことをする Path#combine api.flutter.dev 以下のような形で Path を組み合わせる final path = Path.combine( _pathOperation, Path() ..addOval(Rect.fromCircle( center: Offset(centerX - 50…

Lua で SQLCipher (lsqlcipher) を使う

lsqlcipher の Install から使うまで Install LuaRocks で install します。luarocks.org $ luarocks install lsqlcipher 私の今の環境 (macOS) だと LDFLAGS で指定されている path に lcrypto がないので sqlcipher の install に失敗します。 $ luarocks …

Ktor Client で Twitter の Filtered stream を取得する

小ネタdeveloper.twitter.com HttpClient このへんはあまり関係ないのでよしなに val client = HttpClient(CIO) { defaultRequest { url { protocol = URLProtocol.HTTPS host = "api.twitter.com" } header("Authorization", "Bearer $token") } Json { ser…

Android app の Owner 変更と Google Play Developer account の削除

をしたので手順のメモOwner 変更はだいたいここに書いてあるとおり。 チェックすべきことも書いてあるので一度目を通しておくと良さそうです。Transfer apps to a different developer account - Play Console Help 1. 移行先の Google Play Developer accou…

Reports API で G Suite 監査ログの更新通知を受け取る

G Suite の Admin console には監査ログというものがあり、そこで色々見たり Alert を上げたりすることが出来るのですが、 G Suite Admin SDK の Reports API を使用すると、この監査ログを取得することが出来ます また、Callback URL を登録することで更新…

EMV Contactless 対応のクレジットカードから情報を読み取る

クレジットカードやデビットカードには EMV Contactless という非接触決済に対応しているものがあります。 https://www.visa.co.jp/pay-with-visa/featured-technologies/contactless.html https://www.mastercard.co.jp/ja-jp/consumers/features-benefits/…

Android で Liquid-like な animation を Path#cubicTo で実現する

Dribbble にありがちなスライムのような何かぽよぽよした Animation をどう実現するかちなみに特に何かイベントに反応する必要がなければ Lottie で良いと思います Path#cubicTo 実現する方法として、結論としてはタイトルにある通り Path#cubicTo を使いま…

Jetpack Compose の @Model で生成されるコード

メモこういうの書いたときに生成されるコードが気になっていた @Model class AnimalState( var isAnimal: Boolean, var cats: List<Cat>, var dog: Dog ) @Model class Cat( var isRunning: Boolean, var isWalking: Boolean ) @Model class Dog( var count: Int,</cat>…

第 1 水準以外の漢字を検出する

JIS 漢字コードの第 1 水準漢字以外を検出します。 Perl が一番楽そうだったので Perl 使いました。 何がしたいか $ echo "perl" | hoge false $ echo "あいうえお。" | hoge false $ echo "漢字 | hoge false $ echo "弌腕。" | hoge # 第 2 水準漢字が入っ…

動的解析ツール Frida を Android に使う

Frida を使ってみたメモ Frida frida.re自分の Script を Inject したり、値を取得したり、色々なことができる Toolkit です。 リバースエンジニアリングとかする時に使うみたいですね。 iOS / Android にも対応しており、今回は Android の話です。 ちなみ…

Podcast を Google Podcasts に登録する

outer-heaven.fm を先日 Google Podcasts に登録したので、その時のメモです。podcasts.google.complay.google.com公式に手順がまとめられており、これを少し噛み砕いた内容です。developers.google.com 1. Podcast の Feed URL を取得する まずは Podcast …

JetBrains MPS をはじめよう

この記事では、JetBrains が開発した言語ワークベンチである JetBrains MPS の使い方を紹介します。Kyash Advent Calendar 2019 13日目の記事です。 JetBrains MPS について JetBrains MPS (Meta Programming System) は公式にも書かれている通り、DSL を構…

claat で生成した codelab を netlify で CD する

先日私達が公開した Android Dagger codelab は netlify を使用して公開しており、今回はその方法を紹介します。github.comclaat は google が公開している codelabs を生成するための command line tool です。github.com行っていることは非常に簡単で、dep…

【Rust】imageproc で任意の位置に text を描画する際の注意点

imageproc に限らず、rusttype で font の layout を使用する際には概ね同じ問題に当たりそうなんですが、 そこまで調べてないので imageproc に限った話として紹介します。今回はテキストの描画位置をちょうど真ん中にすることを考えてみます。 なお、ここ…

【RoN BHS】set_object_health の挙動

Rise of Nations という Microsoft から発売された名作 RTS ゲームがあります。このゲームには Big Huge Script という、ゲーム内でシナリオやルールを作るための言語があり、 今回はこの Script で使える関数の中から、 set_object_health という関数の挙動…

Chrome のコンテキストメニューから印刷...を消す

定期的に検索と印刷...を押し間違えて辛いので消したメモ。 もしかしたら Chrome の設定とかでできるかもしれないので、直接書き換えたくない人は探してみてください。やり方については StackExchange に載っている通りで、Preferences の printing.enabled …

Thread を toString した時の Thread[foo,0,bar]

RxJava とか使ってると稀によく見る Thread[main,5,main] みたいなやつ、どれがどれだっけってなったのでメモそもそも RxJava の source から読み始めたのでアレなんですが、 タイトルに書いてあるように Thread の doc か toString の実装を見ればいいです …

static method 等を呼び出しているテストケースで Robolectric の Shadow を使う

あんまり知られてないような知られてるような、そんな感じがしたので Robolectric の Shadow の使い道をちょっと紹介します。robolectric.org紹介するのは static method を呼び出ている kotlin の object 宣言がされた singleton を内部で直接使用している …

Mackerel Client 1.2 をリリースしました

この度、MackerelClient 1.2 をリリースしましたので、リリースノートに書かなかった諸々を書きます。 ちなみに 1.1 (2016年4月24日) 以来、2 年半ぶりの更新となります。反映されるのはもう少し後かもしれません スクリーンショット等はそのうち更新しますg…

Hy と Python の version について

Hy の install 時に Python version で少し困ったりしたのでメモ普通に Python 3.7.0 の環境で Hy を pip install して実行すると ImportError: invalid flags 1531398560 in 'hy.core.language'こうなったり、または一回は実行できるけど二度目は失敗する、…

Spacemacs の install で嵌ったりした

最近 Lisp 方言を書く機会が多いので重い腰を上げて Emacs を入れました といっても素の Emacs を育てるには Vim に染まりすぎたので Spacemacs という Emacs の distribution に頼ることにしました 嵌ったところ 公式にしたがって ~/.emacs.d に clone した…

Docker で mediawiki 立てて oauth extension 入れるまで

前も似たようなこと書いた気がするけど... 検証用に local で一時的に立ててるものなので色々ご注意ください。 build docker hub から引っ張ってくると mediawiki が古い (多分) ので公式 repository を clone して build します $ git clone https://github…

BitBucket で OAuth 1 での認証がうまく行かなかった話

結論 timestamp が float だった 経緯 私が作っている nim の oauth library を修正したところ bitbucket の例がうまく動かなかった (というか bitbucket は多分ずいぶん昔から動いていなかった) ので調査していて分かったのでメモ問題の切り分けに時間がか…

Red で http request を行う方法

Red programming language で http request を行う方法がちょっと分かりづらかったのでメモ GET 本当にシンプルな GET >> read http://localhost:8080/api == {{"status":"ok"}}header の追加など必要な場合 >> write http://localhost:8080/api [GET [ Acce…

YAPC::Fukuoka 2017 HAKATA 前夜祭で LT してきました

最近 GitHub から緑が消え始めてて危機感しか感じません。それはさておき、 YAPC::Fukuoka 2017 HAKATA に参加して来たのでその感想を書きます。 前夜祭 「Possibility of terminal」 という題で Terminal (というか prompt) の可能性について話してきました…

umeda.apk #3 に参加してきました

umeda.apk #3 に参加してきたので、その感想です。shibuya-apk.connpass.com Best Practices to Slim Down Your App Size 前々から少し話題になっていたので知ってはいましたが、 やはり Cancellation Rates vs. Download Size と、 Uninstall Rates vs. Ins…