2018年11月25日日曜日

Report of Firebase Summit 2018 in Prague / Czech

会社から機会をいただきチェコ・プラハで開催されたFirebase Summitに参加し、そのレポートを Mercari x Merpay Tech Talk for Android Engineers - connpass にて発表しました。


Summary

  • Firebase Summit本体で発表されたサマリは次のとおり
    • GCP Integrations - AnalyticsのGCPへの連携
    • Machine Learning - MLKitの更新、Prediction・ABTesting・RemoteConfigなどのAIを利用した機能の拡張
    • Open Source - Firebase SDKのオープンソース化

Firebase Summit

当日のスケジュールと動画はこちら↓ https://firebase.events/
Keynoteでアップデートの発表、セッションやワークショップで理解を深めるという構成でした。


Workshop

Codelabを解説しながら進める形式でした。 単純なCodelabなのでちょっと残念に思いましたが、ここで実践したことであとで開発者とdiscussionすることができたのでよかったです。 個人的にはFirebaseという共通するコードの解説のハンズオンをFlutterでおこなうと環境構築や説明が冗長にならないのは興味深く思いました。


Firestoreがリアルタイムに反映されるアプリのCodelab

https://codelabs.developers.google.com/codelabs/flutter-firebase/
インターネッツが貧弱でDL難民頻出でした。 Firestoreコンソールから追加したエンティティを変更した瞬間にアプリ側でも表示が変わります。 Vote数を記録するサンプルアプリでしたが、実アプリでいいねだけをFirestoreに任せるなどしてみたらおもしろそうだと思いました。


MLKit

https://codelabs.developers.google.com/codelabs/mlkit-image-objects-android/ テキスト画像からの検出、モデルの追加によるアラビア語など珍しい文字の検出、顔の輪郭検出、物体検出の4つをMLKitを利用しておこなうアプリのCodelabです。 今回新登場したCompress機能で圧縮された数百KBのモデルをコンソールにアップして軽量で精度の高い文字検出ができました。


AskFirebase

Firebase teamメンバーがテーマごとにブースにいて質問ができるコーナーです。


HackFirebase

CodelabにチャレンジしたりGooglerに質問できるスペースです。 Flutterの開発チームのFillipさんとお話して、MTCを紹介したりその開発の上でMaterialDesignを導入すると20MB近く日本語フォントでアプリが太ってしまう問題やAndroidだったらDownloadableFontを利用できるようにしたらよいのではという意見をしたり、Codelabでみつけた減少の共有をしたりできました。 FillipさんはCARTUNEのことをご存知で、MTCアプリのデザインも褒めていただき嬉しかったです。


Other activity

AppShipというFirebaseを利用したゲームや、プリクラみたいなselfieコーナー、Googleのイラストレーターによる似顔絵イラスト作成、これらを回るとプライズがもらえるスカベンジャーハントなど参加者同士やGooglerと交流するためのアクティビティがありました。


Firebase update summary

更新の詳細についてはGoogleの公式ブログに記載されています。 英語と日本語版のブログの掲載場所が異なリます en / jp
  • Firebase is used everymonth 1.5M+ app
  • Keywords
    • AI
    • Transparency&Exhibitication
    • Sophisorogy
  • Hotstar india has 150mill user, they using Firebase features
  • GDPR transparency support
  • Firestore asia europa region comming soon
  • Prediction, A/B Testing, Crashlytics can export to BigQuery
  • Client app SDK Opensource
  • MLでユーザー行動からセグメンテーションをおこなうPredictionsがBeta卒業
  • Audienceもより細かくIn-app billingやイベントのステータス設定がコンソールからできるように
  • FCMで自動で定期的にプッシュを送るなどのlong-running-campaignが登場
  • Remote config update : realtime propagation
  • Firebase Management API : APIでFirebaseのConfigrationができる
    • これによりGlitchなどのオンラインIDEから直接デプロイできるようになった
  • FabricのFirebase統合が進んでいる
  • Crashlytics + PagerDuty integrations https://www.pagerduty.com/docs/guides/firebase-integration-guide/
  • Firebase performance monitoringにtrace sessionsが登場
  • Test Lab for iOS released!
  • ML Kit update : face contours API


