Firebase SDK for Cloud Functions を 1.0 に Migration した

The Firebase Blog: Launching Cloud Functions for Firebase v1.0 にあるように、 Cloud Functions の SDK が 1.0 になった。と言っても SDK が 1.0 になっただけで、 Cloud Functions のベータが外れたわけではない。 Migration Firebase SDK for Cloud Fu…

Xcode 9.3 にしたら IDEWorkspaceChecks.plist というファイルが作られたが何者なのか

Xcode 9.3 でプロジェクトを開いただけで Hoge.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist というファイルが作られた。 Release Note を見ると以下のように書いてある。 Xcode 9.3 adds a new IDEWorkspaceChecks.plist file to a workspace's shar…

Cloud Functions は global 変数から Function Name などを取得できる

Cloud Functions で以下のコードを実行して見ると、現在実行している関数の名前を取得できる。 console.log(global.process.env.FUNCTION_NAME) // -> createUser 他にも GCP_PROJECT, FUNCTION_MEMORY_MB, FUNCTION_TIMEOUT_SEC などが env から取得できる…

Firestore のクエリで「存在しないこと」をチェックしたい場合、事前に null を入れておく

Firestore でこんなモデルを作ったとする。 admin.firestore().collection('user').add({ startDate: new Date(), name: 'hoge' }) このモデルに対し、「 endDate に値が入っていないもの」をクエリで取得したいとする。 パッと思いつくクエリはこう。 admin…

東雲めぐの配信を目覚まし時計にする on Mac

東雲めぐ(@megu_shinonome) 東雲めぐは平日朝 07:30 から生放送をしている VTuber (SHOWROOMER) であり、録画が残らないので毎朝ちゃんと起きねばならない。 この配信を目覚まし時計にすることで毎朝健康的な時間に目覚めることができる。 www.showroom-live…

Firebase HTTPS Callable Functions を type-safe に叩けるライブラリ

Firebase HTTPS callable function を試してみる に使い方は書いたが、素のまま SDK を使うのは厳しいので APIKit っぽく Endpoint を定義できていい感じに Function を叩けるようなライブラリを作った。 github.com endpoint の path と Decodable な Respo…

Twitter のエゴサーチ結果を Slack に通知する

自分がリリースしたアプリの評判やバグ報告がないかなど知りたいので、SNS を監視している。 しかし手動で監視するのも面倒なので自動化している。と言っても特別変なことはしていなくて、多分みんな似たような構成になると思う。 エゴサ対象 Twitter のみ。…

Cloud Functions for Firebase の環境変数設定後は関数の再デプロイが必要なので注意

ドキュメントにも書いてあることだが、環境変数変更後は関数の再デプロイが必要。 「functions:config:set」を実行した後は、新しい設定を使用可能にするために関数を再デプロイする必要があります。 https://firebase.google.com/docs/functions/config-env…

続・イケてない JSON を Swift の Decodable で扱いやすいモデルにデコードする

イケてない JSON を Swift の Decodable で扱いやすいモデルにデコードする の続き。 今度も last.fm の user.getRecentTracks を Decode していく。 尚、文字を打つのが面倒になったためこの記事はあらゆる説明を省略している。 JSON これを decode してい…

イケてない JSON を Swift の Decodable で扱いやすいモデルにデコードする

