TECH PLAY

株式会社LIFULL

株式会社LIFULL の技術ブログ

656

こんにちは。iOS開発Gの塙 is in California です。 本日から開催されたWWDC 2017ですが、みなさんKeynoteはご覧になったでしょうか?まだですよね?はい、では開演までの流れと共にKeynoteの内容をお送りしたいと思います。 7:30AM 同じホテルの参加者は5:00AMから会場に並んでいる中、我々はゆっくり起床して優雅にVTA(Santa Clara Valley Transportation Authority: 路面電車)に揺られながら会場に向かいました。 8:30AM 会場に着くとそこには長蛇の列が…と思いましたがそこまで待つこともなくスムーズに入場口まで行けました。 9:00AM 会場内に入れました。中にも長蛇の列が続いており、なかなか前に進まなくなってきました。きっとみんな無料提供の朝食にガッついていたのだと思います。ちなみに私は出遅れてしまい朝食が品切れになってしまったのでりんごをひとつだけ頂きました。ひもじい。 9:30AM ついに公演の行われるホール内に到着しました。すごい、すごい熱気です。開発者も報道陣も皆鼻息が荒いです。私も先ほど頂いたりんごを食べながら鼻息荒くしてました。 10:00AM ついにKeynoteが始まりました。大きな発表としては以下のようになりましたね。 macOS High Sierra Apple File System(APFS)を採用したことによりファイルの読み書きがかなり早くなりました。 Metal VRに対応したことでVRコンテンツを開発/プレイすることができます。 iOS11 コントロールセンターが1画面になり、操作性が向上しました。 MusicアプリにSNS要素が加わり、友人などのプレイリスト/再生履歴の閲覧が可能になりました。 ARKitでARコンテンツの開発が可能になりました。 Core MLで機械学習モデルを利用した開発が可能になりました。 MusicKitでAppleMusicのおすすめ情報やランキングなどを取得できるようになりました。 ApplePayで個人間の支払い機能が追加されました。 Siriの翻訳機能が追加されました。(日本は未対応) AppStoreのデザインが刷新、新たにToday/Games/Appタブが追加されました。 watchOS4 Siriがメインの時計盤インタフェースが追加されました。 映画トイストーリーに出てくるキャラクターの時計盤インタフェースが追加されました。 Workoutがトレーニングマシンと連携、よりパーソナライズされたデータを扱えるようになりました。 tvOS11 沈黙状態だった、Amazon Prime Videoがついに見られるようになりました。 iMac Pro GraphicにはRadeon Vega graphics、プロセッサは最大18コア、メモリは最大128GB、27inchで5Kとなりとてもハイスペックです。 HomePod Siriを搭載した高性能スピーカー、音楽だけでなく天気やカレンダーの情報などAIとして機能します。 HomeKitと連帯しているためiPhoneでの操作も簡単に行えます。 特に音の良さを公演中は推していて、かなりの時間力説していました。 魅力的なデバイスやAPIが盛りだくさんですね。特にARKitはゲームだけでなくライフスタイルアプリにも親和性が高いので開発者の心を擽ります。ただ、HomePodが蚕のマユにしか見えないです… また、デベロッパーサイトの「What’s New iOS11」を読んでLIFULL HOME'Sだけでなく、様々なアプリに活用できるのではないかなと思った、気になる機能追加をまとめたのでこちらに載せたいと思います。 What’s New iOS11 気になる機能追加まとめ バーコードの生成と読み取りをサポート バーコードの検出や作成をサポートするAPIを追加 iOSでドラッグ&ドロップをサポート PCのカーソルで行うようなアイテムのドラッグ&ドロップ移動が可能になった 異なるアプリ間のドラッグ&ドロップも可能(iPadのみ) ドキュメントブラウザ クラウドまたはローカルに保存されたドキュメントファイルを表示できる 画像認識 顔、バーコード、テキスト、画像の水平線や長方形の領域を検出できる 機械学習用のフレームワークを使用して任意の学習モデルを使用できる ビデオ内のオブジェクトを認識して追尾できる SiriKit QRコードを使用して支払いや連絡先の交換が可能になった メモの追加、予定やリマインダーの追加が可能になった 乗車キャンセルとフィードバック機能が追加された アカウント検索と送金機能が追加された ライブメッセージ 動的なメッセージ表示できる機能が追加された High Efficiency Video Coding(HEVC)対応 とっても綺麗な動画エンコーディング High Efficiency Image Format(HEIF) とっても綺麗な画像エンコーディング Live Photoの編集 Live Photoにループやバウンスなどのエフェクトが追加された Live Photoなどの特定の種類のメディアライブラリを提示できるようになった Core Bluetooth frameworkの改良 L2CAPチャンネルをサポート Bluetoothのリセットと再起動時にセッションの復元ができるようになった Core NFC NFCタグを検出/読み込みが行える 少し技術的なことも追記したものをQiitaにアップロードしたので合わせてこちらもよろしくお願いいたします。では二日目も元気に頑張りたいと思います。アディオス。 qiita.com
こんにちは。iOS版LIFULL HOME'Sアプリ開発を担当している高橋です。 今年の3月にtvOS版LIFULL HOME'Sアプリをリリースすることができました。 そこで得たノウハウを他の開発者の方々に共有したく、「Developer’s Living - tvOSアプリ開発 -」を開催しました! 今回はその内容についてレポートしたいと思います。 発表 AppleTV Best2016にノミネートされたけどそれほどビジネスインパクトない件 speakerdeck.com jumbOS5 さんの発表です。 Apple TVアプリ「LandSkip」を開発された際に感じたApple TVビジネスの難しさと、 開発する場合に意識すべきことを発表していただきました。 Apple TVアプリビジネスの難しさ LandSkipは2016年のベストアプリにノミネートされたものの、あまりビジネスメリットがなかったそうです。 ブラウザのないApple TVはWebとの連携が弱く、アプリからWebへの流入やWeb広告でのユーザ獲得といったことができません。 そのため当初期待したプロモーション効果等はあまりなかったそうです。 それでもApple TVに挑戦する場合に意識すべきこと、 やるかやらないかを判断する条件について解説いただいています。 HomeKit on tvOS speakerdeck.com @alligator_tama さんの発表です。tvOSでHomeKitを使ってできることや、 アプリを開発して苦戦したことについてご紹介いただきました。 Origamiアプリ 最初はtvOS版 Origamiアプリのご紹介でした。 TVMLで実装されているとのことで、Live Updateでリリースの手間を削減されているとのことです。 tvOSのHomeKitアプリを作る tvOSアプリでもHomeKitを使って宅内のアクセサリを発見して操作できるそうです。 ただしiOSと違いホームの編集等はできないそうです。 今回デモ用のtvOSアプリを開発した際にハマった点についても共有いただきました。 フォーカスの制御のために使ったプロパティやプロトコル、デバッグツールについて紹介していただきました。 L知っているか tvOSアプリは iOSアプリと全く異なることを L知っているか tvOSアプリは iOSアプリと全く異なることを from Takuro Hanawa www.slideshare.net 弊社の 塙 拓朗 の発表です。 tvOS版LIFULL HOME'S開発で得たいろんなノウハウ フォーカス 画面デザイン カスタムトランジション 画像のプリフェッチ エッジスワイプ など様々な内容を紹介させてさせていただきました。 特に後半のRemoteのエッジスワイプの実装方法については、 Gesture RecognizerだとRemoteにおけるタップ位置の絶対座標が取得できないため、 代わりにGameControllerを用いるという意外な手法となっています。 tvOS版LIFULL HOME'Sでは、このエッジスワイプを用いることで、 Mapと同じ操作感で画像を拡大表示する機能を実現しました。 tvOS開発前に確認すべきこと tvOS開発前に確認すべきこと from 庸介 高橋 www.slideshare.net 私( @yousan )も発表させていただきました。 今回リリースに向けて開発することになり、直面した2つの問題についての共有でした。 SDK問題とUniversal Purchase問題 iOS開発の際AWS、Google、Firebaseなどが公開しているSDKを使うことは多いと思いますが、 その多くがtvOSをサポートしていません。今回LIFULL HOME'Sでは自分でWeb APIを叩くよう実装しました。 Universal Purchaseでアプリを配信するとiOSデバイスとApple TVにアプリが同時にインストールされます。 これによりアプリに対するユーザの認知は向上しますが、tvOS版だけ配信停止することができなくなります。 今後のアプリの展開やリソース状況によってはUniversal Purchaseにしない選択も検討すべきです。 まとめと告知 tvOSアプリをリリースした人は少ないと思いますが、その分大変新鮮な勉強会になった気がします。 単純なアプリの実装方法だけではなくビジネスやHomeKitに関する発表があり、 いろんな角度から今のtvOSの状況を知ることができたと思います。 ビジネスとして展開するには現段階では難しいかもしれませんが、 WWDCではApple TVも進化して市場が活性化することを期待したいです! ちなみに弊社ではWWDC報告会を開催予定ですので奮ってご参加ください! lifull.connpass.com
こんにちは。LIFULLの池田です。 とうとう明日からAppleのWWDCがSan Joseで開催されます! 今回は、日本出国から現地でのWWDCチェックインまでです。 (前回の準備編は こちら 。 ) 成田空港〜サンフランシスコ国際空港(SFO) WWDC会場のSan Jose McEnery Convention Centerの最寄りの空港はノーマンY.ミネータサンノゼ空港ですが、今回は予約の際に安く航空券が手に入ったサンフランシスコ国際空港(SFO)を選びました。 成田空港で航空会社のチェックイン、出国審査を行いいざ飛行機へ。 今回はユナイテッド航空でサンフランシスコに向かいました。 9時間半のフライトの末、サンフランシスコ国際空港に到着。 サンフランシスコ国際空港ではイミグレーションに長蛇の列。。 普通にいくと1, 2時間はかかりそうな列。 その列に並びながら横を見ると「Returning ESTA」の看板が! ESTAをとって2度目以降のアメリカ入国だとイミグレーションの手続きが違うらしく、私たちは運良く2度目以降の入国だったため、そちらの方へ。 少しの列はありましたが、15〜20分くらいで手続きを終え先に進むことができました。 そんなこんなで入国完了! 時差ボケと戦いながらアメリカでの活動スタートです! WWDCのチェックイン WWDCのチェックインは開催前日のAM9:00から。 会場はSan Jose McEnery Convention Centerです。 会場の近くにはVTAのLight Railの駅(San Jose Convention Center Transfer Station)があり、$2で距離に関わらず1回の片道乗車ができます。 今回はこのLight Railを利用して会場に向かいました。 下の写真は路線図。 駅から降りるとすぐそこにはもう会場が! 建物全体にWWDCの装飾が施されています! だんだん実感が湧いてきました! 混んでいるというほど人はいないですが、それなりの人がいて賑わっています。 会場前の広場では参加者に対して食事と飲み物が無料で提供されています。 右奥のチェックインカウンターでWWDCのチェックインをします。 チェックインではWalletアプリに登録済みのWWDCパス内のバーコードを読み取ってもらいます。 この読み取りが完了するとパス、リストバンド、記念品のジャケット、ピンがもらえます。 これでチェックイン完了です! とうとう明日はWWDC初日! Keynoteで何が発表されるのか楽しみです!
こんにちは。iOS開発グループの塙です。 来週の6/5-9にCA, San JoseでWWDC 2017が開催されます。 WWDCとはAppleが毎年開催している開発者向けイベントで、 Appleの新しいデバイスやOSなどの発表が行われます。 developer.apple.com 今回はWWDCに参加するまでにはどんなことをすればいいかを書きたいと思います。 抽選に応募する 応募資格としてはApple Developer Programが必要です。 個人だと年間1万円くらいかかりますが、月額にすればたいしたことないので macOS,iOS,watchOS,tvOSの開発を考えている方は登録しましょう。 上記を満たしていれば1-2月辺りに突如Appleからメールが来ます。 このメールと共に募集が開始するのですぐに登録しましょう。 ただし当選した場合、自動でクレジット決済されてしまうのでお財布と相談してください。 入場チケットの料金は20万円弱くらいです。高い… 抽選に当選したら このようなメールが届くので、近所迷惑にならない程度に喜びましょう。 外れてしまった場合は、近所迷惑にならない程度に泣きましょう。 航空券とホテルを確保する まずやらなくてはいけないのが航空券とホテルの確保です。 この当選発表と共にWWDC会場近辺に到着する航空券、会場近辺のホテルの予約が殺到します。 (真のApple信者の方々は抽選結果がわからない内から予約をしています) 今回はAppleから当選者に向けた良さげなホテルの提供があったのですが、如何せん高い。 お金持ちでない限りはExpediaなどでそれなりの航空券とホテルを探しましょう。 日本人コミュニティに入る 次に必要なのは日本人の知り合いです。特に1人で初めて参加される方は必須です。 やはり土地勘のない場所で単独行動するのは心細いものです。 そんな時は国内で参加者同士のミートアップが行われるのでたくさん参加して仲良くなっておきましょう。 私は今年Timersさんのミートアップで去年自腹で行った時の内容を発表させていただきました。 詳しい方から有益な情報を聞き出せたりするのでおすすめです。 画像提供: Timers inc. さんありがとうございます。 お外に出たくない。もっと知り合い作りたい。という方向けにFacebookやSlackのコミュニティがあります。 毎年抽選結果がわかるころには作成されているので"WWDC"で検索して参加リクエストを送りましょう。 現地でのイベント情報の共有や、ご飯のお誘いなどに利用されています。 パスポートの期限を確認する アメリカの入国にはパスポートの期限が3ヶ月残っていることが望ましいので、 ギリギリの方は更新しましょう。まだ持ってない方は早く取りましょう。意外と面倒です。 ESTAを取得する ビザを取得せずに入国する外国人に対してESTAの事前申請が義務化されています。 取得自体はすぐできるので搭乗手続きまでには絶対に行なってください。絶対です。 (去年取り忘れていて倍以上の値段で航空券を再度購入した) 保険とWifiの準備 あとは任意になるのですが、保険とWifiはあった方がいいです。というか必須です。 保険: San Franciscoの時はかなり治安の悪い場所で開催されていたので必須でした。海外行く時は大体入りますよね。 Wifi: 去年は自腹でお金がなかったので借りなかったのですが、公共Wifiがない場所で迷子になります。 周辺イベントに参加申し込みする WWDCに参加する準備は大体整い、余裕が出て来た頃に周辺で行われるイベントを探してみましょう。 以下のアプリを使用するとたくさんの企業が開催するイベントが見れます。 Parties : Appleが提供していて、主に企業が開催する周辺イベントを管理できます。 Eventbrite : 現地に住む日本人エンジニアのミートアップなど小さなイベントも見つけられます。 AltConf : 毎年WWDCのセッションと同じ時間帯に行われている大きなイベントのスケジュールが見られます。 WWDC公式アプリをインストールしておく 現地で発表が始まるとスケジュールが公開されます。 通知が来たり、セッションの動画がストリーミングできたりする優れものなのでとりあえず入れておきましょう。 https://itunes.apple.com/jp/app/wwdc/id640199958 Uber/Lyftアプリをアクティベートしておく 向こうの電車は味があって好きですが、本数も少なく時間も曖昧なのでUber/Lyftを使いましょう。 ただしアプリのアクティベートには電話番号が必要なので、現地でアクティベートが困難になる場合があります。 なので国内にいる内にクレジット登録とアクティベートを済ましておきましょう。 Uber : 日本ではまだドライバーが少ないですが、アメリカはわんさかいます。 Lyft : 知らない人と相乗りができるUberです。私は楽しいのでこっちをメインで使ってました。 身体を大事にする 私は健康管理が下手くそなのでこれが一番大事だと思っています。最近は野菜ばかり食べてます。野菜はいいぞ。 あとは参加するだけです。では現地で会いましょう、アディオス。 宣伝をする 弊社でWWDCの報告会を開催予定ですので奮ってご参加ください。 lifull.connpass.com
こんにちは!クリエイターの日運営委員会のタカラベです! 今回は、第4回創民祭について共有させていただきます! 創民祭とは? 創民祭(そうみんさい)は、業務、クリエイターの日、プライベート、LIFULL社員が作ったプロダクトをお披露目する社内展示会です。 地道に作っていたプロダクトを実際に触ってもらう すごいって褒めてもらえる! 楽しんでくれる! など、ものづくりを頑張るクリエイターが鼓舞される、半年に一回の楽しいお祭りです。 過去記事はこちら! 社内クラウドファウンディング・W3C Push API・ぬいぐるみハック・マウスになる椅子など最新技術や新しいアイデアてんこ盛りの社内プロダクト展示会を開催しました! - LIFULL Creators Blog おそ松さんディープラーニング・VRアクションゲーム・tvOSなど最新技術てんこ盛りの社内プロダクト展示会を開催しました! - LIFULL Creators Blog 第1回創民祭を開催しました - LIFULL Creators Blog 半蔵門に来て初めての創民祭! 第4回目となる今回は、2017年4月から半蔵門に社屋移転してはじめての会でした。 壁・床材の木目や、壁に直接投影されたスライドなど、綺麗でテンションがあがります!! 今回からライトニングトークも開催しました! 展示ブースではプロダクト自体の説明が主ですが、 ライトニングトークでは開発中の成功・失敗体験を共有する人が多く見られました。 当日の飛び込み参加もあり、ワイワイしていましたよ! 全部で10個!展示プロダクト ①NEXT STAFF MAKER 前回の創民祭から出展してくださっていたこちらのプロダクト! 髪型や洋服を着せ替えできて、自分そっくりの可愛いアイコンを作成することができます。 弊社は社内での連絡手段としてChatWorkを使用しているのですが、意外とデフォルトアイコンの人が多く… その方の個性が見える&他の人と区別しやすくしたい、との想いで、作成されたそうです! ②Edmaps オリジナルの観光地プランを作成できるサービス! エンジニア3名で作成とのことですが、話題のAdobeソフト「Adobe Xd」を用いて自らデザインを行っていました。 しかも綺麗で使いやすそう!今回は開発環境だけだったので、是非手にとって操作してみたいプロダクトです! ③LIFULL CAMERA iPhoneやAndroidで簡単にL字フォーカス付きの写真が撮影できるアプリを展示してくださいました! 【?】L字フォーカスとは 2017年4月から弊社・LIFULLのロゴが新しくなり、「L」で四角をかたちどるものに刷新されました! この四角、「世の中の不」「叶えたい未来」などにフォーカスを当てる「L字フォーカス」と私たちは呼んでいます。 ④社員限定ランチマッチングサービス「LunchMatch」 前回も出展してくれた「LunchMatch(ランチマッチ)」は、社内で面識のない人とランチできるマッチングサービス。 新卒1年目のエンジニア3人で開発を進め、社内限定でローンチ→現在まで運用を続けております! 作って終わりではなく実際使ってもらい続けるために、運用まで頑張っている姿がとても印象的なこのサービス。 特に、中途入社でまだ知り合いが少ない方や今年度の新卒に利用されているそうですよ! ⑤VR「蚊」+ ライブコーディング 「誰しもが一度は蚊になりたいと思ったことがあるハズ。そんな夢を、実現しました。」 コンセプトから魅力的なこちらは、VRで蚊になった気分を体験できるプロダクトです! 観客もたくさん!みなさん笑顔と驚きの表情で体験していて、盛り上がっていました! ⑥IoTでトイレ個室の空き状況を見られるようにするシステム 実は、まだ品川で働いていた頃に話題になっていた問題です。 トイレに行っても行列、なかなか出てこない…あのモヤモヤをIoTで解決しようという試みがこのプロダクトです! こちらは開発者2人で、プロダクトも2つ。2つの方法でトイレ個室内に人がいるか検知しています! 1)赤外線センサーによる人感検知によって、トイレ個室内に人がいるか検知しています。 赤外線センサーは以下の機器を使用しているそうですよ! Raspberry Pi 3 と DSUN-PIR を使って人感センサーを作る + 人感センサー検知状況を表示する簡易Webアプリケーションを作る - Qiita 2)トイレのドアにリードスイッチを付けて、ドアの開閉を検知する事で、トイレ個室内に人がいるか検知しています。 ⑦LIFULLのクリエイター紹介サイト LIFULLのクリエイター紹介サイト「LIFULL CREATORS FILE」は、LIFULLのものづくりスタッフの紹介サイトです。 プロフィールやクリエイターズブログを通し、 メンバー自身がものづくり活動を発信することができます。 ここではLIFULLの個性あふれるスタッフたちが思い思いの自己紹介をしていきます。 彼らが普段どんなことをしているのか、気になる所ですね! ⑧社員スキル検索 バックグラウンドや携わっているサービスも多岐に渡るので、得意な開発言語、技術、知識もさまざまです。 「新しい開発言語触ることになったけど、ノウハウ誰か伝授してくれないかな…」 そんなときに探すことのできるのが「社員スキル検索」です! 面白いのが、他の人の「得意なスキル」も追加することができること。 得意なスキルといわれると自分では謙遜しがちですが、これなら十分に可視化できそうですね! ⑨班分けAI 当時新卒一年目のエンジニアが開発! LIFULLの社員旅行のために開発した、アクティビティの班分けを行うAIになります。 これまで、各社員が参加するアクティビティは人力で割り振っていましたが、 「班分けAI」は、社員のアクティビティ参加希望を入力すると、”自動的に”希望をできるだけ叶えるグルーピングをしてくれるのです! 詳しい実装内容に興味がある方は、こちらの記事をご覧ください! 班分けAI - LIFULL Creators Blog ⑩不動産ポータルサイトのポータルサイト こちらは2年目エンジニア研修プログラムSETで開発されたサービスです! サービス内容は不動産ポータルサイトのポータルサイト、ということでややこしいですが、 世の中にたくさんある不動産ポータルサイトの情報を一覧できるサービスのようです! 企画からデザイン、実装まですべて2年目のエンジニア2人で行った意欲作です! 栄えある受賞プロダクトは?! ★優秀賞「IoTでトイレ個室の空き状況を見られるようにするシステム」 来場者の投票数が最も多いプロダクトに贈られる賞! 切実な課題に対する解決策をプロダクトとして実現しており、ぜひ導入して欲しいとの声が多く聞かれました! 社内で試験運用することも計画されているようで、実現まであと少し!楽しみです。 ★山田賞「NEXT STAFF MAKER」 技術職出身・役員の山田が選ぶ賞! 無印アイコンをなくしたいというプロダクトの目的もさながら、新卒4人制作職のみで作りきった点が評価されました! 今回の創民祭後、社内公開されてからは、「NEXT STAFF MAKER」のアイコンの社員が増えて、普及率も高いです! ★Tech賞「班分けAI」 クリエイターの日運営委員会によって、技術的にスゴイ!と思うプロダクトに贈られるTech賞! 彼の強みを活かして社内の身近な課題解決に取り組むマインドと、その実現力の高さがポイントでした! 最後に! 創民祭も4回目、新社屋でも無事開催できました。 社内のみの限定開催ではありますが、出展してくれるプロダクトの数はもちろん、来場者も増えてきています!! LIFULLは、創民祭以外にも、クリエイターの日・クリエイティブアワード・トキワ創など、 ものづくりを推進・賞賛する制度が多くあります。 「LIFULL HUB」というコワーキングスペースもありますので、 是非一度遊びにきてください! hub.lifull.com 以上、第4回創民祭についての報告レポートでしたヽ(・ω・)/
こんにちは。初めまして。 LIFULL HOME’SアプリのiOSエンジニアをしています、やまもとです。 いよいよ来週! WWDC2017! 一体どんなサプライズが待っているのでしょうか。たのしみです。 弊社からは、池田と塙の2名のiOSエンジニアたちが参加いたします。 ( わたしは留守番。 ) (左:池田、右:塙) サンノゼで見かけた際には、ぜひお声がけくださいませ。 さて、今年はiPhone発売10周年。 ことiPhone8に関しましては、いろいろな噂で賑わっていますね。 5.8inch? 有機ELディスプレイ? ワイヤレス充電? ガラス製のボディ? などなど・・・ また、もちろんiOS11も要チェックですね。気になる噂をたくさん耳にします。 コンセプトデザインの刷新? AR? Siri強化? ダークモード? そのほかのApple製品の情報からも目が離せません! AIチップの搭載? Siri搭載スピーカー? Apple Watch Series 3? 新iPad Pro? などなど・・・アツイ!こんなにアツイ情報をジブンだけのPCの中に留めておくのはもったいない!では共有しませんか!と始まったWWDC共有会ですが、 今年も弊社、LIFULLで開催いたします! lifull.connpass.com 弊社のWWDC共有会は今年で3回目! 去年の共有会の様子です。 たくさんの方にご来場いただき、スピーカーの皆様のアツイWWDCトークで会場は盛り上がりました! WWDCの際に現地でゲットしたお土産のプレゼント抽選会もありました。 今年も、もちろん豪華プレゼントをご用意しております! アツイ!羨ましい!わたしも欲しい! 現地に参加される方も、おウチでまったりKeynoteをストリーミングで観る方も、わたしと同じお留守番な方も!お気軽にお越しくださいませ。 アツイ情報はアツイうちに共有しましょう! 以下、イベント情報になります。 イベント情報 日時 2017/06/30(金)19:00 〜 22:00 場所 株式会社LIFULL 東京都千代田区麹町1丁目4-4 半蔵門線 半蔵門駅 3a出口より徒歩2分 有楽町線 麹町駅 3出口より徒歩6分 参加費 無料 です! 内容 弊社のWWDC参加エンジニア2名によるアツイWWDCトーク スピーカー枠でお申込みいただいた方のアツイLT 現地で調達したお土産のプレゼント抽選会 お酒と軽食をお供にみなさんと技術交流 定員 スピーカー枠: 5名 (10分前後の発表内容のご準備をお願いいたします) オーディエンス枠: 70名 注意事項 Apple Developerアカウントを持っている方に限定させていただきます Appleとの契約上守秘義務の課せられている情報等については、個人の責任において管理をお願いいたします なお上記に伴いまして、入場時に誓約書への記載をお願いいたします 詳細&参加お申込み lifull.connpass.com 皆様のご参加を心よりお待ちしております!
こんにちは。Android開発グループの衛藤です。 前回の記事 では、DAY TWOをお送りしました。 本日Google I/O 2017最終日! 最後まで楽しんできます! なお、「今日は非常に暑いので、いくつかのセッション場所を変えるよ!」というアナウンスが来ていました。 確かに暑い・・・でも湿気が少なくカラッとしていて気持ちが良い暑さですね。 コーラとスプライトが進みます。 Rewarding for engagement with Firebase www.youtube.com Firebaseを利用して、いかにユーザーを獲得し定着させるかについてのセッションです。 ここでは、ゲームを例として新しいユーザーを獲得し、かつ報酬を与える仕組みについて解説されました。 使用したFirebaseの機能は、 Dynamic Links RemoteConfig RealtimeDatabase Cloud Functions Authentication Notification 細かく解説されていたのが、Dynamic Linksの短縮についてです。 Dynamic Linksを使用すると、プラットフォームを問わず同じリンクを定義出来るため、友人の招待などに有効な手段ですが、 そのままだと非常にリンクが長くなってしまいます。 そこで、Cloud Functionsを使用し、元々のDynamic Linksから短いURLを生成→Databaseに保存する という処理を行っていました。 このように、見た目も非常にスッキリし受け取った側も驚かずにすみそうですね。 招待した後は、RealtimeDatabaseを使用し報酬を受け取れる通知、受け取ったかどうかの管理をDatabaseで行うというものです。 このI/O通して言えることですが、ほとんど自前のサーバは立てずに全てGCPを使って様々なサービスが作れそうです。 Machine Learning API www.youtube.com GCPのMachine Learning系のAPIの使い方を紹介しています。 たくさんのAPIが使用可能であり、紹介されたのは以下5つでした。 Vision API Vision APIは画像処理系のAPIです。3:45あたりから。 Web Annotationと言うものがあり、画像が何かというものに加え、webから情報を取ってきてリンクも取得できるようです。 サンプルではWikipediaの説明リンクが含まれていました。 かなり便利です。 Speech API 音声系のAPIです。12:58あたりから。 音声からテキストを生成するAPIのようです。 デモを見る限りだと、まだ正確ではないのでしょうか? しかしながらこれまでの発展から考えると飛躍的に向上すると期待しています。 Natural Language API 自然言語処理系のAPIです。16:50あたりから。 この中で特に気になったのが、センテンスからscoreが出るというものです。 例えば、25:30からのデモでありますが、 「I really liked the sushi but the service was terrible」(寿司は良かったが、サービスがひどかった) これを解析すると、sushiは0.8スコアに対し、サービスは-0.9スコア という結果が出ています。 人々の評価から対象物の定量的な評価を出すことができそうです。 Translation API 翻訳APIです。26:55あたりから。 第1世代からかなり精度が上がったらしいです。 対外国人向けのサービス等に取り入れられる実践レベルになっているのではないでしょうか。 Video Intelligence API 動画系のAPIです。30:44あたりから。 動画の中で、どの物体(犬とか)が何秒目に出てくるかを判定することが出来ています。 デモの中の、「baseball」や「Android」で検索した場合の挙動が非常にわかりやすくて便利です。 何か新しいサービスが作れそうですね。 なお、これらはほぼ全て、間にCloud Functionsが入っており、そこからMachine Learning API→Cloud Databaseにレスポンス保存、という仕組みになっていました。 Introduction to Kotlin www.youtube.com Keynoteでも正式にKotlinサポートすると発表されていましたが、Kotlin入門のための、Jet Brains社によるライブコーディングによる解説です。 おそらく、YouTubeのコーディングを見たほうが早いと思いますが、楽しそうな言語ですね。 No Getter No SetterやNull Safety、Extension Propertyなど、Javaと違い柔軟な印象を持ちました。 14:00前後の話が面白かったです。 Kotlinについては、自分で実際に書いてみたほうが良いと思うので今後試してみようと思っています。 今後さらに広まっていくかと思われるため、早めに習得しておくのが良いかもしれません。 Notifications UX: What’s New for Android O www.youtube.com Android Oで、通知周りがガラッと変わります。 Googleのチームにて、通知についてユーザーに聞き込みを行いながら調査を進めてきたとのことです。 具体的には、 ほとんど通知は重要ではない 通知を設定できるのは分かっているけど、どこか分からない 通知は必要だが、全部ではない 実際のユーザーの声としては 「通知が来すぎるのでアプリを削除した」 など、生々しい調査の結果となっていました。 しかしながら、 人からの通知(メッセージなど)は非常に重要 というユーザーの声もあり、セッションでは”People are the VIP notifications”と表現されています。 また、リマインダーとして送られる通知は便利だが、「タイミングが違う、だから忘れてしまう」という声もあるようです。 このような結果から、Android Oでは通知が以下のように変わります。 通知チャネルの設定(アプリごと) 実装時に通知のチャネルを指定する必要があります。 そのチャネルに従って、ユーザーが実際に通知を受け取るものと受け取らないものを判定出来るようになるようです。 設定は、アプリ独自のものもこれまで通り使えますが、新しい機能として 「アイコンを長押しすると設定できる」 というものが追加になりました。 優先度 優先については以前からありましたが、今回から長押し後の通知設定画面にて、優先順位を変更することが出来るようになっています。 動画の12:00前後からですが、わざわざ設定に行き、通知の項目を探し・・・という作業ではなく、長押しで出てくるダイアログでオフにすることが出来るようになりました。 また、そこから詳細に飛ぶことも出来、チャネル別にオンとオフを設定することも出来るようです。 かなり便利になりましたね。 通知UI・UX UIが4つで以下4つの区分けで変わるようになります。 詳しくは20:16あたりをご覧ください。 Major Ongoing 音楽など、現在進行しているもの People to People メッセージなど、人から人へ届けられるもの General 一般的なもの By the way そこまで重要じゃないもの 以前までの通知と比べて、かなり見た目でわかりやすくなっているのが分かります。 また、28:00くらいにありますが、上から引き出すときのアイコンアニメーションがリッチになっています。 話している方もすごく気に入っているようです。 スヌーズ機能 少し前に記載したとおり、「通知来ても忘れる」という問題が残っています。 今回の変更により、通知をスワイプすることでスヌーズの設定ができるようになりました。 これもなかなか使えそうです。 通知周りは毎年様々な変更があるほど重要な機能ですが、 今回の変更はかなりユーザーにとっても、アプリ提供側にとっても良いものとなりそうですね。 Applying Built-in Hacks of Conversation to Your Voice UI www.youtube.com 音声UIに関しての概念的な話しでした。 “Cooperative Principles”(日本語で調べると協調原理というものらしいです) はじめにHuman to Humanの話があり、その後にVUIでの使われ方の説明がありました。 人間対人間であれば、多く話しすぎなくても大体は伝わる(Maxim of quantity)が、VUIになるとそのあたりが難しそうです。 Google Assistantなど、音声によるUIが増えてきており、人間とのやりとりとなると設計を入念に行わないと、 使いづらいものが出来ていしまいそうなので注意したいと感じています。 新しく出たばかりの技術ですが、これから数年後には洗練されたアプリが増えているのでしょうか。 楽しみです。 Firebase recipes to bootstrap your app www.youtube.com Firebaseを使ったアプリ開発の手法についてです。 こちらもDemoアプリを使用しての説明が途中からありますが、このアプリではFirebaseの以下のサービスを組み合わせています。 Realtime Database Auth Cloud Messaging Cloud Functions また出ましたね、Cloud Functions。このI/Oのセッションで見たサンプルアプリでほぼ使われているのではないでしょうか。 非常に強力なサービスだと感じています。 サンプルアプリを通じて、以下のようなレシピの説明がされました。 Link Existing Users into Firebase Avoid Duplication Business Logic Send Push Notification without a sever Improve purchase conversions 既存のユーザーをFirebaseと連携させる Realtime Databaseでは、セキュリティの話が出ました。4:52あたりです。 セキュアなアクセスを実現する方法、それがFirebase Authと組み合わせるということです。 Realtime DatabaseのRulesにson形式でアクセス制限を記載することが出来ますが、そのときにAuthで認証されたユーザーしかアクセスできない、などの設定を行うことが出来ます。 重複ビジネスロジックを避ける iOS / Android それぞれからRealtime Databaseへの更新は出来ますが、ほぼ同じコードを書きます。重複させる必要があるでしょうか? Cloud Functionsにビジネスロジックを記載してしまい、Cloud FunctionsからRealtime Databaseへ更新をかければ一回でシンプルに実装出来ます。 サーバー構築せずに通知を送る FCMで通知を送るのですが、Cloud Functionsを使えば自前のサーバーはいりません。 Realtime Databaseに更新がある場合に、Cloud FunctionsからFCMの通知実装を行うことで全てが完結します。 Realtime Databaseとも連携されているため、どのユーザに送るかの判断も簡単にできそうです。 コンバージョンの向上 ここでは、Analyticsを使用してコンバージョンの計測や、Realtime Databaseとの連携の説明がされました。 AnalyticsもCloud Functionsを使用しメトリクスを送信するような実装を行っています。 ここで述べられた技術を使用することで、サーバーの構築をせずに1つのサービスを作ることが出来るようになっています。 Cloud Functionsの出現によりFirebaseの組み合わせの自由がさらに増えたと感じています。 Google I/O 2017終了 以上で、3日間開催されたGoogle I/O 2017がすべて完了致しました。 はじめは不安な部分もありましたが、全体的に非常に楽しく過ごすことが出来ました。 今回発表された技術は、どれも気になるものばかりです。 日本に戻ったら、早速いろいろ試してみようと思います! より技術的な内容は、 Qiita にも記載しようと思いますので是非そちらもご覧ください! 社外向け報告会 最初のエントリー でも記載致しましたが、 2017/05/26(金)に報告会を株式会社LIFULL 半蔵門オフィスで行います。 connpassにて募集しておりますので、奮ってご参加くださいませ! https://lifull.connpass.com/event/56800/ 最後に 現地からのブログ投稿は終わりです。 最後まで読んでいただきありがとうございます。 Google I/O 楽しかった!また来年も行くことが出来ますように★ おわり
こんにちは。Android開発グループの衛藤です。 前回の記事 では、DAY ONEをお送りしました。 Google I/Oも2日目となり、雰囲気にも大分慣れてきました。 今日も快晴!日向は焦げそう、日陰は凍えそうな一日でした! さて、本日参加したセッションをまとめます。 Building apps for the Google Assistant Google Assistantを使用してアプリを作るためのセッションです。 Google I/Oデモ用のアプリが準備されており、写真のように対話形式でセッション情報の取得や座席の予約を行うアプリでした。 The alternative to good design is bad design, not no design at all. 「良いデザインの反対は悪いデザイン、デザインがないことではない」 音声なのでデザインがない、ということでしょうか。 Demoの内容 Assistant Appを開発するために、以下のような項目を準備します。 Might say things like…(言いそうなこと) I found / so you can keep up to date on / … more Would never say…(言わないこと) I did not receive a response / that was an invalid / … more Instead of…(以下の代わりに) Likely to say…(こう言いそう) allows -> lets / require -> need / unable to -> can’t /… more あとは、 Actions on GoogleのコンソールでProject作成 API.aiで自然言語を取り扱うようにする Webhook連携(デモではNode.js) シミュレータでテスト モバイルデバイスにTransaction APIを実装 実際は以下の写真のように、話すセンテンスでTriggerやApp Name、Actionを指示しているようです。 API.aiでは、API呼び出し用のfunction名のようなものを定義し、そこにユーザー入力用のセンテンスを羅列していきます。 そして、Node.js等のコードからそのfunctionを呼び出すような仕組みになっていました。 コンソールが使いやすそうなので比較的わかりやすく進められそうですね。 楽しそうなので、Assistantは是非帰ってから試してみたいと思います。 アプリについて、Assistant Directoryというサービスで対応されたアプリを探すことが出来るそうです。(Playストアのイメージでしょうか・・・) Best Practices to slim down your app size アプリのサイズは実際には次のような影響があるとのこと。 Downloadサイズが100MBを超えると20%のユーザーがキャンセルする 100MBを超えるアプリは8倍アンインストールされる やはりアプリのサイズは小さい方がよさそうですね。 どのようにしてAPKのサイズを小さくするかのTIPSが紹介されました。 APK Analyserを使い、ボトルネックを知る AndroidStudioにあるAPK Analyserでapkを解析することで、容量を占めている部分がどこなのかを知ることが出来ます。 デモの例では、resディレクトリが60%を占めていることが分かる、というものでした。 Proguardをかける Proguardをかけることで、意味のないクラス名やメソッド名にリネームされる他、使用されていないメソッドは自動的に消去されます。 これだけでもかなりの削減につながります。 What’s new in Android Support Library support libraryの25.3.0 ~ 26.0.0 beta-1の最新情報。 ピックアップしてお伝えします。 最小サポートレベルが14に gingerbreadとhoneycombがドロップされました。 シェアもかなり少なくなっているようです。 Google Maven Repository サポートライブラリがGoogle Maven Repositoryからのダウンロードになりました。 今後は以下のように指定するようになります。 repositories { maven { url: “https://maven.google.com” } } Downloadable Fonts APKバンドルから、ダウンロード出来るようになりました。 Cachingもされるようで、一度ダウンロードするとユニバーサルにキャッシュされるので、効率がよくなります。 res/font フォルダーにフォントの属性を書きます。 関連で、EmojiSupportLibraryにより絵文字を表示することが出来るようにもなりました。 AutoSizing TextView サイズに併せて自動でテキストのサイズが変わるものです。 結構使えるかも!? Dynamic Animation Physics Based Animationで、バネの動きなどを簡単に実装することが出来ます。 AnimatedVectorDrawableCompat VectorDrawableから別のVectorDrawbaleに、アニメーションしながら変形することが可能です。 Wear WearableRecyclerViewにより、丸型時計の場合は縁のカーブに沿ってリストを動かすことが出来るようになります。 What’s possible with Cloud Functions for Firebase 新しく出た、Cloud Functionsの使い道についてです。 Google Assistantと組み合わせて自前APIの部分をCloud Functionsで実現出来ます。 これで全てGoogleのManagedなサービスで完結することが出来るようになります。 他には、Githubと組み合わせて自動リリースフローに関する話も出ていました。 Introduction to Android Instant Apps Google I/O 2016で発表されてから、未だに謎が多かった Instant Apps ですが、AndroidStudio3.0 / grade 3.0で実装が可能になりました。 「必要なときに出てきて必要なくなったら消えるもの」というコンセプトの機能です。 端末にインストールしていなかった場合は、自動的にPlay Storeから対応する機能をInstant Appとしてダウンロードして使うことが出来るというものです。 その為、プロジェクトを各モジュールに分割して、APKサイズを減らす必要があります。 ユースケースによってはコンバージョンや新規ユーザー獲得に大きく貢献しそうな機能として私も着目しています。 Office Hours Google Expertに質問や相談が出来るブースです。 GCPやGame関連など、様々なOffice Hourが準備されていますが、常に混雑しています。 私はGCPの相談を受けることが出来ました。 内容については割愛しますが、とりあえず英語でのやり取りという部分で度胸試し&勉強になりました。 Sandbox Instant Apps Sandboxはいくつかドーム状の施設があり、その中でAndroid AutoやGoogle Assistant、Instant Appsなど、様々なデモを行っています。 こちらも常に混雑状態ですが、たまたまInstant Appsが空いていたので話を聞くことが出来ました。 Googleの技術者と直接話せるというのが非常に貴重な体験になりますね。 App Consulting Google Playの担当者より、自社アプリへの相談やアドバイスを受けることが出来ます。 私がいったときは30分待ち程度で受けられたので、比較的空いていたのかもしれません。 内容については割愛致しますが、アプリを見せながら様々なアドバイスを受けることができ、非常に勉強になります。 このような機会があるのも、Google I/Oに参加するメリットですね。 Great app performance with Firebase Performance Monitoring モバイルアプリのパフォーマンスを計測出来るツールです。AndroidとiOS対応。 様々項目が計測できるのですが、かなり細かく見れるようで以下のような計測が可能になります。 (例) ネットワークレスポンスの計測 レスポンスのサクセスレート 国ごとの分類 デバイスごとの分類 OSごとの分類など これにより、例えばある特定の地域でのみエラーが発生する、特定のデバイスでのみ何かが起こっているという判別が出来るとのこと。 ユースケースでは、特定の国でだけレスポンスエラーが発生しており、原因がロケール対応であった、という例が出されていました。 細かく分析できることで、普段では気づけないような部分にも着目が出来るかもしれません。 試してみる価値はありそうです。 Speeding up your Android Gradle builds gradleのビルドが遅くて悩んでいませんか?遅いと開発効率も下がりますよね。 様々なTIPSが取り上げられていました。 一番最後に話されていましたが、「Slow build is not NORMAL」と思ってよいらしいです。 ビルドに5分も10分もかかる、そんな場合はセッションの内容を見て是非試してみてください。 こんな感じで、何もしない状態からTIPSをどんどん試していってビルド時間が大幅に現象している様子が伺えます。 最終的には、最大で12倍高速化という結果も出ていました。 番外編 お土産 じゃじゃん!! Google Homeです! この他にも、Photo Book無料や$700のGCPクレジットです。 毎年豪華ですね〜 番外編 After Hours Concert 2日目の夜はLCD Soundsystemというバンドによるライブが開催されました。 Keynoteと同じ会場で、大盛り上がりとなりました! 残すところ、Google I/Oもあと1日! 明日も存分に楽しんできます! Google I/O 2017 旅日記 〜DAY THREE〜へと続く…
こんにちは。Android開発グループの衛藤です。 前回の記事 では、DAY ZEROをお送りしました。 いよいよGoogle I/O 2017の開幕です! シャトルバス 数カ所からシャトルバスが出ており、無料で送迎してもらえます。 今回は宿泊先ホテルから最寄りのMountain View Stationから出るシャトルバスに乗りました。 わかりやすく看板を持った方がいたので特に迷うことなく乗ることが出来ました。 会場の様子 朝7時過ぎには会場に入り、ちょっと早いかな?と思いましたが結構な人数が既に現地入りしている様子。 無料の朝食があり、食べながら会場をぶらり散歩。会場が広いので数か所で朝食・コーヒーが準備されていました。 日本と違い、一人でベンチに座っていても「隣座ってもいい?」と気軽に話しかけてこられる所がアメリカっぽいですね。 Keynote バッジのピックアップは早いほうが良い席が取れる、とのことでしたが実際はピックアップ順に”ゾーン”が決定するようです。 おそらく1ゾーンは大体200人以上の席があり、そのゾーン内で早く来た順に好きな席を確保することが出来る仕組みになっていました。 結構早い時間に来たのですが、それでも既に長蛇の列となっていました。 1時間ほど列に並び、少し端よりの席に座りました。 開演までの間、Bubbleを飛ばせるURLがスクリーンに映し出されており、スマートフォンでアクセスするとBubbleをタップで飛ばすことが出来るようです。 さらに、スクリーンではどの国で何人がBubbleを飛ばしているかを写しており、世界中が注目していることが改めて実感出来る瞬間でした。 待機中も飽きさせないのがいいですね。 そしてついにGoogle I/Oの幕開けです。 いつものようにカウントダウンのあとに、Google CEO Sundar Pichai氏の登場です! Keynoteの全体的な感想としては、冒頭にPichai氏が”Moble first to AI first”と表現したようにディープラーニングや機械学習に関する話が大部分を占めていたように感じました。 音声認識のエラー検出も、8.5%から4.9%まで下がったという話も出てきます。 そんな中、印象に残った話をあげていくと・・・ Google Lens AIによる画像認識技術を使用したもので、カメラでかざし、映ったものを判断できるというものです。 会場で使われた例では、旅先で建物の写真を撮ったあとに、Photoアプリ内でGoogle Lensを呼び出しその建物の詳細を教えてくれるというものでした。 風景以外に、バーコード、看板の文字、電話番号なども認識できる。 Google.ai Google.aiについても取り上げられており、ディープラーニングの演算に特化したTPU(Tensor Processing Unit)やGoogle Assistantなど、人工知能の発展も大きく取り上げられていました。 それとともに、Google Assistant SDKや Actions on Google も紹介されました。 Actions on Googleのリンクを開けばすぐに出てきますが、 Actions Challenge で挑戦するとGoogle I/O 2018の参加チケットや他20の賞をもらうことが出来るとのこと。是非挑戦してみたいです。 Google Home ついに来ました。Google Home。 夏に日本にも来ます!! また、少し前に複数人の声を判別出来るという話題が上がっていましたが、その例として次のような会場パフォーマンスも。 遅くなったけど母の日の電話をしたいから「母さんに電話」とGoogle Homeに呼びかけます。 すると、Google Homeは母の名を言われなくても、声の主から母親を判断し電話かけてくれるのです。 人間からするとなんてことない内容なのですが、これを機械が出来るというのがどれだけすごいことか、と感じさせれた瞬間でした。 それに加え、Google Homeは複数デバイスの特徴を理解していて、その場に適したデバイスにレスポンスを映し出してくれる。 例えば、「○○の道順を教えて」とGooge Homeにたずねたあと、「よし、じゃあ行こう」というとスマホに現地までのマップを表示してくれたり・・・ あるいはTV写してくれたりと、その状況に応じてレスポンスを返してくれるとのこと。恐るべき人工知能。 さらには・・・ Google Photos ある人が写真に写っていて、それをその人にシェアをしてはいかがでしょうか・・・? それが今回発表された”Suggested Sharing”というもの。 スマホで撮影後、Google Photosにアップロードされ、AIにより写真が分類されるようです。 Photo Books AIの仕分けや個々人の好みから、Photo Bookとして物理的な写真を残す事ができる。 物理的に写真として残すことは良いけど、まさかそれをAIが良い写真をピックアップして成し遂げられるというのが驚きです。 アプリから購入することが出来るとのこと。 他にも Youtubeに寄付機能や、Youtubeに360°パノラマが登場など、ワクワクさせられるものばかりでした。 Developer Keynote Androidのアクティブデバイス数は・・・20億。改めて聞くとすごいですね。20億。 Developer KeynoteではAndroidの新OS”O”の新機能が紹介されました。 Picture-in-Picture 文章で説明するのが難しいのですが、YouTubeで動画を下にスワイプすると右下に小さく表示されるようになる機能・・・というと想像が付くでしょうか。 それがアプリ単位で出来るようになります。マルチウィンドウと同じようなものと思われます。 Notification Android Oでは、バッジみたいなもの(Notification Dots)が表示され、さらにアイコンをロングプレスすることでそのアプリの通知が表示されるようになります。 また、 通知チャンネル の実装がAndroid O以降では必須になるとのこと。 Notification関連は、毎年話が出てきますね。 AutoFills with Google ログインなどのフォーム入力、毎回メールアドレスを打ち込んだり、面倒くさいですよね。 AutoFillによる自動入力で楽になります! ちなみに、個人でメモするため顔を下げた瞬間デモが始まり、すぐ顔を上げたときにはデモが終わっていました。 それほど楽になるのでしょう。生で見たかったです。 Kotlin Kotlin使っていますか?最近流行っていますよね。周りでも取り入れている話を結構耳にしますが・・・ 「Now officially support Kotlin」 !!! 驚きました。GoogleがKotlinを正式にサポートするとのことです。 Jet BrainsのCEOもGoogle I/Oに来ているようで、カメラに映し出されていました。 あまりKotlinに触れたことがないので、今年はKotlinで遊んでみようと思います。 慣れるまで少し時間がいるかもしれませんね。 上記の他にも、Instant Appsのパブリック公開・api.aiやFirebase Cloud Functions・Firebase Performanceの紹介など盛りだくさんです。 全てを当日記事にするには時間が足りず・・・追々個別に詳細を紹介して行ければと思っています。 そんなこんなで濃い1日目が終了・・・ 日向に出ると焦げそう、日陰に入ると凍りそう、そんな気候です。 番外編 KeynoteやSessionはYouTubeで公開されます。 でもせっかくI/Oに来たので、Codelabや様々なブースにも顔を出してみました。 Codelab。約70のCodelabがあり、4つ達成するとI/O18のチケットがあたるチャンスも。 常に混雑しています。 日陰は寒く、日向は燃えるよう・・・でも日陰のほうがまし?? 太陽の境目に沿って人々が動いていく様。私ももれなく日陰に移動しました。 余儀なく日向に座った直後は、冷えたコーラが身にしみます。 明日は厚着して行こう。 Google I/O 2017 旅日記 〜DAY TWO〜へと続く…
こんにちは。Android開発グループの衛藤です。 前回の記事 では、準備編をお送りしました。 さて、いよいよ出発の日となり、荷物のパッキングも無事に終わりあとは待つだけ! 成田空港〜San Jose空港〜からのイミグレ 早めに成田空港着。機内食があるため軽く昼食を済ませて出発ロビーで待機中。 I/Oに行く人で結構混んでますね。ほぼ満席状態。 初のボーイング787で飛び立ちました。機内で全く眠れず昼夜逆転状態で到着・・・ そして無事にSan Jose空港に到着し、イミグレへ。 入国には2時間程度かかるという事前情報もありましたが、30分ほどであっさりと入国完了。 ハローサンノゼ!! I/Oバッジのピックアップ バッジのピックアップは早いほど良い!ということで空港到着後すぐにスマホ起動→UBERで現地へ。 空港からは20分程度なので意外と近いところにあるようです。 初めてのUBERだったので緊張しましたが、使い方は非常に簡単でした。 現在位置がデフォルト設定なので、行き先を地図上で指定して配車ボタンを押すだけ・・・後はアプリに車種が表示され、その車が迎えに来てくれます。 ちょっと寄り道してほしかったので、試しにドライバーに聞いてみると「アプリから指示されたGPSルートに従って運転するだけだからねぇ」という感じでやんわり断られました・・・ ただ、そういう事なのでタクシーと違って回り道されたりすることはなさそうですね。 ということで、無事I/O会場にも到着しました。 I/OのQRコードをかざしてバッジを受け取り、無事に明日からの参加を待つことができそうです。 こんな感じでそこまで並んでもいなかったです。 Google Merchandise Store 時間が余ったので、ふらっとGoogle Merchandise Storeに立ち寄りました。 せっかくなので会場から歩いて行ったのですが、Googleの街が広すぎ、また寝不足により疲れがピークに。しかもデカイスーツケース付き。 なんとかお土産の大量購入に成功し、フラフラしていたら・・・ 例の彼がいました!! ここで初めてGoogleに来た実感が湧いてきました! 人々が彼の写真を撮る名所のようです。 INTEL GOOGLE I/O DAY ZERO PARTY 4.0 Google I/Oは明日5/17から始まりますが、前日はIntelで前夜祭のようなイベントが開催されます。 初めてで緊張しますが、飛び込んできました! 内容的にはIntelの最新技術取り組みのブースが多数展示されており、Intelエンジニアと直接話すことが出来ます。 会場はクラフトビールのお店で開催されるため、様々なビールと食事が無料で楽しめます! 日本人も参加しており、話すことが出来たのも貴重な体験です。 初めてカルトレインも乗りました。日本の電車に比べて賑やかですね。 会場の様子。DJが音楽を流し続けながら・・・ 外ではタコスやsushiなどが無料で食べられます。タコスがおすすめです。 23:00くらいまで続くらしいです。 そしていよいよ明日からGoogle I/O 2017開催! 明日のためにも今日は早めにお休みします! Google I/O 2017 旅日記 〜DAY ONE〜へと続く…
こんにちは。Android開発グループの衛藤です。 2017年5月17日〜2017年5月19日 Google I/O 2017 が開催されます。 今回、初のGoogle I/O参加が決まり、大変楽しみにしています。 折角なので旅日記として体験した事を記録としてブログに残そうと思い、記事を書き始めました。 また、出来る限りタイムリーに記事を上げたいため、現地から投稿を行う予定です。 気になる方は是非ご覧ください! 準備編 Google I/Oチケットに当選したら 残念ながら落選した場合… 当選したらまず行うこと 滞在する場所選びも重要 I/Oのスケジュールを把握&座席予約 当日までにやっておくと良いこと Google+のコミュニティ参加 Intel’s Google I/O Day Zero Partyの参加登録 TODOリスト 社外向け報告会の告知 Google I/O 旅日記 〜DAY ZERO〜 へ続く… 準備編 Google I/O初参加に向けて、これまで準備を行ってきましたのでまずは準備編としてまとめます。 最後にTODOリストも用意しましたので、来年参加する方々の参考になれば嬉しいです。 Google I/Oチケットに当選したら 毎年、Google I/Oのチケットは抽選で決まります。 今年は2月22日あたりから申し込みが始まりました。後日抽選の結果としてGoogleからメールが届くので、その時点で当選・落選が確定します。 残念ながら落選した場合… キャンセルが出る場合もあるそうなので、もしかすると当選に繰り上がる可能性も・・・!? 当選したらまず行うこと 航空券 直行便はすぐに予約で埋まってしまい、経由便しかなくなるので要注意。 ホテル Google I/Oが開催される近辺のホテルが次々と埋まっていき、最終的には空いていたとしてもかなり価格が高騰します。 私はとあるホテルを予約しましたが、その時に比べて1万円近く跳ね上がっていました。 場合によってはAirbnbを使って安く済ませるのも有りかと思います。 Expediaなどでホテルと航空券を一気に予約する方がおすすめです。(ホテルへの予約確認も全て代行して行ってくれるため。また24時間サポートなので何かあれば電話で相談すれば良い) 安いがキャンセル不可、というものもあるので注意が必要。 滞在する場所選びも重要 今年も去年と同様Mountain ViewのShoreline Amphitheatreで開催されます。 私はMountain View近辺にてホテルを予約しましたが、San Francisco近辺で取る方も多いようです。 また、毎年 Google I/OのWebサイト にGoogle推奨ホテルが掲載されており、Googleによって予め部屋がブロックされているとのこと。 ただ少し高めのホテルなため予算との兼ね合いで決めると良さそうです。 ホテルによってはGoogle手配のシャトルバスもあり、イベント現地まで無料で送迎してくれます。 I/Oのスケジュールを把握&座席予約 Google I/Oのスケジュールは Google I/OのWebサイト で発表されます。 Googleアカウントでログインすると、セッションそれぞれ「+」ボタンで印を付けることができるようになり、My I/Oタブでフィルタリングされて表示されるなど、当日のタイムスケジュールを組む際に便利なので活用できそうです。 セッションについては、前もって座席予約をしておくことが出来ます。 また、 Android と iOS でGoogle I/Oアプリも公開されます。 アプリでは会場のマップも表示され、現地では必須アプリになりそうですね。 Android版アプリの会場マップ 当日までにやっておくと良いこと Google+のコミュニティ参加 Google+のアカウントを持っていれば、Google I/Oに関するコミュニティに入ることが出来ます。 イベント当日までにホテル事情やスケジュールのアップデート情報等、タイムリーに把握することが出来るのでおすすめです。 私は Google I/O と Google I/O GDC Japan コミュニティに参加させていただきました。 Intel’s Google I/O Day Zero Partyの参加登録 毎年開催されているようですが、前夜祭イベントがI/O前日に開催されます。(今年は2017/5/16 19:00~) Eventbriteで公開されるので、興味があれば事前に予約しておくとよいです(21歳以上)。私も参加してみることにしました。 前日においしいクラフトビールを飲みながら様々な国のエンジニアと交流するはいかがでしょうか? 会場へは近くのカルトレインの駅からシャトルバスが出るとのこと。 TODOリスト 簡単に必須項目についてのTODOリストを作ってみました。 他にもたくさんあると思いますが、とりあえずないと困るであろうものをピックアップしています。 一般的な海外旅行の必需品等は除いています。 項目 内容 備考 パスポート 期限を確認する 1週間ほどかかるので余裕を見て ESTA ESTA公式サイトから申請 原則出発72時間前までだが、早めのほうが吉 米国国土安全保障省(DHS)により2009年1月12日から義務化 eTa カナダ経由になる場合は必須 宿泊 ホテルやairbnbなど I/O WebサイトにGoogle推奨ホテルが掲載 早めに予約推奨 航空券 近いのはSJC 早めに予約推奨 Wifi/SIM 現地での通信用 海外SIMの方が安いが、SIMフリー端末が必要 海外旅行保険 楽天トラベルなどで申請する たびレジ登録 外務省のWebページから登録 旅行者情報の登録 モバイルバッテリー 大容量だと安心 個数や容量に関して機内持ち込み制限もあるので航空会社のHPで確認を行うこと 変圧器 必要があれば スマホ等は基本ユニバーサル仕様なので問題ないはず ※1 印刷物 パスポート Google I/Oチケット ホテルの予約確認ページ 航空券のeTicket控えなど 万が一のときのため 水筒 会場のウォーターサーバーで水分を蓄えておく 気温差が激しく、昼は暑いらしい Uberアカウント 現地移動手段として 予めクレジット登録も済ませておく 日焼け止め 黒焦げ対策 日光が強い ※1: 変換プラグについては、北米であれば日本と同じAタイプのため基本的には不要。電圧の違いだけ注意すること(電源タップ持参する場合、120V対応でないと燃えたりする) 電源関連については、以下のUSB用の電源アダプタが非常に便利です。 Anker | PowerPort Speed 5 Quick Charge 3.0 | Black 今回、電子機器関連は以下のものを持っていくのですが、多すぎてUSBのアダプタがかさばる&コンセント足りないかも問題を解決してくれます!しかも海外電圧対応。 Android iPhone Wifiルーター モバイルチャージャー(充電はUSB2ポートで急速充電タイプ) 最低でもUSB充電が5つもあり、充電問題に悩まされそうなので購入しました。そこまで重くもなく大きすぎることもなく、重宝しそうです。 社外向け報告会の告知 2017/5/26(金)に 株式会社LIFULL 半蔵門オフィス にてGoogle I/Oの報告会を行います! 今年4月に移転したばかりのキレイなオフィスに是非足を運んでみてください! 以下connpassのページよりお申込みください。 LIFULL.apk #1 - Re: Google I/O 2017 スピーカー枠やLT枠も募集中です。 皆様の参加を心よりお待ちしております♪ Google I/O 旅日記 〜DAY ZERO〜 へ続く…
こんにちは、LIFULL HOME’Sアプリのデザイナーをしている、コイズミです。 この度、LIFULL HOME’SはiOSアプリをApple TVに対応させるアップデートを行いました! LIFULL HOME’SのApple TVアプリは、新築マンションを特集(ペット可や駅近など)から探すアプリです。 ※東京・神奈川・千葉・埼玉・名古屋・大阪のみ対応 新築マンションって、写真がきれいで夢が広がりますよね! 今回は、tvOSのアプリ開発を通して、iOSアプリと提供するUXの違いや、デザイナーが気をつけるべきポイントをお伝えしたいと思います。 LIFULL HOME'Sアプリ ダウンロードはこちら アプリ開発ができるのは第4世代から Apple TVは、第1世代から第4世代まであります。 第4世代は2015年10月に発売され、この代からサードパーティーによるアプリの開発ができるようになりました。 Siri Remoteの操作性 Apple TVはテレビではなくSTB(セット・トップ・ボックス)です。 本体をお手持ちのテレビに接続し、専用のリモコンである、Siri Remoteで操作します。 マットな部分を上にして持ちます。 たまに逆さまに持っちゃう人がいるので注意です! マットな部分をTouch Surfaceと言って、タッチ・スワイプ・スクリーン中の移動ができます。押し込むことで、選択したり遷移したりします。 Apple TVを触ってみて、アレ?と思ったのですが、どのアプリも画面上に「戻る」ボタンが無いのです。 ガイドラインにもありますが、MENUボタンで戻るというのが標準の動きになっています ユーザーの手には必ずリモコンがあることを意識する Apple TVは必ずリモコンで操作するため、アプリのUI設計もそれを常に考える必要があります。リモコンでのフォーカス移動は、上下左右に接した要素を辿りながらの移動になるので並列の意味を持つ要素は横一列に並べるなど、連続性を考える必要があります。 Touch Surfaceを親指で縦スワイプするのが結構やりづらいです。 アプリのコンテンツの配置が縦に長いとユーザーにストレスを与える可能性があるので、情報設計をする上で考慮すると良いと思います。 ひとりで見るか、みんなで見るか Apple TVと、iPhoneやiPad等のデバイスとのUXの一番の違いは 「ひとりで見るか、みんなで見るか」 だと思います。 家族で暮らしている場合、テレビがある場所には自分以外の家族もいるわけなので、テレビでもくもくと検索してもらうよりも「会話」や「発見」など、iPhoneやiPadとは違った体験を提供したいと考えました。 リビングでソファーに腰掛けながら、夫婦で、家族で… 「この間取りいいね!そこの部屋を子供部屋にして、こっちの部屋は書斎にできそう!」 などと会話を楽しみながら、未来の住まいについて家族で話すきっかけになって欲しいと考えています。 家族でお互いの希望や条件を、会話しながら共有することで、より住み替えが現実的な未来になってほしいと思っています。 削る Apple TVのLIFULL HOME’Sアプリでは条件設定がありません。 当初は条件設定ができるアプリを作ろうとしていたのですが、思い切って「特集」という切り口のみに限定し、一覧では並べ替えのみできるようにしました。 右側の条件設定エリアをまるっと削除し、2カラムから3カラムに変更 気軽に「ながら見」できるカタログのような位置づけにして、ユーザーが本気の検索モードになったときは、iPhoneやiPadを使ってもらう。 Appleからは色々な製品が出ているので、それぞれにあったUXを提供しようと考えました。 もし、Apple TVアプリを絶賛開発中の方は自身のアプリを見直してみてください。 iPhoneやiPadのUI/UXを移植しただけになっていませんか? 細かな設定をユーザーに求めたり、たくさんの小さい文字を読ませたりしているなと思ったら、思い切って方向を変えてみても良いかもしれません。 魅せる なんと言っても大画面です。せっかくなので思い切って使いましょう! 魅力的な動画や写真、インフォグラフィックスがあるならそれを使わない手はないです。 物件写真が小さく、リモコンの操作も複雑になりそうなUIを、地図と写真メインのUIに変更 Apple TVのLIFULL HOME’Sアプリが新築マンションにマーケットを絞ったのもこれが理由で、新築マンションの写真やCG画像はテレビでも持ちこたえる解像度があり、何よりも物件の魅力をしっかり伝えてくれます。 ユーザーには物件の写真をじっくり見てもらいたいので、物件詳細画面では画像領域をできるかぎり大きく取るなどの調整を行っています。 もし、自身のサービスに魅力的な動画や写真があるなら、もっと大きく見せられないか? 文字情報が多ければ、その情報をグラフィカルに見せられないか? 検討してみると良いと思います。 細かい話:画面のレイアウトと解像度 Apple TVのアプリは1920 x 1080の画面解像度で設計します。 また、iPhoneやiPadと違い、用意する画像は@1xのみでOKです!楽ですね! フォーカスが当たっている要素は拡大されます。 隣の要素との余白をとっておかないと、拡大された時に重なってしまうのでガイドラインを参考に適切な余白を取りましょう。 細かい話:テキストの可読性に気をつけて iPhoneやiPadを使う時と、テレビを見るときでは、目からディスプレイまでの距離が違います。 普段iOSアプリのデザインをしている感覚で作業していると、文字が小さくなっていることがあります。なので私たちは実機で検証するときは、リビングでテレビを見る距離を想定して自分たちが作ったアプリを見るようにしました。 テキストサイズが問題なくても、OS標準のシャドウの付き方や、背景のブラーによって可読性が左右されるので、デザインデータ上だけではなくエンジニアさんと協力して実機をみながら調整すると良いと思います。 おわりに 新デバイスの対応をするとき、まず最初に自身のサービスとの親和性を考えると思います。どのデバイスにも最適なコンテンツがあるということは少ないです。 でも、iOSで提供している部分の一部にフォーカスしたら、もしくはちょっと領域を広げたら 、と考えてみれば新デバイスを通してより多くのユーザーに新しい体験を届けられるかもしれません。 発表されたばかりのデバイスに対応するときは、情報も少なく、数値的貢献が期待できるかもわからないので、二の足を踏んでしまいがちだと思いますが、チャレンジすることで元々のサービスに応用できる知見が得られる可能性もありますし、次の開発へのモチベーションにも繋がるのでチームにとって良い影響が多くあると思います。 モノづくりが主導して、新しいことにチャレンジすることで、自社サービスの新たな価値を見つけて、生み出し続けていければいいなと思います。 LIFULL HOME'Sアプリ ダウンロードはこちら
お久しぶりです。 半年ぶりになってしまった 技術基盤部の相原( kaihar4 )です。 今回は、私が入社した直後あたりから続いている社内勉強会のTech Talk Lunchについてと、そのTech Talk Lunchを長く続けていくために取り組んでいる仕組みの紹介をしていきたいと思います。 Tech Talk Lunchとは 長く続けていくための仕組み トピックを限定しない トピックは持ち寄り ランチタイム開催 社内勉強会を続けるメリット 技術的視野の広がり 他部署との関係構築 発信の習慣化 情報収集の習慣化 さいごに Tech Talk Lunchとは Tech Talk Lunchとは、その名の通りお昼に開催される私が知る限り社内でも有数の長く続いている定期開催の社内勉強会です。 毎週月曜日の13時から14時までの1時間、前の週の最新ニュースを中心に各自がトピックを持ち寄り、1人5~10分程度を目安に持ち寄ったトピックを自由に共有します。 持ち寄るトピックに制限はなく、現在でもビジネス的なものからアカデミックな論文の紹介、土日に読んだおすすめの技術書に面白いウェブサービスの紹介まで、様々なトピックが共有されています。 また、共有形式もスライドを用意するといったことはなく、大抵はウェブページを見ながらであったり、用意していても簡単なメモ書き程度で、緩く共有するというコンセプトとなっています。 最初はチームのメンバー3人でスモールスタートしたTech Talk Lunchも、こうした開催方法を続けた結果、それほど大きくない会議室で開催しているものの毎度満員御礼となり、参加者も新卒1年目からベテランエンジニアにマネージャまでと幅広く参加する社内勉強会となりました。 長く続けていくための仕組み ここからは、このTech Talk Lunchが長く続くために取り組んでいる3つの仕組みについて紹介していきます。 トピックを限定しない 一つは、トピックを限定しないという点です。 Slackなどの特定コミュニティで顕著な現象として、トピックごとにチャンネルを分けることによって話題が分散し、それぞれのチャンネルでの絶対的な発言数が減少するというものがあります。 そこで、そういった参加者の分散による過疎を防ぐため、Tech Talk Lunchではトピックを限定しないという方式を取っています。 エンジニアそれぞれの得意な領域によって情報収集手段が異なることに加え、技術情報とは誰がそのニュースについて言及しているかによって情報の価値が異なります。 自分が流し読みしてしまう技術情報も、その分野のキャッチアップをしている人にとっては価値のある情報であることが多くあります。 そういったことから、Tech Talk Lunchではトピックを限定しないことによって参加者の間口を広げ、自分の情報収集手段では知り得ない情報・知り得ない価値を得られるというコンセプトとなっています。 その結果として、ビジネス的なものからアカデミックな論文まで多様な技術情報が集まる社内勉強会となり、多くの参加者を確保することに成功しました。 トピックは持ち寄り Tech Talk Lunchでは特定のスピーカーというものは存在しません。 トピックは参加者それぞれが持ち寄り、決められた時間ごとに交代で共有しています。 これに関して懸念したのは、スピーカーへの負荷の集中によって運営継続が難しくなることです。 1回1時間とはいえ、持ち回りでスピーカーがトピックを用意することは難しく、必然的に頻度を減らす必要が出てきてしまいます。 また、Tech Talk Lunchにはそれぞれが能動的に技術情報を収集してほしいという想いがあることから、トピックを各自が持ち寄るという決断をしました。 人に対して物事を説明するには、情報のインプットのみで終える時に比べて高い情報の理解度が求められます。 そういった機会を、普段人に説明することがない人にも提供することで、社内の情報共有が活性化されるという効果も見られました。 加えて、持ち寄ることのハードルを下げるため共有方法は自由としており、多くの参加者は事前にトピックのURLを用意だけして当日に臨みます。 結果として、スピーカーの負荷が軽減されることで安定した運営が実現され、活発に情報を共有する文化が醸成されました。 ランチタイム開催 次はランチタイムでの開催です。 弊社では基本的に13時から14時までの1時間が休憩時間として確保されています。 Tech Talk Lunchではより多くの人が参加しやすいよう、この時間を使ってランチを食べながらカジュアルに開催するという形式を採用しています。 これ以外の時間に開催しようとするとどうしてもコアタイム後の16時以降となり、業務都合や私用で参加できない人が多く出てしまいます。 また、長時間の勉強会となると途中退室が可能なものの、拘束時間が長くなってしまいますが、1回の開催時間が1時間と短いため、参加者の心理的障壁も下げられ気軽に参加できるような環境になっていると考えます。 1回の開催時間が短い点に対しては頻度を上げることによって対応しており、取り扱うトピックが最新ニュース中心ということから、毎週月曜日に開催するようになっています。 これにより参加者の情報収集が習慣化され、参加者の情報感度が高くなるという効果が見られるとともに、常に鮮度の高い情報が得られるようになりました。 この仕組みによって毎回安定した人数を参加者として確保することができ、長く続けていくことに寄与しています。 社内勉強会を続けるメリット Tech Talk Lunchを長く続けることで社内勉強会を続けることによるメリットが見えてきてました。 技術的視野の広がり 私が特に強く感じているのは技術的視野の広がりです。 Tech Talk Lunchではアカデミックな情報も活発に共有されており、中でも機械学習のトピックは技術トレンドも相まって頻出トピックの一つです。 今まで遠くに感じていたアカデミックな分野も、気軽に質問できる環境が作られたことによって身近に感じられ、今ではプライベートでのソフトウェア開発に用いるようにまでなりました。 これにはかなり強くTech Talk Lunchが影響していると実感していて、インターネットに溢れる玉石混合の情報の中から、専門家の意見を直接聞くことができるというのは非常に大きなメリットでした。 カジュアルに共有するというコンセプトのため、気になったことを気軽にその場で質問できるような雰囲気であることもプラスに働いています。 他の参加者の中にも、ここで得た知見を業務に適用している例があり、特定のトピックに特化した勉強会でこうした体験をすることは難しいことを考えると、トピックを限定せずそれぞれが持ち寄るという運営形式の強みを感じました。 他部署との関係構築 次は他部署との関係構築です。 多様なトピックが集まることからわかるように、Tech Talk Lunchには様々な部署から様々なスキルセット・様々な役職の参加者が集まっています。 これにより普段あまり知る機会のない他部署の取り組みや、ベテランのエンジニアやマネージャの考え方などを知ることのできる貴重な機会にもなりました。 例えば、トピックとしてあがってきた他社の技術的取り組みについてベテランのエンジニアと議論したり、他社の評価制度の事例についてマネージャの意見を聞くというのは、普段の生活ではもちろんのこと他の勉強会でも実現は難しいと考えます。 これもトピックを限定せずそれぞれが持ち寄るという運営形式の強みと言えるでしょう。 発信の習慣化 次は発信の習慣化です。 会社内では人に技術的なことを説明するという機会はそれほど多くありません。 社内勉強会は多くありますが、発表資料の用意や技術レベルのハードルなどからどうしてもスピーカーは偏ってしまう傾向があり、多くの人にこういった機会がないというのが現状です。 その中でカジュアルに情報を共有する場であるTech Talk Lunchはそういった人たちの受け口としても有効でした。 事実私はそれほど外部での発表を行ってきませんでしたが、Tech Talk Lunchによって発信することの習慣化がされました。 また、多様なスキルセットの参加者が集まっている性質上、技術的コンテキストが共有されていないため、分かりやすく説明するということに非常に気が使われます。 こうした環境で発信を習慣化することによって、自身の理解が深まるのはもちろんのこと、発信することに対する心理的障壁も下がるといった効果が感じられました。 情報収集の習慣化 最後は情報収集の習慣化です。 私の今までの情報収集手段は翻訳などのなんらかの第三者によるフィルタがかかった2次ソース・3次ソースからがメインとなっていました。 その中で、毎週最新のニュースを収集する習慣がついたことにより、言語問わず意識的に1次ソースからの情報収集を行うようになりました。 他の参加者からも継続して情報が集まることで、常に身の回りに新しい情報が集まるようになり、技術的な引き出しが以前に比べて格段に増しました。 結果として、プライベートでのソフトウェア開発で最新技術を採用し、それを業務にも生かすという非常にいいサイクルが構築されることとなり、公私ともにいい影響が得られていると実感しています。 さいごに このように仕組みを工夫することによって、運営側に負担をかけることなく社内勉強会を続けることができています。 個人的にも参加することによるメリットを強く感じており、部署間の連携の強まりや技術力の底上げなど、組織として考えた時にも有意義であると感じています。 情報は発信する人のもとに集まるとよく言われます。 これはTech Talk Lunchが強く表していて、それぞれが発信することによってとても刺激的なコミュニティを形成することに成功しました。 とりとめがなくなってしまいましたが、そんなTech Talk Lunchと弊社では新たな仲間を募集しています。
こんにちは。 HOME'Sデザイナーで、4月で入社3年目になるshinoです。 今回は同期デザイナーの莉亜と「FLOWERS by NAKED」というデジタルアート展に行ってきたので、そのレポートをいたします!   FLOWERS by NAKEDとは 「日本で一番早いお花見を、日本橋で。」をテーマにしたイベントで、春一番が吹くと桜吹雪が舞い上がるストーリー性とインタラクティブ性のある空間のなか、生花・オブジェ・映像・香り・飲食など五感で花の新体験を楽しむことができるデジタルアート展です。 過去にNAKEDの別の展示を鑑賞したことがあったので、今回もとても楽しみにしていました!   イベントレポート 平日の夕方を狙って行ったので、空いていてゆっくり見ることができました。   会場の中に入ると、まず、桜舞う大きな本のプロジェクションマッピングがお出迎えしてくれます。 さらになかに進むと、たんぽぽの綿毛に息を吹きかける仕掛けや、美しい花々の映像、竹林と光の回廊などがあり、とても幻想的でした。 特に一番印象に残っているのは、展示のメインでもある桜のインスタレーションです! 仄明るい桜色の照明に照らされた大きな桜のオブジェの下で、ドリンク片手に踊りを鑑賞し、テーマのとおり本当にお花見をしている気分を味わうことができました。   HOME'Sデザイナーは、HOME'SをはじめとするWEBサービスの運用開発をメインの業務としています。 業務上、こういったインスタレーションだったり、インタラクティブなアートに触れる機会が少ないので、とても良い刺激になりました。   ※写真は掲載許可をいただいています。   まとめ 前述したとおり、HOME'Sデザイナーは、HOME'SをはじめとするWEBサービスの運用開発がメインの業務です。 業務上、触れる機会が少ない技術や表現などは、自ら機会を作り出してどんどんインプットしていきたいと思います。   ちなみに、弊社では社内制度として、業務の枠を離れて、新たな技術や手法に取り組むことができる機会があります。   ①クリエイターの日 希望制かつ承認制で、四半期の最大7日間を使って研究・開発が行えます。     ②クエイティブアワード アイデアアワードとプロジェクトアワードの2部門があります。 特に、半期に1回開催される「アイデアアワード」はテーマに沿った「アイデア」を競います。   こういった機会を利用して、アウトプットもしていきたいと思います!     最後まで読んでいただき、ありがとうございました!  
班分けAI
MathJax.Hub.Config({ tex2jax: {inlineMath: [['$', '$'], ['\\(', '\\)']]} }) ; こんにちは、MAM開発グループの椎橋です。 MAMとはマーケティングオートメーションの略で、マーケティングに関する機械学習アルゴリズムを作ったり、データ分析をして改善につなげたりしています。 今回は社内制度の クリエイターの日 を2日間利用して、社員旅行の班分けの最適化モデルを作りました。 以前はこの制度を利用してサーバ・ミドルウェアの勉強をしました。 nextdeveloper.hatenablog.com 弊社の社員旅行は多くの社員が参加し、最高に盛り上がる大イベントです。 社員旅行委員が予算の見積もりからスケジュールまで計画を立ててくれるのですが、 そのスケジュールの中にアクティビティと呼ばれるイベントがあります。 これは班に分かれて観光やスポーツなどを楽しむというもので、私は昨年そば打ちを体験しました。 複数あるアクティビティのうち参加できるのは一つだけな上に、人数の上限が設定されているために希望したアクティビティに参加できるかどうかは分かりません。 昨年は社員旅行委員が抽選と手動調整によって班分けを行いましたが、数時間かかったらしいので最適化モデルを作ることにしました。 データ抽出 まずは、計算に用いるデータを準備します。 Google フォームで社員の希望調査を行い、集計結果を以下のように変換します。 名前ID 性別 group_1 group_2 group_3 group_4 id_1 1 1 3 -1 2 id_2 -1 2 3 1 -1 id_3 -1 3 1 2 -1 性別カラムは男性なら1,女性なら-1を取るようにし、各アクティビティの希望順位をgroupカラムに記します。希望していないアクティビティには-1を割り当てました。 定式化 次にこの問題を数式に変換します。 定数 まずは定数を以下のように定めます。 説明 表記 参加する社員[人] $N$ 班(アクティビティ)の種類 $ M $ 班 $j$ の上限人数[人] $g_j$ 社員 $i$ の班 $j$ への希望度 $h_{ij}$ 社員 $i$ が男性なら 1, 女性なら -1 を取る $s_i$ $h_{ij}$は希望順位から算出した定数で、算出方法は割愛します。また、添え字集合を以下のように定義しておきます。 $$I \mathrel{\mathop:}= \{1,\ldots,N\}$$ $$J \mathrel{\mathop:}= \{1,\ldots,M\}$$ 変数 次に、問題を解くための変数を以下のように設定します。 説明 表記 社員 $i$ が班 $j$ へ参加するなら 1, 不参加なら 0 を取る $x_{ij}$ これにより、$x_{ij}$を任意の $i$, $j$ に対して定めることで班分けを一意に決定できます。 モデリング 上記を用いてモデリングします。 まず、$x_{ij}$は 0 もしくは 1 を取る変数で、参加できる班は 1 つのみであることから、 $$ x_{ij} \in \{ 0, 1\},\ \forall i\in I,\ \ \forall j \in J $$ $$ \sum_{j \in J}{x_{ij}} = 1, \ \ \forall i \in I $$ という式を作れます。これは以下のような行列形式で考えるとわかりやすいです。 group$_1$ group$_2$ $\cdots$ group$_{M}$ 社員 $i$ $x_{i1}$ $x_{i2}$ $\cdots$ $x_{iM}$ 社員 $i$ は一つの班に属するのでいずれかが 1 でそれ以外はすべて 0 になり、それを上記の式で表しています。そして、すべての社員に対してこの式を満たさなければいけないので、各 $i$ に対して制約が設定されています。 各班には人数の上限が設けられているために、 $$ \sum_{i\in I}{x_{ij}} \leq g_j, \ \ \forall j \in J $$ を加えます。今度は班 $j$ についての制約で行列形式のデータを列で見るとわかりやすいです。 group$_j$ 社員 $1$ $x_{1j}$ $\vdots$ $\vdots$ 社員 $N$ $x_{Nj}$ 列で和を取れば班 $j$ に属する人数を計算できるので、これが班 $j$ の上限人数以下になるようにします。 そして、目的は希望度を最大化しつつ班の男女の人数の比率をできるだけ等しくすることで、以下のようにします。 $$maximize: \sum_{i\in I}\sum_{j\in J}h_{ij}{x_{ij}} - \alpha\max_{j\in J}\left({\left|\dfrac{\displaystyle \sum_{i\in I}{s_ix_{ij}}}{g_j}\right|}\right)$$ 第一項は希望度の総和、第二項は疑似男女比差を表しています。 班 $j$ に属する男性、女性の比率の差は $\displaystyle \left|{\sum_{i\in I}{s_ix_{ij}}}\big{/}{\sum_{i\in I}{x_{ij}}}\right|$ で表せますが、計算を容易にするために班の合計人数を班の上限人数に置き換えて疑似男女比差とみなし、定数 $\alpha>0$ を掛けています。標準形に変換する際は新たな変数 $y$ と以下の制約を加えれば実現できます。 $$ y \geq \dfrac{\displaystyle \sum_{i\in I}{s_ix_{ij}}}{g_j}, \ \ \forall j\in J$$ $$ y \geq -\dfrac{\displaystyle \sum_{i\in I}{s_ix_{ij}}}{g_j}, \ \ \forall j\in J $$ これにより $y$ は $\displaystyle \max_{j\in J}\left(\ {\left|\sum_{i\in I}{s_ix_{ij}}\big{/}g_j\right|}\ \right)$ 以上の値を動くことができますが、目的関数値を極力下げないようにするために最適解で $y^*$ は$\displaystyle \max_{j\in J}\left(\ {\left|\sum_{i\in I}{s_ix_{ij}}\big{/}g_j\right|}\ \right)$ になります。 以上をまとめますと、以下のモデルで書けました。 \begin{align} maximize && \sum_{i\in I}\sum_{j\in J}h_{ij}{x_{ij}} - \alpha y && \\ subject\ to && \sum_{j\in J}{x_{ij}} = 1, && \forall i \in I\\ && \sum_{i\in I}{x_{ij}} \leq g_j, && \forall j \in J\\ && g_jy \geq \sum_{i\in I}{s_ix_{ij}}, && \forall j \in J\\ && g_jy \geq - \sum_{i\in I}{s_ix_{ij}}, && \forall j \in J\\ && x_{ij} \in \{ 0, 1\}, && \forall i\in I,\forall j \in J\\ && y \in \mathbb{R} && \end{align} 実装 設計ができたので、Pythonで実装します。 import pulp '''省略''' problem = pulp.LpProblem( "problem" , pulp.LpMaximize) x = pulp.LpVariable.dicts( "x" , ( range (n), range (m)), 0 , 1 , "Continuous" ) '''省略''' ポイントは$x_{ij}$を0-1変数(Binary)ではなく$[0,1]$ の実数変数(Continuous)にしていることです。理由は行列のユニモジュラ性を利用していて、最適解で $x_{ij}$ は整数になることが保証されているためです。組み合わせ問題は変数を増やすと爆発的に計算量が増加しますが、この緩和を適用できると変数が増えても比較的容易に最適解を求められます。 結果 最後に最適化と抽選式で結果を比較します。抽選式は、希望人数を加えても班の上限に達しないならば抽選せずに確定させ、そうでなければ抽選によって班に加えるメンバーを選出する決め方です。比較は希望した班に割り当てられた人数を集計して行い、実行環境はIntel® Core™i5-6200U CPU @2.3GHz, メモリ8GB でした。 昨年の社員旅行で用いられたデータ(一部加工, $N=411, M=14$)で計算すると以下のようになりました。 最適化 抽選式 第一希望 339 349 第二希望 62 20 第三希望 10 13 希望外 0 29 最大男女差比 30% 15% 計算時間 0.6秒 0.3秒 抽選式では希望外の班に割り当てられた社員がいるので、この後手動で調整する必要があります。一方で最適化の結果ではその現象は起きていません。次にデータの規模を大きくして$N=10000, M=100$としました。 最適化 抽選式 第一希望 8318 8512 第二希望 1591 620 第三希望 91 270 希望外 0 598 最大男女差比 33.3% 30% 計算時間 162秒 16秒 この規模になると最適化の効果が顕著になりますね。 まとめ クリエイターの日を利用して社員旅行の班分け最適化モデルを作りました。整数条件を不要としたモデルにすることで変数が増えても比較的容易に計算できるのが特徴でした。エンジニア支援制度が充実したネクストでは鋭意エンジニア採用中です!新卒・中途問わず、ご興味を持たれた方は是非下記ページを御覧ください。 http://recruit.next-group.jp/
こんにちは、AmazonESでElasticsearch2.3を使っての環境構築が終わった直後にElasticsearch5.1が利用可能になってショックを受けてる技術基盤部の磯野です。 ちょっとだけ時間ができたのでzipkinのバックエンドをAmazon Elasticsearch Serviceに差し替えてみました。 CassandraとElasticsearchどっちにしようかなぁと悩んでいたのですが、zipkinがいつの間にかElasticsearch Serviceに対応していたのでサーバー構築したくない病発症中のためノータイムでElasticsearch Serviceに決定しました。 Amazon Elasticsearch Serviceの起動 アクセスポリシー zipkinサーバーの設定 zipkinサーバーのIAM Roleの設定 設定を変更してみて インスタンスの負荷の減少 コスト削減 検索高速化 ServiceName,SpanNameの取得が遅い問題 まずは今回やったことまとめです。 Amazon Elasticsearch Serviceの起動 Elasticsearch domain nameはzipkin, Elasticsearch versionに(当時)最新の2.3を利用しています。 アクセスポリシー 以下のように設定しています。 zipkinの動いているEC2インスタンスのロールとsnapshotを取得するためのlambdaのロール、そしてkibanaの為に社内からのアクセスをIPで許可します。 { " Version ": " 2012-10-17 ", " Statement ": [ { " Effect ": " Allow ", " Principal ": { " AWS ": [ " arn:aws:iam::[account-id]:role/zipkin-server ", " arn:aws:iam::[account-id]:role/zipkin-snapshot-lambda " ] } , " Action ": " es:* ", " Resource ": " arn:aws:es:ap-northeast-1:[account-id]:domain/zipkin/* " } , { " Sid ": "", " Effect ": " Allow ", " Principal ": { " AWS ": " * " } , " Action ": " es:* ", " Resource ": " arn:aws:es:ap-northeast-1:[account-id]:domain/zipkin/* ", " Condition ": { " IpAddress ": { " aws:SourceIp ": " [office-ip-address] " } } } ] } zipkinサーバーの設定 以前 こちら で記載したのとほとんど変わりません、最新版をインストールし、必要な環境変数を指定して起動します。 ES_AWS_DOMAIN, ES_AWS_REGIONを指定することでインスタンスのIAMロール利用して自動的にホスト名を取得してくれます。 sudo STORAGE_TYPE = " elasticsearch " ES_AWS_DOMAIN = " zipkin " ES_AWS_REGION = " ap-northeast-1 " java -jar /opt/zipkin/zipkin.jar zipkinサーバーのIAM Roleの設定 ES_AWS_DOMAIN, ES_AWS_REGIONからホスト名を取得するためにzipkin-serverのロールに権限付与が必要です。 (ホスト名[ES_HOSTS]で指定すればこの設定は不要です。) { " Version ": " 2012-10-17 ", " Statement ": [ { " Sid ": " Stmt1484898974000 ", " Effect ": " Allow ", " Action ": [ " es:DescribeElasticsearchDomain ", " es:DescribeElasticsearchDomains " ] , " Resource ": [ " * " ] } ] } 設定を変更してみて インスタンスの負荷の減少 見て分かる通り1/25前後で入れ替えています。 CPU負荷も減り、トレースデータを受け付けるインスタンスの台数も減らせています。 コスト削減 EC2インスタンスの台数を半分にしました。 またESについてはRDSの時よりも台数は増えましたが小さいインスタンスにしたため、コストとしては半分程度になっています。 検索高速化 MySQLの時に比較して高速にレスポンスが返却されるので負荷を気にせずに検索できます。 ServiceName,SpanNameの取得が遅い問題 MySQLの時はSQLのチューニングとテーブルにインデックスを張って高速化していたのですが、Elasticsearchのことがまだわかっていないので、どうしたらいいかわからず遅いままです。 検索と同様、チューニングできると思うので今後考えていきたいと思います。
エンジニアの鈴木です。主にAWS周りのことをやってます。 11月末から1週間ほど、AWS(Amazon Web Service) が主催するカンファレンス re:Invent 2016に参加してきました。開催場所はラスベガスでした。 今回得た経験を踏まえ、 海外のカンファレンスに参加するということ について思うことをまとめましたのでフィードバックします。 ただし、「海外のカンファレンスに参加すること」という意味合いで汎化して書いたつもりですが、実際はre:Inventにバイアスが掛かっています。 なので、 re:Inventに参加するということ と読み替えてもらったほうが適切かもしれません。(その判断は読者の皆様におまかせします。) また、たった一度のre:Inventへの参加という偏った主観であることと、re:Inventで得た技術的な内容のフィードバックはこの記事に含まれないことにご留意ください。 海外のカンファレンスに行ったことがない企業所属のエンジニアの方や、そのエンジニアの上司の方に読んでいただけたら嬉しいです。 まずはじめに、 「なぜ海外のカンファレンスに参加するのか?」 という問いについてです。 主観ですが、端的に 「現地でしか得られないものがあるから」 になります。 (当たり前) では、現地でしか得られないものとはなんでしょうか? それは個人の主観になるのでコレだ!というものに限定できません。 ですが、それは確実に存在し参加者へ影響を及ぼすと思います。 これだとフワッとしているので、少し視点を変えます。 シンプルに メリット・デメリット を考えていった時に、最終的に 送り出した企業・実際に行った人の両方にメリットがある と感じました。 その理由を「参加させる企業のメリット」、「参加者のメリット」として以下にまとめます。 参加させる企業のメリット まず初めに、費用を持つ立場から見た視点で見ていきます。企業(上司)サイドの話です。 企業が海外のカンファレンス参加を経費として認めてくれるパターンがあります。自分もそのパターンでした。 海外のカンファレンスに参加するにはコストがかかります。 実際にかかる経費は、普通に考えて 渡航費用・イベント参加費・現地での滞在費・出張中の人件費等があります。 日常的なコストと相対的に比較すると”安い”とは声を大にして言えません。 それでも自分は参加したほうがメリットが大きいと感じました。 その理由を見ていきます。 参加者の変化を促せる 普段と違う環境は、個人に対し確実に影響を与えます。 参加するイベントが提供する情報は、もともとその個人にとって興味のある分野のはずです。なので、限られた時間の中で、新しい知識を得たり新しいリレーションを築くことは、必然的にポジティブな方面への変化を促せると感じました。 自社の抱える 社員がポジティブに変化することは、企業にとって大きなプラス になると思います。 採用においてメリットを生む 昨今のエンジニアの争奪戦は人事的には頭の痛い問題です。 ビジネスをドライブしていける人材を確保していくことは大変重要ですが、優秀なエンジニアは複数社からの内定が出ることが多いので、どうやって自社を差別化するかがポイントになります。 その際、積極的に海外のイベントに参加することができる体制がある会社であることをアピールできれば、 採用の後押しとしてのメリットを生む ことができると思います。 社内エンジニアへの影響 会社で参加実績が作れると、自分も来年もしくは再来年は行けるかもしれないという期待がエンジニアに膨らみます。 期待が膨れれば、その技術に対してもっとコミットしようと思うし、 スキルが上がれば生産性にも影響がある でしょう。 素直で謙虚なエンジニアほどしっかりスキルを身につけて次のチャンスをものにしようと行動すると思います。 参加者のメリット 次に、参加者側からの視点です。 毎晩飲みにいけます。って話ではありません。(あながち間違っていませんが) 百聞は一見にしかずとはまさにこのことで、普段とは全く違う角度から経験値が上がります。 特に初参加であればその傾向は顕著でしょう。 参加者が得られるメリットとその理由を見ていきます。 海外とは無縁な人ほど、良い意味で変化の振り幅が大きい 普段、外に出て行く機会が少なく社内で黙々とプロダクトを開発しているエンジニアには、カンファレンスへの参加で受ける影響が大きく、それに比例するように変化の振り幅が大きくなると感じました。 自分に起きたわかりやすい例でいうと、英語に対するハードルが下がったり、新しい分野への興味が湧いたり、諸々ありますが、 はっきりとした変化が感じられました 。 普段得がたいリレーションが築ける機会がある 前提として、今回はツアーでの参加になります。ツアーにはそもそもリレーション強化の懇親会などがインクルードされていました。 なので、何のリレーションのない個人が現地で0からリレーションを築いたという内容ではありませんのでご留意ください。 海外までイベントに参加しにいくと言うことはそれなりに労力がかかります。その労力をかけても参加したい人たちが集まっているので、みんな話が通じやすくフレンドリーだと感じました。そのイベントが提供する技術的な分野に対し、最初から多くの共通項を持っているからなのかもしれません。 同じ時期、同じ場所に集まると思いもがけない出会いがあった りします。 自分の場合、カンファレンス最終日にとあるレジェンド的な方とたまたま席が隣になりお話しさせていただく機会がありました。その会話の中で自分が感じていたことの誤解が解けたり、海外のカンファレンスへの参加について同じような思いを抱いていることがわかったり、自分の行動範疇では到底得ることのできないようなお話をさせていただくことができました。 世界の広さを感じられる 本当にいろんな人がいます。そして、参加者全員がその分野に興味があって集まってきています。 世界中から集まってくるエンジニアと一緒にセッションを受けていると、公表されているサービス利用者の数字から 想像できる以上のインパクト がありました。 参加人数が多いカンファレンスであればあるほど、その傾向は顕著だと思われます。 英語へのハードルが下がる 出国前は何かと不安でした。自分はそんなに英語ができる方ではないからです。 ですが、行ってみたら意外となんとかなりました。なんとかなると 自信がつきハードルが下がる のを感じました。 セッションのスライドはわかりやすく簡易な英語で書かれていることが多いし、登壇者にはプレゼン慣れしている方も多いです。その登壇者が簡易な英語のスライドをベースにして話が進むので、セッションの内容も理解しやすかったです。(実際、街中のブロークンな英語の方が理解するのに苦労しました。) まとめ いままで延べてきた通り、海外の技術系イベントに参加するということは、 企業にとって短期的に見ても長期的に見ても良い投資 だと思います。 それは情報の鮮度的なメリットもありますが、もっと大きな要因として、現地に行くことでしか得られない人の成長を加速させる可能性がいろんな側面に秘められていると感じるからです。 ただ、上記に記述しましたメリットを享受するには、 一つ重要な前提条件 があります。 それは、参加者が 自らの言葉でフィードバックすることが必要 だということです。 企業にとって、 費用対効果のあるなしはフィードバックの質や熱に大きく依存する と思います。そのフィードバックが次回に向けた参加判断基準になります。 昨今では日本にいても情報が得られるタイミングは同じになりました。 なので、日本に居て情報をキャッチアップすることは容易であり、費用もかかりません。 ですが、現地でしか得られないものがあります。 だから、 自分で感じることが重要 で自分の言葉でフィードバックすることが大切だと思います。 もし海外の技術系イベントに参加したいと考えているエンジニアの方は、いまから積極的にアピールしましょう。ひょっとしたら会社が経費を持ってくれるかもしれません。 (仮に会社の選考から漏れたとしても自腹来てらっしゃる方もたくさんいます。) 企業や決済者は、エンジニアにどんどん旅をさせることをオススメします。さまざまな面で短期的にも長期的にも割のいい投資になると思います。 そして、参加者は、社内・社外・自分・次に行くかもしれない人のためにフィードバックをしましょう。 あなたのフィードバックがみんなを少しづつ良い方向にナビゲートする最初の一歩になる かもしれません。 このフィードバックが誰かの役に立てば幸いです。
はろーはろー!チバです。 今回は、22期2Q(7-9月の間)で「クリエイターの日」制度を利用しておこなった、 社内クラウドファンディングシステム「FU-SHA」 の企画〜リリースまでの取り組みの様子をお送りします! クリエイターの日制度を利用するに至った経緯 2016年11月に、「アイデアアワード」という 社内アワードに応募していたところ、グランプリを受賞 することができました\わーい!/ そのときの応募していたアイデアが「社内クラウドファンディング」。 一般社員の投票で選ばれたネタなので、みんなの期待を感じられてとても嬉しかったです。 クリエイターの日とは 度々当ブログにて開催報告をしている弊社の開発合宿制度です。 「こういう目的のために、こんなものを作りたいんです!」と申請すれば、職種関係なく、誰でも業務時間の10%を使い、合宿形式で研究・開発を行うことができます。 変化の激しいICT分野のマーケティング能力、技術開発能力を高め、イノベーションを創造するため、通常業務の枠を離れて、新たな技術や手法に取り組む機会を設けています。希望するクリエイターは、個人またはチームで特設プロジェクトの提案を行い、承認されたプロジェクトについて業務時間の10%を使い、合宿形式で研究・開発を行います。 http://creators.next-group.jp/ 「アイデアアワードで受賞できたからには、クリエイターの日制度を利用してカタチにしたい」と思い、参加を決意、応募しました。 クリエイターの日取り組みプロセス 今回の開発フローはこんな感じで進みました。 1. 立ち上げ - Process of Initiating チーム結成 社内に呼びかけ、趣旨に賛同してくれた2人を仲間に3人体制で参加を決めました。 チバ、ヤノ、タカラベの3人で社内クラウドファンディングの立ち上げに向けてプランニングを始めます。 リーンキャンバスを利用して思考の整理 リーンキャンバスとは、ビジネスモデルの企画のために用いられるツールです。 限られた1枚のスペースにぎゅっと詰めることで、本当に伝えたい計画「本質」をシンプルに経営者に伝えられたり、チーム内でシェアすることができます。 今回のクリエイターの日では、活動開始前に休日1日だけ集まり、「合宿」と銘打ってリーンキャンバスの作成をおこないました。 3人のチームで必要なスコープを絞り、期間内に成果物を用意できたのは、簡潔にまとめられた計画書があったからこそだと思います。 2. 計画 - Process of Planning 限られたリソースでのスコープ計画 チバ、ヤノ、タカラベの普段の業務上のスキルセットは下記です。 チバ:ディレクター ヤノ:ディレクター タカラベ:デザイナー 普段、フロントの企画・設計・コーディングなどを業務としている3人なので、システムの組み込みはやらないメンバー。 しかしチバ、ヤノの2名にもともと制作経験があったこと、また、タカラベのスキルがフルスタックな事から下記のようにページやパーツ、フェーズ毎に役割を再配分しました。 チバ:ページ構成のコーディング - ワイヤフレームの作成、デザインカンプの作成などを割愛することを心がけた制作フェーズ ヤノ:フォームのマークアップ、ローカルへのデータ保存実装 - 創民祭の「デモ映え」のために組み込み作業を優先してもらう タカラベ:メインデザイナー - 基本の色彩計画、マテリアルの統一のために見栄えに関しては1人に集中してもらう 今回のプロジェクトの範囲、およびスコープを明確に共有していたため上記のように振り切って制作に挑みました。 3. 実行 - Process of Executing 大まかな計画の芯を立てた後は、実装に入ります。 細かい仕様書のようなものは存在しないため、机を並べて「小さな意思決定」を口頭で確認しながら進めます。 その際に、 チーム3人の目的がぶれないために用いた手法がフレームワークの実践です。 顧客の心を捉えるフレームワーク マーティ・ケイガン「Inspired: 顧客の心を捉える製品の創り方」 Amazon CAPTCHA 製品化によって具体的にどんな問題を解決するのか? 誰のためにこの問題を解決しようとしているのか? 市場の大きさは? 製品化の成功をどうやって評価するのか? なぜ当社がこの製品化をやるのに最適なプレイヤーといえるのか? なぜ今なのか? どうやって製品を市場に送り出すのか? 成功のために絶対必要な要素は何か? これらを前提とした上で最終的な提案は何か?(やるかやらないか?) 上記心得を事前にすり合わせておき、デザインの方針や機能の提案などぶれないようにします。 ユーザビリティ10原則 ヤコブ・ニールセン「ユーザビリティに関する10のヒューリスティクス (問題解決に役立つ知見) / Ten Usability Heuristics」 website-usability.info システム状態の視認性を高める 実環境に合ったシステムを構築する ユーザーにコントロールの主導権と自由度を与える 一貫性と標準化を保持する エラーの発生を事前に防止する 記憶しなくても、見ればわかるようなデザインを行う 柔軟性と効率性を持たせる 最小限で美しいデザインを施す ユーザーによるエラー認識、診断、回復をサポートする ヘルプとマニュアルを用意する 上記はすべての評価はできなかったものの、今後の課題を挙げる良いデザインレビューができました。 ラベリングから操作性まで、一つの目線で様々な方面を見ることができるのでおすすめです。 4. 監視 - Process of Monitoring and Controlling ベンチマークの設定 「私たちはここまでのレベルに達しなければならない」を明確に するべく、世間のクラウドファンディングサービス、ユーザー投稿型のサービスを観察して特徴を羅列させていました。 品質コントロールのために、それぞれのサービスを使ったときの感情を書き留めておけるように工夫。 「この行動を起こしたときの感情を忘れないようにしたい!」というときには、見た目の印象とともにシナリオを文章で綴っておく ことも大切にしました。 5. 終結 - Process of Closing 最後に、成果物の報告フェーズを置きました。 社内システムの開発となると、然るべきところに「いいよ、やっちゃおうよ」と言ってもらうことが必要になります。 そのために、 創民祭参加者がデモンストレーションできること いのさんランチ(社長とランチできる制度)でα版のお披露目をして好感触を得ること を報告の場として選びました。 ここまでのフェーズは、すべて上記2点達成のために立てた計画です。 創民祭の結果 nextdeveloper.hatenablog.com おかげさまで、最優秀賞をいただくことができ、チームメンバーで 美味しいお寿司をご褒美 にいただきました(๑´ڡ`๑) 写真はヒラマサのお寿司、粒マスタードを乗せたものです。 創民祭でいただいた最優秀賞は、参加してくださった皆さんの投票によって決まります。 つまり、この票は社員皆から「期待されている」ということでもあります…! このプロダクトはα版を抜けてさらに良いものへアップデートされていくでしょう!していきます!!!! 2年後、3年後には社員がこのプラットフォームを使っている光景を実現させるために、 チームFU-SHAはたくさんの期待と応援を受けて回り続けます。 22期3Q(10-12月の間)の活動予定 3Qも、「クリエイターの日」制度を利用してFU-SHAのアップデートをおこないます。 今回はメンバーに新たにエンジニアのオオバを加え、システムとして稼働できるようになることを目指します。 またこの場を借りて、皆さんに楽しくてわっくわくするようなご報告ができることを楽しみにしています(^O^) ご期待くださいっ!チバでした。
こんにちは、新卒デザイナーの五十嵐です。 私はアプリチームに配属になり、主にアプリのストア内の画像・動画や集客バナーの制作をしています。 何事にも根拠が必要ということを学びながら、日々ものづくりライフに励んでおります。 今回は、私が携わった Androidアプリの宣伝用画像におけるA/Bテスト についてお話したいと思います。   そもそもAndroidアプリの宣伝用画像とは Androidアプリの宣伝用画像とは、下記の画像のオレンジの部分です。 はじめにユーザの目に止まり、おもてなしする部分になりますね。   A/Bテストを行う目的など Androidアプリの宣伝用画像はアプリの説明を視覚的に行い、ユーザーを引き付けるのに効果の高いツールです。 つまり、訴求性の高い画像であれば、アプリのインストール数が増えると考えられます。 そこで今回は、 元々のAndroidアプリの宣伝用画像と、より訴求性が高いと考えて制作した画像とでA/Bテストを行い、どの画像が一番インストール数が多いかを検証しました。 目的:インストール数を増やす 検証:宣伝用画像のクリエイティブを数パターン制作して比較する 手段:A/Bテスト ターゲット:20代後半〜30代の女性 1回目のA/Bテスト まず最初に、以下のことを考えてみてください。 あなたは20代後半〜30代の女性でお部屋を探しています。住まい探しアプリをインストールして、部屋を探そうと思い、Google Playで検索してHOME'Sというアプリを見つけました。 3つの画像のうち、どれが「インストールしてみよう!」という気持ちになりますか?   ■結果 上記の3パターンの画像でA/Bテストを行った結果、一番アプリのインストール数が多かったのは... Bパターンの 「間取り画像を追加して、住まい探しアプリのイメージを強く訴求したパターン」 でした!!!!!   ■考察 Bパターンが一番アプリのインストール数が多かったことにより、 間取り図をいれると元々のAndroidアプリの宣伝用画像よりも、 住み替え後のイメージがわきやすくなる と考えられます。 また、今回は20代後半の女性をターゲットと考えていたので、 女性向けに訴求するから、間取りに独立洗面台を作ろう 年齢的にも同棲を考えた人が多そう=2LDKにしよう といった2点の要素を間取り図に取り入れたことも、ターゲットに住み替えをイメージさせるのに役立ったのではないかと考えています。 2回目のA/Bテスト 1回目のA/Bテストの結果と考察を踏まえ、2回目のA/Bテストを行うことになりました。 2回目では、1回目のA/Bテストで一番インストール数が多かったBパターンと、カップルに強く訴求したパターンとで、どちらの画像が一番インストール数が多いかを検証しました。 ■カップル訴求の理由 集客バナーでは、カップル訴求バナーの効果が高いという結果がありました。 よって、ターゲットの年齢的にも同棲を考えた人が多いのではないかと考え、実際にソファに座っているカップルを見ることで、強く訴求できるはずという仮説を立てました。 ■結果 上記の2パターンの画像でA/Bテストを行った結果... ほぼ同じという結果 でした!!!!! ■考察 結果がほぼ同じだった、直接的な要因はわからないのですが、 カップルのイメージが強すぎたのではないか ということが考えられます。 そのため物件探しのイメージから乖離していると感じられてしまい、効果がイマイチだったのかと思います。 部屋全体が映り、風景としてカップルがいるくらいの写真にすると、効果が出たのかもしれません。 まとめ A/Bテストを通して思ったこと、学んだことをまとめます。 Google PlayではA/Bテストの環境が整っているのでやるべき デザイナーは制作物のどんな要素に対しても根拠をもって制作しなければならない いままでの数値やターゲットを狙ったクリエイティブに仮説を立てて検証をする テスト環境が整っており、何がインストールの要因になるのかを考えるのも楽しいので、ぜひ検討してみてください! 最後に あたかもたんたんと制作したような記述ですが、実は完成するまで何回も修正を経て上記のアウトプットになりました。 間取りを一つ作るのにも、当初はお仕置き部屋(ドアのない部屋)を作ったり、驚くほどコンパクトなお風呂の間取りを作ったりしていました。 チェックやアドバイスをもらって初めて、「確かにこんな間取り住みたくない!」と気づくくらい、ミスを見過ごすことが多かったです。 その度にセルフチェックリストに書き込んで、見直してを繰り返しては、「自分のデザインに対して客観的に見る習慣や視野を養わないと」と思う日々ばかりでした。 次回は、より効果が出る仮説と細部まで拘ったクリエイティブのものを作りたいと思います。気になる方はGoogle Playを見に来ていただけると嬉しいです。 スマートフォンでご覧いただけると、宣伝用画像がみられます! play.google.com 以上です。ではでは。
こんにちは! 新卒1年目エンジニアの佐藤茉弥(さとうまや)です。 今回は、先日10/4(火)に開催されたネクストの社内イベント「第3回創民祭」の様子についてレポートさせていただきます。 創民祭(そうみんさい)とは 聞き慣れない言葉かと思いますが、「創民祭」は、 業務内外で作ったプロダクトを発表し合うお祭り です。 各展示ブースでは、プロダクトに関して説明を聞くのみではなく実際に触れることもできます。 半年に1回のペースで開催されていますが、とても刺激になる楽しいお祭りです!お酒と軽食も出ます! 前回までの開催の模様はこちらの記事をご覧ください。 当日の様子 ((ざわざわ・・・!)) にぎわってきました! 前回に引き続き、今回も DJさん が来て下さいました! かぶりものはちょっと暑そうでしたが、 おかげで 会場の賑わいもHOT になってきました!! 新卒1年目同期や研修後の内定者 もたくさん見に来ていました! 興味深い発表があったようです。 なんと今回は特別ゲスト、 社長の井上 も参加しています! 役員の山田 も興味津々です! 展示プロダクト紹介 エントランスプロジェクション 新オフィスのエントランス で表示する、プロジェクション制作の展示がありました。 ホームズくんを動かして、1人1人の社員と会話することができます。 制作していたときに、こちらの画面の中のキャラクターになりたい社員を募集していたので、私も描いてもらっています! ぺろぺろキャンディーがなかったので、お酒を持って撮影してきました(笑) 似顔絵制作ツール「NEXT STAFF MAKER」 こちらは私の同期である、 新卒1年目のデザイナー4人組チーム が作ったツールです。 自分に近いパーツを選択していくと、ホームズくんっぽい自分の似顔絵アイコンを作ることができます! 開発しているところにも潜入してきましたが、とても楽しそうに制作・開発していました。 W3C push api基盤 push通知といえばスマートフォンアプリですが、このプロダクトは、開発者が複数行のjavascriptをサービスに追加するだけで、 W3C push apiを用いたブラウザへのpush通知を実装できるというツールです。 Webサイトを見ていないユーザにもブラウザを開いてさえすれば、リアルタイムで通知を送ることができます。 Webサイトを見ているユーザに対しては従来のnotificationでも可能です。 さらにスマートフォンのユーザにはブラウザを開いていない状態でも通知を送ることが可能です。 (下記の構成図でいうと「新しい物件が登録されました」にあたります) 弊社のサービスにどんどん新しい技術を取り入れ、 会社をリードしてくれるプロダクト でした。 ぬいぐるみハック・ディープラーニングでファブリックデザイン こちらの展示ブースでは、異様な動きをするクマさんがお出迎えしてくれました。 最近流行の ファブリックデザイン を 物件の間取り図を元に制作する という発想に聞いていた人も食い入るように聞いていました。 R言語で構築した社内用分析ツールキットのデモ エンジニア以外でも、 容易にアクセス数などのデータを知ることができる社内用分析ツール の発表をしていました。 こういうものが社内でもどんどん取り入れられるようになると、職種に問わず、だれもが知りたいときに知りたい情報を知ることができそうです! このツールを作るにあたり分析用プログラムの開発フローをまとめた結果、分析タスクの運用・共有が簡単になったそうです! そこで得られた知見の一部はQiitaにも投稿されていますので、こちらをご覧ください。 Amazon CloudSearchを用いたcrontab検索システム Amazon CloudSearchでLinuxサーバの「crontab」を検索するシステムです。 見た目の派手さはありませんが、 複数のサーバーでのcrontab管理の辛さを解消する 素晴らしいプロダクトです。 詳しい内容はQiitaに投稿されていますので、こちらをご覧ください。 社内クラウドファンディングPJ「FU-SHA」 「自発的に "うごきたい!" と思える社内の仕組みを創る」 をビジョンに作られた 社内クラウドファウンディング・プラットフォームの展示です。 ネクストには、アイデアアワードという制度があり、社内のアイディア募集コンテストのようなものも行っています。 そちらで賞をとったアイディアが開発され、展示されました! インタラクティブjson incremental diggerツール 開発したjidはgo言語で書かれた Json Intaractiveフィルターツール です。 jsonをコマンドライン上で対話的にフィルタリング&選択でき、とても便利です。 とても簡単&スピーディですよね。 jidはgithubで公開されています。 「使ってみたい!」という方はこちらからお試しください! Exercise Mouse 人事(採用担当) も、 全身を使ってのマウス操作 に挑戦していました! ジャンプするとクリックできます! 私も挑戦しましたが、セグウェイに近いものを感じました。 エンジニアの運動不足を解消できそうです。 受賞プロダクト tech賞 技術が一番光っていたプロダクトに与えられる賞、tech賞に輝いたのは・・・ 「「  Amazon CloudSearchを用いたcrontab検索システム  」」!!! おめでとうございます!!! 山田賞 役員山田が選んだのは・・・ 「「  W3C push api基盤  」」!!! 役員山田からなにか嬉しいプレゼントがあるかもしれません・・・! 最優秀賞 最優秀賞とは、観覧した人の投票によって決められる 「誰もが心を動かされたプロダクト」に贈られる賞です。 堂々の最優秀賞は・・・ 「「  社内クラウドファンディングPJ 「FU-SHA」  」」!!!! 今後の活躍にも期待です! 最後に 創民祭は今回も大盛況でした! 内定者時代からすべての創民祭に参加してきた私ですが、 参加すると、 「もっと自分も何か作りたい!技術力をつけたい!」 と感じました。 次回の開催も楽しみです! 以上、第3回創民祭レポートでした。