こんにちは、NASが吹っ飛んで代わりに7年ぶりに自作PCを組み立てた LIFULL HOME'S事業本部 技術開発部 の冨田です。 バックアップは大事ですね & パーツを選べるって幸せですね。 LIFULLエンジニアのインタビューを通して、なかで働くエンジニアはどんな人なのか、どんなことをしているのか、を知ってもらうきっかけになればと思い、このような取り組みを行っています。 前回の記事 も是非ご覧ください。 ゲスト紹介 本日のゲストは LIFULL HOME'S事業本部 技術開発部 の中野さんです。 品質保証や開発プロセスの改善を担当しているエンジニアマネージャーです。 目次 ゲスト紹介 目次 学生時代 LIFULL入社前 LIFULL入社後 社外での活動 家庭とスキルアップとのバランス お勧めの本、技術のキャッチアップ 若手に向けて 将来のビジョン 次回予告 編集後記 お知らせ 学生時代 冨田(以降 冨): 初めてPCを触り始めたのはいつごろですか? 中野(以降 中): 小学校の3、4年生ぐらいですね。 兄がパソコン少年だったので、彼が遊んでいたMSXで同じようなことを真似してベーシックのプログラムを書いていました。 冨: いつ頃からプログラムに興味が? 中: 高校の授業でVisual Basicを習っていて、その位からだと思います。 ただ、本格的にプログラムを書き出したのは会社に入ってからですね。 LIFULL入社前 冨: エンジニアを目指した背景は? 中: 高校を卒業するときに、コックになるかプログラマーになるかですごく迷っていました。 クリエイティブなことが元々好きで、料理のほうがより人に感動を与えられると思ってコックの道を選びました。 冨: 衝撃の事実ですね。 まさかのコックに。 中: 調理師学校を卒業して、フレンチの鉄人のレストランに就職しました。 しかし、体力的にかなりキツくてすぐに挫折してしまいました。 冨: 鉄人の店というのもさらにスゴイですね。その後エンジニアに? 中: 友人の紹介で受託系の開発会社に就職し、そこから更にSIerに転職しました。 分野も製造、保険、出版など様々な開発に携わり、証券系の開発も行いました。 冨: QAエンジニアに転向したきっかけは? 中: ちょうど10年くらい前ですが、当時Seleniumが徐々に認知されはじめている状況で、JUnitとSeleniumを組み合わせて実行管理するような自動テストのフレームワーク開発を行っていました。 そこからだんだんとテストに興味を持ち始めました。 ある時に、その証券会社のお客様の別プロジェクトが炎上しはじめて、テストをまとめる人がいないと言うことで「テストチームのリーダーをやってくれないか」という依頼をいただきました。 そこで初めてテストチームをマネージメントしてプロジェクトを切り盛りする経験をしました。 そこが大きなターニングポイントになっていますね。 冨: そのプロジェクトがスキルアップに一番インパクトがありましたか? 中: 自分の中でインパクトがありました。 自分のチームが、もしバグを見逃して稼働してしまうと、新聞に載ったり、監査が入って業務を停止しなければいけない等のリスクがありました。 常にどうあるべきかを考えてテストに集中していた時期でした。 冨: プレッシャーがあったからスキルが伸びたのですか? 中: 大きなプレッシャーを乗り越えながらプロジェクトで結果を出し続けるということにすごく意味があったと思います。 LIFULL入社後 冨: その後2014年にLIFULL(旧ネクスト)入社するわけですが、転職したきっかけは? 中: 当時は色々迷っていて複数の会社の方と話していたのですが、現在の上司の藤澤さんと話してる時の感じが一番自分にしっくりきてると言うか、気持ちが良かったんですよね。 それが結構大きくて、一緒に仕事してみたいと思いました。 テストのシンポジウムで発表した時に彼も偶然 裏番組というか横の枠で発表していました。 彼の発表したテーマがテストの自動化だったんですね。 当時はもちろん、色々と情報収集していたので知らないはずはなかったんですが、何で聴きに行かなかったんだろうと思ったら裏番組だったんです。 その偶然にちょっと運命を感じました。 冨: 藤澤さんの人柄とかも入社の理由なのですね。 中: はい、あと会社の雰囲気が良いというのも大きな理由のひとつですね。 廊下ですれ違う人たちの雰囲気がすごく良くて、楽しそうに仕事している姿を見て本当に羨ましく感じました。 冨: 現在のミッションは? 中: ひとつは今期からユーザーファースト推進グループという組織を立ち上げました。 人間中心設計の専門家の小川さんと一緒に本当にユーザーによいと思ってもらえる、つかいやすいプロダクトを生み出すための施策を進めています。 もっとユーザーに「スゲー」と思ってもらえるプロダクトを生み出す仕組みを作れたらいいなと思っています。 もうひとつは、社内の開発プロジェクトに向けたQAテストのサポートとリリースの高速化、自動化を進めています。 テストの技術開発と最適化、またデプロイメントパイプラインの構築によって <より開発しやすい> <安全に高速なリリースができる> を実現したいと思っています。 web-tan.forum.impressrd.jp 社外での活動 冨: JaSST’18 Tokyo の共同実行委員長のお一人だったり、ソフトウェア・シンポジウムで「 探索的テストにおける不具合発見率向上に向けた取り組み 」の発表をされたり、 テスト設計コンテスト の予選の審査委員をされていたり、 JSTQB の技術委員をされていますがきっかけは? 中: 最初のきっかけは JaSST というソフトウェアテストのシンポジウムなんですけど JaSST のセッションから派生したソフトウェアテスト設計の研究活動グループがあって、そこに参加しました。 そこで知り合った JaSST や JSTQB を運営している ASTER という NPO 法人の人と知り合ってそれをきっかけに JaSST の活動をはじめました。 その後 JSTQB の活動にも加わるようになりました。 冨: どのようなところが学びになりますか? 中: 有識者がたくさんいるので、その人達と話すことで学びになりますね。 また、活動していく中でソフトウェアテスト業界全体の課題や海外との技術的レベルの差を感じる事が多いので、解決していきたいと考えています。 冨: 日本のソフトウェアテスト業界の課題とは? 中: 色々あると思いますが、ソフトウェアテストと品質の価値がきちんと理解されていないことですね。 業界全体としてソフトウェアテストに関わる人たちの技術がまだまだ発展途上の部分があるので、そういう所を解決していきたいと考えています。 冨: 解決のために取り組んでいることは? 中: 所属するNPO法人としては ソフトウェアテストシンポジウムなど有識者が集まる場を作ったり、ソフトウェアテスト技術者の認証資格試験の運営、テスト設計コンテストなどのようなテストの技術を学べる場を提供するなど、技術振興にむけて様々な取り組みを行っています。 個人としてはJaSST'18 Tokyoの共同実行委員長を務めさせていただくことになったので、現場のテスト技術者のモチベーションや技術向上につながるようなコンテンツの開発を行っていこうと思っています。 冨: JaSST Tokyoはどのくらいの規模のイベントなんですか? 中: 2日間でのべ千数百人来場されるので、ソフトウェアテストのイベントとしては日本で最大級です。 次回は2018年の3月7日(水)、8日(木)に御茶ノ水の日本大学 理工学部の駿河台校舎1号館で開催します。 ソフトウェアテストの学びになるコンテンツをたくさん用意しているので現場のテストエンジニアだけでなく、開発者や管理者の人たちにも参加して欲しいですね。 JaSSTソフトウェアテストシンポジウム-JaSST'18 Tokyo 家庭とスキルアップとのバランス 冨: ご結婚されていますが、家庭でスキルアップの時間って取れていますか? 中: お互いにそれぞれの時間持つようにしています。 結構自分の時間を自由に設定できるのでそんなに苦労はしてないですね。 社外活動のための作業で追い込まなければならない状況だとカフェで集中して作業していますね。 お勧めの本、技術のキャッチアップ 冨: 若いWebエンジニアが読んでおいた方がよい本はありますか? 中: 高橋 寿一さんの書いた「 知識ゼロから学ぶソフトウェアテスト 」っていう本がおすすめです。 冨: QAを目指す人が読んでおいた方がよい本はありますか? 中: 私は秋山 浩一さんが好きなので「 ソフトウェアテスト技法ドリル 」で勉強するのをおすすめしたいです。 冨: 自分が若い頃に読んでおいた方が良かった本や最近気になる本はありますか? 中: 先日ソフトウェアテスト業界で著名な Rex Black 氏にお会いする機会があり、会う前に彼の書籍を読み直しました。 うちのソフトウェアテストのスタイルで探索的テストをプロジェクトのある工程に差し込むということをやっているのですが、そのアイデアがそのまま本に書いてありました。 かなり昔に読んでいたのですが、当時はピンと来ていなくてわからなかったんでしょうね。 昔読んでわからなかったことを今読んで再発見するということがあったので、彼の本を真剣に読み直そうと思っています。 冨: 技術のキャッチアップはどうされています? 中: 新しい技術に関しては論文を読んだりカンファレンスで発表を聞いたりしています。 海外のカンファレンスは動画を公開していることもあるのでYouTubeなどで観ています。 若手に向けて 冨: QAからみてWebエンジニアがどのようなことを意識して開発に取り組むと良いですか? 中: テストしやすい用に作って欲しいという単純な思いはあります。 しかし、それよりもたくさんのユーザーに使ってもらって、ユーザーに良いと思ってもらえるのが我々にとっての大きな価値なので、細部にまでこだわって、最後まであきらめずに作り込んでほしいですね。 冨: QAとWebエンジニアとの意思疎通で用語はどうやって覚えれば良いですか? 中: 社内の標準としてテストの言葉と概念はJSTQBの用語に沿っています。 テストの基本的な設計の手法はQA側から標準化して全体にレクチャーするのが正しい動きだと思っています。 そういった設計の技術の標準化であったり、用語の整理を今後少しずつやっていけたら良いですね。 冨: エンジニアとしてのこだわり、哲学的なものはありますか? 中: ソフトウェアテスト業界との関わり合いや循環をおこすという所をこだわっています。 Web系のテストエンジニアは技術の選択ができるので、トラディッショナルな技術を学びつつ、新しいことにも興味を向けてそのバランスをとりながらそれを現場に戻してくとか。 自分たちの中で発展させて外にアウトプットして循環させるということが、わりとできているのかなと思っています。 冨: 自分自身が若い頃にやっておけばよかったなと思うことはありますか? 中: 昔は仕事が大好きでオフィスにこもっていたのでもっと色々な人とコミュニケーションをとればよかったと思っています。 LIFULLのエンジニアは飲みに誘ってくれたり、誘ったら来てくれる人が多いので、よくものづくりの人たちと外でもコミュニケーションをとっています。 コミュニケーションする中で人の考えを学べたり、自分の中の考えが明らかになったり、新しい興味を発見できますね。 将来のビジョン 冨: 直近取り組みたいことは? 中: 直近で取り組みたいことは2つあって ひとつは社外に自分が持っているノウハウを論文や資料に起こして発表できるように準備していて、 具体的には、自分のテスト設計のテクニックをまとめています。 もうひとつは、社内で新しいコンセプトのテストツールを作ろうと試行錯誤しています。 冨: そのテストツールができるとどんなことが実現できるんですか? 中: 回帰テストのコストが圧縮できたり、精度の高い検証ができるようになります。 冨: 今後どのようなエンジニアを目指していますか? 中: 社内でのQAの業務も幅広くなっていて、例えば今期からユーザビリティの評価プロセスが強化されてますが、今後も開発プロジェクトに向けてそういったメニューをたくさん作って色んな品質の向上に貢献できるようになれば良いなと考えています。 外部の発表にも興味があるので引き続き継続できたら良いなと考えています。 次回予告 冨: この人のスキルアップ術を聞いてみたい、またはお薦めなエンジニアはいらっしゃいますか? 中: AIを担当されている林さんのことを知りたいですね。 データサイエンティスト的なこともされていますが、今までの経緯と今後どのようなことを取り組んでいくのかに興味があります。 編集後記 シンポジウムで得た知識を発展させ業界へ循環させるという姿勢が素晴らしいと感じました。 意外な経歴をお持ちの中野さんでしたが、エンジニアになれるチャンスは色々あるのだなと感じました。 お知らせ LIFULLではQAエンジニアをはじめ各職種で採用を行っております。 こんなエンジニアと働きたい! という方は弊社の採用サイトもご覧ください! recruit.lifull.com
こんにちは!そして初めまして!LIFULL HOME'SのiOSアプリチームの又来です。新卒1年目の新米エンジニアです。入社して早くも3ヶ月が経ちますが、ようやく社会人生活にも慣れてきたところです。 さて、6/5-9にCA, San Joseで行われたWWDC 2017では、iOS11の発表やARKitなどをはじめとする新技術の発表がありましたね。 今回はその新技術の共有会ということで、「WWDC - Developer’s Living」を開催しました! 発表 Core ML / Vision Frameworkを使ってできること @shingt さんの発表です。 Core MLを用いてiOS上で画像解析技術の利用をするための知識やできることについて発表していただきました。 画像解析技術の利用ハードルが低下した Core MLは学習済みのモデルを扱うことができるので、Vision Frameworkと組み合わせることで精度が高い画像解析が行えるようになります。また、取り込んだ学習モデルを使って、物体検出などのTracking(物体の追跡)が可能になります。 今回新技術の発表があったARKitと組み合わせることで空間上に検出した物体を追跡しながら投影するなんてこともできそうですね。 iOS11からの位置情報アプリの立ち向かい方 @SatoTakeshi さんの発表です。 iOS11から変更があった、位置情報について発表していただきました。 常に許可から「このAppの使用中のみ許可」に iOS10までの位置情報の認証は、「常に許可」と、「このAppの使用中のみ許可」のどちらかをユーザーに問い合わせれば良いだけでした。しかし、今回からは常に許可しか問い合わせていないアプリも「このAppの使用中のみ許可」を 強制的に出すようになりました。 今回はその認証に対する変更点だけでなく、細かい変更部分など位置情報アプリを作るなら欠かせない変更点とその対策について紹介していただきました。 WWDCに学ぶライブコーディング+CoreNFC @fromkk さんの発表です。 WWDCでの発表はプログラムをリアルタイムに実行しながらコーディング行う、ライブコーディングが多いです。 そんなライブコーディングの良さをCoreNFCのデモ共に発表していただきました。 Xcodeのコードスニペット(入力補完)を使う コードを書きながら発表するのは緊張したり、書くべきコードを忘れたりしますよね。そんな時はXcodeの入力保管を使って、まとめたいコードを簡単にショートカットに登録すると、発表中にど忘れしたりすることがなくいつでも呼び出しが可能になります。また、コメントを記述することもできるのでわかりやすそうです。 発表では、コードスニペットを用いてNFCタグの認証のデモを披露していただきました。 映像出力機器の不備でテレビのモニタに映しております。この度はご迷惑をおかけしました。 iOS 11からのアプリ間ファイル共有 @ktanaka117 さんの発表です。 iOS11からアプリ間でファイルのやりとりができるようになり、アプリ側で実装するためのやり方について発表していただきました。 ファイル共有には送信側、受取側どちらも対応する必要がある 渡したい画像などのファイルを送信するためには自身のアプリ側でファイル共有の対応をすれば良いですが、アプリ間で共有をする場合は受け取る側も共有の実装が必要になります。 この機能を使ったアプリがこれからたくさん出てくることがカギになりそうです。 Dictionary for Swift4 Dictionary for Swift4 from Takuro Hanawa 弊社の 塙 拓朗 の発表です。 Swift4.0でDictionaryの機能が便利になりました。 Dictionaryが扱いやすくなった Swift4.0での変更点をいくつか挙げると、 Key-ValueのペアになったSequeneタイプからDictionaryを生成できるようになった 重複したKey(Sequenceタイプ)に対して処理が可能 初期化だけでなく既にあるDictionaryに対しても行えるmergingとmergeが追加 FilterとMapの扱いが簡単になった 取り出しの際にデフォルトが指定できる Sequeneをグルーピングしやすくなった あらかじめ容量を確保できるようになった などなど、痒い所に手が届くようにパワーアップしました。 直接的な新機能ではありませんが、開発者としては嬉しいアップデートですね。 PDFKit @kishikawa katsumi さんの発表です。 Macでは使うことができていたPDFのプレビューですが、iOSでPDFKitが使えるようになったこと、簡単に実装できるようになったことをデモを交えて発表していただきました。 ページプレビューからスキップまで簡単に PDFKitを使うと簡単にビューワーが作成可能になります。文字検索をしたり、ヒットした文字にattributeを指定してマーカーを引いたりすることができるようになります。また、文字検索での機能について、行をまたぐなどをすると空白文字が入ってしまい、検索にマッチしない場合があるので、空白や空行を取り除く処理が必要になります。 これまでiBooksなどのビューワーアプリを開発してきた方はこのPDFKitを使ってみてはいかがでしょうか。 デモを拝見しましたが、とても簡単に実装できていたので今後のアプリ開発が楽になりそうですね。 ARKit 弊社の 池田 和洋 の発表です。 今回WWDCでの大注目を浴びたARKitの機能を用いたデモアプリについて紹介させていただきました。 拡張現実オブジェクトの合成を可能とするデモでは、平面を認識した位置にボールを出現させ、ボールが平面に衝突するとバウンドするようなものを実演しました。 特別なハードウェアはいらない 用意するのはiPhoneまたはiPadのみでARが使えるようになります。(厳密にいうと、A9以上のチップ内蔵のものなのでiPhoneは6s以上、iPadはProか第5世代のみ) ARKitでは机や床など平面を認識することが非常に得意で、空間上に出現させたオブジェクトもブレることがほとんどなく、精度が非常に高いものになっています。 最後に 共有会が終わった後はみなさんでワイワイ交流会! 懇親会ではじゃんけん大会を開催し、なんと景品は現地でしか買うことのできないWWDCのお土産です!(欲しい) グッズをゲットした方々、おめでとうございます!! WWDCで発表があってから数週間にも関わらずみなさん新機能を使った開発を既にスタートさせていました。 今回のアップデートで大幅にできることが増えているのは確かです。 最新の知見を共有する場にもなり非常にアツいイベントになったのではないかと思います。 これからのiOSアプリに期待です!
こんにちは、この記事の校正のために textlint 試しているLIFULL HOME'S事業本部 技術開発部 の冨田です。 LIFULLエンジニアのインタビューを通して、なかで働くエンジニアはどんな人なのか、どんなことをしているのか、を知ってもらうきっかけになればと思い、このような取り組みを行っています。 前回の記事 も是非ご覧ください。 ゲスト紹介 本日のゲストは LIFULL HOME'S事業本部 新UX開発部 の高橋さんです。 iOSアプリのLIFULL HOME’S と そのバックエンドを担当しているエンジニアです。 目次 ゲスト紹介 目次 学生時代 LIFULL入社前 LIFULL入社後 家庭と趣味とスキルアップのバランス おうちハック 技術のキャッチアップ、好きな開発環境、言語など 若手に向けて 将来のビジョン 次回予告 編集後記 お知らせ 学生時代 冨田(以降 冨): 初めてPCを触り始めたのはいつごろですか? 高橋(以降 高):中学の時に父親が買ってきた Windows のペイントをちょっと触った程度ですね。 冨: いつ頃からプログラムに興味が? 高: 大学の課題でC言語に触れました。 自宅にLinuxのPCを用意して、さらに工夫したコードにしていましたね。 研究室時代は通信レイヤーからメタデータデータベースなど広く扱う研究室で、 私はWebアプリを作ってメタデータでレコメンドするような研究をしていました。 冨: エンジニアを目指した背景は? 高: もともと手を動かしてモノを作るのが好きで高校の頃から研究寄りのエンジニアになろうと思っていました。 LIFULL入社前 冨: LIFULLに入社される前はどのような仕事を? 高: 電機メーカーに5年ほど勤めていました。 最初の2年くらいは研究職で言語はC#、通信プロトコルからWebまで幅広いことをやっていました。 その後、AndroidやiOSアプリの開発を製品寄りの部署で担当することになったので、品質には気を配るようになりましたね。 iOSアプリは1から作ってリリースしました。 アプリを作ると言ってもシステムの設計が良いだけでもだめで、如何にユーザーにストレスなくするか、UIスレッドをブロックしない、ユーザーが使い易い設計、ビジュアルのアピアランスを含めてどうしたらいいんだろうって… すごい考えることが多くて総合的に力が付きましたね。 LIFULL入社後 冨: その後2015年にLIFULL(旧ネクスト)入社するわけですが、電機メーカーから自社サービスに転職したきっかけは? 高: 電機メーカーでアプリを作っていてユーザー向けのプロダクトが楽しいと感じて、研究よりそちらの方が向いてるなと感じました。 もっと高度なアプリを作りたいと思い、より最新の技術に触れられ、リリースサイクルが速い環境に身を置きたいと思って転職しました。 冨: スキルアップに一番インパクトがあったプロジェクトはありますか? 高: tvOS版のLIFULL HOME'Sアプリ はSwiftを使ってフルスクラッチで開発したので、新しいライブラリの選定もして、iOSアプリにつながる知見を貯めることが出来ました。 リーダーに近いこともやっていたのですが、メンバーが素晴らしく自主的に動いてくれたので順調に開発が進み、ストアの特集にも掲載されました。 iOS版のアプリだと「1人で家を探す」体験になりますが、tvOS版だと「家族で一緒に家を探す」という新しい、面白い体験を提供できたと思っています。 家は家族で住むものなので今後も「家族で一緒に家を探す」という体験を追求していきたいと思っています。 冨: tvOSの勉強会 も開催され、気付きはありましたか? 高:まだ、リリースされているアプリが少ないので基礎的な情報もまだ流通していないという印象ですね。 これから盛り上がっていきそうな雰囲気を感じました。 冨: 社内ツールとしてチャットワークに登録されているタスクの期限が近いとお知らせしてくれるチャットボットも作っていましたよね? 高:業務の効率化で情報共有の手段としてチャットボットは導入しました。 その機能や、バグチェック担当者を毎週ローテーションで割り振ってくれる機能があるのですが、後輩が自分の発想で実装してくれました。 その場を提供できたのは嬉しいですね。 元々はConfluenceやJIRAで集約された情報の更新が気づきにくいのでチャットワークで通知するために導入したのですが、まだ実現できていないですね。 冨: Jenkinsも導入していましたよね? 高: 前職では当時デブサミで自動UIテストやCIの話が盛んだったのでJenkinsを導入しました。 LIFULLではすでに導入されていたので使い倒そうと思いました。 JenkinsからGitのブランチを指定するとDeployGateからベータ配信し、Chatworkで通知するようにしました。 Jenkins + Deploygateを使った簡単ベータ配信 from 庸介 高橋 www.slideshare.net 家庭と趣味とスキルアップのバランス 冨: 前回の磯野さんも育児休暇を取得していましたが、高橋さんはどうでしたか? 高:社内では短い方ですが、妻と相談して一ヶ月にしました。 冨: 子どもが生まれた後どうやって技術のキャッチアップの時間を作っていますか? 高: 通勤時間と子どもが寝てからですね。 通勤は片道1時間くらいあるので、立ってる時はRSSリーダーで情報収集、気になる技術の調査、英語の勉強、Podcastを聞いていたりしますね。 電車で座れるとノートPCを持ち歩いているのでコードを結構書いてます。 冨: 趣味でテニスをされていますが、家庭、スキルアップとの時間配分ってどうされていますか? 高: 基本は家庭優先ですね。その次はスキルアップ。 テニスは中1では軟式、大学では硬式をしていました。 テニススクールに今も通っているのですが、子どもが寝てから行っています。 週末には試合が入ることもあるのでその埋め合わせが大変ですね。 冨: 体力づくりもエンジニアリングに影響してきたりします? 高: ストレス発散にはなりますね。 メンタルも鍛えられる、気持ちをコントロールできるような気がします。 おうちハック 冨: おうちハックで<家族の帰宅を通知してくれるキーホルダー>を作られていますがきっかけは? 高: 勉強会を運営している人が前職の先輩で、「次回発表してね」って言われて期限が決まっていてやらざるを得ない状況に追い込まれました。 期間は結構あったので構想を練ってRaspberry Piを買って、知り合いなどにセンサーは何買ったら良いか尋ねてから買いました。 電子回路はお手本を見て組みました。 冨: 家族の反応はどうでしたか? 高: 今まで作ったものは家族が使ってくれないものだったのですが、これは家族が喜んで使ってくれました。 家についたことをいちいち連絡するのは面倒だし、GPSで位置情報を共有するアプリもありますがプライバシーとかの問題もあるのでこの方法がベストだと思いました。 共働きのときは「ご飯作っておいて」、「外で食べてくるよ」とか連絡しやすい状況になりました。 冨: 勉強会での反響はありましたか? 高: 周りからアドバイスをもらえたり、コンクールに出してみませんかと言われたり、 本にも掲載されました 。 コンクールで賞は取れませんでしたが、その後登壇する機会がもらえたり、そこからネットワークができたり、発表を見た人から話しかけてもらえるので嬉しいですね。 ただ参加するだけとは比較にならないくらいの経験を得られましたね。 また、発表資料を作ることにより、試行錯誤しながら作っていた設計がセルフレビューでき、より洗練されました。 おうちハック発表会 #5 家族の「ただいま」を教えてくれるキーホルダー from 庸介 高橋 www.slideshare.net 技術のキャッチアップ、好きな開発環境、言語など 冨: どのような開発環境が好きですか? 高: アプリがメインなのでXcodeが中心ですが、サーバー上でコーディングしたり、設定ファイルを書き換えるシーンが増えているのでVimを勉強しています。 言語は好き嫌いなく雑食で生きています。 必要なら必要な言語をその都度覚えて使うというスタンスです。 冨: お薦めの本はありますか? 高: 詳解Swift、詳解Objective-Cは定番かつ鉄板ですね。 WEB+DB Press、Software Designはたまに読んでいます。 Effective Javaで設計や命名ルールなどのベストプラクティスを得られましたね。 Javaは歴史が深い言語なので書籍でしっかりと学べる気がしていて、Swiftなど最近の言語はWebから学ぶことが多いです。 冨: 技術のキャッチアップはどうしています? 高: feedly、Twitter、ポッドキャストのRebuildなどですね。 あとは本屋に行ってネタを探したり、iOS、Swift、IoTの勉強会やAWS、GCPなどの大きめなカンファレンスもいきますね。 冨: 最近興味のある技術はありますか? 高:IoTが気になっています。 ずっとアプリをやってきて楽しいですが、さらに高度で新しいことをやりたいですね。 通信周りも以前やっていたのでハードに関連するものもやりたいと思っています。 冨: 取捨選択はどうしています? 高: 以前は気になったら全て調べていましたが、最近は現在持っているスキルに隣接する分野を選んでが習得して隣接領域を徐々に増やしています。 冨: アウトプットはどうしています? 高: テニスの試合結果を管理するRailsでアプリを書いていて、あと少しでリリースしたいと思っています。 冨: Railsはこのために覚えたのですか? 高: 結構前から調べていました。このアプリを思いついた時にRailsがマッチすると思って選択しました。 その他にもテニスのフォームを繰り返し確認するためのアプリをまだ公開はできていませんが、作っています。 既存のアプリは繰り返すために指でシークしないとならないので不便でした。 冨: 時間のハックなどはしていますか? 高: 通勤時間などのスキマ時間を効率的に使っていますね。 調べ事したものはEvernoteに書き留めています。 散発的に調べてしまうと見つからなくなるので検索できるようにしています。 若手に向けて 冨: エンジニアとしてのこだわり、哲学的なものはありますか? 高: プロ意識を持って設計、実装しています。 判断に迷うときは「それはプロフェッショナルとしての判断なのか?」ということを意識しています。 あと新しいデバイスがでたら触ってみるというのを心がけています。 触ってみることによって新しい発想が出くることもありますし、引き出しが多いと実現できることも増えるので。 冨: 自分自身が若い頃にやっておけばよかったなと思うことはありますか? 高:アウトプットをもっと出す、コードを書いて成果をまとめて、リリースするなり、社外で発表するなり、OSSにするなりしておけば自分の価値を上げられたと思いました。 将来のビジョン 冨: 今後どのようなエンジニアを目指していますか? 高: ちょっとしたアイデアのサービスではなくて、いままで技術的な課題があってできなかった、世の中になかったサービス作れるようなエンジニアを目指しています。 冨: 取り組みはどのようなことをしていますか? 高: 今は引き出しを増やしている段階ですね。 色々技術を調べてみて触ってみています。 AWSやGCPなども触りつつ、IoTなどちょっとハード寄りも触っていますね。 次回予告 冨: この人のスキルアップ術を聞いてみたい、またはお薦めなエンジニアはいらっしゃいますか? 高: QAエンジニアの中野さんの話を聞いてみたいです。 品質に関して真摯な考えを持っているように感じるので。 品質を確保するという専門分野を選択したきっかけ、どのようなところで勉強しているのかが気になります。 作る側はどう意識して作って欲しいと思っているのかが気になりますね。 編集後記 おうちハックは家族にも利用され、コンクールで知り合いも増えて、スキルアップにもつながる良いアウトプットだなと感じました。 また、引き出しを増やして、色々なサービスを自力で作れるようになるという姿勢が印象的でした。 お知らせ LIFULLではエンジニアをはじめ各職種で採用を行っております。 こんなエンジニアと働きたい! という方は弊社の採用サイトもご覧ください! recruit.lifull.com
LIFULL HOME'S事業本部 技術開発部 の冨田です。 LIFULLエンジニアのインタビューを通して、なかで働くエンジニアはどんな人なのか、どんなことをしているのか、を知ってもらうきっかけになればと思い、このような取り組みを始めました。 ゲスト紹介 本日のゲストはおなじく LIFULL HOME'S事業本部 技術開発部 の磯野さんです。 過去には iOSアプリのLIFULL HOME’S やオンプレミスからクラウドへのサーバ移行、 Zipkinの導入 なども担当され、現在はLIFULL HOME’Sを支えるアーキテクチャの刷新を担当しているエンジニアです。 目次 ゲスト紹介 目次 学生時代 LIFULL入社前 LIFULL入社後 子どもが生まれてから 技術のキャッチアップ方法 育成と後輩エンジニアからの刺激 好きな開発環境、言語など 将来のビジョン 次回予告 編集後記 お知らせ 学生時代 冨田(以降 冨): 初めてパソコンを触り始めたのはいつごろですか? 磯野(以降 磯): 小6から中1くらいですかね。 父の仕事の関係でMS-DOSのPC9801やベーマガが家にあって、写経していました。 父からはプログラムは一切教わっていませんでした。 動かなくても理解していなかったのでデバッグも出来ずにただ間違いを探していた感じです。 冨: かなり小さいころからやっていますね。 中学から大学ではなにかやっていましたか? 磯: 中学、高校はゲームをやっていて、プログラミングはしていませんでした。 大学に入ってFortran、Cをちょっとだけやりましたが、情報処理に関してはあまりやっていなかったですね。 当時常時接続が出始めた時代で、自宅でサーバやルータをFreeBSDで構築したり、Movable TypeやWikiをサーバにいれていましたね。 NICの二枚刺しもしていました。 冨: 懐かしいですね(笑) プログラムの改造とかはしていたんですか? 磯: 設定ファイルを書く程度ですね。 社会人になっても自宅サーバは少しやっていましたが、電気代がかかったり、無線LAN 、VPSが出始めたのでやめてしまいました。 LIFULL入社前 冨: LIFULLに入社される前はどのような仕事を? 磯: プロバイダーのコールセンターでテクニカルサポートや料金案内などをしていました。 冨: IT関連ではありますけど、結構畑違いですね。 Excelでマクロとか組んだりはしていたんですか? 磯: 多少Excelでマクロ組んだり、PerlでかかれたCGIを改造したりはしていましたね。 0からは書けませんでしたが。 冨: やりはじめたきっかけは? 仕事上必要だったから? 楽しいから? 磯: 誰もやってくれなかったので自分で勝手にやりはじめました。 元々、昔プログラマだった方が管理していたんですが、一部権限をもらってやりはじめました。 LIFULL入社後 冨: その後LIFULL(旧ネクスト)に2007年にエンジニア職として入社するわけですが、エンジニアにキャリアチェンジされた理由は? 磯: プログラムの改造が楽しかったのと、もともとサーバに興味があったので、もうちょっとその辺をやっていきたいと思いました。 冨: LIFULLに入社して一番スキルアップを実感したところ、ブレイクスルーのきっかけは? 磯: 入社して LIFULL HOME'Sの賃貸のWEBサイト を担当していたのですが、その後すぐにリニューアルをメインで担当させてもらえたのが大きいですね。 Zend Frameworkベースの社内フレームワークと社内向け物件検索APIがあったのでコアな部分はそちらに任せつつ開発していました。 冨: 自由に出来る部分、裁量が合ったから伸びたのですか? 磯: 裁量もですが、「なんでこうするの?」としっかり考えながら開発したのが大きかったと思います。 子どもが生まれてから 冨: 弊社の男性技術者の6割が育休取得しているそうですが、磯野さんはどうでしたか? 磯: 子どもはもうすぐ4歳になりますが、育休期間は3ヶ月とりました。 育休はじまって2ヶ月経って妻に「子どもが2人いるような感じだからもう仕事行っていいよ」って言われました(笑) 冨: 私はまだ子どもがいないのでわからないのですが、子どもが生まれた後どうやって技術のキャッチアップの時間を作っていますか? 磯: 妻と交代で面倒みていたので時間は作れました。 ただ、最初の半年くらいは「おなかすいた!」と泣いてしまうので集中はできなかったですね。 最近は聞き分けがつくようになったので夜に多少時間が作れるようになりました。 また、3歳くらいになると出かける時に必要なおむつなどの荷物が減って妻だけで外出できるようになったり、子ども同士で遊ぶようになったので楽になりましたね。 技術のキャッチアップには家族の理解も必要なので、<妻のための時間>、<子どものための時間>それぞれの時間配分が必要ですね。 最近はレゴブーストに興味があるんですよ。 子どもと一緒にプログラムしたいですね。動くものを一緒につくるのが楽しいです。 冨: エンジニアの英才教育ですか? 磯: エンジニアになって欲しいわけではないですが、一緒に遊べる共通言語としてレゴブーストがある感じですね。 論理的思考につながるかはわかりませんが、つながるとよいと思っています。 www.lego.com 技術のキャッチアップ方法 冨: 技術のキャッチアップはどうしています? 磯: 昔はGoogle Readerやはてなブックマークで情報収集をしていましたが、最近はしていませんね。 自分がやりたいことがある時にどういうツールがあるかを調べています。 本を読むだけではなくアウトプットをだすことが重要ですね。 伸びている人たちはプライベートでもアウトプットだしていますね。 冨: お薦めの本はありますか? 磯: ケント・ベックがお薦めです。 Smalltalk best practice patterns、Implementation Patterns、メソッドレベルの書き方、例えば命名などに役に立ちます。 冨: 日本語版は絶版っぽいですね・・・ 原著を手に入れるしかないですね。 冨: 個人のOSSを公開してgolangを利用していますが、golangはどうやって覚えたのですか? 磯: 公式サイトで覚えました。 ブログや公式サイトの日本語版は情報が古かったりするので英語版の公式サイトを見たほうがよいですね。 冨: 気をつけます・・・ github.com 育成と後輩エンジニアからの刺激 冨: 2年目のエンジニアに対する研修のメンターやリクルーティングも担当していますが、刺激や学びはありますか? 磯: 入社してくる新卒や テクノロジーナイト に参加してくる人は意識高い、できる感じで焦燥感に駆られますね。 2年目研修で担当したエンジニアもVimやターミナルの操作が最近伸びていると感じますね。 冨: 2年目研修のメンターではどのように育成していましたか? 磯: ネットで調べただけでしっかり理解していないことがあるので、「なんでそうやったのか?」を意識して聞いていました。 捨てるコードとプロダクションコードでやっぱりスキルアップの差が違うので、できればプロダクションコードで機会を与えたほうが良いですね。 冨: 2年目研修やリクルーティングの担当を積極的に引き受ける理由あるんですか? 磯: エンジニアが人事に対してもっと協力しても良いんじゃないかと思ったので実践しています。 冨: そういう思いもあったんですね。 好きな開発環境、言語など 冨: どのような開発環境が好きですか? 磯: OSはMacですね。 エディタはAtomを使っていたのですが、golang書くのに楽なVisual Studio Codeを使っています。 最近はVSCodeじゃないと書けない体になってきました。 CTO *1 を筆頭にVim使いが多いですが、私は.vimrcはカスタマイズせずに使っています。 冨: 言語はどうですか? 磯: ここ数年だとNode.js, golangあたりです。 Node.jsはstream、golangはマルチプラットフォームなところがいいですね。 言語仕様もあるので難しいのですが、テストに関してやりづらいところもあるので、 LIFULLのメインの言語の一つであるRubyのテスティングフレームワークのRSpecを懐かしく思う日々です。 冨: ミドルウェアやライブラリとかはどうです? 磯: ログイン、認証、権限周りが好きでSTNS、Assume Role、OAuth周りも好きですね。 今後腰を据えてやっていきたいです。 冨: 社内でshell芸人って呼ばれていたりしますけどその辺は? 磯: あとで読み返すのが厳しいですね。 一時期はログを解析するのでやっていましたが最近は別のエンジニアがやってくれるようになったのでshell芸人力が下がってきました(笑) 将来のビジョン 冨: 今後どういうエンジニアを目指していますか? 磯: 社内のドメイン知識に寄りすぎているので、もっと技術的な部分を伸ばしていきたいですね。 冨: 社歴が長いとそうなることが多いですよね。 磯: 仕事、プライベートともにOSSにできるものを公開してきたいです。 冨: それはなぜですか? 磯: OSSを使うだけでなくて、もっと貢献していきたいですね。 他のメンバーのお手本になるように率先してやっていこうと思っています。 自分の技術力で社会に貢献ができるし、会社のプレゼンスもあがるので。 冨: 取り組みはどのようなことをしていますか? 磯: 今、社内のOSSのルールを策定中です。 また、社内で利用しているライブラリもOSSで公開できるようにしていきたいと思っています。 iOS黎明期のライブラリは洗練されていなかったので機能追加やバグ修正の手が出しやすかったのですが、いまは洗練されているので手を出しにくいですよね。 他のメンバーも手を出しやすいように、小さいものでも公開していきたいと思ってます。 冨: <git管理しているファイルを透過的に暗号化、復号化するためのフィルター>をOSSとして公開していますが、きっかけを教えていただけますか? 磯: 自分が純粋に欲しいものを作りました。 冨: これはgolangで書かれていますが、golangを先に勉強していたから選んだのですか? 磯: これをつくるためにgolangに手を出しました。 デーモンとして状態を保持できる言語であればなんでも良かったのですが、マルチプラットフォームで動くのと、ちょうどその頃golangの流行が落ち着いてきて、手を出そうと思いました。 環境構築の方法が固まっていなかったりするので、あまり流行りのものには手を出さないですね。 次回予告 冨: この人のスキルアップ術を聞いてみたい、またはお薦めなエンジニアはいらっしゃいますか? 磯: iOSアプリエンジニアの高橋庸介さんに聞いてみたいです。 交流がない人で聞いてみたい人の縛りにした方が良いんじゃないですか? 冨: それではその縛りでやってみましょう! 編集後記 アウトプットドリブンでインプットされている点が印象的ですね。 遅延評価勉強法 に近い感じでしょうか。 私はつい本から入ってしまい、わかった気になって結局アウトプットを出せていないので、アウトプットを出すためにはこの方法が良いのかもしれませんね。 お知らせ LIFULLではエンジニアをはじめ各職種で採用を行っております。 こんなエンジニアと働きたい!という方は弊社の採用サイトもご覧ください! recruit.lifull.com *1 : 2017年4月よりCxO職を新設
こんにちは。iOS開発Gの池田です。 本日はとうとうWWDC最終日! 今回は最終日の様子、セッションについての内容、最後に昨日の夜にあったBashの様子について書きます。 (前回の記事は こちら ) 出発 最終日!ということで、ちょっとした気合いを入れつつホテルを出たのですが、こんな日に限ってあいにくの雨模様。 ここ最近の晴れ具合であったり、UBERで乗せてもらった方から聞いた話からも雨降りはなかなかレアな気がします。 そんなレアな天候の中、VTA(Santa Clara Valley Transportation Authority)に乗って会場に向かいました。 会場の様子 WWDC最終日はセッションも少なく、ラボも早い時間で閉まってしまいます。 そんな事情もあるため今日はほとんど人いないんじゃ、、と思ってたのですが、全然そんなことなかったです。 多くの人で会場は賑わっています。 今日はアツく揺さぶられるセッションが午前中なかったため、作業スペースで開発作業を進めていました。 セッションの動画も流れています。 そうこうしているうちに午後のセッションの時間になり、セッションに参加してきました! セッション 今回参加したセッションは、「Efficient Interactions with Frameworks」です。 このセッションでは、Foundation内のパフォーマンスについての話とStringのパフォーマンスについての話がされていました。 Foundation内のパフォーマンスについて 以下パフォーマンスの改善が行われているそうです。 NSCalendar メモリの使用 、速度の改善 NSOperation / NSOperationQueue 速度の改善 Data 速度の改善 Stringのパフォーマンスについて Stringのbridgingについて SwiftでUILabelやUITextViewのtextを変数に入れる場合、textの実装部分でObjective-CのUILabelや、NSTextStorageが利用されておりそのコストについての話でした。 UILabelを利用する場合もUITextViewを利用する場合も暗黙的にbridgingが行われ、それに対するコストがかかります。 ここでUILabelは比較的小さなデータ量を扱うことが多いためあまり意識しなくて良いが、UITextViewはデータ量が大きくなることもあるため気にした方が良いとのことでした。 具体的にはUITextViewのtextの中に1MBを超える文字列を扱う場合はパフォーマンスを気にした方良く、こういった場合は計測した上でパフォーマンスに影響を及ぼしている場合、以下のようにcopyの処理がはしらないmutableStringを使うのが良いそうです。 var text = textView.textStorage.mutableString ここに関してはAppleも解決策を探しているが現状見つかっていないので、パフォーマンスに影響を及ぼしている場合上記のような処理を検討するのがよいとのことでした。 Rangeについて NSRangeとRangeに新しいイニシャライザが追加され、NSRangeやNSRegularExpressionを利用するときに便利になっています。 NSRangeとRangeの相互変換がイニシャライザででき第二引数にStringを指定できるようになっているため、「NSRangeを作成するために一旦StringをNSStringに変換する」のような処理が必要なくなっています。 Rangeに追加されたイニシャライザは下記です。 init ?(NSRange, in : String ) 文字列のレイアウトとレンダリングについて テキストのレンダリングでパフォーマンスを上げる方法として3つのtipsが挙げられていました。 可能な限り標準のコントロールを利用する AutoLayoutのようなモダンなレイアウトプラクティスを利用する NSAttributedStringを利用している場合、確定しているattributesは明確に指定する 3.の具体例で挙がっていたのは、directionやlineBreakModeです。 確定しているなら指定しておいた方が推測のコストが省けるため、若干パフォーマンス改善するそうです。 The Bash WWDCでは毎年Apple公式の打ち上げのような形で The Bash が開催されます。 Bash の会場では食事やお酒が無料で提供されており、最中には有名なアーティストのライブもあります。 下の写真は会場に向かう橋です。 開場の20分ほど前に行ったのですが列ができており順々に数十人のグループで区切って通されます。 いっぱい乗ると落ちるぞ、みたいなことを言っています。怖いです。 この橋を超えて会場に入りました。 開場直後に入ったので、ぼちぼち人が人がいる程度です。 食事やお酒が提供されています。 そしてアーティストライブの時間がやってきました! 今年のゲストはFall Out Boy!!!! 前の方では飛び跳ねて盛り上がっている人たちも! すごくかっこいいライブでした! 徐々に日は落ち、お酒も入りみんなテンションが上がっています。 机の上で踊り出す人々も出てきました! 大勢の人で盛り上がった Bash も22時頃でクローズし、公式の打ち上げ(っぽいイベント)も終了です。 最後に 1週間に渡り様々な発表、ラボが開催されたWWDCも今日で最終日です。 ですがエンジニアにとっては、発表された技術をどう活かしてどうサービスに繋げていくか、それを考えて作っていく日々が始まったばかりです。 WWDCで発表された技術、情報を素早くキャッチアップして今後に繋げていきたいと思います! 私たちの会社でもWWDCの素早いキャッチアップに繋がるよう共有会を開催しますので、ぜひいらしてください! lifull.connpass.com WWDC最終日の記事は以上となります! ありがとうございました!
昨日の記事 に引き続きこんにちは。iOS開発Gの塙です。 4日目ともなると現地のエンジニアは今回発表された機能の実装をだいぶ進めているみたいです。 外のベンチにはただ空を眺めている方、俯く方、頭を抱える方。十人十色です。美しいですね。 皆さんも実装が詰まって何時間も考える時があると思います。 そんな時WWDCでは問題解決をしてくれるスペシャリストが待機している場所があるのです。 今回はその場所の話とセッションの話をメインで書きたいと思います。 これは通称"小田原"と呼ばれているオレンジジュースで、ほぼ毎年WWDCで配られています。ジョブスが好きだったとか。ではまずセッションのお話から。 Focus Interaction in tvOS 11 今回KeynoteではAmazon Prime Videoの話しかされなかったtvOSですが、API Referenceを見るとそれなりに変更があったので聴きに行きました。 セッションの席がガラガラですね、大丈夫でしょうか。 ※ LIFULL HOME’S アプリはtvOSにも対応しています。 最新バージョンでは CoreBluetooth や Flyover に対応しております。AppleTVをお持ちの方はぜひダウンロードしてみてください。 Focus Update Notifications Focusに対して更新処理が走る時に通知を受け取れるようになった Focusの移動に失敗した場合の通知も追加されている static let UIFocusDidUpdate : NSNotification.Name static let UIFocusMovementDidFail : NSNotification.Name Protocol Extensions UIFocusItem プロトコルが拡張されて、自身が今Focusされているか確認できます。 var isFocused : Bool { get } UIFocusEnvironment プロトコルが拡張されて、自身が他の FocusEnvirionment に含まれているか確認できます。 func contains (_ environment : UIFocusEnvironment ) -> Bool Focus Animations Focusの移動時にアニメーションを定義できます。 // for focusing item func addCoordinatedFocusingAnimations (_ animations : ((UIFocusAnimationContext) -> Void )?, completion : (() -> Void )? = nil ) // for unfocusing item func addCoordinatedUnfocusingAnimations (_ animations : ((UIFocusAnimationContext) -> Void )?, completion : (() -> Void )? = nil ) Runs the specified set of animations together with the system animations for adding focus to an item. 今まで下記のようにやっていた処理との違いはシステムの定義したアニメーションと一緒に行うかどうかでしょうか。 func didUpdateFocus ( in context : UIFocusUpdateContext , with coordinator : UIFocusAnimationCoordinator ) { if context.nextFocusedView is Self { coordinator.addCoordinatedAnimations({ // Focused Animation }, completion : nil ) } else if context.previouslyFocusedView is Self { coordinator.addCoordinatedAnimations({ // Unfocused Animation }, completion : nil ) } } またFocusの移動スピードに合わせてアニメーションの早さを調節されるそうです。 Custom Focus Sounds フォーカス移動時に流れる音をカスタマイズできるようになった UIFocusSystem というクラスが追加されたことによって可能になった UIFocusSystem 現在のユーザーインタフェース上にあるフォーカスの状態を管理するクラス。 今までは updateFocusIfNeeded のように自身のフォーカスの更新しかできませんでしたが、このクラスは全てのフォーカスの更新ができます。 func requestFocusUpdate (to environment : UIFocusEnvironment ) func updateFocusIfNeeded () また、現在フォーカスされているオブジェクトやどのFocusEnvirionmentに含まれているかもチェックもできます。 weak var focusedItem : UIFocusItem ? { get } class func environment(_ environment : UIFocusEnvironment , contains otherEnvironment : UIFocusEnvironment ) -> Bool その中にひとつだけフォーカス時の音を変更するメソッドがあります。 ローカルのサウンドファイルのURLと識別子を指定するだけでアプリ内にグローバルに反映されます。ただし、サウンドファイルは30秒未満でなくてはいけません。 class func register(_ soundFileURL : URL , forSoundIdentifier identifier : UIFocusSoundIdentifier ) 下記のようなサウンドの調整も行われるようです。 スピードに合わせて音量が変更される フォーカスの移動方向(左右)によっても異なる また、オブジェクトがフォーカスを更新するタイミングでカスタムとデフォルトとなしの切り替えもできます。例えばサイズの異なるオブジェクトになる場合は音を変えるというのは良いプラクティスだそうです。 // UIFocusEnvironment Protocol optional func soundIdentifierForFocusUpdate ( in context : UIFocusUpdateContext ) -> UIFocusSoundIdentifier ? Support for SceneKit SceneKitとSpriteKitでもフォーカスを扱えるようになった UIFocusItem の継承クラスに SKNode と SCNode が追加されている。 Focus Update Logging -UIFocusUpdateLoggingEnabled=YES の設定をXcode上で行うとフォーカスに関するログを吐く。 UIFocusDebugger フォーカスをデバッグするためのクラスが追加されました。 po UIFocusDebugger.foo() でFocusの状態を見たり検証したりできます。 status() : フォーカスされているオブジェクトに関する情報 simulateFocusUpdateRequest(from: _) : 特定のFocusEnvirionmentからフォーカスの更新を試せる checkFocusability(for: _) : Focusできるかチェックできる(できない場合は理由も分かる) help() : 使用できるコマンド(メソッド)全部出してくれる 結構やりたかったことや実装が面倒だった部分が解消されている気がします。何より捉えにくいフォーカスをデバッグしやすくなったのは嬉しいです。 qiita.com Lab 普段実装で躓いたことはありませんか?ない人なんていないですよね。 このWWDC期間中であれば、そのUIKit、Foundation、iOS、watchOS…などの開発者に相談できるんです。 そこで答えが出ないなら諦めがつきますもんね。頭を抱えて作業が進まない状況を無くせます。 ラボにも色々な種類があり、昨日の記事で紹介したUIデザインラボもその中のひとつです。 基本的に技術系のラボは予約はいらず、その場でじっくり実装しながら聞いたりできます。 Design and Accessibility User Interface Design Accessibility Design App Store App Review Apple Developer Program Support Apple Marketing Communications Business and Marketing Export Compliance iTunes Connect Search Ads Podcast Apple Podcasts Studio Develop Core Image Lab Source Control, Simulator, Testing, and Continuous Integration with Xcode Lab Game Center Lab Installer Lab ClockKit and WatchKit Lab, etc… もっともっとあります。キリがないくらい様々な技術情報のラボがあります。 え?英語が話せない?もちろん私も話せません。ですが、最初の質問を準備していけばあとはノリとコードで伝わります。 私は質問していく時に毎回このようなフォーマットで持って行きました。 func foo () { /* ここに現状の実装の説明とやりたいことを書く */ doSomething() } func bar () { /* ここにトライしたけどダメだったことを書く 実装はコメントアウトしておく */ // doAnything() } Appleのデベロッパーと話せる機会なんてそうそうないのでWWDCに行くときはぜひ質問を投げに行ってみてください。 では、最終日も楽しく元気に学びましょう。 今日はよくわからないファミレスのような場所で書いています。このタコスのようなポテト素敵な味がします。アディオス。
こんにちは。iOS開発Gの塙です。 本日でWWDCは3日目です。早いですね。イベントも中盤まで差し掛かり、デベロッパーの血と汗の結晶である技術情報がウェブ上にチラホラ出て来ていますね。感謝の気持ちを忘れずに根こそぎ吸い上げていきましょう。前日の記事は こちら です。 「What’s New in WatchOS4」と「What’s New in Foundation」のセッションがあったのでwatchOS4とSwift4について書きたいと思います。が、その前に今回も会場の様子をお伝えしたいと思います。 WWDCは期間中食事を無料で提供してくれます。今日のお昼ごはんはサラダです。野菜はいいぞ。味については触れませんが、日本って本当に食に恵まれているんだなあと思いました。味については触れませんよ。 もちろんドリンクも無料です。お財布が寂しい私は毎日歓喜してます。コーヒーは(おそらく)スターバックスでとっても美味しいです。一体何リットルのコーヒーがこの会場に運ばれているのでしょうか。なんとなく恐怖です。 物販もやっています。WWDC限定の商品があるので毎年1,2日目には品薄状態になってしまいます。iOSエンジニアはここのTシャツをドヤ顔で着るのがスマートだと思います。 毎年近場で行われているAltConfというApple製品のデベロッパーカンファレンスがあります。私は去年このイベントをメインで参加していました。なぜなら無料だからです。受付の方、お茶目ですね。 AltConfはスポンサーの企業が会場内にブースを作り、グッズや製品を置いて客寄せしています。このTシャツはもちろん無料です。寝巻きに最適です。 本日は User Interface Design Lab という予約制のラボ(相談に乗ってくれるブース)に行って来ました。近年では毎朝7時に当日の予約が開始されるのですが、1~2分で満席になるというとても貴重なラボなのです。WWDCに行く場合はぜひチャレンジしたほうがいいと思います。 なんとなくWWDCに行った時のイメージが湧きましたか?湧きましたね。ということでwatchOS4とSwift4(一部)を紹介したいと思います。 watchOS4 Core ML iOSと同様に機械学習モデルを扱えるようになるフレームワークが追加されました。 watchOSは近年スポーツや健康管理の機能強化をしているので、そのデータと機械学習を組み合わせて面白いことができそうですね。 SiriKit こちらもiOSと同様にSiriKitのIntent Domain(できること)に「List nad Notes」が追加されました。サードパーティ製アプリのメモやタスクをSiriから登録できます。 また下記のIntent Domainに追加された機能もiOSと同じですね。 Ride Booking : キャンセルとフィードバック機能 Payments : 送金とアカウント検索機能 HomeKit こちらもまたまたiOSと同様に下記のトリガーが追加されました。 HMSignificantTimeEvent : 日の出/日没時間 HMCalendarEvent : 特定の日時 HMDurationEvent : タイムインターバル(繰り返し時間) HMCharacteristicThresholdRangeEvent : 接続されたデバイスの出力する値の範囲(温度や明度など) HMPresenceEvent : ユーザーの有無 Apple Pay こちらもまたまたまたiOSと同様に支払い情報と認証エラーをハンドリングできるようになりました。 ここまで読んでいてがっかりされている方が多いと思います。私もアプリのストリーミングでセッションを聞いていて、途中でそっとスリープボタンを押そうとしてしまいました。ただ、次のアップデートは夢があると思います。 Core Bluetooth ついにwatchOSにCore Bluetoothが追加されました。Apple Watchから様々な機器を操作できるようになりますね。ただし下記の制限があります。 セントラル(見つけに行くデバイス)のみ可能 ペリフェラル(見つけて貰うデバイス)は2台まで 接続インターバルの時間は フォアグラウンド : 30ms / バックグラウンド : 120ms バックグラウンドでは接続のみ可能(スキャンはできない) ペリフェラル側はアプリが停止したら接続解除される Swift4 様々なアップデートがある中で、私のまわりで最もザワついた項目である Codable のみ取り上げたいと思います。 Codable Swiftのstructやenumを簡単にシリアライズ/デシリアライズできるようになりました。 struct Person : Codable { enum Child : String , Codable { case son, daughter } let name : String let age : Int let children : [Child] } let person = Person(name : "Foo" , age : 10 , children : [.son, .daughter] ) let data = try? JSONEncoder().encode(person) デコードもできます。JSONデータを外部ライブラリを使用してパースしなくて済みますね。 let person = try? JSONDecoder().decode(Person. self , from : data ) 少し詳しくQiitaに投稿したのでご確認いただければと思います。 qiita.com では残り2日間楽しみながらたくさん学んでいきたいと思います。アディオス。 宿泊先のホテルです。ちょっとカッコつけてみました。
こんにちは。iOS開発Gの池田です。 本日はWWDCの2日目です! 今日(6/6)から金曜日(6/9)まで新OS、新機能の技術的なセッションやラボが目白押しです。 今回は会場の様子を少しとセッションについて、最後おまけです。 (前回の記事は こちら ) 会場の様子 会場内の休憩&個人作業スペースです。 みんな思い思いにソファーや机に座って作業をしています。 この写真は人が少ない時間帯に撮りましたが、セッションの合間や昼の時間にはごった返します。 ちょっと見えづらいですが2枚目の写真の中央下部あたりではセッションのリアルタイムストリーミングも行われています。 セッションについて 私が参加したセッションは、以下3つです。 それぞれポイントになる内容を振り返ります。 Your Apps and Evolving Network Security Standards Introducing Core ML Introducing ARKit Your Apps and Evolving Network Security Standards ATSで「信頼されない」、「信用される」を分ける基準が話されていました。 具体的には以下のように信頼する・信頼しないの基準が分かれます。 [×] 信頼されない [○] 信頼される Encryption [×] RC4 3DES-CBC、AES-CBC [○] AES-GCM、ChaCha20-Poly1305 Cryptographic Hashes [×] MD5、SHA-1 [○] SHA-2 Family Public Key [×] < 2048-bit RSA [○] ≧ 2048-bit RSA、Elliptic Curves Protocols [×] httpプロトコル、SSLv3、TLS 1.0、TLS 1.1 [○] httpsプロトコル、TLS 1.2+ Revocation [×] No checking [○] OCSP Stapling Introducing Core ML Core MLでは様々な機械学習ライブラリで作成したモデルをアプリ内に統合して、ある入力に対する出力を予測する機能を提供できます。 対象OS macOS High Sierra以上、iOS11以上、watchOS4以上、tvOS11以上 Core MLの良いところ 機械学習の処理、データのやりとりがデバイス内で完結するため、以下のメリットがあります。 ユーザーのプライバシーを侵害しない データのコストが必要ない サーバーのコストが必要ない 通信環境等によらず、いつでも使える モデルについて モデルは入力を受けて予測の結果を出力するFunctionのようなものだ、という話でした。 入力には、画像やテキスト等が用いられ、出力として予測結果を得ます。 デモの中では花(バラ等)の画像をモデルに入力し、文字列として予測結果出力していました。 Core ML Tools pythonで作られているモデル変換ツールでオープンソースです。 有名な機械学習ライブラリのモデルをCore ML用のモデルに変換することができます。 Core ML導入の手順 デモの中でCore MLの導入手順を一通りやっていました。 導入手順は以下5手順です。 オープンソースの機械学習ライブラリでモデルを作成する Core ML ToolsでCore ML用のモデルにコンバートする できたモデルをプロジェクトにドラッグアンドドロップする Core ML用モデルのターゲットを設定する (自動でSwiftファイルが生成される。) 生成されたモデルの結果出力メソッドを利用して実装する Introducing ARKit ARKitでは、iOSデバイスのカメラに写っている現実の映像とSceneKit、SpriteKit等で作成した仮想現実の物体を同時に表示し、あたかも現実に仮想現実の物体があるように見せることができます。 こちらのARKitは今回の発表の中でもなかなか興味深い新機能だと思います。 日本にいる弊社の新卒エンジニアがサンプルを使って早速試してました! 対象OS iOS11以上(A9プロセッサ以上) トラッキング iOSデバイスの移動、回転に伴って仮想現実の物体も移動、回転、縮小をします。 現実に物体があるのと同じような動作をするのでカメラを通した映像には実際物体があるかのように見えます。 平面の認識 カメラの映像を通して現実にある床等の平面を認識します。 仮想現実の物体は認識した平面の上に乗っているように見えるよう位置調整されます。 光の予測 現実の映像が暗いと仮想現実の物体が暗くなる、仮想現実の物体が光っていると現実の映像が明るくなる等、現実と仮想現実が相互に光の干渉を行います。 デモ デモは2つ行われていました。 1つ目は仮想のカップ、花瓶のような物体を現実の映像内に配置するデモです。 現実のテーブルの平面が仮想の物体に影響を及ぼし、テーブル上にカップや花瓶が乗る様子が見れました。 2つ目は仮想のカメレオンがテーブル上に乗っているデモです。 このデモでは、カメレオンの周りを回るようにカメラを操作すると、カメレオンの顔かリアルタイムでカメラの方を見る様子が見れました。 カメレオンがその場にいてまるでこっちを見ているかのように見えるデモです。 現実と仮想現実が繋がっているように感じられる感覚が強いデモで、それをたった1台のiPhoneでやっていると考えると、未来感があるデモでした。 おまけ 会場の前の広場でWWDC参加者限定のパーティがやっていたので、ちょろっと参加してきました。 バンドの演奏もやっており、バンド前ではダンスをしている方も♪ 多国籍な会で私はロシアの男性エンジニアの方と、元々日本にしばらく住んでいた女性エンジニアの方などちょこちょこ交流してきました。 1時間弱の短い時間でしたが大変楽しい夜でした! 本日は以上です!それでは!
こんにちは。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アプリ ダウンロードはこちら