futabooo blog

色々手をつけすぎてすぐに忘れるので備忘録

2020年の振り返り

2020年の振り返りをTwiiterの投稿とともにしたので残しておきます。 この形での振り返りも3年目となりました、割と簡単に1年を振り返れるのでおすすめです。

2018年の振り返り - WhereToStart

2019年の振り返り - WhereToStart

次のような感じでTwitter検索すると1ヶ月ごとの自分のツイートを振り返ることができます。

from:[your account name] since:2020-01-01 until:2020-01-31

2020年1月

人生初夜行バスで仙台に行って年始のセールでダウンジャケットを買ってた

2020年2月

あんバタ食べたい

Pairs Engageの開発で協力会社さんとのやり取りが増え、自分でコード書くよりも要件と仕様をドキュメントに落とす作業してた

2020年3月

雷門がメンテナンスで雷門のちょうちん?なくなってた

人の出入りが多くてなんか言ってるけどまだ3月

パプリカ知らないって言った時に言われたこと、本質

これ書いてるときもネットに触れてんのにどうやってパプリカ知ることを避けてきたのかわからんって言われてる

2020年4月

EXITの言い方パクってる

AndroidiOSの後追い開発になってる時にだいたいAndroidのデザインやOS個別の対応をやれずにiOSに合わせるになるやつ

2020年5月

感慨深い

エウレカ退職ツイート

このときは様々な方からお声がけいただいてありがたかった

見返してたらスルーしてるのもあってごめんなさい、、

2020年6月

エウレカ最終出社

コロナの影響で送別会的なものもなく(オンラインでの送る言葉などはもらった)淡々と終わってた

海鮮爆盛りマウンテンたべたい

2020年7月

10X入社

多分KotlinからDartにうつってきてnullableにやられた時、いまだに倒しきれたないのでなんとかしたい

2020年8月

ゼロトピック出演

登壇の動画とか見たりするときも思ったけど自分の声聞くのは未だになれない

こんな声だっけ?となる

Dartで時間溶かしがち

2020年9月

今年は結局自分自身の個としてのアウトプットしかできなかったので来年はもっとチームのアウトプットに貢献していきたい

他方で個のエンジニア力がポンコツなことも認識したのでやっていかなければいけない

2020年10月

ポーツマスクも買ったしもう少し頻度増やしたい気もする

体を動かすのはメンタルにも良い

十年ぶりぐらいにストレングスファインダーやってた

前の結果がどんなのだったか忘れてしまったけど調和性は入ってた気がする

今回は記録しておいて数年後にまたやって比較したい

結局尊師スタイルだと奥行きとか高さが微妙にあわないとかでやめてしまった

今はクラムシェルモードにしてる

腰痛が減った気がする

姿勢ホント大事

2020年11月

オフィス移転した

家が東京の東側なのでより近くなって最高

公式QAでWindowで代替して!って書いてあったのでこれ以降複数Window開いてる

このあと結局2ヶ月遅れぐらいで届いたし、問い合わせの続きでめっちゃ謝られてもう一個無料で送られてきた

ただ必要な数をオーバーしててタンスの肥やしになってるので困る、メルカリにだしてる

2020年12月

宣伝

12月大したことツイートしてなかった

総括

2020年はなんといってもコロナの影響でいろんなことが昨年とは変わってしまった1年でした。 勉強会の参加は減り、人との会話が減り、でもそんな中で新たな当たり前をつくっていく。 withコロナというものがまた当たり前のようになってきているものの、早く無くなってほしいというのが正直な気持ち。 こころなしか昨年までよりもツイート数自体が減っているような気もしました。(アナリティクスとかみたら分かるかも)

それ以外では7月の転職が大きな転機となりました。 会社が変わり、事業ドメインが変わり、扱う技術が変わり、これまでの経験を活かせる部分もありつつも これまでの半年間はほとんどが未経験のところから手探りでやっていくことばかりでした。 直近でやってるタスクも広範囲に考えることが多いことをまるっとやっているのでストレッチがすごい。 しっかりアウトプットしてアウトカムにもつなげて自分の血肉にもしていきたい。

少し早いですが2020年お疲れさまでした!良いお年を!

2020年に買ってよかったもの

2020年はリモートワークがメインとなってデスク環境周りのものを色々整えた1年となりました。 ちなみに昨年版はこちら 2019年に買ってよかったもの - WhereToStart

1. クックフォーミー

