コネヒト開発者ブログ

コネヒト開発者ブログ

広報から見るAWS Summit 2018に登壇するメンバーを支える開発部

こんにちは。コネヒト開発ブログに初登場、広報担当の地田です。

今回は、広報担当からみたコネヒト開発部についてご紹介をさせていただければと思います。

AWS Summit 2018について

今回、コネヒト開発部についてご紹介するにあたり、欠かせないのがAWS Summit 2018。

AWS Summit はクラウドコンピューティングコミュニティーが一堂に会して、アマゾン ウェブ サービス(AWS)に関する情報交換、コラボレーション、学習を行うことができる日本最大級のクラウドコンピューティングカンファレンスです。 AWS Summit は世界 23 ヵ国以上 33 か所以上の都市で開催され、東京では 2018 年 5 月 30 日〜6 月 1 日、品川にて開催します。 AWS Summit Tokyo 2018 では、基調講演、お客様事例、ユースケースセッション、AWS の最新テクノロジー動向や多種多様な業種や企業規模でのクラウドサービス活用例など、150以上にもおよぶ AWSならではのセッションをご提供します。また、展示スペースではスポンサー企業様のソリューションの他、AWS や Amazon の最新サービスについても見て、触れて、学べる展示を実施します。(AWS Summit 2018のページより)

www.awssummit.tokyo

本イベントで、初めての開催となる「Startup Architecture of the year」という「アーキテクチャ」にフォーカスを当てたピッチコンテストがあり、そこに当社のエンジニア永井の登壇が決まりました!

詳細はこちらから。 aws.amazon.com

広報担当の気持ち

「AWS Summit 2018という大規模なイベントの登壇が決まった!」「すごい!」ととってもうれしいことだと喜んだ反面、広報として登壇をするメンバーをどうやって支えてあげたらいいんだろう、、、と思いました。

わたし自身が(当たり前ですが)すごく技術に詳しいわけではない、資料作成のサポートができるわけでもない、いいアドバイスができるわけでもない、どうしよう。。。

そして、わたしなりにできることとして思いついたのが、プレゼンのフィードバックをする会を設けるということです。

エンジニアのメンバーであれば、比較的LT文化があったり勉強会でノウハウを発表するということが日常的にあるほうだと思いますが、こういった数百人が集まる大規模なイベントで、かつ、ピッチコンテンストという形で登壇をするというのはいつものLTとは少し違うのではと考えたからです。

メンバーの一歩を支える開発部を召集

早速Slackで開発部のメンバーを召集してみました。

f:id:connehito:20180604181253p:plain

日頃から開発部は「技術の力を使って、メンバーの一歩を支える」ということをしている部署です。

わたしのこういった投稿にも、すぐ快く集まってくれました。

プレゼン練習

f:id:connehito:20180607124803j:plain プレゼン練習を始める前に、下記のポイントをお伝えしました。

  • 今回登壇するイベントはどんなイベントなのか(会場の雰囲気を伝えることの大切さ)

  • 開発部のメンバーにどこのポイントを中心にフィードバックをしてもらいたいのか(わたしが支えきれない技術的観点のサポートをしてほしい)

  • プレゼンに対して感じたことは、率直に何でも素直に伝えてほしい

特に重要なことは、プレゼンのフィードバックは否定やダメ出しではないということです。 今回のプレゼン練習をすることで、よりよくしていくためのプラスの取り組みであるということを伝えました。

実際にプレゼン練習をすると、いろいろなメンバーからのありがたいアドバイスもあり当初の資料とは異なる形で最終的に仕上げることができ、今回伝えたいポイントが伝わりやすい形に修正されたのではと思っています。

プレゼン本番

f:id:connehito:20180604183258j:plain

CTO100名を前に、普段の勉強会とは異なる雰囲気の中、「ママ向けNo.1アプリ『ママリ』の成長を支えるコンテナ技術とAmazon ECS」と題し堂々とプレゼンを行いました!