所感など

Firebase Summitは最新情報をただ受け取るだけでなく、あらゆるところで参加者からのフィードバックを得ようというGoogleの意思を感じました。 クライアントアプリエンジニアとしてはFlutterの開発者と直接お話できて日本語フォントによるアプリサイズの問題についてフィードバックし改善したいと言っていただけたことが嬉しかったです。 またSDKがオープンソースになったこと、MLKitのアップデートなどはとてもテンションがあがりました。


Tips of business trip for Europa


language

チェコは歴史的経緯からチェコ語をメインとし、スロヴァキア語、ドイツ語、たまにロシア語などが入り乱れる上にアルファベットが英語とかなり異なるのでめっちゃ読めない。 プラハは観光客が多く英語が通じたり、たまに観光地で日本語のパンフレットがあったりする。 市街地、若い人はだいたい英語わかるけど市内から外れると全然通じない。 駅員やバス運転手も。 ややこしいのがチェコ語の'Yes'が'Ano(no)'なので全く逆に聞こえるという。 ちなみに'No'は'Ne'。 カンファレンスはオール英語なので大変助かった気持ちになった。


SIM card

AIS(タイ?の会社、4000円くらい)というのを買った。 これが大変優秀で乗り換え地のモスクワ・シェレメーチエヴォ国際空港でも通じた。 シェレメーチエヴォ空港のWi-fiの認証が電話番号にボイスコールで認証番号を届けるというものなので 国際電話が通じる状況じゃないと認証通らないという無理ゲー。 このSIMカードがなかったら大変つらいことになってた。


交通

市街ならUberがかなり走ってる。比較的安価。バス・地下鉄・トラム(路面電車)もかなり走っており便利。 中心街から離れるとUber少ないので注意。 トラムは乗る機会がなかったのが残念。


治安

あまり怖い思いはしなかったけど夜一人で出歩いたりしなかったからかな。 外でタバコを吸ってたらホームレスに追いかけられたという話も聞いたので注意は必要そう。


物価

チェココルナがほとんどで一部ユーロも使える。 でもやっぱりコルナ。 水よりビールが安いのは本当だった。


持ってってよかったもの

  • 変換プラグ ないと死ぬ
  • 室内用スリッパ
  • マスク ちょっと変な目で見られる

2018年8月26日日曜日

Kotlin Fest 2018で「start from Convert to Kotlin」トークしました



Kotlin Fest 2018 に登壇者兼スタッフ(オープニングトーク司会)として参加してきました。
Kotlinへの愛と熱気にあてられた一日でした。



「start from Convert to Kotlin」というタイトルで初学者向けにすでにあるJava製Androidアプリで『Convert Java File To Kotlin File』という機能を使って自動変換したコードをベースにKotlinの良さとどのように改善していくかというお話をしました。
登壇中大変緊張してしまい聞きづらいところもあったかと思いますが、聴講いただいた皆様ありがとうございました。

後日動画も公開されるそうです。怖い。

いくつか要点と補足です。

  • KotlinコードでもJavaは意識せざるを得ないので随時Decompileを駆使して確認する
  • AndroidアプリではNull許容・非許容を適切にハンドリングすることで効果的にバグを回避することができるが、単純なConvertのみでは適切な形にならないこともあるので留意する。特に!!が出てきたら要注意
  • KotlinテストコードでのassertNotNullではそのあとのスマートキャストが効かないがkotlin-test-junitのfailを使うとスマートキャストが効くようになる
  • Javaでは名前付き引数が使えないと話しましたが、正確にはJava8以降でオプション機能としてサポートされています。しかしKotlinからはJava6との互換性のためJavaの名前付き引数を解決できないとのことです(Kotlinイン・アクション P62より)。
  • 実装では名前付き引数を使うと読みやすいだけでなく引数の定義順の入れ替えが起こっても壊れないので堅牢になるが、Java混在プロジェクトの場合は順番を保証したいのでテストコードで名前付き引数を使わないことで変更による影響を検知できる
  • lateinitとby lazyの最大の違いは宣言がvarになるかvalになるか。サンプルプロジェクトの場合だとby lazyのほうが良かったかもしれません