家で食べるごはんの幅が広がりました! 豚の角煮とかビーフシチューとかめっちゃうまい、野菜への味の染み込みが半端ないです。 長時間煮込むのが必要な料理でも短時間でできるし、目を離しても大丈夫で最高。

2. AUKEY USB充電器 Omnia 100W PD対応

最新のMacBookProでもこれがあれば充電できます。 公式のアダプタよりも二回りぐらい小さいし最高。 100W充電を実現するにはケーブルも対応しているものが必要なのでそこは要注意。 僕は充電以外でも使うかもしれないのと互換性やデータ通信について何も考えなくていいように高いけどこれを買いました。 Anker PowerLine II USB-C & USB-C 3.1(Gen2) ケーブル(0.9m ブラック)【Power Delivery対応/USB-IF認証取得/超高耐久】 Galaxy S10 / S10+ / S9 / S9+ 、iPad Pro (2018, 11インチ) / MacBook/MacBook Air (2018)、MateBook対応

3. CalDigit Thunderbolt Station 3 Plus

家ではMacBookProをクラムシェルモードで使用しています。 充電、外部ディスプレイ、キーボード、マウス、優先LAN、デバッグ端末など全部つないでTYPE-C一本でいけるし背面に配線を集められるので最高。

4. ロジクール MX ERGO

ずっとトラックパッド使ってましたが、腱鞘炎気味になって手首が痛いので使い始めました。 手首痛くなくなったので最高。

5. Withings Body Cardio

WiFiにつながる体重計、乗るだけで毎日体重が記録されるのが最高。

6. パナソニック 全自動コーヒーメーカー NC-A57-K

豆から行けるコーヒーメーカー。 ミルの自動洗浄機能があるので洗い物もまぁまぁ楽で最高。

7. Bauhutte スタンディングデスクマット

昇降式デスクでスタンディングで作業してると足の裏や膝が痛くなってくることもあったので購入。 使い始めてからはそんな悩みは全く無くなったので最高。

8. Tidy プラタワフォーバス

お風呂の床掃除に最高。 スポンジ使った掃除だけでは落ちなかった汚れも重曹とこれでゴシゴシやったら綺麗サッパリ。

9. BORDERLES フットレスト

机の高さが微妙に高くて椅子をその高さに合わせると足がうまいこと床に届きませんでした。 これを使うことで姿勢を保てるようになったので最高。

10. ルクエ ブレッドメーカー

ルクエ ブレッドメーカー ブラウン 62120

ルクエ ブレッドメーカー ブラウン 62120

  • メディア: ホーム&キッチン

シリコンで食洗機OK。 パンの素材を打ち込んでこねてオーブンにいれるだけ。焼きたてのパンは何回食べてもうまいので最高。

転職して3ヶ月たったので振り返ってみる

こんにちは!こんにちは!

ほぼWFHだったので夏がいつの間にか通り過ぎて涼しい季節になったのがすごく嬉しいですね。 私事ですが7月頭から新しい会社で働いていましたが10月に入り試用期間も終了したので近況でも残しておこうかと思います。

前職と転職先

6月末で株式会社エウレカを退職して7月から株式会社10Xでソフトウェアエンジニアとして働いています。

eure.jp

10x.co.jp

転職活動

昨年の10月ぐらいからゆるゆると他社の話を聞いたり体験入社的なことをさせてもらったりしていました。

本格的に活動し始めたのは今年の4月頃からです。 退職の意志をはっきりと伝えて、6月末での退職が決まってからガッツリ転職活動をはじめました。

退職の意思表明をした時はまだ次が決まっていなかったのですが、 有給消化しながら探して、もし見つからなくてもAndroidの業務委託でもしながら探せばなんとかなるやろ!みたいな気持ちでした。 幸いにも10Xにご縁があって無職にはならずにすみました。

転職活動については本格活動を始めるタイミングでTwitterエウレカ辞めますツイートをしたら そこそこ反応がいただけてたくさんのカジュアル面談をさせてもらえました。

あんまりにも多く予定を入れすぎたので、自分が聞きたいことを事前に用意して公開しておきました。

カレンダーこんな感じになってました。 最終出社以降の青いとこはカジュアル面談とか選考です。

f:id:futabooo:20201002201221p:plain

予定の調整にはyoucanbook.meというサービスを使いました。 Googleカレンダーと連携させることで空いてるところに企業側から時間を入れてもらうことができるようになります。 これのおかげで予定の調整はめちゃくちゃ楽でした!