結果的には、賞を受賞することはできませんでしたが、ピッチ時間4分以内でしっかりと内容をまとめ、今までのフィードバックをもとに改善した形で話しきりました。

プレゼン資料はこちら。 speakerdeck.com

まとめ

今回、プレゼン練習は1回目のフィードバックをもとにどう改善されたのか確認するために本番までに2回開催をしました。2回目の開催はフィードバックをしてくれた開発部のメンバーから言い出してくれたことでした。

開発部のメンバーがしっかりとメンバーの一歩を支えているというのを実感し、また開発部全体の取り組みとして捉えているんだとちょっとした感動を覚えた広報でした。

そして、登壇の際には事前にメンバーを集めてプレゼンの練習をすることの大切さも同時に学び、簡単にできることなので是非他社の方も参考にしていただければ幸いです。

Re:データ民主化の実現とRedash 〜よりデータを活用するための命名規則をどうするか〜

こんにちは!PHPなんかを書いている金城 (@o0h_)です。
先日、弊社某部長に薦められて「かくかくしかじか」を読みました。 これが非常に良かった。 個人的には、2巻の「ふーん」「いいじゃない」「え マジすか」「マジだよ」「ハイ 次の人」のシーンが好きだな〜と思いました。

かくかくしかじか

かくかくしかじか

やはり、信頼できる人のレコメンドや想いというのは・・"一旦素直に受け止めてみる"のが良いものだ、と改めて思った経験でした。

ありがとうございました。

さて、先日のエントリーで弊社におけるRedashの導入と活用(展開)についての取り組みに関して紹介がありました。

tech.connehito.com

相変わらず「どうしたら最高の効率・効用を社内にもたらせるのか」を考える日々ですが、その後また社内での運用について考えた部分があるので紹介です。

クエリ/ダッシュボードの命名規則について。

f:id:o0h:20140315123316j:plain

続きを読む

Connehito Marché #2 ~webフロントエンド市~ での中継について

f:id:dachi023:20180522145017j:plain

こんにちは。2017年11月にAndroidエンジニアとしてJoinした関根(@katsutomu)です。初めてコネヒト開発者ブログに登場させて頂きます。先日コネヒトマルシェの第2回を開催致しました。詳細は安達の投稿した記事をお読み頂ければと思います。 tech.connehito.com

さて、今回は筆者が先日のコネヒトマルシェで取り組んだことについてご紹介させて頂きます。どうぞ宜しくお願い致します。

Connehito Marché #2を盛り上げるために

まずはこちらのツイートをご覧ください。

typoだらけのツイートを貼って何事かと思うかもしれませんが、実はこの日は拙作の音声認識ツイートアプリで認識された内容を元に会場の様子の中継を行なっておりました。このツイートは下記の写真の赤丸部分においてあるAndroid端末からの配信です。

f:id:katsutomu0124:20180528200200j:plain

つまりこちらのツイートは弊社伊藤の会場案内の内容を音声認識し、ツイートされたものとなります。

ヘッド まだちょっと怒られていない方いるちょっとまだ来られていない方がいる
AFTERSCHOOL のパートに入りたいと思うんですけどもそれではLTのパートに入りたいと思うんですけども

とそれぞれ喋っていたと記憶してしております。今回のイベントでは会場案内と弊社の伊藤と安達のLT発表中に前述のアプリを使用し中継を行わせて頂きました。中継内容はそれぞれ下記のツイートにスレッド形式で纏まっていますのでもし興味があれば是非ご一読ください。

安達のLTの中継ツイート

伊藤のLTの中継ツイート

ツイート中継の裏側

きっかけ

もともとこのアプリは弊社の開発部で半期に一度開催している開発合宿というイベントで制作いたしました。この合宿は社内メンバーやママリの誰かの一歩を支えるための開発を行う合宿です。当初の目的は、社内メンバーの下記の課題を軽減出来ないかという思いからでした。

  1. ミーティングでの議事録を取るコストを減らしたい
  2. ユーザーインタビューで質問に夢中になりメモを取り忘れる