Kotlin可愛い。

2018年2月11日日曜日

DroidKaigi2018で登壇してきました『Androidではじめるデザインスプリント』

DroidKaigi2018 Day.2 Room2 16:50〜 『Androidではじめるデザインスプリント』というテーマで登壇しました。



当日はたくさんの方に足を運んでいただき緊張もMAXでしたがとても良い経験をさせていただきました。

なぜこのテーマを選んだのか


  • 応募リストを見て「デザイン」というキーワードがほとんどなかった
  • 当時後輩の育成について、企画プロセスの体験やチーム内の暗黙知の共有のためにデザインスプリントが役に立つのではと考えていた
  • 「チームビルディング」カテゴリが今年から追加されたので関心が高いのではと思った
  • 締め切り3分前に思いついてしまった


もう一本暖めていたConstraintLayoutに関するテーマもちょっと前に応募していたのですが、
こういうときって勢いで書いたもののほうがよかったりすることありますよね。
今回トーク採用いただいて、DroidKaigiの講演のバリエーションを広げるのに貢献できたのならよいなと思います。

一方「デザイン」という単語を含む応募が少なかったかつたくさんの方にご聴講いただいたということはまだまだ需要と供給がマッチしてないのかなと思ったりします。
というか私がもっとデザイン系のお話聴きたかったです。
来年はもっとデザイナーの方などにも応募してもらえるといいなと思います。

内容についての補足


デザインスプリントそのものについての説明はかなり端折っているので、実践する前にできるだけ参考リストのリンク先を読んでほしいです。
手法が色々選べるのがデザインスプリントのよいところであるしそういった面を中心にした説明を行ってしまったけれど、
本質的にはチーム全体でユーザーに向き合って失敗しながら良いプロダクトを目指すのがデザインスプリントです。
手法にとらわれず、実行すること、検証すること、ユーザーと向き合うことを大切によいプロダクトを目指していただければと思います。

準備について


  • 本は目次ができたら8割勝つるけど発表は目次ができたらそこがスタート、発表練習を始めてからが本番
    •   執筆以上に答えがない
    •   文字で伝えるのと登壇で伝えるのは全然違う
    •   アガリ症なんだからもっと飽きるくらい練習してもよい
  • 家のサブディスプレイで画面構成チェックしといたのはよかった
  • 同僚に2回ほど練習に付き合って聞いてもらったのが本当によかった
    •   構成自体のブラッシュアップがすごく効いた
    •   プレゼンのTips虎の巻を共有してもらったのがすごくよかった


発表について


  • 直前に控室でプルプルしてたらスタッフのひとたちがちょいちょいいじってくれたのが心強かった
  • 発表時のPCの状態は単純に「デスクトップを掃除しておく」「余計なアプリケーションを切る」「Wifiを切る」がよさそう。別垢に切り替えようとしてパニクった
  • マイクの向きは難しいなぁ
  • マイクチェック時に「2階席ー!」とか適当な喋りを入れてすみませんでした。乗ってくださったご聴講者の方々ありがとうございました
  • 発声、ジェスチャーの入れ方などはまだまだ改良の余地がありそう
  • 本番30分ピッタリで喋れてよかった


謝辞


発表の準備期間中に転職、私生活、他のタスクなどが重なり、考えていた以上に発表が近づくにつれてパニック状態に陥ってしまっていました。
この時期にフォローしていただいたDroidKaigiの仲間たち、家族、新しい同僚には感謝してもしきれません。
また、退職したにもかかわらずブログから画像の利用や会社でやったことの発表を快く許可していただいた前職にも感謝いたします。