youcanbook.me

10Xに転職してみて

プロダクト

最近タベリーをクローズしており、今はStailerに集中し始めているところです。 イトーヨカドーのネットスーパーはStailerで提供されています。

stailer.jp

入社以前からPdMとしてのYamottyさんには注目しており、入社してみてもプロダクトへの向き合い方に驚くばかりです。

ユーザーとしてもアプリを使って買い物をしているので日々の小さい気づきなんかをプロダクトに反映できるのはモチベーションにとてもよいです!

テクノロジー

これも入社前から記事などで知っていましたが、FlutterやサーバーサイドDartをさわることになりました。 また直近ではAppStoreやGooglePlayStoreのレビュー通知Botを動かすために、JavaScriptやNodeやDockerやKubernetesなど幅広くさわっていました。


今回の転職において、衣食住などの生活インフラに関わる部分でプロダクトを良くするために何でもやれる環境みたいなものを探していました。 入社して3ヶ月、いまのところ10Xではそれができていると思います。

一方で期待されている価値を出せているか?でいうと開発においてもスクラムマスター的な経験を活かす部分においてもまだまだだと思っているのでこれから引き続きやっていく感じです。

おわりに

入社1ヶ月ぐらいで代表のYamottyさんのPodcastに登場して話したりもしてるので興味があれば聞いてみてください。 (自分の声こんなんだっけ?って思ってますがこんなんなんですねきっと)

‎ゼロトピック - Zero Topic:Apple Podcast内の#72 「自分のつまづきがすでにドキュメントになって再発しないのに驚いた」 with ソフトウェアエンジニア @futabooo

Work From Homeのデスク環境

昨今あれでWorkFromHomeの時間が増えたので自分のデスク環境を晒してみます。 ニトリの手動で昇降するデスクが結構気に入っています。 たまにスタンディングにしたりできるので。

斜めから

f:id:futabooo:20200331121013j:plain 左横に本棚があり、そこにライトをつけてます

実機デバッグする事が多いのでどうしてもマックとつなぐケーブル出ちゃうのをなんとかしたいのと、 もうすこし大きめの外部ディスプレイにしたい欲があります。

下から

f:id:futabooo:20200331121922j:plain 配線はニトリのデスクがコードポケット付きでそこにだいたいしまってあります。

それぞれ使ってるもののリンクまとめておきます

www.nitori-net.jp

実際に購入したのはこちらの中古オフィス家具屋さん、状態を気にしなかったらめちゃ安く買えます。1脚からいける。 www.officebusters.com

actto BST-02 ブックスタンド

actto BST-02 ブックスタンド

  • メディア: エレクトロニクス

www.pfu.fujitsu.com

2019年に買ってよかったもの

2019年は引っ越しして大物家電も買い替えたりしたのでまとめてみます

家電

Anker PowerPort Atom III 60W

MacBook Pro (15-inch, 2018)を使っていますが、Mac純正のACアダプタよりも小さいので持ち運びに便利

SONY WI-C310

会社で仕事中に使うために購入 いままでは有線のものを使っていて、会議などで自席から離れる際の着脱をしていたのですがその手間が減って快適

電動歯ブラシ

パナソニック 電動歯ブラシ ドルツ 黒 EW-DP52-K

パナソニック 電動歯ブラシ ドルツ 黒 EW-DP52-K

  • 発売日: 2018/09/01
  • メディア: ホーム&キッチン

歯がつやつやになります

シャープ 冷蔵庫 SJ-PD28E-T

冷凍庫の容量が125Lの大容量で全体の半分近くをしめる なんでもとりあえず冷凍保存できるだけのスペースが確保できて最高

食洗機

エスケイジャパン Jaime 食器洗い乾燥機 工事不要 SDW-J5L

エスケイジャパン Jaime 食器洗い乾燥機 工事不要 SDW-J5L

  • 発売日: 2019/01/21
  • メディア: ホーム&キッチン

洗い物はこいつのおかげでほとんど手を動かさなくて良くなった ふたり分ぐらいまでならこれで十分 工事ができないキッチンでも置けるので買ってすぐ使える 水を手で入れる必要がありますが、洗い物を自分でする手間に比べたら全然許容できる範囲

LeanとDevOpsの科学

メトリクスの話 良いパフォーマンスを発揮できている組織なのかどうかを図る指標をパターンとして見出していてよかった

  • 本の中で紹介されている指標の一部
    • コードのデプロイ頻度
    • コミットからデプロイまでのリードタイム
    • 平均復旧時間
    • 変更可能失敗率