ただ先述のツイートを見る通り雑音の多い環境や複数人で会話をするような用途では、まだまだ誤変換が多い状態だったので課題の解決には結び付きませんでした。が、逆に誤変換を楽しめないかと考え、コネヒトマルシェでの中継に利用することを思いつき今回の実験に臨みました。

内部実装について

本アプリはGoogle Cloud Speech APIのAndroid用のサンプルコードに手を加えて制作を致しました。 github.com

今回実装したのはSQLiteでローカルストレージに保存する機能と認識されたテキストをツイッターへ配信する機能のみで音声のテキスト変換部分の機能はGoogleCloudPlatformのサンプルアプリをそのまま流用しています。音声からのテキスト変換はサンプルアプリをビルドする環境があれば、すぐにでも試すことができるので是非触ってみてください。

なおSpeech APIは有料となります。使いすぎにはご注意ください。

ツイート中継を行なってみて

メリット

誤認識がとにかく面白い

とにかく誤認識で、妙な言葉に変換されていて、読んでいるとついつい笑ってしまいます。本当はなんと喋っていたのかが気になってくる効果が生まれているというフィードバックも頂きました。

懇親会でのコミュニケーションが盛り上がる

音声認識のアプリをきっかけに懇親会でお声がけを頂いたり、懇親会での会話の内容をツイートに配信して楽しみました。今回の狙いでもあるコネヒトマルシェを盛り上げることに一役買うことができたかと思います。

デメリット

LTに集中できない

公共の良俗に反する単語がツイートされないようにNGワード機能を実装し対策をしていたのですが、それでも妙な単語がツイートされないか心配でした。そのため、筆者は二人のLTを聴きながら、どんな言葉がツイートされているか監視をしていのですが、その為、LTに集中することが出来ませんでした。次回はしっかりとNGワード対応を行いLTを聞くことに集中できるようにしたいと思います。

最後に

今回は誤変換を楽しむことがメインになりましたが、正確に認識されることも多く音声認識技術の発展には目を見張るものがあると感じました。今後もしっかりとキャッチアップし、正確な中継を行える日を楽しみにしようと思います。

実は、今回ツイート中継を試してみようと決めたのはコネヒトマルシェ開催の三日前でした。時間がない中で私からの申し出を温かく受け入れアドバイスをくれた社内のメンバーと、そして何より当日にツイート配信にお付き合い頂いたご来場の皆様に改めて感謝いたします。次回はLT発表者に事前承諾を頂いた上で、全てのコネヒトマルシェの様子をお伝えできたらいいなと思っています。その際は、LTに集中できるだけのNGワード対応を行いますので、是非宜しくお願い致します!

追伸

今回の主題とは全く関係ないのですが筆者の相棒である富田のI/O Extended 2018 Shibuyaのレポート記事もご一緒にどうぞ!!! tech.connehito.com

I/O Extended 2018 Shibuyaに行ってきました

https://connpass-tokyo.s3.amazonaws.com/thumbs/6a/a4/6aa4ca577ef554902df3b174c589b017.png

こんにちは

Androidエンジニアの富田です。先日、I/O Extended 2018 ShibuyaにBlog枠として参加させていただきました。I/O Extended 2018 ShibuyaとはMaterial Designに特化したイベントで、IO2018で発表された新しいMaterial Designについてのお話が多く大変興味深かったので内容をレポートしたいと思います。間違いや認識の違いがありましたら、ご指摘いただけますと幸いです。

goodpatch.connpass.com

Material update

Google合同会社 鈴木拓生さんによる「リデザインされたMaterial Design」についてです。

そもそもMaterial Designって?

Material DesignとはGoogleが2014年に発表したデザインフレームワーク。元々は社内用のフレームワークだった。なんで社内用にフレームワークを作っていたかというと、サービス間のUIが異なっていて使いにくかったため。GmailとGoogle Calendarでは異なるUIだったので、慣れない人にとっては操作しづらかった。そこでタブレット、モバイル、デスクトップなどに最適化されたフレームワークを過去のデザインシンキング、デザイン資産を使って作り、きちんとOSSとして公開したものがMaterial Design。2014年はGoogle PlayでMaterial Designを利用したアプリが0個だったのに対して、今や150万ものアプリが存在する。一方問題もあり、フレームワークを利用しているためどうしてもアプリの独自のカスタマイズ性が難しい。これを解決するためにできたものがMaterial Theming。