最後に


自分にとっての当たり前が他の人にとっては貴重な知見になることもある、という言葉を糧に準備をして発表をしてきましたが実のある発表になったかは自分ではよくわかりません。
ご聴講の方はDroidKaigi2018公式アプリからフィードバックをいただけると嬉しいです。

2018年1月1日月曜日

2017年ふりかえり

mochicoです。
shirajiさんや釘宮さんがやってるふりかえりテンプレートで1年をふりかえりたいと思います。

2017年を振り返る - アナログ金木犀


なんだか疲れていたらしい。
この頃は技術書典とDroidKaigiと東工大の産学連携プロジェクトEDPに参加していてぐったりしていた気がする。
おもしろそうなことには首を突っ込む主義だけどさすがにやりすぎた。

2月


ペパボテックカンファレンスモバイル編で喋らせてもらいました。
iOSとAndroidと両方やるということでテーマを絞りきれず的を得ない話になってしまったと反省しております。。。


EDPの発表会もありました。
EDPは東工大を中心に美大生、社会人ソフトウェアエンジニア、大田区に籍を置く企業の社会人などが入り交じるチームで半年間かけてデザイン思考のプロセスに則って全く新しいプロダクトを作るというプロジェクトです。
今考えるとこのプロジェクトでは個人的にはモノを形にしなければならないというところに寄りすぎたのは良くなかったかなぁと思います。
ここで学んだことは社でも生かしております。一緒に参加していた同僚のスライドが良いです。


この前後咳が止まらず死ぬかと思った。
書典の方で勉強会ひらいたりサークル応募締め切りだったり配置やったりいろいろやってて相当疲れてたらしい。

3月


DroidKaigiやってました!主に企業ブースのお手伝いしてたけど当日のツイートみてるとかなり楽しんでた様子

4月




技術書典なんとか無事開催〜〜〜


続けて超技術書典。
二連続開催やらライブ執筆やら見本誌展示やら初めての試み続きで本当羊さんはどうかしていると思った。



今年前半はこれで死ぬかと思った・・・

5月

LTでお話しました。

GoogleI/Oいってきました。
InstantApps追ってたんだけど結局形にできてない。。。

6月


弐瓶勉のBLAM!が最高だった


この頃から少しずつ生活を楽にしようとしているっぽい。
また、ツイートはないけどカレンダーを見るとオンリーイベント準備本格的にやり始めたのもこの辺っぽい。


そして次の準備が始まる。

7月


スプラトゥーン2楽しいですね。ちなみに今もB帯・・・


ペアプロよかったらしい



地味な不調が多かった1年でした。今は膝が痛い。

8月


夏コミでした


事件

9月


オンリーイベントのため仕事から外してもらい気味でしたが、いろいろ準備してました。
例のアプリの話で他のメンバーがめうめう言ってるのをハラハラしながら見守ってました。

10月



次回の開催前は晴天祈願に行くつもりです。

11月


ヤバい。がんばる。


11月はオンリーイベントラストスパート&ペパボ最終出社に向けてお片付けしてました。

12月


退職してました。
前の会社で受託やゲーム中心の会社でアプリやってきて、それをちゃんとサービスとして継続的に開発し続けられる、自分のやっていることを説明できる、自信をもって自分はプログラマーだと言えるようにさせていただいた最高の会社でした。
理念の「もっとおもしろくできる」に則り、次のチャンスが見えたのでチャレンジすることにしました。
ペパボのみなさま、本当にありがとうございました。


そして、オンリーイベントもとい結婚式してました。
この辺のあれやこれについてはあちらが書いてたりするけど私も技術書典でなんか書くかもしれない。

他、論理無職として12月はゆうちょダイレクトが停止されてるの解除したりdocomoの氏に回線を解約したりドラム式洗濯乾燥機買ったり本読んだりとおやすみいただいてました。


2018年


本年もよろしくお願いします。