その他

昇降できないデスクでもこれがあれば一瞬でスタンディングデスクとして使える

2019年の振り返り

2019年の振り返りをTwiiterの投稿とともにしたので残しておきます。 この形での振り返りは昨年初めてやってみて、割と簡単に1年を振り替えれるのでおすすめです。

2018年の振り返り - WhereToStart

次のような感じでTwitter検索すると1ヶ月ごとの自分のツイートを振り返ることができます。

from:[your account name] since:2018-01-01 until:2018-01-31

2019年1月

PROからアマチュアになったようです。

RSGT2019でエウレカの組織改善について発表していました。 現在も形を変えて大規模リアル看板は運用されています。

エウレカに入って6年目。社のインタビューで自分の経験や変化についてお話しました。

アドベントカレンダーで書いた記事がきっかけでAtlassian User Groupで発表しました。

2019年2月

エウレカではQPO(Quarterly Offsite Planning )というまる2日間で次の4半期でやることの大枠を決める会議があります。 このOSTではそこで決まった話についてメンバーと一緒にディスカッションして理解を深めるワークを行いました。

はい。

かわいい。

初めてDevelopers Summitに参加し、カンファレンススタッフ経験者として運営のことなどを観察してたのを思い出します。 誘導は大事。

2019年3月

Slackを大掃除しました。

DevLOVE関西でRSGT2019の再演をしました。エウレカに来てくれているアジャイルコーチ繋がりで良い機会をいただけました。

試したい。試させてくれる場があれば行きたい。

2019年4月

技術書典6で表紙になった。

まったく記憶にないしなんで起きたのか未だにわかってないので中の人こっそり教えて下さい。

僕のツイートではないですが、当日飛び入りで発表しました。

2019年5月

Google I/Oに参加しました。 Twitterでは知ってた人に現地でエンカウントできたり、AmazonGoを体験したりしてきました。 AmazonGoの体験は本当に良くて日本でも早くあの感じのお店が増えてほしいものです。

ストーリーポイントでの見積もりがなんで良いとされてるのか、自分の中でこれだ!と理解できた瞬間だった。

2019年6月

5月のGWぐらいからチーム移動してリリース前、リリース日固定のプロジェクトで闇気味のときですねこれは。

2019年7月

エウレカ6年目に突入した月。

SECIモデルの話をしたいだけの発表だった。 ナレッジもマネジメントするもの。

id:seto_hiさんが業務委託としてジョインしてくれました。 当時のことなどをブログにもしてくれているので、そちらも合わせて読んでみてください。

seto-hi.hatenablog.com

2019年8月

InrernalAppSharingを新規アプリのリリースに向けて結構使ったので、どこかで発表するか資料つくるかしておけばよかった。

2019年9月

5月から着手で8月にリリースした。 めちゃくちゃスコープを削ることをしたし、進め方で反省も多かった。 でもリリースできてよかった。

メルペイの勉強会に参加してDesign docを知った。設計の意図や履歴をしっかりドキュメントに残すっていうのをやっていきたい。

PairsエンゲージAndroidチーム!!リリースまでの短期間でありましたが手伝ってくれたお二人にめちゃくちゃ感謝しています。

setoh (@seto_hi) | Twitter

ふじたく (@magie_pooh) | Twitter

打ち上げは麻布十番こま(麻布十番/居酒屋) - Rettyというところでうまい日本酒と肴でした。

技術書典7にて

2019年10月

見積もりとかエンジニアの評価について雑談した。めちゃくちゃ楽しかった。

台風で停電した。この日はお風呂にお水だめたり、事前に冷蔵庫の中身を調理しておいたりをパートナーがしてくれていたのでなんとかなった。 備えあれば憂いなし。

まじでさがしてる。

2019年11月

Bitriseのサクセスストーリー動画みたいなのにエウレカが紹介された時に動画に登場しました。 太ってるので痩せることを決意した日だった。

Designship2019に参加。デザイナー系のカンファレンス初参加でいつもの自分の界隈との違いがいい意味で刺激的だった。 エンジニアリングだけでもデザインだけでも、マーケティングだけでもプロダクトはつくれないのでここがシームレスに繋がってるチームが最強だよなと再認識した日だった。

γ-GTPがやばい

2019年12月

大きい冷凍庫は正義。なんでもとりあえず冷凍しておくっていう意思決定ができて最高。