Material Themingって?

E2Eの考え方でブランドに沿った形でデザインをシステマチックに作ることができる機能。ブランドにあったボタン、スライダーなど様々なコンポーネントを利用できる。

Material DesignとMaterial Themingの違いは?

  • 変わっていないところ
    • 物質的なものをメタファーとして使っている
    • 必要な機能をレイヤーごとにヒエラルキーを作って表現する
    • プライマリーカラー、セカンダリーカラー
    • フォントをきちんとヒエラルキーを並べて使う
  • 変わったところ
    • ボタンの形などの表層的なところはカスタマイズしている
    • コンポーネントの組み合わせによってアプリを構築する
    • 英文はRobotoフォント、英文じゃないものはNoto Sansフォントを推奨していたが、より多くのフォントをサポートするようになった
    • アイコンは1パターンから2パターンになった。自分たちのサービスにあったものを選べる

Material Designを使っているとGoogleアプリっぽくなっちゃう問題

元々Googleの社内向けデザインフレームワークなのでGoogleっぽいデザインになってしまうのは当然。今回はGoogleも一つのMaterial Themingユーザとなり、Material ThemingをカスタマイズしたGoogle Material Themingを開発した。その使用例としてGmail、Google News、Google Pay、Google Homeなどでは、Google Material Themingを使用している。今後、他のGoogleアプリについても同様にGoogle Material Themingに移行していく予定。

Google以外にMaterial Themingを使ったアプリは?

Pocket Casts、Lift、ZapposがすでにMaterial Themingを利用している。

Material Themingをカスタマイズする方法

material.ioのガイドラインを参照するとわかるように今回material.ioが大きくアップデートされ、Material Tools、Material Componentsなどが発表された。Material Designは、デザイナーだけではなく、デベロッパーも使うもので、プラットフォームについてはFlutter、Android、iOS、Webで動く。Material Designはあくまでもデザインフレームワークなのでデザイナーはクリエティブな部分に注力してもらいたい。

マルチプラットフォーム

マルチプラットフォームとしてReact版を開発中。Flutter、Android、iOS、Webと対応されているがAndroid、iOSとは微妙に違いがあり、細かいところでプラットフォームにあった設計をしている。チュートリアルが準備されており、学びたい人は各プラットフォームで触ることができる。デベロッパーの場合は全てOSSで見れるようになっているので、機能拡張やバグなどがあればレポートをお願いします。

Material Themingの使い方

  • Android
    • com.google.android.material:material:バージョンをgradleファイルに追加
    • Jetpackの関係でサポートライブラリはandroidxに入りますが、materialのサポートライブラリは別途切り離されて開発され続ける
  • iOS
    • CocoaPodsを使ってインストール
  • Web
    • nodeモジュールとしてnpm installでインストール
  • Flutter
    • 最初から入っているので何もする必要がない

みんなでデザインシステムを構築

みなさんが使っているアプリケーションや導入した過程で使いづらいところに対してフィードバックを送ってほしい。Google Material ThemingのようにGoodpatch Material Themingがあってもよくて、自社で使うときにカスタマイズしたMaterial Themingを使うのもあり。さらにJapan Material Themingといったような、みんなでデザインシステムを作っていくようなやり方を一緒にできると良いです。

UIデザイナーのためのMaterial Designの理解と実践

株式会社グッドパッチ 蔡漢翔さんによる「UIデザインーのためのMaterial Desingの理解と実践」についてです。

Material Designのサイト

Material Designサイトには、ガイドライン、デザインツール、コンポーネントがある。Material Designとはデザインシステムで、デザインシステムとはスタイルガイド、コンポーネントライブラリ、デザインから実装までの一つのデカイシステム。サイト上ではデザイン、デベロッパー、ツールのカテゴリ分けされている。