last.fm というサービスがあって、API も公開されているのでそれを Swift で使っているのだが、JSON の構造がイケてなくて苦労している。 こんな感じの JSON があったとする。 { "user": { "name": "RJ", "age": "20", "image": [ { "#text": "https://lastf…

npm ライブラリの README にバッジをたくさんつける

こんな感じにバッジたくさん出してみた。 starhoshi/rescue-fire npm version badge Version Badge for npm, RubyGems, PyPI, Bower and other packages で取得できる。 自分の package を検索して badge の URL を取得できる。 travis-ci テストがなくても…

Bootcamp で Mac に Windows を無料でインストールする

無料といってもクラックするとかではなく、 Windows Insider Program というのを使って OS をダウンロードできる。 Windows Insider Program 要はベータ版を使うことになる、製品版ではないのでバグを踏むリスクが高くなる。 insider.windows.com ボタンをぽ…

プロモコードを利用したテストに参加する(テスター向け)

プロモコードでのテスト iOS アプリには「プロモーションコード」を利用することでリリース直前のアプリをテストすることができます。 やり方は簡単で、 App Store からプロモーションコードを入力してアプリを DL するだけです。 プロモコード版を入れたと…

iOS10 以下のサポートを切ったら ERROR ITMS-90502 が出た

iOS9, iOS10, iOS11 をサポートしていたのを、iOS11 のみサポートするように変えた。 そして申請しようとしたらエラーがでた。 ERROR ITMS-90502: "Invalid Bundle. Apps that only contain the arm64 slice must also have 'arm64' in the list of UIRequir…

Youtube Live 放送終了後の動画でチャットを見たかったが Youtube API を使っても見れない

ニコニコ生放送だとタイムシフトで見るときもコメントが見れるけど、 Youtube Live で放送終了後の動画はコメントが見れない。 API からコメントの取得くらいできないかと思って実際に API を叩いてみたがダメだった。 Youtube API Youtube Live のコメント…

ssh 経由で fastlane match できるようにする

$ ssh my@mac.com $ bundle exec fastlane match ... [12:19:58]: Enter the passphrase that should be used to encrypt/decrypt your certificates [12:19:58]: This passphrase is specific per repository and will be stored in your local keychain [1…

2017 年振り返り

2017 年色々あった。 日報 1月から wikihub で日報を書き始めて、ずっと続けている。 nippo つながりで友達もできたし、ざっくりとだけど毎日アウトプットにもなったし良かった。 nippo.wikihub.io GitHub 約 4000 Commit だったのでまあまあやった方だと思…

既存のサービスを組み合わせて本質的な開発に集中する

qiita.com 個人開発アドベントカレンダー9日目です! (2週間遅れです... ) 一年前に開発してた Web サービスで、このような構成の開発をしていました。 個人開発はとにかく時間が足りないので、既存のサービスを使える場合はそのサービスを使って開発を行いま…

TypeScript で `error TS2300: Duplicate identifier` がでたが yarn にしたら治った

npm ライブラリを install して tsc したらこんなエラーが大量に出た。 node_modules/@google-cloud/firestore/types/firestore.d.ts(28,15): error TS2300: Duplicate identifier 'DocumentData'. node_modules/@google-cloud/firestore/types/firestore.d.…

JavaScript でテストを書く時のライブラリについて調べた

1年半前は 業務 とか 趣味 で TypeScript を使ってテストも書いてたんだけど、最近は iOS ばかりで忘れてしまっていた。 けどまた仕事で同じような環境を作ったので、テストを書くときにどういう Framework があって役割は何かをメモっておく。 テストフレー…

USUM が発売されてから、ダメージ計算Zアプリではどのようなポケモン・技がよく計算されているのか

adventar.org Pokémon RNG Advent Calendar 2017 13日目です! 2017年11月17日にポケットモンスター ウルトラサン・ウルトラムーンが発売されてからもうすぐ1ヶ月が経とうとしています。 私が開発しているダメージ計算Zという iOS アプリは11月20日に USUM に…

PlantUML でシーケンス図を書いたがめっちゃ良かった

PlantUML シンプルなテキストファイルで UML を作ることのできる、オープンソースのツール 今までは astah とかでユースケース図とかシーケンス図書いてたんだけど、 GUI で書くの辛いなと思って PlantUML というのを使ってみた。 コードで UML を書ける、今…

プログラミングでポケモンのダメージ計算をしてみよう

adventar.org Pokémon RNG Advent Calendar 2017 7日目です。 昨日は ポケモンの実数値や努力値をプログラミングで計算 するという内容を書きました。 今日はダメージ計算をしてみようと思います。 この記事はプログラミングがわからない人には難しい内容で…

ポケモンの実数値や努力値をプログラミングで計算してみよう

adventar.org Pokémon RNG Advent Calendar 2017 6日目です! 乱数の話ではありませんが、ポケモンの実数値, 努力値をプログラミングで計算する話をします。 この記事は、 プログラムに興味あるポケモン好きな人 ダメージ計算などで実数値の調整をしてるけど…

iOS Test Night #6 1周年 まとめ #ios_test_night

testnight.connpass.com iOS Test Night #6 にブログ枠として参加したので、そのレポートです。 ㊗️ 1周年 開始前の挨拶として、Qiita に投稿された iOS のテスト関連の記事がこの一年で増えたのか? という話から始まりました。 結果として、増えはしたけど…

iTunes Connect に Upload 後の bitcode 再コンパイルでエラーが出た

iTunes Connect にバイナリのアップロードは完了したんだけど、 iTunes Connect: Processing stopped for HogeApp みたいなメールが来た。 何か問題があって bitcode の再コンパイルが止まってしまったようだ。 メール全文: iTunes Connect: Processing stop…

iTunes Connect に Upload しようとしたら Info.plist 関連で怒られた

Unable to process application at this time due to the following error: This bundle is invalid. The Info.plist file is missing or could not be parsed. Please check it for embedded control characters.. iTunes Connect にバイナリアップロードし…

console.log で改行させたくない

node: v8.2.1 でのはなし。 JavaScript でログを出力するときは console.log が一般的だけど、これだと改行が入ってしまう。 console.log('hoge') console.log('hoge') # hoge # hoge そうじゃなくて、 hogehoge って続けてログ出力してほしい。 ググる node…

Stripe の Order で送料を商品によって変更するときは Callback API を実装する必要がある

Stripe の Order で送料を設定するパターンは 4 つある。 Free Flat-rate Callback Provider Stripe Document この情報は 2017-11-29 時点の情報であり、正確な情報は Orders API Dynamic Shipping and Tax Calculation を参照してほしい。 Order の種類 Ord…

Xcode の Other Swift Flag で -D STAGING を指定したのに #if STAGING が有効にならなかった

Xcode で環境別にコンパイルするために Staging の Configuration を作ったんだけど、 -D STAGING を指定しても #if STAGING が false になっていた。 なんでかな〜 って設定眺めていたら、 Active Compilation Conditions が Debug になっていたのが原因だ…