DMMに初めてお邪魔した。こういうときは写真付きがいいですね。

GDG DevFest Tokyo 2019参加

potatotipsで久しぶりに発表。Android Jetpack Navigationについて話しました。 DeepLinkは罪深いですね。

33歳になってもお酒を買うのに年齢確認されました。はやく見た目に大人の雰囲気を持ちたいものです。

総括

チームやプロセスに注力した2018年から変わって2019年はPairsエンゲージという新規プロダクトを作るAndroidエンジニアとしての側面がとても大きい1年となりました。 Pairsエンゲージの開発についてはたくさんの人に助けてもらいました。自分一人では絶対にリリースをやりきることはできなかったと思います。 めちゃくちゃに忙しかったはずなのにI/Oに行けたり、外で発表する時間をしっかり取れていたり本当に環境に恵まれていると再認識しました。 他方でデザイン系のカンファレンスに参加したり、LTで飛び入りでデザインについて発表したり、社内のデザイナー勉強会に顔をだしたりとデザインに興味を示して行動をし始めた1年でもありました。 デザインのことまで興味を持ち始め、自分は一体何者なのか何者になりたいのかふわふわ感が進んだ気もしますがそれもまた良さなのかと思うようにもなってきました。 変化に最も対応できる生き物が生き残るこれはエウレカの行動規範のひとつですが、自分が何者なのかを定義しないことで変化に対応できてるきもします。なんてね!

少し早いですが2019年お疲れさまでした!よいお年を!

Androidアプリで実行時にFirebaseAnalyticsを環境によって使い分ける設定方法

すでにFirebaseAnalyticsを使っている人向けです。 まだ使ったことがない人はまずは下記を参考に導入から管理画面でのイベントの確認まで進めてみることをおすすめします。 Get started with Google Analytics for Firebase on Android | Firebase

Androidアプリ開発していると本番環境と開発環境でFirebaseのプロジェクトを分けたい事案が発生することがあると思います。 公式ドキュメントでも複数のFirebaseプロジェクトをサポートするための実装方法が案内されています。

Configure multiple projects | Firebase

しかしこの方法は環境ごとのgoogle-services.jsonを用意した方法となっており、FirebaseSDKに初期化方法を任せた形での実装となるためBuild時に環境を選択することはできますが実行時に選択することができません。 下記の感じになります。

app/
    google-services.json
    src/development/google-services.json
    src/release/google-services.json
    ...

そこで初期化を自分たちでやる実装に変更し、実行時に複数の環境から選択できるような実装に変更する必要があります。 この方法自体はFirebaseの公式Blogでも紹介されています。

developers-jp.googleblog.com

記事を読みながら手順を踏めばだいたいうまくいきますが、必要ない設定もあったりするのと自分でやる際に少し工夫した部分もあるので復習の意味も込めて紹介します。

1. FirebaseInitProvider を無効化する

AndroidManifestのapplicationタグ内に下記を追加します。

<application>
  <provider
    android:name="com.google.firebase.provider.FirebaseInitProvider"
    android:authorities="${applicationId}.firebaseinitprovider"
    tools:node="remove"
  />
</application>

2. FirebaseApp.initializeApp() を呼び出して初期化する

公式Blogではいくつかsetメソッドが呼ばれていますがFirebaseAnalyticsを使うだけならsetApplicationIdだけ呼べばいけました。

val builder = FirebaseOptions.Builder().setApplicationId("your_ google_app_id")
FirebaseApp.initializeApp(this, builder.build())

ここでyour_google_app_idgoogle-services.json{YOUR_CLIENT}/client_info/mobilesdk_app_idの部分になります。

3.strings.xml内にFireBaseAnalyticsから呼び出されるようにkeyvalueを設定する

上記までだとアプリを実行した時にMissing google_app_id. Firebase Analytics disabled. See https://goo.gl/NAOOOIというエラーが表示されてAnalyticsが動きませんでした。 そこでstirigns.xmlに下記の1行を追加すると動くようになります。なぜこの行が必要なのかまだわかってないのでコメントもらえたら嬉しいです。

<string name="google_app_id" translatable="false">"your_ google_app_id"</string>

google-services.jsonのkeyvalueとstrings.xmlのkeyvalueの対応は下記のdocで確認できます。

developers.google.com

これで実行時にFirebaseOptionsを引数を変えて作成することができるので、環境に合わせて使い分けることができるようになります。