メタファーを使ってわかりやすくMaterial Designについて考える

僕たちが毎日使っているアプリ、Webサイトを料理としてメタファーをつけると、デザイナーとデベロッパーはシェフで料理を作る人。デザインシステムは、料理を作るためのキッチン、調理器具、レシピ、食材などいろんなものを集めるデカイシステム。では、Material Designは料理教室。Foundation、Component、Toolは料理教室の中の料理の基礎知識を教えることで、調理済みの食材や便利なキッチン道具が準備されている。つまり、料理教室は料理の基礎が分かれば誰でも美味しい料理が作れる。Material DesignはUIの基礎が分かれば誰でも美しいアプリを作ることができるデザインシステム。Material Designは、デザインシステムを作るためのデザインシステム。

普段の業務にMaterial Designをどう導入する

Sketch、Material Theming Editorの2つツールを使って次の3つをやってみる。

  • Color
  • Typography
  • Components

Color

Material Designはベースの色システムがある。メインはプライマリー、セカンダリーがあり、その他にバックグラウンド、サーフェース、エラーの色がある。色システムを作るには、自分のデザインスタイルに合わせてプライマリーカラー、セカンダリーカラーを選択すると、マテリアルシステムは2つの色によってカラーパレットを自動生成される。

Typography

文字について大事な内容として、文字を揃えるときはBaselineで揃えること。Line-heightを4の倍数にする。そうすることで全てのテキストオブジェクトを4の倍数に揃えることができる。英語じゃない言語を使うとき注意することがあり、Line-heightを多めに取る必要がある。Titleより小さい文字の時、日本語フォントは英語フォントよりも小さくする必要があるが、プラグインを使うことによって自動的に調整される。

Components

アトミックデザインとは物質を構成する原子、分子、有機体などのメタファーを使ってUIの構成要素を5段階に分解するデザイン方法論。どのオブジェクトを原子、分子に指定することが難しいが、自分の組織が素晴らしいUIシステムを構築するために効果的にコミュニケーションするのに役立つはずです。つまり、アトミックデザインを5段階に分解できなくても、チームが効率的にやりやすい形にする方がいいかもしれない。

Google IO2018からの学び

Google IO2018の会場Wifiパスワードは「Make good things together」でこの中で一番大切なことは「together」。UIデザイナー、デベロッパーなど実際にデザインから実装するまで関わる人間はたくさんいる。みんなのおかげでユーザに優しいプロダクトをリリースすることができる。

Material Theming対応の前に知っておきたい、エンジニア側の対応コスト

株式会社ノハナ 瀬戸優之さんによる「Material Theming対応の前に知っておきたい、エンジニア側の対応コスト」についてです。

Material Componentsとは

Material ComponentsとはMaterial Themingを簡単に実装するための専用ライブラリ。エンジニアはこれを使うと実装コストが下がり、Android、iOS、Web、Flutter向けに提供されている。iOSはそれほどコストが高くないが、アップデート回数が多いこととGithubのIssue数が1000ある点に不安がある。AndroidはAndroid Studio 3.2、compileSdkVersion AndroidP対応とコストが高くまだ対応できている会社は少ない印象。Flutterは一行importするだけで導入できるが、導入している会社は少ない。

Material Componentsはどれくらい実用的に使えるか

ボタンの角を完全に丸くしたり、真四角、切り落としなどができる。しかしまだAndroidでは一部Componentsは提供されていない。それらをカスタム実装する方法もあるがコストが高い。ロードマップが公開されているので、Material Componentsがどのように対応して行くのかわかるのでチェックしてみてください。

すぐに使えるComponents

Bottom App Bar、Buttons、Chipsは使える。ただAndroidだけ角を丸くできない。

ちょっと待ちなComponents

Backdropは7月対応予定。Extended FAB、Tooltipsもまだで、Color Themeは一部のコンポーネントが8月対応予定。だいたいのコンポーネントが8月対応であるが、Material Desing Componetnsに対応していなくても実装できる。しかしそれ相応にエンジニアの実装コストがかかるので本当に使いたいかどうかは、会社で色々考えてやりましょう。

gallery.io

galleryとZeplinを比較をすると、galleryには次の利点があります。

  • 無料で使える
  • Gmailアカウントと連携している
  • Material Designのコンポーネントのガイドラインがワンクリックで見える
  • スマートフォンアプリがあるのでデザインの確認がしやすい
  • Material Theming Editorと親和性が高い

一方ダメなところは、リリースしたばかりなのでまだ機能が整っていない。画像やアイコンのダウンロードが全部の解像度向けにダウンロードできない。ただとにかくフィードバックを送ってほしいと書いてあるので、フィードバックを送っていくことで我々好みのgalleryになっていくかもしれない。

我々の対応

デザイナーの方はエンジニアの方と話し合って、対応できるタイミング、対応すべきタイミングを調べてもらう。Material Designのアップデートに注目して何がどこまでできるのかをエンジニアの方にチェックしてもらって会社のベストのタイミングでガッと対応するとバリューを出せそう。

Material Designの設計思想を探る

株式会社グッドパッチ 丸怜里さんによる「Material Designの設計思想を探る」についてです。

新しいMaterial Designについて考察

Material Designガイドラインの序章で語られるPrinciplesの章で新たに二つのデザイン原則が加わった。デザイン原則は大きく以下の5つに分かれている。

  • メタファー表現
  • 大胆、行き来、意図的
  • モーションは意味を与える
  • 柔軟な基盤
  • クロスプラットフォーム

特に下の2つの「柔軟な基盤」、「クロスプラットフォーム」。iOSに提供されているMaterial Design Componentsの実装集が存在するが、これこそクロスプラットフォームを強く意識されているということがわかる。

Material Designのガイドラインで大きくプロジェクトが3つ掲げられている

体験の統一、視覚言語としてのデザイン、ビジュアルの柔軟性という3つが掲げられており、特にビジュアルの柔軟性が新しく追加された要素。今までのMaterial Designは厳格さがあったが、Material Themingでは柔軟性というキーワードが意識されている。Material Themingはコードレベルでデザインが体系化されており、構造やインターフェースを維持したままビジュアル部分のカスタマイズができる。

UXの5階層モデルに当てはめる

UXの5階層モデルには、表層、骨格、構造、要件、戦略がある。構造以下インターフェースとしては不変的であり、より表層に近いものはMaterial Themingを使って挿げ替えることができる。

FABについて

FABの振る舞いはコンテキストでもっとも主要なアクション。行動につながるアクションを提供するボタンであり、もっとも主要なアクションのため複数ではなく、特にモバイルのような画面が小さいではスクリーン内に一つを利用したほうが良い。またFABそのものが別のオブジェクトとして展開できる。

FABをiOSと比較

iOSは右上にその画面の主要なアクションが配置される。これがMaterial DesignのFABに当たるのかもしれない。見栄え的なところでiOSのバーボタンはFABと違って見え辛くその存在に気づきにくい課題がある。ユーザビリティーテスト段階で右上に主要ボタンを配置してもなかなか気づかれなかった。そのため、FABの一目見てわかる存在はiOSよりもMaterial Designの方が優れていると言えるかもしれない。

Bottom App Barについて

Bottom App BarをFABと一緒に使い合わせることによって、今まで上にあったものが下に降りて来て指に届きやすく使いやすくなった。

Elevationについて

Material Designは高さの概念が明確に定義されていて、影によって高さのサーフェースの高さを表現している。これはそもそもデバイスには奥行きがあって、紙のメタファーと言われるサーフェースが重なっている。

Backdropについて

手前にレイヤーがあって、奥にもうひとつレイヤーがある。これを分解してみると、背景レイヤーと前景レイヤーがあり主従関係になっている。主のレイヤーに対してメインコンテンツを配置して、従のレイヤーは前景レイヤーに対するオプションや検索だとフィルター設定などの使い方ができる。Backdropにおけるフォーカスの遷移過程は2ステップあって、前景レイヤーがデフォルトであって、次に背景レイヤーを操作する。これを踏まえてみると、BackdropとiOSのセミモーダルビューに似ているように見えるが、レイヤーを分解してみるとレイヤーの役割が逆転している。

モーションについて

Material Designに限らず、意味のあるモーションは体系化されていて、The 12 Principles of UX in Motionこれがモーション理論がよくまとまっている。モーションの価値は以下の通りで、Material Designもモーションについて体系化されて詳しく説明されているので先ほどの記事と併せて読むと理解が深まる。

  • 非文字言語での対話
  • 動きによって意味を与える
  • 意味のない動きをなくす
  • 時間軸に沿った状態を表現する
  • 未来を示唆する

最後に

貴重なお話を聞くことができて楽しかったですし、特にFlutterはアリババが一番使い倒しているというのは非常に興味深かったです。僕はエンジニアなので、Material Themingを適切に導入できるように日々アップデート情報をキャッチアップしてさらにデザイナーさんに共有していこうと思いました。ありがとうございました!

Slackの新機能「Actions」で遊んで見る

こんにちは、 凪のお暇を読んで「なんか・・めっちゃMP持ってかれた・・・」という経験をしたのが先月でした。 続きが楽しみでありつつ、願わくば元気な時に出てほしい・・・

PHPとかやってます金城(@o0h_)です。

さて、昨日は突発サク飲みを経て帰宅後、だらだら〜っとインターネットを見ていたのですが。
Slackから「どやどやどや!」なアップデート情報が飛び込んできまして、今日は早速触ってみたよ!という記事を書きます。

Slack Actionsについて。

https://cdn.mamari.jp/authorized/amana_5b05438c-c9ac-4004-bb19-0019ac120005.jpg

続きを読む

Connehito Marché #2 ~webフロントエンド市~ を開催しました!

f:id:dachi023:20180522145017j:plain

こんにちは。エンジニアの安達(@ry0_adachi)です。先週金曜日(2018.05.18)にコネヒトマルシェの第2回を無事開催することができました 🎉せっかくですのでイベントの様子やLTの内容などを本記事でレポート、ご紹介させていただきたいと思います。

connehito.connpass.com

今回のマルシェのテーマ

今回は「webフロントエンド」がテーマです。

ちなみにコネヒトマルシェでは毎回テーマを変えており、前回はAndroidでした。

発表内容

ママリのweb技術の今と未来

3行まとめ

  • ママリではいろんな機能でweb技術を活用している
  • ママリは負債と向き合いながらも前進している
  • 開発効率をあげてユーザーにたくさん還元していきたい

PWA概論

3行まとめ

  • PWAはネイティブアプリの代替手段ではない
  • ユーザーに浸透するまではまだかかりそう
  • PWA対応は機能ごとに1つずつやっていくことが可能

安全にデータを扱うコードの書き方

(資料公開なし)

3行まとめ

  • ES2015よりも前の時代はなんでもアクセスできちゃってた
  • constの登場によって取り扱いが容易になった
  • データはImmutableで扱うことでより安全にデータを扱えるようになる

Don't kill a dragon Rescue the princess (react + golang E2E TDD)

3行まとめ

  • APIが存在するアプリケーションでTDDを実践したい
  • 細かい改修のたびにモックの修正をしたくないのでユニットテストをやめてE2Eテストだけでやってみた
  • Client/API/DBなどのレイヤーで分けるのではなく機能ごとに分担して開発していくことでE2Eをやりやすく

30代から始めるwebフロントエンド入門

3行まとめ

  • 数年ぶりにJavaScript触ったら世界が変わってた
  • 初心にかえり、片手間でやらずに覚悟を持って向き合った
  • 何かを始めるのに年齢は関係ない!

懇親会

f:id:dachi023:20180522195102j:plainf:id:dachi023:20180522195109j:plain

今回は美味しいサンドイッチとお酒を手に乾杯しました。参加者の方々は登壇者の方に質問や感想を伝えていたり終始楽しそうな雰囲気で幕を閉じました!

次回開催は?

7〜8月頃の開催予定です。お題はまだ決まっていません!諸々決まったらconnpassTwitterなどで告知します 🙇

"@connehito/eslint-config" をnpmで公開しました

こんにちは。エンジニアの安達(@ry0_adachi)です。

今回は社内で利用しているESLintの設定ファイルを @connehito/eslint-config という名前でnpmに公開したので、公開しようと思った理由なども含めて書いていきます。

ちなみに、これが初のコネヒトという会社名義でのnpmへの公開となります🎉 www.npmjs.com

公開する前のお話

公開しようと思った理由

npmに上げるまでは各リポジトリに同じような内容の .eslintrc が存在していて、どこかのリポジトリの設定を更新したら「あっちも同じように更新したいな」となり、それをまた別のリポジトリでやって...というような感じでとても面倒でした。そして各リポジトリにあった設定は「同じような内容」であって「全く同じ」わけではなかったのでこれもまた私の作業をより面倒にしていました。

面倒な作業を早く簡単にしたい!設定はどのリポジトリでも一緒でいいのでは!という思いが強くなっていき、それで今回npmに公開して各リポジトリでnpmから落としてくるだけのフローにしました。

公開するまでにやったこと

  • ESLintの設定を見直す
  • npmのOrgを作成する
  • 会社名義でpublishするときのルールを決める

あたりが事前にやった作業です。

ESLintの設定を見直す

各リポジトリで微妙に設定が違ったりしていたのもありましたし、その時はPrettierのようにコードフォーマットをお任せできるようなものが入ってるわけではなく、rulesの中には2年前くらいに考えた大量のオレオレルールの記述がされていて、どれがどういうルールなのかを覚えているのも大変でした。

そんな理由から既存のオレオレルールはなくしたかったので、extendsだけでなるべく完結させることにして、あとはGitHubやエディタ上でいい感じの見え方になるような最低限の設定(1行の最大文字数、セミコロンつけるつけない、クォートの種類)だけにしました。

これでどんなルールを設定したか覚える必要もないですし、ESLint本体やpluginをアップデートすればextendsしているrecommendedな設定が更新されていくので最高です。

github.com

npmのOrgを作成する

https://www.npmjs.com/org/create からOrganizationの作成ができるのでぽちぽちやっていきます。実際作った時には間違えて通常アカウントで作ってしまったのですが、有難いことに通常アカウントをOrgに変換する機能がついていたのでなんとかなりました、よかったです。

会社名義でpublishするときのルールを決める

npmに公開したい〜!な人が現れた時のためにアカウント作成やscopeの統一(パッケージ名に@connehitoとか入ってるところ)、publishする時に気をつけることなどを社内ドキュメントにしました。私だけでなくいろんなメンバーに気軽にチャレンジしてもらいたい、という思いを込めて作成しています。

公開した後のお話

公開したあとは各リポジトリに @connehito/eslint-config をインストールして .eslintrc の内容を修正したのちに、各アプリケーションの実装や環境に合わせてenvやglobalsを上書きしました。

---
extends:
  - "@connehito"

公開後の各リポジトリのメンテナンス

@connehito/eslint-config を更新したら各リポジトリで yarn upgrade して eslint --fix するようになりました。設定いじらずにとりあえずコマンド打てば良い状況になったので、あとはCIで定期的に回すなどして自動化できると良いなぁと考えています。

さいごに

npmで公開した経験があまりないので今更ですがkeywordの設定とか依存関係の書き方とかもっとスマートな書き方があるんじゃないかという気がしてきました。気付いた点などあればissueなどでもらえるとものすごく嬉しいです!日本語でももちろんオッケーです!

たくさんの人に見てもらえる場所でたくさんフィードバックをしてもらえる方が作った側としては有難いし嬉しいので、今後も公開できそうな便利なものがあればどんどん公開していこうと思っています。