TECH PLAY

株式会社LIFULL

株式会社LIFULL の技術ブログ

660

Apple原理主義者の大坪です。人は思いがけない出来事に直面すると、その理由を探さずにはいられない。お財布を落としてしまった!なぜだろう?きっと今朝黒猫印をつけた車が私の前を横切ったのがいけなかったのだ、とかなんとか。 いきなり何を書いているかといえばあれですよ。年に一度行われるAppleの開発者向け会議WWDCのチケットが当たったんですよ。いや、大丈夫。ちゃんと理解してます。これは奇跡でもなんでもなくarc4random_uniform関数 *1 がたまたま「参加」の値を返しただけ、と。しかしこれは私の常軌を逸したAppleへの愛がなせる技ではなかろうか、と頭の片隅で考えているのも事実。 などと のんきなことを言っている場合ではありません。わーいわーいと喜んでいいのは30秒ほど。早く正気に帰りあれこれの手配をしなくてはなりません。 まずはホテルと航空券の手配。毎年驚かされるのはSan Fransiscoエリアでの宿泊代の高騰ぶり。おまけに少しでも宿泊場所確保に出遅れるとあっというまに満室の嵐になる。 「予算内の場所はないか」と血眼になってあちこちのサイトを探し「あったー」と思ったら予約ボタンを押す前に こちらの情報 などを確認しましょう。安くてしかも空室があるホテルがこうしたエリアに存在している確率は悲しくなるほど高い。 そうした壁を乗り越え、宿と足を確保すると、今度は情報収集を始める。去年は現地で前夜に、今年は日本で一週間前に参加者同士の飲み会が行われました。主催者の方には感謝の他ありません。そこで必ず話題になるのが   「初日のキーノート何時から並ぶ?」   2013年に参加した時は、迂闊にも寝過ごしてしまい並び始めたのは7時過ぎ。それでも特に不満のない場所に座れた。話のネタ的に真夜中から並ぶという選択肢もありますが、そんなに無理しなくていいのではないか。そもそも列のものすごく前に並べたところでどうせ会場内最前列のエリアは全て「予約済み」だから座れないし。あまり遅く行くと"Overflow Room"なるビデオ中継でしかキーノートを見られない部屋に回されるらしいけど、それさえ回避できれば。   しかし   そこに立ちはだかるのが時差ボケ。長旅で疲れよれよれとベッドにはいったはずなのに、真夜中にパッチリ目が覚める。まだ数時間は眠れると毛布をかぶっても目は冴える一方。諦めてMacBookなど叩いていると 「並ばなくていいのか」 という強迫観念が迫ってくる。San Fransiscoくんだりまで来て、2chなんか見ている場合か。いや、まだ夜明けまでは時間がある。とはいって眠くはないし、やることもない。そうしているうち「ええい、行ってしまえ」とホテルを飛び出す。そして氷のような寒さ *2 の中長い長い行列に立ち尽くし、己の判断の愚かさに呪いの言葉を吐く。 これは去年の写真。ちなみに時間は午前4時半     というのが去年私に起こったこと。今年はもうそんなことはしないもんね、と固く決意するわけでした。これにはもう一つ理由があり、今年は初日の場所が例年とは変わっています。去年まではイベント全日Moscone Westで行われたのですが、今年は初日のみBill Graham Civic Auditorium。いいニュースはおそらく収容人数がMoscone Westより多いこと。悪いニュースは辺りの治安があまりよろしくないこと。以前別の出張で来た時、明るい時間帯なのにいろいろな人が周りにたむろしていたことを思い出す。あそこに暗いうちから数時間立っているのが良い選択肢だろうか?いや違う。というわけでWWDC(及び周辺イベント)に参加する人たちの間でも「明るくなってから移動が良いよね」ということで意見が一致する。 そのようにちゃんとあれこれ考えていたので 「あーよく寝た」とパッチリ目が覚め、ふと見た枕元の時計がこんな表示をしていても驚かない。ここでやるべきことは静かに目を閉じ布団をかぶって心から雑念を追い払うこと。 今日のKeynoteではどんな発表があるか?とか考えてはいけない。 どんなサプライズがあるだろうか?とか考えてはいけない。 あまり可能性はないとはいえ、MacBookが発表されないだろうか?とか考えてはいけない。 使っているMacBookAirもう六年目。そろそろ買い換えないと、とか考えてはいけない。 .... 目覚ましの音で飛び起きれば午前6時。なんとすばらしい。時差ぼけに打ち勝ち眠れたではないか、 と勝利の喜びにひたりながらFacebookを見る。するともう並んでいる人がいるのに気がつく。そうか。並んでいる場所はセキュリティがちゃんとしているのか、、、とか考えながらふと気がつけば猛然と出かける支度をしている。ちょっとまて。俺は昨日ホテルを7時に出ると決めたのだ、と自分に言い聞かせているうち準備万端になってしまう。いいや、もう出ちゃおう。 WWDC参加者にはRegistration時ジャケットが配られます。ここ数年ジャケットのデザインにはパターンがあり、黒一色で背中にその年の下二桁が書かれている。朝の街を会場に向かって歩いて行くと、背中に「16」と書かれたジャケットを着た人をちらほら見かける。会場が近づくにつれ、目に入る「16」の数が増えていく。 こんだけ参加者がいれば、きっと怪しい人に絡まれる危険性は少ないだろう、と根拠のないことを考えながら歩き続ける。そのうち会場が見えてきました。 列に並ぶ時点でSecurityの人にバッジを見せます。列の近くにはあまーいマフィンの類とコーヒーも用意されている。ぱくぱく食べたいところですが、調子にのって飲みすぎトイレに行きたくなっても困る。ぐっとこらえて少しだけとります。 それから会場に入ることができた午前9時まで延々この光景を目にすることになる。しかしそうした時間にも見るべきもの、考えるべきことは存在している。私にとっては寒いとしか思えない状況。しかしなぜ前に立っているお兄さんはTシャツ短パンでへらへら笑っているのだ。周りからは様々な言葉が聞こえます。日本語、英語、中国語、フランス語、ドイツ語、スペイン語、そして私が知らない言葉。皆これから始まるキーノート、そしてWWDCを心から楽しみにしている。 そんなことを考えんながらぼんやり建物を見る。そしてあることに気がつく。上の写真をみて「?」と思いませんか?その理由がわかったのはキーノートを聞き、そしてこの日の夕方にある光景を目にしてから。     7月1日に弊社でWWDC2016共有会を開催いたします。 connpass.com ゲストスピーカーの岸川さんも含めライトニングトークでどんなお話が聞けるのか。懇親会で皆さんとどんなお話ができるのか今からワクワクしております。私も登壇させていただきますので、皆さんの貴重な時間を無駄にしないよう、今から頭を悩ませております。 もしご興味をお持ちでしたら、ぜひご登録ください。 *1 : iOSで乱数を返してくれる関数です。 *2 : ”私が経験したもっとも寒い冬はサンフランシスコの夏だった。” といはマーク・トゥエインの言葉
こんにちは。おうちハッカー@リッテルラボラトリーの石田です。 2016年6月6日~9日に開催された第30回人工知能学会全国大会に行ってきました。私は画像系及び深層学習に興味があるので、特に画像系と深層学習系セッションを見て回りました。 そこで主に自分が見たセッションを元に、今年の人工知能学会の画像に関わる深層学習の発表をまとめてみました。 私が見た・読んだ範囲で、「 各分野にCNNを適用した研究 」「 画像系深層学習の理論的な研究 」「 画像ではないが気になった深層学習の研究 」に分けて紹介します。 自分で実際に見た発表については、おすすめ度をつけています。個人の主観によるものですので、弊社の見解とは関係がありません。 ではどうぞ。 各分野にCNNを適用した研究 ここでは、画像系で大きな成果を上げているCNN(畳み込みニューラルネットワーク)を、各分野の画像解析に適用してみた研究を紹介します。 画像特徴量を利用したユーザプロファイルの拡張とローカルショップ推薦への応用 https://kaigi.org/jsai/webprogram/2016/pdf/156.pdf おすすめ度:★☆☆ 基本はSIFT特徴量をBoVWに変換して、ユーザーの訪問場所の画像から、特徴量の近しいレストラン等を推薦する研究。論文中では述べられてませんが、発表ではCNNを用いて、ランチ、ディナー、ナイトライフなどを分類して利用していました。 深層学習を用いたファッションコーディネート因子の抽出 https://kaigi.org/jsai/webprogram/2016/pdf/101.pdf おすすめ度:★★☆ 服の種類を判定、ユーザーへの推薦を目的とする研究。 従来はトップス、スカートなどのの上位カテゴリと、カーディガン、ニットなどのサブカテゴリを同時にCNNで推定していましたが、提案手法のLayered CNNではトップカテゴリの判定器→サブカテゴリの判定器の順に2層構造の判定器で構成されており、従来より精度が向上したとのことです。 その他の知見としては、模様などのスペクトラムは、別の特徴量を使った方法が有効なこと、画像の前処理が重要なことが述べられていました。 Deep Learning技術をベースとした異常画像検出 https://kaigi.org/jsai/webprogram/2016/pdf/664.pdf おすすめ度:★★★ SUUMOの戸建の物件画像について、2種類の異常検知を行った研究。人が写り込んでいるような画像を省くため、物体検知と分類を同時に行う手法であるFaster R-CNNで人を検出していました。もう一つは、CNNの中間層の特徴量をX-meansでクラスタリングして、建築中や土地のみの異常画像のクラスタの生成に成功しています。 同業の不動産情報サイト関連研究として、興味深く聞かせてもらいました。 地球観測衛星画像上の地物自動認識 https://kaigi.org/jsai/webprogram/2016/pdf/1019.pdf おすすめ度:★★☆ LANDSAT衛星写真からCNNでソーラーパネル設置領域を判別する研究。教師データが少ないが、RGBに加え赤外線などのバンドを入力に入れることで、精度向上に大いに寄与していることを示していました。パラメータ調整にはガウス過程を用いたベイズ最適化を用いているそうです。 ディープラーニングを適用した衛星画像からの土地被覆分類手法の評価 https://kaigi.org/jsai/webprogram/2016/pdf/881.pdf おすすめ度:★★☆ 前の研究と同じく衛星画像を用いて、都市、森、水源などに分類する研究。 ベイス推定を利用した自動パラメータ調整を利用。精度は7割程度。既にある分類基準を元に、CNNのモデルのラベルをどう定義するかが精度に大きく影響するようでした。 深層学習を用いた SNS プロフィール画像から䛾投稿者属性推定 https://kaigi.org/jsai/webprogram/2016/pdf/778.pdf おすすめ度:見てません CNNでFacebookのプロフィール画像から、性別、年齢、性格を推定する研究。顔画像をHaar-like検出器+adaBoostによる顔領域検出で切り抜いた画像の精度が向上しているようです。 実環境におけるロボットの物体認識 https://kaigi.org/jsai/webprogram/2016/pdf/363.pdf おすすめ度:★☆☆ Pepperなどのロボットのためのリアルタイム周辺環境認識のために、BINGで物体候補領域を検出、CNNのCaffeのリファレンスモデルで物体種別を分類する研究。Intel RealSenseのデプスカメラを利用して、検出したものの距離を計測できるようにしていました。 現状ではGPUにTitan X使用で、処理に一枚あたり1秒かかるそうです。 畳み込みニューラルネットワークを用いた微小眼球運動の検出 https://kaigi.org/jsai/webprogram/2016/pdf/988.pdf おすすめ度:★★☆ 人の注意状態を表す眼球のマイクロサッカード(MSC)をロバストに検出するために、眼球の位置を入力としてFaster R-CNNを参考した手法を使った研究。特徴抽出部と識別部の2段構成で、特徴抽出部は2層畳み込みで特徴波形を抽出、識別部はConvMLPを結合したモデルを利用してMSCの確率を推定しています。 Convolutional Neural Networkによる写真と手描きスケッチの認識 https://kaigi.org/jsai/webprogram/2016/pdf/1056.pdf おすすめ度:★★☆ 手書きスケッチを描いて類似画像を検索するためにCNN学習させたいが、大量のデータセットの作成が困難なため、画像やイラストを加工した画像を用い学習を行わせる研究。画像とスケッチが混ざったテストデータでも高精度に20種類の動物を分類できています。 畳み込みニューラルネットワークを用いた表情表現の獲得 https://kaigi.org/jsai/webprogram/2016/pdf/873.pdf おすすめ度:★☆☆ 顔の表情データセットをCNNで分類する研究。表情の専門知識を用いて特徴量を設計して作られた既存研究に近い精度が出ています。 画像系深層学習の理論的な研究 畳込みニューラルネットワークのための新しい半教師あり学習法 https://kaigi.org/jsai/webprogram/2016/pdf/893.pdf おすすめ度:★★★ CNNには大量の正解ラベル付きの正解データが必要だが、最初にラベルなしの画像データで教師なし学習をし、その後教師あり学習に切り替えるという半教師あり学習を行うと、学習速度が向上するという研究。 教師なし学習時は、教師ありの10倍ほどの画像を用意し、正解を最もスコアの高かったユニットのラベルとし、正解を確度の低いものとして扱って学習させています。 逆畳み込みニューラルネットワークを用いた輪郭検出 https://kaigi.org/jsai/webprogram/2016/pdf/763.pdf おすすめ度:★★☆ 輪郭抽出を行うHEDという手法について、一部に逆畳み込みネットワークを使うことでよりきれいな輪郭抽出を試みる研究。 HEDはCNNの全結合層が存在しないFully Convolutional Network(FCN)を用い、プーリングで小さくした特徴量を画像サイズまで拡大するときに線形補完を使っていたが、代わりに逆畳み込みを導入してみたところ、従来手法より若干きれいな輪郭の抽出ができていました。 深層学習における敵対的ネットワークと注視を用いた画像生成の試み https://kaigi.org/jsai/webprogram/2016/pdf/811.pdf おすすめ度:★★☆ 深層学習による画像生成の現状の問題点として、大きな画像が生成できず、細部が曖昧になってしまう点があります。 そこで注視メカニズムを使い、部分画像を複数回に渡って学習・生成し、また敵対的ネットワークを導入し画素単位での誤差の修正を試みる研究。 MNISTという手書き文字データセットで実験を行っています。 【補足】敵対性ネットワークについては、昨年末話題になった、敵対性ネットワークによる画像生成の記事を見ると、敵対性ネットワークの概念について理解できると思います。 Chainerで顔イラストの自動生成 - Qiita 深層学習における敵対的ネットワークによるラベル推定と半教師あり学習 https://kaigi.org/jsai/webprogram/2016/pdf/829.pdf おすすめ度:★★★★ 半教師あり学習で高精度な分類機を作るため、敵対的自己符号化器を用いた研究。符号化器が獲得する潜在変数として、従来のzに加え、yを導入し、一方にコンテンツ識別に必要な情報、もう一方にその他のスタイル情報を敵対性ネットを用いて学習させることで、コンテンツとスタイルを分離することができ、精度向上を図っています。 スタイルとコンテンツが分離できたことで、それぞれを別に指定して画像生成が可能になりました。例えば、ポップ風の「3」の画像といった指定で生成できそうです。 つまりこの研究では、半教師あり学習の精度向上と、画像生成技術における生成画像のコントロールの2つをもたらしていると言えます。 画像以外の深層学習の研究 マルチエージェントによるDeep Learningの提案 https://kaigi.org/jsai/webprogram/2016/pdf/953.pdf おすすめ度:★★★ 現状の深層学習では、何層にするか、各層のユニットの数をいくつにするか決めて実験してうまくいったものを使っていますが、将来的に膨大な作業になりそうです。 そこで各ユニットをエージェントにしてしまい、各ユニットが局所的な情報のみを持って独立して行動することで、ネットワークを学習中に自動で変わっていく手法を提案している研究。SDAというデータの一部を隠して再構成させる手法がありますが、この手法とほぼ同等の性能を持つマルチエージェントによる深層学習を実現しています。 Deep Neural Network を用いた株式売買戦略の構築 https://kaigi.org/jsai/webprogram/2016/pdf/975.pdf おすすめ度:★★★ 既存研究では、株価の予測がされていますが、どのタイミングでどの量を売買するかまで議論されていません。そこで深層学習を用いて売買タイミング、取引量まで提案するシステムを構築する研究。 テクニカル指標であるトレンド系とオシレータ系のモデルをそれぞれ作成、過去の株価データをもとに学習させたところ、両モデルの複合型が高い成果を残しています。 また、その時のトレンドによって、トレンド系とオシレータ系のどちらが有効か異なるため、直近の精度により信頼度を設定、信頼度によって取引量を決めることで、さらに成果が向上しています。 深層行動認識モデルのユーザ特化圧縮 https://kaigi.org/jsai/webprogram/2016/pdf/593.pdf おすすめ度:★★★ IoTにおけるセンサベース行動認識において、学習済みモデルをユーザーに特化させることでモデルの圧縮を試みる研究。 センサ情報を生で送るのはプライバシー的に怖いので、解析済みのデータのみを送りたいところです。しかし大量に設置するセンサ側やスマホのメモリ容量は限られ、学習済みモデルをそのまま置き辛いです。 そこで蒸留という方法でそのユーザーにとって不要なユニットを削除することで、モデルの圧縮を行っています。教師モデルと生徒モデルを使った提案手法により、30%まで圧縮しても精度が落ちないことが示されています。 感想的なもの 人工知能学会への参加は2回目でしたが、去年に比べてディープラーニング関連の研究が激増していました。 特に各分野にCNNを適用した例が非常に多く、広い分野で良い成果を残していました。CNNを適用する際のテクニックも多く学べました。 また画像生成技術が昨年末に話題になったり、 画風変換アルゴリズム などが注目され、個人的に画像の生成に興味を持っていました。絵を全くかけない自分にとって、アルゴリズムで絵を作れるというのは、表現手段が増えてとても楽しいのもです。 私自身も、 DCGANで間取りを生成 させたり、 画風変換アルゴリズムでいろんな「だが断る」を作っ たりして遊んでいますが、画像が荒かったり、特徴抽出がうまくできなかったりして、まだまだな部分があります。 今回の人工知能学会でも、高精度な画像生成や特徴抽出の改善などの研究があり、どんどん改善されていくのが楽しみになりました。 理論的な研究も非常に興味深く、教師データ収集の手間を減らす、モデルを圧縮する、モデルの組み合わせの試行を無くすなど、現状の深層学習における問題点を本質的に解決する研究は凄いと思いました。 本当に深層学習周りの技術の進歩は速すぎて、驚くべき成果が多いので、これからも積極的に情報を収集していこうと思います。
こんにちは!iOSチームの塙です! 来週に迫った WWDC2016 ですが、どんなサプライズが待っているんでしょうかね! 私もAltConfなどの周辺イベントに参加しに行きます!(現地でお会いできたらご飯行きましょう!) Swift3.0 の話は確実にメインで出てくるでしょうね!しっかりと勉強しておきたいです。 特に ++ -- オペレータの廃止はCに慣れ親しんだ方々には衝撃だったはずです。詳しくは こちら 他には噂レベルですが、サードパーティのアプリで使用出来るSiriAPIの登場やiOS10、WatchOS3、新AppleMusic、iPhone7、新MacBookなどなど… こんなに熱い情報を自分のPCの中に留めておくのはもったいない! では共有しようではないか!と始まったWWDC共有会ですが、 今年も弊社、ネクストで行います! 現地に参加される方も、自宅でまったりKeynoteをストリーミングで見る方も、何もしない方も! 熱い情報は熱いうちに共有しましょう!以下概要です! 概要 日時 2016/07/01(金) 19:00 – 22:00頃 場所 株式会社ネクスト 東京都港区港南2-3-13 品川フロントビル3F エレベーターにて3Fまで登っていただきますと、左手に受付スペースがございます。 参加費 無料 です! 内容 弊社エンジニアからの現地報告 LT枠で申し込み頂いた方のLT 懇親会(軽食をご用意いたします) 定員 LT枠(先着): 7名 (10分前後のLTの準備をお願いいたします) オーディエンス枠(抽選): 100名 注意事項 Apple Developerアカウントを持っている方に限定させていただきます。 Appleとの契約上守秘義務の課せられている情報等については、個人の責任において管理をお願いします。 なお上記に伴いまして、入室時に誓約書への記載をお願いいたします。 Wifi、電源は準備しておりますが限りがあり、回線品質の保証は出来ませんのでよろしくお願いします。 詳細&参加申し込み connpass.com 皆様のご参加を心からお待ちしております!
こんにちは、リッテルラボラトリーの清田です。 2016年6月6日(月)〜6月9日(木)に福岡県北九州市で開かれる 2016年度人工知能学会全国大会 (JSAI 2016) に、株式会社ネクストとして協賛・ブース出展します。 今年は、人工知能 (Artificial Intelligence) という分野ができるきっかけとなった ダートマス会議 から60年、日本に人工知能学会が設立されてから30年の節目の年とのことで、数々の目玉企画が予定されています。昨年に引き続き開催される 人工知能学会 倫理委員会の公開討論 や、Deep learningの原型ともいわれる ネオコグニトロン の考案者である 福島邦彦先生 による 特別講演 なども行われます。 ネクストのブースでは、昨年11月から提供開始した HOME'Sデータセット や、大学との共同研究の取り組み、プロダクトの紹介などを行います。リッテルラボラトリーでは、データセットをきっかけとした共同研究など、産学連携の取り組みを積極的に行っております。データセットに関する質問や要望、研究テーマのディスカッションなどをお受けいたしますので、ご関心をお持ちの方はぜひお越しください! プロダクトとしては、レゴブロックでお部屋づくりが体験できる「 GRID VRICK 」や、あなた好みのお部屋を学習して提案してくれるアプリ「 HOME'Sヘヤサク! 」のデモを行います。 多くの方のお越しをお待ちしております!
こんにちは。HOME’SのiOSアプリ開発チームの高橋です。 WWDC2014でSwiftが発表されてから2年が経とうとしております。 Swiftは昨年末にオープンソース化され、ネイティブアプリだけでなく、サーバサイド用のフレームワークも登場するなど、動きがますます活発になってきています。 昨年度、私たちのチームではメンバーのSwift力を向上させるために、半年に渡ってチーム内勉強会を行いました。今回はその内容をご紹介したいと思います。 Swiftに対するHOME'Sアプリチームの課題 私たちの課題は、メンバーごとにSwiftの開発経験に差があることでした。 Swiftに触れる機会がないメンバーもいれば、個人でバリバリSwiftアプリを開発したメンバーもいます。 このような状況ではあるものの、メンテナンス性や今後のトレンドも考慮すると、やはり今後はなるべくSwiftを使っていきたい。どうやったら効率良く、チームのSwift力を向上できるかを考えた結果、 座学ではなく実際に手を動かして学ぶ。 実アプリへの導入イメージがつかめるようにする。 といった点から、「住まい探しアプリ開発勉強会」を開催してみることにしました。 アプリ開発勉強会の内容 やったこと まずチームをグループ分けし、Swift経験がある人をリーダーにしました。そしてグループごとに自由な「住まい探しアプリ」を考えてもらいました(どこかで見たようなUIだったり、斬新な検索方法だったり)。 仕様が決まったら、そのグループで実装を行います。期間は半年間で週1回、1〜2時間程度行いました。 またこの機会に、実際に使いそうなライブラリも試してみたかったので、APIへのアクセスにはAlamofireかAPIKitのどちらかを使ってもらいました。 使用感については後の発表会で共有しました。 リーダーとして考えたこと 私もグループのリーダーを担当しましたが、工夫としてメンバーにSwiftに関連するちょっとした課題を出してみました。 例えば、「家賃の合計値をreduceを使って計算してください。」とか「HOME'SのAPI用にAlamofireをProtocol Extensionで拡張してください。」と言った具合です。 コードを書くだけなら従来のObjective-C的に書けてしまうので、課題を設定することでSwiftを意識してもらいました。 レビュー 設計・実装をみんなでレビューしました。 実装時には気づかなかった意見が挙がり、有意義なレビュー会ができました。特にプロトコルやジェネリクスの使い所などは、他人のコードを読まないとイメージが湧かないところもあるため、とても勉強になりました。また、SwiftはObjective-Cよりも短くコードが書けることが多いため、「こうしたらもっと短くできる」「ここも短くできる」といった議論になって楽しかったです。 結果と反省 後日メンバーの感想を聞いたところ、 Swiftらしい書き方がわかってよかった。 業務で質問しにくいことを聞けてよかった。 Swift導入に対する心理的な障害が減った。 といった良い感想を得ることができました。チームとしてSwiftに対する知識はかなり向上できたと思っています。 一方で、 メンバー全員が均等にコードに触れられるよう、調整するのが難しかった。 アプリの開発には仕様決めや設計など多くの作業が必要で、作りながらSwiftを学ぶのは難しかった。 といった意見も出ました。アプリ自体の開発に時間が取られすぎないよう、仕様や大枠の設計はあらかじめ決めてしまうといいかもしれませんね。 CocoapodsやGitなど、プログラミング以前につまづくことも多かったです。勉強会前には必ず開発準備を整えてから望むようにしたいところです。 終わりに 今回、弊社で行ったチームのSwift力向上のための取り組みについてご紹介しました。 もし詳しい内容が知りたい方は、弊社では毎月もくもく会を行っておりますので、ぜひご参加ください!お待ちしております! mokumoku-ios-at-next.connpass.com
こんにちは、新卒2年目エンジニアの池田です。 今回は、先日開催されたネクストの社内イベント「第2回創民祭」のレポートをしたいと思います。 ディープラーニング・VR・tvOS など最新技術を用いたプロダクトや、 リリースに向けて鋭意開発中 のプロダクトなど見ていて楽しい出展ばかりでした。 創民祭(そうみんさい)とは 聞き慣れない言葉かと思いますが、「創民祭」は 業務内外で作ったプロダクトをみんなで発表し合うネクストのお祭り です。 創民(そうみん)は「モノ創りをする民」を表しています。 ちなみに「ソーミン」で例の小麦粉を原料とした食べ物を思い浮かべられた方は、 実際に例の物が振る舞われた第1回創民祭 の記事をご覧ください。 創民祭の様子 では早速レポートしていきましょう。 賑わってます 4月に入社したばかりの新卒社員も含め、来場者は多数。 会場には、ビール・からあげ・ピザなどパーティーの定番が揃っています。 DJブース なんと今回は DJブース も! ネクストでは最近DJの文化が盛り上がっております。 展示プロダクト紹介 さあ! ではプロダクトを紹介していきましょう。 VRアクションゲーム こちらはOculus+Kinectを使ったアクションゲームです。 自在に操れる剣と魔法で、巨大なモンスターと戦う体験ができます。 全身の動きがリンクすることで得られる高い没入感と、 巨大なモンスターが鼻先まで迫る迫力 は一見の価値があります。 弊社役員の山田 も没入しております。 このプロダクトは ニコニコ超会議 にも出展しました。 Goromi for Youtube on tvOS こちらはAppleTVのアプリです。 「Goromi for Youtube(元GoromiTube)はYoutubeのビデオをひたすら流し続けるアプリです。 世界中の聞いたこともないビデオに出会ったときは幸せを感じることができるでしょう。」 とのことで、休日ゴロ見して幸せに浸っている姿が目に浮かびますね。 iTunes Storeからダウンロードもできる ので、是非チェックしてみてください。 Goromi for Youtube GoroOtsubo 写真/ビデオ 無料 Jocker Container Service こちらは創民の名に相応しい技術に特化したプロダクトです。 「Jocker Container Serviceはコンテナ型仮想化技術を用いた社内向け開発環境提供サービスです。 利用者はたった3秒で自分だけの開発環境を手に入れることができます 。」 とのことです。下記がサービスの詳細を表した図です。 興味を持たれた方は、発表者の弊社のエンジニアkaihar4に是非連絡を取ってみてください。 ↓kaihar4のHPです kaihar4.com おそ松さんの6つ子判別器 社内屈指のはてなブロガーでもある弊社のエンジニア id:bohemian916 の出展で、 「ディープラーニングでおそ松さんの六つ子を見分ける判別器」です。 4月に入社したばかりの新卒社員も興味津々ですね! 自分も目の前で判別器が動作する様子を見たのですが、 人間でもわからないような特徴を見事に捉えて判別できていました 。 そして、人力にもかかわらず判別器を上回る正確さで、六つ子の判別を行っている id:bohemian916 も圧巻でした。 判別器の詳しい内容はこちらをご覧ください。 TwilioAPIを用いた電話でのシステム異常通知システム こちらはエンジニアna0AaooQ( http://qiita.com/na0AaooQ )によるサービスで、「Twilio」というクラウドAPIサービスを用いて、システム障害等の際に指定した電話番号に対して簡単に電話をかけたりSNS通知をするというものです。 これで「知らないうちにシステム障害が…」というトラブルが激減することでしょう! 詳しくは下記の記事をご覧ください。 他にも盛りだくさん 社外秘ですが、某ナンチャラカンチャラー・某ホニャラララランラの出展など盛りだくさんでした。 受賞プロダクト Tech賞 Tech賞は技術的に最も素晴らしいと認められたチームに贈られる賞です。 今回のTech賞は… (デデン!) 【Jocker Container Service】 でした。 ベテランの先輩たちを差し置いて新卒2年目でのTech賞。末恐ろしいですね。 山田賞(役員賞) 弊社役員の山田の心が震えたプロダクトに贈られる賞です。 今回の山田賞は… (デデデン!) 【住宅・土地統計調査データを活用したスマホ向けサービス(※ 詳細は社外秘)】 でした。 残念ながらこちらでは内容をお伝えすることができませんが、リリースに向けて絶賛準備中です。 プレスリリースによる今後の発表を楽しみにしていてください。 最優秀賞 そしていよいよ最優秀賞です。 今回の最優秀賞は… (デデデデン!) 【家族と一緒に住まい探しができるサービス(※ 詳細は社外秘)】 でした。 残念ながらこちらも内容をお伝えすることができません。 プレスリリースによる今後の発表を楽しみにしていてください。 出展プロダクトに関するレポートは以上です。 少しでも興味をもっていただければ幸いです。 最後に 先程までVRアクションゲームに没入していた役員の山田 が最後に締めて、創民祭は大盛況のうちに閉会しました。 人が作ったものに見たり触れたりするとその人の熱が伝わってきますね。 その熱に触れて 「自分も何か作りたい!」 と強く感じました。 今回は2回目の開催でしたが、1回目に比べて確実にパワーアップしていると感じました。 創民祭は、これからも定期的に開催する予定なので、この場を借りてみなさんに情報をお伝えしていきたいと思います。 ではでは。
こんにちは。HOME'SのiOSアプリ開発チームの塙です。HOME'Sアプリの最新版(Ver.3.10)で追加された Flyover は、ある新卒※のアイデアから実現したものでした。この話を書くことで弊社のアプリチームがどんな雰囲気なのか感じ取ってもらえればと思います。 ※ 2016年4月1日を以って新卒2年目になりました! Flyoverとは iOS6から標準マップアプリで提供されていた建物などを3Dで表示する機能です。iOS7くらいから日本の主要都市にも対応を始め、今では国内の13都道府県に対応しています。iOS9からはMKMapKitに追加され、サードパーティ製アプリでもFlyoverを実装することができるようになりました。 アイデアが採用される アプリチーム(iOSとAndroid)には 「アイデアボード」 というJIRAで管理されたかんばんボードがあり、そこではメンバーの誰もがアプリに追加してみたい機能や改善したい箇所などを投稿できます。今まで追加された機能も、このアイデアボードから実現したものがいくつもあります。 アイデアがこんなにたくさん!チームのみんなが日々投稿してます! 新卒の私は技術力もなく仕事もうまくこなせないので、素人なりの新鮮なアイデア力で勝負しようと思い、定期的にこのアイデアボードに投稿を行っていました。アプリを触っていて「こうだったらいいのにな」と思った時や、iOSのアップデートで新しい機能が実装できるようになった時は仕事の合間に簡単なモックを作成して一緒に載せたりもしました。 そしてある日リーダーの方から 「アイデアボードにあったFlyoverの件だけど、採用になったから今すぐやってみない?」 という声をかけてもらいました。 iOSアプリのリーダー、プ◯ジェクトXみたいでカッコイイ… 企画立案からアサイン 私はもともと大学でユーザーインタフェースの勉強をしていたので、企画からモノづくりをしたい気持ちがあり、上司にも伝えていました。そのこともあり、Flyoverのプロジェクトは仕様書の作成から担当させてもらえることになりました。 もちろん仕様書の作成などやったこともないので何をしたら良いのかわからなかったのですが、企画とデザイナーの先輩方に沢山フォローしてもらい、なんとか完成させることができました。アプリチームはプロダクト的にも 企画、デザイナー、開発のチームの距離感が近く 、いつもコミュニケーションを密にとっているからこそ可能なのかなと思いました。 この写真はやらせですが笑 いつもこんな感じで話し合ってます! (写っているのは各職種の先輩方です!) 仕様を考える上で普段目にしないユーザーの行動や数値を扱い、自分たちの開発したものがこんなにも多くのユーザーに影響を与えているのかと痛感しました。また、画面の構成も社内の人にABテストをしてもらって決めました。この時もたったボタンひとつの配置が、開発する側と使う側で考えることに大きな違いがあることに気付かされました。 もちろん実装も自分で 自分の力不足のせいではありますが、実装に入るまでにかなりの時間を費やしてしまいました。正直な気持ち「やっとコードが書ける…」と思ってしまいましたが、得るものは大きかったと思います。 実装に関してはそこまで大きな労力のかからないものでしたが、企画から自分でやってきた分、実装の時の責任感はいつにも増して大きく感じました。 ちなみにご自身のマップをFlyoverに対応させたい場合はこの1行を追加すればすぐにできます。 対応地域 も増えてきて、見ているだけでも楽しいこの機能を是非追加してみてください。 mapView.mapType = .SatelliteFlyover // or .HybridFlyover HOME'SアプリのFlyover画面。「3D」をポチっとしてみてください! いろいろやってみて Flyoverは住まい探しをする上で 「周辺環境を知りたい」という声 が多いことからアイデアを出したものでした。そのユーザーの為に考えたアイデアを一から自分で作り、実際にリリースされる機会は本当に貴重なものです。また、それを可能にしてくれたアプリチームの環境にはとても感謝しています。 今回のプロジェクトで普段エンジニアとして目にすることが少ない数値や、疎かになりがちなユーザー目線に触れることがきたので、今後の開発に活かしていきたいです。そしてこれからもチーム一丸となって、ユーザーに役立つ、楽しいアイデアに溢れたHOME'Sアプリを創っていきます! アプリチームの爆発的な活躍に乞うご期待!
<!-- p { style="line-height: 2; margin: 0.5em 0px; padding: 0px; color: #3d3f44; font-family: 'Helvetica Neue', Helvetica, Arial, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, 'MS Pゴシック', 'MS PGothic', sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; } -->   こんにちは、HOME'Sアプリのデザインを担当しているこばやしです。 今回は「 マテリアルガイドラインの上手な使い方 」をお話したいと思います。   今回のテーマは、 マテリアルガイドラインからは、手段よりも本質を読み取ろう 分解すると、 マテリアルガイドラインに載っている手段を真似るでは不十分 本質を自分なりに解釈してみる その解釈から、手段を検討して、アプリに適応していく 以上をデザイナーは留意したいね、という内容になります。 どうしてこれらが大事なのか、それについて 「インタラクション」 をテーマにお話します。 ※ここでの解釈はHOME'Sアプリにおけるものなので、すべて正解ではないです     インタラクション なぜインタラクションなのか 前編 でもお伝えしましたが、マテリアルガイドラインの3つのデザインの原則の1つである「意味のあるアニメーション」として、インタラクションは非常に重要で、優れたユーザー体験をつくる デザインの要素なので、今回テーマとしてお話します。   リップル効果 引用元: Material Design Guidlines マテリアルデザインのアニメーションといえば、タップしたときに波紋のように広がるアニメーションです。これはタップした場所からエフェクトを付けることで、画面のどこをタップしているのかがわかりやすくなります。 入力があった際に、画面内でアクションに応じた返答を返してあげることで、ユーザーへの注意喚起や、UIの理解を助ける働きをしてくれます。   連続性 引用元: Cards Swipe Animation – MaterialUp ビュー・画面の切替りの話がでましたが、そこでもインタラクションが重要になります。これまでのWebでは常識であったページ遷移は 急にページが切り替わる・閉じてしまうなど動きでしたが、これは明らかにバーチャルな世界でメタファーとは異なります。 このインタラクションを工夫することで、現実的な動きに置き換えることができます。急に画面が切り替わるのではなく、タップした次のページには要素を維持したまま遷移させることで、ユーザーは何が起こっているのかを明確に把握しやすくなります。     次に、HOME'Sアプリではどのように取り入れているのかお話します。     インタラクションを考える時、HOME'Sアプリが注意したこと OSバージョンのデフォルトを考える マテリアル対応を進めていくにあたり無視できないのが、OSバージョン毎の扱いです。ここまで説明してきたマテリアルデザインですが、端末デフォルトで搭載しているのはバージョンOS5.0以上になります。 現在のOSシェアはまだまだ4.x系が多く、そういったユーザーはあまり普段からこのマテリアルデザインのインタラクションに慣れていません。つまり、新しいユーザー体験になります。    ユーザーに余計な学習をさせない HOME'Sアプリでは OS5系以上では、リップル効果のインタラクションを採用 OS4系以下では、デフォルトのインタラクションを採用 としています。 様々なアプリを使う中で、HOME'Sアプリだけインタラクションが他のアプリより明らかに異なると「ユーザーの理解を助けるためのアニメーション」が、かえって驚かれてしまったり、余計なことを考えることに繋がるのではないか、という考えのもと上記のような対応をしています。   Google純正アプリを見てみる ご存知の通りGmail、Youtubeなどそれぞれ開発チームが異なるので、マテリアルガイドラインの解釈の仕方もそれぞれ微妙に異なっていて参考になります。 OS5系以上では、リップル効果のインタラクションを採用 OS4系以下では、デフォルトのインタラクションを採用 純正アプリでも未対応です。 というより、おそらくあえてやってないのかなと思います。繰り返しになりますが、マテリアルガイドラインの本質は全アプリのUI統一をすることではなく、ユーザーがアプリを使うときにスムーズに使えるよう基準を設けることだと思うので、Android4.x以下の端末の場合は従来のインタラクションのままがこの場合「筋が通っている」ということなのかもしれません。   まとめ マテリアルガイドラインからは、手段よりも本質を読み取ろう 大切なのははじめにお伝えしたこれです。   マテリアルガイドラインには、マテリアル対応するための手段や方法・事例が具体的に記されていますが、マテリアルデザインの本領を発揮させるためには、手段だけではなく、本質を各自が解釈して各々のサービスにどのように適応していくのが最良かを考えることが大切だと思います。   そういった意味では、デザイナーがやらなければならないことに何も変わりはないですね。上手に適応させてより使いやすいアプリを目指しましょう。   そんなマテリアルデザインですが、対応を進めていくとHOME'Sではある問題を抱えました。次編ではその内容と解決手段についてお話しします。
こんにちは。おうちハッカー@リッテルラボラトリーの石田です。 2016/3/13~3/16まで、アメリカ・テキサス州オースティンで開催された SXSW 2016 Trade Show (サウス・バイ・サウスウェスト トレードショー)に、弊社から製品化が発表されたばかりの GRID VRICK を出展してきました。 SXSWとは? SXSWとは、テキサス州オースティンで毎年3月に開催される、音楽、インタラクティブ、映画を組み合わせた世界最大級のイベントで、今年で30周年を迎えました。特にインタラクティブ部門におけるアワードは、スタートアップ企業の登竜門とも呼ばれていて、過去にはTwitterやFoursquare、SiriやSpotify等が世間に広がるきっかけを作ったとも言われています。 30周年を迎えた今年は、 オバマ大統領 夫妻が 基調講演 を行いました。 画像は CBSNEWSより SXSW中の街の様子 SXSWの期間中は、オースティンの街中がお祭り状態です。 こんな観覧車が街中に出現したり 楽しい恰好をして歩いていたり 期間中は、メインの通りは歩行者天国となり 夜はあちこちのバーでライブが行われ、活気にあふれています。 Trade Showの様子 今回私たちが出展したのは、 Trade Show と呼ばれる展示会で、世界各国から勢いのある様々な会社・団体が出展しています。日本からの出展も近年増加しており、今年はソニーや富士通、博報堂、東京大学などの団体が50弱のブースを展示していました。 Trade Showは、オースティン市街にある、オースティンコンベンションセンターで行われました。 入口はこんな感じです。 会場内は人がごった返し、活気にあふれています。 こちらはNASAのブース。宇宙飛行士と話して握手できるみたいです。 こちらはみんな大好きスターウォーズのホログラム展示。 こんな恰好の人や ところどころでブース内でライブ演奏が行われていました。 他にも、マッサージしてくれるブースがあったり 卓球台が置いてあるだけのブースがあったりで、本当になんでもありです。 ITサービス系の出展が多く、直接見せるハードウェアがないせいか、お客さんと密なコミュニケーションをとり、自サービスを知ってもらうために様々な趣向を取り入れていました。本当にインタラクティブな展示が多いです。 一方で 日本周辺のブース は、圧倒的に ハードウェア のある展示が多かったです。 イヤホンがたくさんついたウィッグや 天気を知らせてくれるIoTデバイスだったり iPadとOculus Liftを装着して、アニメキャラになりきる人がいたり 一方の日本ブースは控えめに言って、ぶっ飛んでる展示が多かったです。展示を見に来ている人たちも 「 どうしてこっち3列はこんなにクレイジーなものばかりなの?! 」  ※端っこ3列は日本を含むアジアブースでした。 と話していました。 こちらの記事で、もう少し日本ブースについてまとめてくださっています。 blog.innovationcenter.jp 弊社のブースの様子 ここからは、弊社のブースの様子をお伝えします。 私たちは、ブロックで家の間取りを作るだけで、すぐに3Dの家作ってシミュレーションできる「GRID VRICK」を展示しました。 www.gridvrick.homes.co.jp 展示が始まる直前のメンバー各員。やる気満々! 私たちはこんな帽子を被って展示を行っていました。これは BRICK BRICK という帽子で、ブロックを使って自分で帽子をデザインできるというものです。これがなかなか好評で、街や会場で被っているだけで、その帽子いいねって言ってくれる人がたくさんいらっしゃいました。 とてもたくさんの方にGRID VRICKを体験していただきました。 作った部屋をOculus Liftでウォークスルーして喜んでくださったかた 反応もとてもよく、 Awesome! Amazing! Crazy! Genius! Good Job! Pretty cool! Most excited! という最高の褒め言葉をたくさん聞くことができて、こちらもテンション高く説明ができました。 アメリカでも子供に大人気! もう行くよ!ってお父さんに手を引っ張られてるのに、まだ遊び足りない兄弟 慣れない英語での説明でしたが、新しい刺激がとても多く、4日間とても楽しく展示をすることができました。 アメリカやその他の国の人たちからもとても好評でしたので、また海外での展示会に持っていきたいところです。
はろーはろー!チバです。 今回は、「 ネクスト大学 」制度を用いて開講された「はじめての外注ゼミ」の内容をお送りします。 全4回の題目 第1回 - 目的にあった外注パートナーの探し方 第2回 - PMBOKの基礎と外注制作の体験談 第3回 - TiDD(チケット駆動開発)の手法、思想とプランニングポーカー 第4回 - ツールの選定眼を鍛えよう ゼミの中で使った、2015年6月〜9月期間の全4回に渡るスライドも公開したので、是非ご覧ください╭( ・ㅂ・)و ̑̑ グッ ネクスト大学とは… 従業員一人ひとりの能力開発を目的に、「必須プログラム」「選択プログラム」「選抜プログラム」からなるネクスト大学(社内大学)を開校しています。 「選択プログラム」では、社長が主催する経営塾、プロジェクトマネジメント、レコメンデーション技術、ロジカルシンキング、英会話等、社員は自身が受講したいゼミを選択して受講できます。ほとんどのゼミで社員が講師を務め、職種や部門を越えてお互いに教え合う文化の醸成に繋がっています。 「選抜プログラム」は、次世代リーダー育成プログラムです。トップセールス、クリエイティブアワード、ベストマネジャー、役員推薦等、次世代経営者候補を選抜した海外研修等を実施しています。 はじめての外注ゼミとは… はじめての外注でプロジェクトに取り組む人が何を準備し、どんなものを使い、どのように外部リソースを活用していくかを会得するゼミ。 ネクストの案件に取り組んだ社外の人にも「いい案件だった」と思ってもらえるような良質なプロジェクトを運用し、顧客・ユーザーの満足へとプロダクトで応えることを当ゼミの目的とします! 昨年の4月、今期ゼミの募集をしていたときにこのゼミをやりたい!と思い、趣旨の提案と共にゼミ長に立候補しました。 当時はネクストに転職して半年、常に隣に制作者や開発者のいる環境に慣れてしまっている組織を目の当たりにし、(全部が全部ではないですよ ^O^)組織規模の拡大に合わせて案件進行がずさんになっていく未来が予測できました。 「 100社の子会社、100人の社長を 」のスローガンを掲げる以上、リソースが流動的になることを目先に見据えていなければならないと思ったのです。 そう考えたとき、私たちはもっといろんな人たちと働くことを視野に入れなければならず、チーム構成はアウトソーシングでという手段もあるでよってことを社内に広めたいと考えて取り組みました。 このゼミで幸せにしたい人 その1、ネクスト社員の皆さんです!外注への抵抗感を無くし、リソース増強の際に役に立 つ知識を身につけてもらうことが狙いです。 その2、外部パートナーの皆さんです!一緒につくり上げるパートナーとしてジョイン してもらい、「ネクストさんといい仕事ができた!」 を体験してもらうことが狙いです。 以上、2つをステークホルダーとして見据え、このゼミをスタートさせました! 第1回 - 目的にあった外注パートナーの探し方 外注先の選定はどうするべきか、オフショア開発で気をつけることは何か、見積もりってどうやって詰めていけばいいのか、プロジェクトチャーターに書くことは?等々をお話しました。 はじめての外注ゼミ01 - 目的にあった外注パートナーの探し方 from NEXT Co.,Ltd. 第2回 - PMBOKの基礎と外注制作の体験談 第1回でもらった質問を元に、「こういう時はこうしたら好ましかったよね」を受講者と意見交わしながらまとめました。 そこから、言った言わないの水掛け論を防止するために掴んでおくこととして、 プロジェクトマネジメント知識体系ガイドPMBOK の紹介をしました。 プロジェクトマネージャーという職種にかぎらず、ものづくりに関わる全ての人が理解すべきガイドだと思っています( ˘ω˘) はじめての外注ゼミ02 - PMBOKの基礎と外注制作の体験談 from NEXT Co.,Ltd. 第3回 - TiDD(チケット駆動開発)の手法、思想とプランニングポーカー Ticket Driven Developmentの手法と思想を話し、タスクをどのように扱うことが良いのかを話しました。 チャットで話題とされたり、MTGで発生するような情報を上手く振り分けることで、 管理が容易い というものです。 情報が流しっぱなしになる「フロー情報」 タスク発行として分別保持する「ストック情報」 以上に振り分けるルールが定着するだけで、コミュニケーションコストはぐっと減ります。 また、発生タスクの 規模を見積もる ことで、チーム無いでの稼働率が一気に可視化され、リソースの振分けがうまくいきます。 そこで紹介した手法が プランニングポーカー ! 当日は皆で和気あいあい楽しく、見積もりワークショップをしました✌(>ω・)✌ はじめての外注ゼミ03 - TiDD(チケット駆動開発)の手法、思想とプランニングポーカー from NEXT Co.,Ltd. 第4回 - ツールの選定眼を鍛えよう 最終回は、私の信念なんですが 「道具に任せられることは道具に任せて、人間は人間の仕事に集中しよう」 という趣旨のお話をしました。 私たちの業務の中には、思った以上の庶務作業やオペレーション的な作業の時間が存在しています。 それらを 今以上に効率よく片付けて、チームとのコミュニケーション時間を増やしたり、ユーザー研究の時間を増やしたり、1ケースでも多くのテストをクリアするだけでプロダクトはグッとよくなる と思いませんか…!(๑•̀ㅂ•́)و✧ はじめての外注ゼミ04 - ツールの選定眼を鍛えよう from NEXT Co.,Ltd. 当ゼミをやってみて… 受講者や周りの皆さんの反応から、「やってよかった」の一言に尽きる、良いゼミでした。 まさにプロジェクトが走りだそうとしている、という人も何人かおり、時期的にもとても良いタイミングに出逢えたと思っています。 また、他の方の「過去にこんなプロジェクトがあり…」などの話も聞けたり、過去に、社内でプロジェクトマネジメントの知識を広めようとした人の存在を知れたり、自分の知らない過去のナレッジも知ることができてこちらも学ばせてもらえました。 (組織にいる以上、時代背景とか出来事の伝承がされるっていいことだと思うんすよ…温故知新ってあるよね…) 自分が「これやってます!」を大きな声で言うことは、やはり大事なことなんですね。 このゼミがあったことが受け継がれて、どんどんアップデートしたい!再演しよう!って人が出てきたりとかもして、「ネクストさん!一緒に働きましょう!」って言ってくれる人が増えたらいいなと思っています。 そして、「あーこのプロジェクトやってよかったわー!さいこー!ビールが旨い!」って言う人も増えたらいいなと思っています。増やしましょう! 最後に… 2016年4月で、ようやくディレクター6年目になるんですが、受託会社/事業会社両方で培うことのできた経験はたくさんあり、それが全て詰まっているような気がします。 最近は、所属部署柄ディレクション/プランニング/アナリスト/リサーチャーを反復横跳びしてる感じの業務内容ですが、ディレクターであった経験を振りかざさずに、その都度強みを活かして、プロジェクトに見合った振る舞いをしていきたいです。 使う人、作る人がどっちも幸せになるものづくりのあり方を推進して、今後もバンバンでしゃばりたいでーす! *スライド公開にあたり、機密情報・リーガルチェック・それら手配をしてくださった皆さん、ありがとうございましたm(__)m
みなさん。テストしてますか? こんにちは。HOME'SでQAをしている池之上と申します。 私が所属しているQAグループでは、テストに関する海外の出版物を積極的に読むように心がけています。 その中でもとても良い書籍に出会ったので、ご紹介したいと思います。 書籍概要 Jon D. Hagar著 : Software Test Attacks to Break Mobile and Embedded Devices Software Test Attacks to Break Mobile and Embedded Devices (Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series) 作者: Jon Duncan Hagar 出版社/メーカー: Chapman and Hall/CRC 発売日: 2013/09/18 メディア: ペーパーバック この商品を含むブログを見る 著者サイト : https://breakingembeddedsoftware.wordpress.com/ 組み込みデバイスのテストに関する著者の30年以上にわたる経験の集大成。携帯・組み込み端末のテストに関わる人々のための書籍です。 バグやエラーを見つけるための攻め口(Attack)が30以上紹介されています。 扱うテストは、ホワイトボックステストからブラックボックステスト、さらには非機能要件(UX・パフォーマンス・セキュリティ等)に関わる部分まで多岐に渡り、 携帯・組み込み端末に必要なテストが幅広く網羅されています。 各Attack毎に、概要、何を、いつ、どこで、誰が、どうやってテストすればいいのかについて一つ一つ丁寧に説明され、 加えて、テストラボの構成や有用なツールについても豊富に紹介されています。 設計から実施まで必要な情報をカバーし、丁寧に説明した、携帯・組み込み端末のテストの教科書的位置づけの書籍です。 書評 いままで長らくHOME'SのPCサイト、スマートフォン最適化サイトのQAをしていたのですが、 昨年夏にスマホアプリのQA担当することになり、ちょっと予習しておこうと思ったのが読み始めたきっかけでした。 携帯・組み込み端末に関わるテストが網羅的に載っているので、業務でのテスト設計や実施の際に本書はとても役立ちました。  また、携帯・組み込み端末は従来のシステムとどう異なるのかについても触れられており、 今までやってきたテストと何が違うのか、どう注意すればいいのかについても知ることができます。 例えば次のような部分です。 remember that mobile app users have historic expectations of performance based on their IT, PC, and web use. Embedded devices may have less raw performance power (e.g., CPU speed) than IT systems, and users in part understand this situation, but programs should not rely on the lessened expectations of the mobile or smart user for project success. (Software Test Attacks to Break Mobile and Embedded Devices p.127) --以下要約-- ユーザーはモバイルアプリにもPCとかwebサイトくらいのパフォーマンスを期待していることを覚えておいてください。 組込みデバイスはITシステムよりパフォーマンス(CPUスピードなど)は劣っているし、このことを理解していないユーザーもいるかもしれません。 しかしながら、(非力なデバイスだからといって)プログラム側がそれに甘えるべきではありません。 言われてみれば当たり前なことなんですが、改めて言われるとハッとする内容です。 内容に加えて、この本で個人的にすばらしいと思ったのは下記の2点 各Attackが体系的にまとまっている リファレンスが驚くほど多い 体系的な文章構成 書籍概要でも触れましたが、各Attackには、概要と、何を、いつ、どこで、誰が、どうやってテストすればいいのかが書かれています。 これらはセクションに分けられて書かれており、知りたいことを拾い読みしやすい構成なのではないかなと思います。 書籍によっては説明の途中で、著者の経験を長々と語られてわかりにくかった。なんてことがあったりしますが、この本では感じませんでした。 一方、著者の生々しい経験談は載っていないのかというと、そうではありません。文中にside barという別セクションで書かれています。 このside barというセクション、著者の経験だけでなく、ソフトウェア史に残るバグなども紹介されており、大変興味深い部分です。 戦闘機やミサイルのバグなんてのもありました。絶対遭遇したくないですが、読む分には興味深いで済みますからね! side barだけの拾い読みも楽しいかもしれません。 そして、文章の書き方だけでなく読まれ方にも工夫が。 この本、届いてびっくり。枕にできそうな厚みで、ちょっとたじろぐ見た目なのですが、 安心してください。全部は読まなくていいんです。 巻末でテスト対象のデバイスや分野ごとに、実施したほうがいいAttackをチョイスしてくれています。 とりあえず、自分がテストしたいプロダクトに関わるAttackだけを読んでいけばいいのです。すばらしい優しさですね。 リファレンスが多い この書籍では、文書中のいたるところに、ここに書いていることはほんの触りだ、序章だ、はじめの一歩なんだ!とでてきます。 序文にもこんな厳しいお言葉が。 No single book is a complete work on software or testing. (Software Test Attacks to Break Mobile and Embedded Devices p.XV) しかしそこで突き放さないのが著者の優しさ。各章末にはこれでもか!と参考文献が書かれています。 そしてAttack中でも、これだけは読んどけ、このAttackを読んだら次に読むのはこれと、著者が書籍をすすめてくることがあります。 知識を深めるための道しるべにもなってくれる書籍です。 最後に 厚みのせいでだいぶ心理的な壁はあるのですが、私のようにスマホアプリのテストをはじめられる方が教科書として使うのはとてもオススメです。 また、熟練者の方は基本を確認しつつ、豊富なリファレンスでさらに知識を深めることができる書籍なのではないかなと思います。 さらに、テストに関わる方だけでなく、開発者の方、ディレクターの方などにもおすすめです。品質を作り上げていく過程がよくわかります。 スマホアプリの開発に関わるなら、来期のプロダクトをさらにより良い品質にするために、ぜひご一読ください。 著者が来日します 来る、3月8,9日に開催されるソフトウェアテストシンポジウム JaSST'16 Tokyoで 著者John Hagar氏が下記のテーマで講演されます。 「Software Test Challenges in IoT devices IoTデバイスにおけるソフトウェアテストの課題」 日本でお話しをうかがえる貴重な機会ですので、参加を検討してみてはいかがでしょうか。 JaSST'16 Tokyoでは、わたくし池之上も弊社で運用している画像を使った自動テストについて発表いたします(詳しくは こちら )。 さらに、 Web.JaSST セッションには、弊社品質管理の長が登壇し、web業界のテスト戦略について激論を交すようです。 当日券の販売も決定したそうです。たくさんのご来場をお待ちしております。 イベント詳細 JaSST'16 Tokyo ソフトウェアテストシンポジウム 2016 東京 日程 : 2016年3月8日(火)~9日(水) 場所 : 日本大学理工学部 駿河台校舎1号館 (東京都 千代田区)
こんにちは。おうちハッカー@リッテルラボラトリーの石田です。 今日は、HOME'Sで大量に保持している間取り画像を使って、ディープラーニングの手法の一つであるDCGANを使い、あり得そうな間取りを生成させてみました。 DCGANとは? Deep Convolutional Generative Adversial Networkの略で、画像を生成する手法です。 データセットを元に画像を生成する生成器と、生成された画像かデータセット画像かを見分ける判別機の2つのニューラルネットワークを交互に学習させることで、 データセットのような画像を生成します。 論文は こちら です。 またNextremerさま主催の 機械学習勉強会 で、発表されていた方の資料もあります。 Deep Convolutional Generative Adversarial Networks - Nextremer&#x52C9;&#x5F37;&#x4F1A;&#x8CC7;&#x6599; 昨年末のディープラーニング界隈では、DCGANを用いた顔イラスト生成が話題となっていました。 qiita.com 今回は こちら のChainerでの実装を使わせていただきました。 間取り画像のデータセット 間取り画像を生成しようかと考えたのは、弊社の日本最大の物件数を誇るHOME'Sのデータセットがあるからです。 今回使用した、画像を含むHOME'Sデータセットは、国立情報学研究所を通して、研究者の方に無償で提供させていただいています。 nextdeveloper.hatenablog.com 最近、高精度な間取り画像を追加させていただきましたので、ぜひご利用ください。 nextdeveloper.hatenablog.com こちらの間取り画像から、サイズを96×96に縮小してデータセットを作成します。 データセットには、 約500万枚 の間取り画像があり、さすがに多すぎるので約50万枚を使用します。 学習経過 30分後  間取りの線がなんとなく見えてきました。 2時間後  間取りの形と色がそれっぽくなってきました。 24時間後  遠目で見る分には、かなり間取りっぽいです。 32時間を超えたあたりで、誤差が発散してしまい、こんなのになってしまいました。 学習経過を動画にしてみました。1画像で10分程度、約32時間分です。 www.youtube.com どんどん間取りっぽくなっていくのが分かると思います。 ただ間取りに書いてある文字まではさすがに再現されません。文字っぽい模様が見えるだけです。 シード値の操作 画像を生成するジェネレーターは、今回の場合、値域[-1,1]の100次元のシード値zを入力として画像を生成します。 このzを、画像Aを生成したシード値zaから、画像Bを生成したシード値zbに連続的に変化させることで、間取りも連続的に変化するのではないかと思い、やってみます。 すると、このように、1Kぽい部屋が、4LDKっぽい部屋に連続的に変わる様子が見られました。徐々に部屋が増えていきます。なんだか不思議な感覚です。 こっちはワンルームから3LDK やってみての感想 先人のイラストや景色などは、手書き感があったり、雰囲気が再現できていれば成功しているように見えるけれど、間取り画像はそうはいきません。 生成した間取りでは、 間取り上入れない部屋 が生成されたり、 よく分からない文字らしきもの が生成されたりで、間取り図としての機能を果たせていません。 また現状で生成できる解像度も小さいので、なかなか見ずらいです。 DCGANは、こうした精密な画像生成には向いていないと思われます。もう少し人の感性に左右される画像をデータセットにすると面白いかもしれません。 参考 Chainer&#x3067;&#x9854;&#x30A4;&#x30E9;&#x30B9;&#x30C8;&#x306E;&#x81EA;&#x52D5;&#x751F;&#x6210; - Qiita Chainer&#x3092;&#x4F7F;&#x3063;&#x3066;&#x30B3;&#x30F3;&#x30D4;&#x30E5;&#x30FC;&#x30BF;&#x306B;&#x30A4;&#x30E9;&#x30B9;&#x30C8;&#x3092;&#x63CF;&#x304B;&#x305B;&#x308B; - Qiita [1511.06434] Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks Deep Convolutional Generative Adversarial Networks - Nextremer勉強会資料 from tm_2648 www.slideshare.net
こんにちは。HOME'Sブランドチームの田中です。 2015年12月15日を皮切りに、HOME'Sの各サービス上でひっそりと差し変わったものがあります。HOME'Sロゴです。 HOME'Sロゴは、これまでもレッドからオレンジになったり、線が微妙に変わったりとマイナーチェンジはありましたが、今回の変更でロゴの見栄えはがらりと変わりました。 ポイントは「小判が取れた」ことと「文字が変わった」ことです。 今日はそんな新しい HOME ' S ロゴの経緯についてお話させていただきます。       HOME'Sの歩みとロゴ   「HOME'S」の名を冠するサービス・コンテンツは、HOME'Sの20年ほどの歩みの中でたくさん生まれてきました。   2015年12月にリニューアルを遂げた「 HOME'Sリノベーション 」。 高齢者向けの住まいを探せる「 HOME'S介護 」。 収益物件検索や、不動産投資のサポートを提供する「 HOME'S不動産投資 」。 トランクルーム専用サイト「 HOME'Sトランクルーム 」。 不動産業務をより円滑にするプロ向けサービス「HOME'S PRO」。   まだまだ他にも沢山あり、これからも増えていくでしょう。 そして、それら全ての接点上でハンコのように刻印され、ブランドイメージをつなぐ最も重要な役割を果たすのがロゴです。 文字を囲う「小判(社内での呼び名です)」から黄色い楕円がポンと閃いたような形のロゴになったのは 2006年1月 ですので、旧「小判型ロゴ」は使われ始めてから10年ほどが経ちます。 しかし10年という年月でサービス規模も運用体制も変わっていき、ロゴもその歩みとともにルールや形態の調整を重ねていました。そして今回、サービスの拡大に合わせ、微調整だけでは解消できない課題に対処するため、現状に合わせた新しいロゴ形態の模索が必要でした。 ですので今回のロゴの変更は「リニューアル」ではなく「アップデート」という言葉を使っています。シンボル自体のコンセプトはそのままに、もともとのロゴが孕んでいた問題点を洗い出して抽出し、解消することが狙いでした。     旧ロゴが持つ問題点とその解消について 問題点は、大きく分けると「可読性」「汎用性」「拡張性」という3点に分けられました。   ①「可読性」の問題 旧ロゴは、小判とアポストロフィーが合体している形状のクセ、メッセージやシグネイチャーの影響で、線や要素が多くなり肝心のHOME'Sの文字が読みづらくなっていました。 これらを解消するために、要素をそぎ落とし、文字の周囲の空間を整理して読みやすくする必要がありました。     以下は、2015年10月~12月の一時期だけ使われていたロゴマークです。 旧ロゴをver1.0、新ロゴをver2.0とすると、ver.1.1というべきバージョンでしょうか。 「可読性」の解消にのみフォーカスしたもので、小判を広げ、開発中のロゴタイプを実験的に利用しています。HOME'Sをある程度認知されている方で無ければ、パッと見では違いを意識する事のない程度の差です。   放映中だったCMの最後の「止め」部分と、PC版トップページでのみ差替えたところ、ロゴ認知は前月比昨対比ともに向上が見られました。 ロゴ認知はあらゆる接点から影響を受ける指標なので一概には言えませんが、数値が大きく変動する理由として他に考えられるものがなかった事もあり、胸をなでおろす結果でした。文字としての読みやすさと、シンボルとしての認知には関係があると言えそうです。         ②「汎用性」の問題 旧ロゴはその形状のクセから、レイアウトで困る場面がよくありました。 まず、オレンジベタ面に配置できない点。色を反転してヌキにすると印象が変わりすぎてしまう事が理由です。そういう時は白い背景を敷かないとロゴが配置できませんでした。形状が複雑なので、矮小スペースも苦手だったりします。 しかし「小判」を取るとこれが解消されます。   そもそもHOME'Sロゴのコンセプトは、アポストロフィー部分の黄色いマークに宿っていました。ポンと生まれる黄色の楕円が、住まいにおける「発見」、つまりHOME'Sをご利用いただく方々に提供すべき価値を象徴しています。   小判はそのコンセプトを強調するためのもので、言ってみれば無くても成立します。 ただ小判を取ってしまうと印象も運用感覚もがらりと変わるため、長年使ってきた蓄積を考えると当然リスクもありました。それでも今後も拡大するサービスや、web、マス、イベントなど利用シーンがいっそう多岐にわたっていく事を考慮し、外すことを選びました。         ③「拡張性」の問題 これも小判に関わる話です。 以下は旧ロゴの時に使用されていたパターンと新ロゴを比較する図です。 旧ロゴは文字を並べると読みづらく、続く言葉によってはロゴの後にまたHOME'Sと書かざるを得なかったりします。「HOME'S○○」という名称と相性が悪かったことがわかります。 これはHOME'Sの文字が白ヌキになっている事が最大の要因でしたので、小判をなくすことで解消されます。こうして今後生まれていくサービスにも対応できるようになります。           制作プロセス   ロゴの制作プロセスですが、まず旧ロゴをひたすら研究するところから始めました。 上げるとキリがありませんが、上記はその研究の残骸の寄せ集めです。のちにver.1.1に繋がる小判研究の足跡も見られます。   文字を調整する作業は計算と目視の繰り返しで進行しました。 肝であるアポストロフィーを強調するため文字自体のクセは抑え、でもちょっとだけ引っかかる。そして何より「読みやすく、使いやすい」こと。 「発見」を別の方法で表現するような案も初期にはありましたが、プロジェクトの主旨からしてそういった案は消えていきました。主役は馴染んだあのアポストロフィー。文字は引き立て役。そうして旧ロゴのイメージをベースに調整を重ねました。 香水を選ぶとき、コーヒー豆を嗅ぐことで鼻をリセットしながら試用するという話がありますが、もしも目に効くコーヒー豆があったら1kgくらい欲しかった時期です。   以下はFIXに向けて最後に比率を揃えて固めようとした段階です。しかしまだアポストロフィーが相対的に大きかったり、いくつかFIX版との違いが見られます。「綺麗なモノには法則がある」という精神で整理していたもののうまくハマらず、ああ、最後は目視しか無いんだな、と悟った瞬間でもありました。 この後、もう何度か目視の最終調整を回して完成します。       ただし、この小判無しの新ロゴだと動画や写真を背にした時「視認性・可読性」が損なわれたり、オレンジ以外の濃色背景時にブランドカラーを保持できません。 なので実は、こういうパターンも存在します。       運用ルール   ロゴの利用ルールも整理しました。 これまでは禁止事項によって成り立っていた"ロゴレギュレーション"を、禁止ではなく考え方を簡潔にまとめる方針で"ロゴガイドライン"として刷新しました。「こう使っちゃダメなんだな」より「こう使ってみたいな」と思ってもらえるようにまとめるイメージです。 上記は余白ルールのページ例です。新ガイドラインは、とにかく「説明しない」ことを重視しています。ルール自体もシンプルにし、またグループ社員はもちろん社外の方にも読みやすく分かりやすい表現に終始することで、より自由に利用できるようになりました。 ただしガイドラインは運用していく上で必ずチューニングが必要になります。旧ロゴのレギュレーションも、運用する中で生まれた課題に対して都度ルールを新設しながら肥大していった背景があります。 そのため初版において平易な表現で、考え方の明示に徹することはガイドラインの土台としての意味もあります。     最後に 長々と書きましたが、要はアップデートであり「小判が取れた」ことと「文字が変わった」ことが今回の顛末です。しかしロゴは影響範囲が非常に広く、一つの調整がサービス全体の印象形成に関わります。 当然、差替え作業は多くの仲間の協力がなくてはできませんでした。ただ幸いなことにHOME'Sの開発/制作ワークフローはかなりの割合で社内完結しているため、差替の進行はおそらく一般のケースよりスムーズだったのはないでしょうか。手前味噌ですが、こういう所はHOME'Sの良いところだと思います。 今後HOME'Sロゴを利用して「HOME'Sらしい」画をつくる際に、イメージを膨らませる一助になって欲しいです。そうして、たくさんの人に親しまれるシンボルになったら良いなと願っています。    
こんにちは。 Apple Watchの代わりに チープカシオ を買ったWebデザイナーのアズマです。 今は職場でMacBook Proを使っていますが、去年はWindowsマシンで仕事をしていました。学生時代からMacを使っていた身としては、MacとWindowsの微妙な挙動や設定の違いに戸惑うこともありました。 1年かけてWindowsをできるだけ便利に使えるようソフト・環境設定をカスタムしていきましたが、 最初にMacからWindowsに乗り換える場合の記事を探そうと思って検索しても、 WindowsからMacへの乗り換えについての記事ばかり 出てきて困った覚えがあります。 そこで今回は、Mac派の僕がWindowsでもなるべく違和感なく、快適にお仕事ができるように導入したソフト・環境設定を紹介しようと思います。 (今回紹介するソフトは全てWindows7 64bitで使用していました) Macは、Apple Inc.の商標です。 Windows は、米国 Microsoft Corporation の、米国およびその他の国における登録商標または商標です。   ■アクティブでないウインドウのスクロール⇔WizMouse WindowsとMacの挙動の違いで一番地味にイラッとするのがこれです。 Windowsでは、アクティブになっていないウインドウにカーソルを置いてスクロールすることができません。今アクティブになっているウインドウがスクロールされるばかりです。 WizMouse はそんなイライラを解消してくれます。起動すればアクティブでないウインドウもスクロールできる、単機能でシンプルなソフトです。 www.forest.impress.co.jp ■かな・英数キー⇔IMEの設定 普段親指でローマ字と英数を切り替えているMacに慣れると、入力を切り替えるたびにキーボードの左上隅の 「半角/全角」 キーまで小指を伸ばさないといけないのはかなりのストレスです。 即座にIMEの設定を変えて、JISキーボードなら「無変換」「変換」あたりのキーでローマ字と英数の入力を切り替えられるようにしてしまいましょう。 vdeep.net ■Emacsキーバインド⇔XKeymacs Macでは文字入力の際、Controlキーとの組み合わせによるいわゆる 「Emacsキーバインド」 で上下左右移動や改行までできてしまうので、慣れてしまえば右手をエンターキーや矢印キーにほとんど動かすことなく文章を書いたりコーディングすることができます。 残念ながらWindowsではデフォルトでそういう機能はないので、キーリマップソフトを入れて対応することになります。 いくつか方法がありますが、僕が使っていたのはその目的に特化したリマップソフト、 XKeymacs です。 CapsキーをEmacsキーバインド用のキーに割り当てることで、通常のCtrl+●みたいなショートカットを潰すことなくEmacsキーバインドを使うことができます。しかも設定が豊富で、Macでもできないような高度なこともできるようになります。 d.hatena.ne.jp   ■Spotlight・Alfred⇔Launchy Macの便利なところは、Control+スペースなどのショートカットでSpotlightや Alfred を開いて、 サクッとアプリを起動したり、フォルダを開いたり、検索したり、辞書を引いたり、ちょっとした計算をしたり、 大抵のことができちゃう ことですね。 WindowsではWinキーで開くスタートメニューの検索窓がそれにあたりますが、機能がちょっと足りない上に見た目も地味でテンションが上がらない。 Launchy は元々ランチャーソフトですが、かなり細かいカスタマイズが可能です。 拡張機能プラグイン や 見た目を変えるスキン なども豊富にあるので、試してみてください。 www.lifehacker.jp   ■プレビュー・Quicklook ⇔ Massigra デザイン作業においては、「これ何の画像だっけ」とファイルの中身を確認したくなることが頻繁にありますよね。Macでは軽い挙動のQuicklookや「プレビュー」アプリで様々な形式の画像を流れるようにチラ見できます。 一方で、Windowsデフォルトの「Windows フォト ビューアー」ではPSDなどの画像形式を開くことができず、 ちょっと確認するためにわざわざPhotoshopを起動することになります。 また、 等倍表示されているのかどうかも確認できないズーム機能 など、控えめに言っても使い勝手が良いとはいえません。 Massigra なら、起動や終了も非常に速く、(Escキーで閉じられるところがお気に入り) キーボードショートカットも細かく設定でき、 さらにプラグインを導入することによって、PSDなどでもバッチリ、Photoshopよりも早くサクサクッ!と開くことができるようになります。 この手のソフトで昔から有名なのは IrfanView ですが、IrfanViewと比べてMassigraの良いところは、商用利用可能なところと、アイコンがかわいいところです。 (IrfanViewのアイコンのモチーフは「轢かれた猫」です。) hanamaru.hatenablog.com   ■HyperSwitch⇔VistaSwitcher Macのタスク切り替え(Command+Tab)は、基本的な機能として困ることはないんですが、ウインドウごとに選べないとか、かゆいところに届かないところがありますね。それを解消するためにMacではHyperSwitchを入れていますが、これのWindows版といえるのが VistaSwitcher です。 VistaSwitcher は大きなサムネイルでウインドウを選択できるほか、サブディスプレイに接続した際の挙動などを細かく設定することができる、まさにかゆいところに手が届くソフトです。 gigazine.net   ■Mission Control⇔Dexpot Macのデフォルト機能、Mission Controlでは開いているウインドウを並べて俯瞰したり、複数デスクトップを切り替えることができますが、Windowsではデフォルトではそもそもマルチデスクトップに対応していません。 Dexpot を使えば、Macのような複数デスクトップ環境を作ってショートカットで切り替えたり、開いているウインドウが一望できたりします。 (※個人用に限り無料ですが、商用利用の場合24.9ユーロ(約3,300円)です。) kkblogs.com   ■Finderのタブ機能⇔Clover MacではMavericks(10.9)から公式でFinderにタブ機能が搭載されましたが、WindowsのExplorerではまだタブ機能がありません。そこで使えるのがCloverです。 Clover はExplorerにChromeのタブ機能がついたシンプルなファイラーで、Chromeのタブまわりで使えるショートカット(Ctrl+Shit+Tで閉じたタブを復活…など)が使えます。 2ペイン型のTablacusや複雑なレイアウトの行えるQ-Dirなど、ファイラーの世界は奥が深いですが、シンプルで最低限タブが使えればいいや、という方はCloverがおすすめです。 hep.eiz.jp いかがでしたか?別にWeb制作者じゃなくても使うものが大半でしたね。デザイナーズブログに書く意味あったんでしょうか。反省してます。 迷えるMac派Windowsユーザーのためにも、「俺は他にもこんなのを使ってるぜ!」という方はコメントなどで教えてください!
こんにちは、リッテルラボラトリーの清田です。 2015年11月に提供開始した「HOME'Sデータセット」 には、おかげさまで多くの研究者の方々からお申し込みをいただいており、すでに20以上の大学の研究室・研究機関にご提供しております。 このたび、「HOME'Sデータセット」に高精細度版の間取り図画像データ(約515万点)を追加しました。間取り図は、物件スペックデータ(面積、部屋数など)だけではわからない住まいの使い勝手の判断材料の一つとして、多くの住まい探しユーザーに利用されています。住まい探しに新たなイノベーションをもたらすような研究に活用されることを期待しています! 「HOME'Sデータセット」への期待・要望 「HOME'Sデータセット」には多くの方々からお申し込みやお問い合わせをいただいておりますが、なかでも約8300万点の物件画像データには、deep learningなど最先端の画像処理アルゴリズムの研究資源として関心をお寄せいただいています。 一方で、以下のようなデータもあると嬉しいというご意見も多々頂戴しております。 物件データの時系列変化(経済動向の把握など) ユーザーの行動ログデータ(物件検索、問い合わせなど) 物件の正確な位置情報(緯度・経度) より高解像度の画像データ これらのデータに関しては、プライバシー保護の問題やデータセット作成のコストの課題はあるものの、課題のクリアに向けて取り組んでいきたいと考えております。 物件画像データに関しては、物体認識タスクを主な用途として想定していたことから、まずは画像数を優先して120×120ピクセルのサイズとしていましたが、とくに物件に関する情報をたくさん含んでいる間取り図画像の解析については解像度が足りないというご意見をいただいておりました。 CiNII や Google Scholar を検索すると、間取り図にフォーカスした研究はこれまでも多数行われていることがわかります。間取り図に関する研究が盛んになることは、中長期的に住まい探しユーザーの利便性向上につながると考えられることから、まずは高精細度の間取り図画像データをご提供することとなりました。 高精細度版間取り図画像について 今回「HOME'Sデータセット」に追加された「高精細度版間取り図画像データ」は、すでに提供済みの約533万件の賃貸物件データ(2015年9月時点でのスナップショット)のうち、約515万件の物件に紐付けられた間取り図です。 約515万点の間取り図画像ファイル うち、約48万点にはフリーテキストがメタデータとして付与 JPEG形式、最大1280×1280ピクセル(不動産会社による提供画像サイズに依存) 間取り図画像からは、以下のような情報を読み取ることができます。 部屋、設備のレイアウト どの部屋どうしがつながっているか? 玄関とリビングの位置関係は?(来訪者から部屋の中が丸見えになってしまうかどうか?) 収納スペースの位置、広さ たとえば、 子ども部屋の位置は玄関からの動線(いったんリビングを通ってから子ども部屋に行けるようにする)が大事だと言われています が、現在の住まい探しサイトでは、このようなニーズには十分応えられていません。住まいに関する多様なニーズに応えられるようなイノベーションが、データセットの共有を通じて生まれてくることを強く期待しております。 データの入手方法 「HOME'Sデータセット」本体と同様、国立情報学研究所(NII)の 情報学研究データリポジトリ(IDR) を通じてご提供します。手続き方法については 「HOME'Sデータセット」のページ をご覧ください。 ※公的機関に所属する研究者の方以外からのお問い合わせは、弊社問い合わせ窓口(corp-info アットマーク next-group.jp)までお願いいたします。
こんにちは。ウェッブデザイナーのアズマです。 皆さん、会社で昼寝してますか?僕は毎日してます。 待ってください。会社のお問い合わせフォームに苦情を書き込む前にちょっと聞いてください。昼寝といっても10〜15分程度のものです。 でも、その昼寝に踏み切れず、眠気にひたすら耐えてつらい思いをしている人もいるのではないでしょうか。 そんな人のために、HOME'Sの 「昼寝大使」 として、今回は職場での昼寝のメリットと、それを可能にする方法をお伝えしたいと思います。 ==== 会社で昼寝をするべき理由 1. 頭をリセットすることで創造性が回復する デザイナーのみならず、およそ机について働く人の仕事は「考えること」です。ボタンの見た目を考えるにしても、サービスの構造を考えるにしても、思考や判断には精神的なエネルギーが必要不可欠です。 「タバコを吸う」「散歩に行く」「座禅を組む」「踊る」など、人によって様々な回復方法がありますが、中でも最も手軽で即効性の高いのが「昼寝」と言えるのではないでしょうか。 ちなみにクリエイティブなアイデアと高いクオリティでお馴染み、 面白法人カヤック の柳澤代表は眠くなったら 即座に床で寝ている そうです。この昼寝に対する貪欲な姿勢、スピード感がクリエイティビティの源泉なのかもしれません。 2. 眠気を我慢しても効率は下がる一方 襲い来る眠気を我慢して作業を続けようとして、手元が狂って同じところを何度もアンドゥして、作業は進んでないのに時間だけが過ぎていた、ということはありませんか? その分昼寝していればよかったのではないでしょうか。 デザインは緻密な作業です。エネルギーの大半を「頑張って起きておくこと」に費やすような状況で仕事ができるでしょうか。 睡魔に襲われて最悪のコンディションで1時間頑張るか、10分昼寝して全回復してから50分頑張るか。答えは自ずと明らかです。 極論すれば 「起きてる時間が無駄」 です。 3. 厚生労働省とNASAも認めている 厚生労働省による 「健康づくりのための睡眠指針2014」 でも、「午後の早い時刻に 30 分以内の短い昼寝をすることが、眠気による作業能率の改善に効果的」とあります。 そりゃしょうがない。国が認めてるんじゃしょうがないですよ。国には逆らえない。 また、コーネル大学の社会心理学者であったジェームス・マースにより提唱された 「パワーナップ」 (15〜30分の短い昼寝)はアメリカの企業で広まっており、高度な思考や判断を要するエグゼクティブ層を中心に浸透しているそうです。 NASAでも昼寝の効果は 研究 されており、26分の眠りがパフォーマンスを34%向上させるとしています。 NASAならしょうがない。NASAが認めてるんじゃしょうがないですよ。 会社で昼寝をするための心得 1. 堂々と、かつさりげなく 昼寝に対して罪悪感を感じる必要はありません。自分が正しいと信じたことを実行するのみです。弊社のガイドラインにも「自ら動く、自ら変える」とあります。昼寝に対する社内の認識を自ら変えてやるぐらいの気持ちで寝ましょう。 とはいえ口に出して 「それじゃ僕寝ますんで!」 と言われると「なんだこいつ」となることは必定。ここではさりげなさが大事です。 トイレに行くときのようにさりげなく席を立ち、お気に入りの休憩スペースに向かいましょう。 猫は死に際になるとフッと姿を消す といいますが、イメージとしてはアレです。 そして昼寝後は何事もなかったかのように席に戻り、仕事の続きに取りかかりましょう。僕クラスのヒルニスト(昼寝をする人)になれば息を吸うように昼寝できますが、最初のうちは踏ん切りがつかないと思いますので、心の中で 「寝るのも仕事のうち」 とつぶやくのが効果的です。 ちなみに弊社では最近、休憩スペースをオシャレにDIYしたので、オシャレな気持ちで昼寝をすることができます。 www.homes.co.jp   2. 「10分で起きる」と周囲に明示する 人によって回復できる時間が違うのかもしれませんが、慣れれば10分でもしっかり目が覚めます。 30分以上の昼寝は逆効果 という研究もあるので、くれぐれも昼寝は 10〜20分 程度に抑えておきましょう。 そうなればスマホのタイマーなどを仕掛けて確実に10分で起きるのはもちろんのこと、周囲に対するさりげないアピール&amp;エクスキューズも重要です。そこで僕はこんな物を作りました。 この紙を印刷して社員証の後ろなどに挟み、机にうつぶせて寝るときには背中に回します。これで通りがかりの人に「こいつ、いつから寝てるんだろう…」と思われずに済みます。 また、昼寝のことをPower Napと呼ぶことでなんとなく 公認っぽさ を出し、後ろめたさを払拭する効果があります。皆さんも印刷してお使いください。 (印刷用ファイルはこちら) 3. アイマスク・耳栓は常備 これは10分間の眠りの質に関わる重要なことです。貴重な眠りの質を蛍光灯の光や周囲の声で下げるわけにはいきません。100均のペラペラのものじゃなく、多少高くても良い物を使いましょう。昼寝に対する意識が高まります。 僕のおすすめはDream Essentialsの 立体型アイマスク と、軍用でも使われるMOLDEXの CAMO PLUGS です。 耳栓に関しては人によって好みの差があるので、最初に お試しパック を買ってみて一番しっくりくる耳栓を見つけましょう。 より快適な昼寝環境を構築するため、僕はポータブルの枕を持ち込んで使っています。無印の「人がダメになるソファ」のミニバージョン、ネッククッションがおすすめです。 http://sleep.muji.net/ja/ 4. 眠る前にコーヒーを一口飲む 「コーヒーなんて飲んだら眠れなくなっちゃうじゃないか!」とお思いかもしれませんが、カフェインが効果を発揮し始めるのは、 摂取後30分経ってから とされています。 昼寝の前に飲むとちょうど起きた頃にカフェインが効いてきて、頭がスッキリする効果が高まります。 いかがでしたでしょうか?あんまりデザイナー関係なかったですね。反省してます。 そろそろ「昼寝したい!毎日したい!」という気持ちになってきたのではないでしょうか? 働くときは全力で働き、寝るときは全力で寝る。そんな真のプロフェッショナルを目指して、レッツ昼寝! (本記事の内容に基づいて被ったいかなる被害についても、当方は責任を負いかねます)
こんにちわ、フォースを信じてる鈴木です。 ネクストでは、業績目標を達成したご褒美に全従業員参加の社員旅行をします。 会社の成長とともに参加者が増え、4回目の2015年は海外子会社も含めて500人超が参加をしました。今回は、そんなネクストの一大行事の裏側で活躍したクリエイターの日と開発チーム「teamぼんじり」についてお話ししたいと思います。 課題がたくさんある社員旅行 さて、500人が参加する社員旅行。もちろん旅行代理店の方にお願いはしていますが、旅行の企画や運営は社内の12名の実行委員が主体的に行っています。 参加者の方には集合時間や旅行行程、座席や部屋の番号、アクティビティの案内などをお知らせする必要があります。 昨年まではそれをパワポで作成、名簿含めて実に39ページという大作の旅のしおりを配布するという運用をしていました。 このかさばる紙のしおり、旅行のときには荷物になる、必要な情報が探しにくい、情報の更新や修正ができないと、参加者にも運営にも大きな負担となっていました。 Teamぼんじり結成 そこで、登場するのがクリエイターの日です。 ネクストの クリエイターの日 とは、希望するクリエイターが業務時間の10%(1Qで最大7日間)を使って、特設プロジェクトの提案を行い開発をすることができるクリエイターにはうれしい制度です。 今回はそのクリエイターの日の実行委員に相談をし、開発をしてくれるメンバーを募ることにしました。 募集をかけたところ、自ら手を上げてくれたのがエンジニア2名、デザイナー1名。 そこにディレクターの私、 プロダクトオーナーのチバちゃん が加わり、さらにインターン1名が追加されて、teamぼんじりが結成! (インターンは2016年入社予定のエンジニアで、今回は特別にいっしょに開発体験をということで参加をしてもらいました。) ここから、ふだん仕事では関わったことない「はじめまして」のメンバーでの活動がはじまります。 ユーザーの課題はなにかを考える クリエイターの日で活動できる時間は限られているので、活動期間前にはランチの時間などを活用してチームビルディングとプランニングを行いました。 途中でプロダクトオーナーからのチーズケーキの差し入れなんかもあり、即席チームいい感じ。 私の方からは最低要件を伝え、みんなでつくるものを考えていきます。 ここでは、インセプションデッキをつかったりしました。 チームでなにをどうつくるか、私はせっかくクリエイターの日を活用するし、ふだんの仕事ではできない遊び的要素を組み込んでもいいかなと思っていました。 しかし、そんななかで「社員旅行の間にたくさんの人が使うものだから問題解決型のプロダクトにしたい」と声を上げてくれたのがデザイナーでした。 なんたる、あっついデザイナー魂!!!そう、私たちはユーザーのためにプロダクトを考えなくては! この意見にTeam全員が合意、今回のプロダクトでは過去の体験談をもとに、どんな課題をどうやって解決するかをしっかり考えて開発することになりました。 開発したWebしおりとは? ここでは開発したプロダクト「Webしおり」について、 小屋横に住まう エンジニアの横山より紹介をしたいと思います。 静的なページではなく動的ページを 「私の部屋は何号室? 誰と一緒だろう?」「帰りのバスは何号車だったけ?」 紙のしおりだった頃は500名分のマトリックス表の中から自分に該当する項目を探しだすのは、一苦労。。。 おそらく、数分はかかっていたでしょう。そんな悩みを解決したのが今回の目玉である”マイページ機能”でした。 単にしおりをWeb上に載せるのではなく、旅行中の閲覧に最適なスマートフォン用に開発し、動的なページとしてローンチさせました。 マイページ機能の他には、英訳切り替え機能、ログイン機能を作成いたしました。 スクラップアンドビルドしていた紙媒体ではなく、インフラ構築さえしておけば、また来年にも再利用でき、製作コストを下げられます(`ω´)キリッ (といっても、限られた期間内では最低限の機能しか作りこめませんでしたので、あまりここでは触れないこととします。) 予算は1万円 今回インフラからの構築というわけで、AWS EC2を使ってWebサーバを構築いたしました。 インフラ構築及びサーバーサイドの実装担当に1名、フロントエンドの実装に1名という体制で進めました。 このPJ、開発期間、人数も限られておりますが、予算も限られております。 開発期間中、夜中はインスタンスを落としたり、ディスクI/Oを発生させないためキャッシュさせたり等、可能な限り予算内に収まるよう設計いたしました。 開発期間:1週間、ローンチ後運用期間:2週間 で以下のような結果となりました。 使用インスタンス:t2.micro 平均CPU使用率:0.5% CPU使用率ピーク時:5.5% 開発及び運用期間でのインスタンス稼働時間:816時間 総費用:$26.04 AWSを利用することでよりお金のことを意識させられたり、運用面のトラフィックやCPUをウォッチしたり等、分業化された普段の業務では中々味わえない経験ができたかと思います。 活動限界までブラッシュアップしました Teamぼんじりの活動期間の最終日にちょうど 第1回 創民祭 がありました。 ネクストの創民祭はクリエイターの日や個人での活動などの成果報告をみんなで楽しもうという社内イベントです。 活動時間だけではなく、プロダクト発表の場も用意されているなんてなんたる機運。もう、これはエントリーするしかないじゃない!と実は開発開始より前のめりにエントリーしていました。 クリエイターの日とはいえ、やらなければならない通常業務。社内用とはいえテストに手心は加えないエンジニア、活動終了1時間前にメインビジュアルにスライダーを開発しちゃうデザイナー。 エントリーまでは、まさかここまでの怒涛の開発をするとは思ってもいませんでした。 どこまでもどこまでもきっちりやりきるのがTeamぼんじりです。 そんなわけで発表準備もままならないまま持ち込んだ創民祭でしたが、なんと優勝いただいちゃいました! 派手さや、技術的な真新しさなどはないプロダクトでしたが、ユーザーの課題をしっかり捉えた点がきちんと評価されたのではないかと思っています。 Fin そうして社員旅行も無事に終えたTeamぼんじりは、創民祭の優勝賞金で打ち上げ費用をきっちりゲット!おいしく焼き鳥を食べましたとさ。 めでたしめでたし。 (Teamぼんじりの名前はメンバーの好きな焼き鳥からつけました) 企画から開発、打ち上げまで自発的に行動を起こし、実行できる。 ネクストにはそんなクリエイターがそろっています。
こんにちは、ウェッブデザイナーのアズマです。 みなさん、Sassは好きですか。僕は好きです。 そして、寿司は好きですか。僕は好きです。 Sassがあれば何でもできる! Sassがあれば、回転寿司も回せる! というわけで、今日はSass(CSS)を使って回転寿司のように要素を無限ループさせてみましょう。 何ができるか こうです。寿司が無限ループしています。(本当はもっとなめらかに動きます) 僕の圧倒的な画力についての感想はここでは本質ではないのでご遠慮願います。ここで大事なのは寿司が無限ループすることです。 「画像が流れればそれでよい」ということであれば、 1枚の横長背景画像にしてbackground-positionを動かす という手法や、いっそのこと 全部Gifアニメにしちゃう (寿司ゆき超かわいい)という手法もありますが、 例えば「今後要素の数がちょくちょく増える予感がある」とか「できるだけセマンティックに作りたい」とか「なんか負けた気がする」などといった理由で背景画像にはしたくない、そんな夜もあるはずです。 ただ寿司が回ればいいのか? 否、回すなら美しく回さなければならない。そうでしょう? 回しましょう、今宵、美しい寿司を。 ==== 完成形のコード というわけでSassの出番です。 寿司の個数に合わせて数値を計算したり、CSSで要素ごとにアニメーションを設定しようとすると日が暮れてしまうので、Sassで一気に作っちゃいましょう。 まずHTMLはこうです。何の変哲もないリストですね。ちなみに回転寿司は英語でsushi-go-roundです。本当です。 &lt; ul class = "sushiGoRound" &gt; &lt; li &gt;&lt; img src = "img/ebi.jpg" alt = "えび" &gt;&lt;/ li &gt; &lt; li &gt;&lt; img src = "img/ikura.jpg" alt = "いくら" &gt;&lt;/ li &gt; &lt; li &gt;&lt; img src = "img/maguro.jpg" alt = "まぐろ" &gt;&lt;/ li &gt; &lt; li &gt;&lt; img src = "img/shimesaba.jpg" alt = "しめさば" &gt;&lt;/ li &gt; &lt; li &gt;&lt; img src = "img/tako.jpg" alt = "たこ" &gt;&lt;/ li &gt; &lt; li &gt;&lt; img src = "img/tamago.jpg" alt = "たまご" &gt;&lt;/ li &gt; &lt;/ ul &gt; そしてSassはこうです。 // 寿司を回すための変数を設定 $itemTotal : 6 ; // 寿司の総数 $speed : 50 ; // 寿司の速度 $duration : ( $itemTotal * 100 ) / $speed ; . sushiGoRound { position : relative ; overflow : hidden ; width : 500px ; height : 100px ; padding : 0 ; background : url( 'img/bg.jpg' ) ; border : 1px solid #333 ; li { position : absolute ; width : 100px ; height : 100px ; list-style : none ; animation: slide #{ $duration } s linear 0s infinite; } li img { width : 94px ; height : 94px ; border : 3px solid #fff ; border -radius: 50% ; box-shadow: 0 3px 6px rgba ( 0 , 0 , 0 , 0.1 ); } // 寿司の動き $offset : $itemTotal * 100% ; @keyframes slide { 0% { transform: translateX( 0 ) } 50% { transform: translateX(- $offset ); visibility : hidden ; } 51% { transform: translateX( $offset ); visibility : hidden ; } 52% { transform: translateX( $offset ); visibility : visible ; } } // 寿司ごとのずらし @for $i from 1 through ( $itemTotal ) { li:nth-of-type( #{ $i } ) { $delay : #{ ( $i - 1 - $itemTotal ) * ( $duration / $itemTotal ) } s; animation-delay: $delay ; } } } $itemTotal(寿司の総数)はお手元の寿司の数に合わせて各々入れてください。 $speed(速度)は50〜100ぐらいが適当です。あまりに遅いといわゆる「寿司が止まって見える」状態になります。 へへっ…俺には寿司が止まって見えるぜ… 何をしているのか 大まかな流れとしては、 寿司を全部同じ位置に配置する 寿司をループさせて動かす 寿司の動きにズレを加える となります。だんだん寿司とは何か、わからなくなってきましたね。哲学的な問いです。 1. 寿司を全部同じ位置に配置する 今回はul.sushiGoRoundが寿司のレーン、その中のli要素がそれぞれの皿にあたります。 まずはみんなお馴染みposition: absoluteで、li要素を全部重ねてul要素の端に配置してしまいます。 . sushiGoRound { position : relative ; overflow : hidden ; width : 500px ; height : 100px ; padding : 0 ; background : url( 'img/bg.jpg' ) ; border : 1px solid #333 ; li { position : absolute ; width : 100px ; height : 100px ; list-style : none ; } li img { width : 94px ; height : 94px ; border : 3px solid #fff ; border -radius: 50% ; box-shadow: 0 3px 6px rgba ( 0 , 0 , 0 , 0.1 ); } } 2. 寿司をループさせて動かす 準備は整いました。さっそく寿司を回しましょう。 …と、その前に、寿司の総数と速度を設定する変数をそこら辺に入れておきます。 // 寿司を回すための変数を設定 $itemTotal : 6 ; // 寿司の総数 $speed : 50 ; // 寿司の速度 $duration : ( $itemTotal * 100 ) / $speed ; li要素に animation: slide #{ $duration } s linear 0s infinite; を指定し、適当なところに以下を追記しましょう。 // 寿司の動き $offset : $itemTotal * 100% ; @keyframes slide { 0% { transform: translateX( 0 ) } 49% { transform: translateX(- $offset ); visibility : hidden ; } 50% { transform: translateX( $offset ); visibility : hidden ; } 51% { transform: translateX( $offset ); visibility : visible ; } } ここで何をしているのかというと、こういうことです。 要は、6つの寿司をぶつからないように、かつ変な間が空かないようにぴったりループさせるには、 1 寿司を初期地点から6つ分左に動かす(0%〜49%) 2 寿司を初期地点から6つ分右に瞬間移動させる(49%〜50%) 3 寿司を初期地点に戻す(51%〜100%(0%)) というアニメーションを絶え間なく続ける必要があります。これを行うためのコードです。 ここでのポイントは、1の動きと3の動きが同じ距離であることです。 これによって回転寿司のレーンのような美しい等速直線運動が生み出されます。 3. 寿司の動きにズレを加える // 寿司ごとのずらし @for $i from 1 through ( $itemTotal ) { li:nth-of-type( #{ $i } ) { $delay : #{ ( $i - 1 - $itemTotal ) * ( $duration / $itemTotal ) } s; animation-delay: $delay ; } } 以上のコードでは寿司ごとにアニメーション開始タイミングのズレを発生させています。 ここでのポイントは、delayにマイナスの値を入れていることです。 animation-delayがプラスの値だと寿司が動き出すまでに時間がかかりますが、マイナスの値を入れることによって、「既にx秒動いた状態」から開始されることになります。 これによって、結果的に各寿司があるべき場所に配置され、なめらかに動き出すというわけです。 何の役に立つのか いかがでしたでしょうか? 「Sassで寿司なんて回して一体何の役に立つんだ、働け」という声が聞こえてくるようですが、 先日HOME'Sからリリースされた新サービス 「暮らし図鑑」(スマホ用) のトップ画面では、かわいいキャラクターをこの回転寿司メソッドでくるくる動かしてディスプレイしています。(残念ながらイラストを書いたのは僕ではありません。) 「狭い画面で、たくさんの要素を、邪魔にならないように見てもらう」という目的に対して使える手法ではないでしょうか。 ちなみにこの「暮らし図鑑」、 約200人 から集めたライフスタイルやリアルな生活事情をもとに人々をタイプ分けして、自分と似たタイプの人の引っ越しを見られることで、 ユーザーがじゃぶじゃぶ引っ越したくなるような住み替え心を煽るサービス となっておりますので、ぜひお試しください。そして引っ越したくなってください。 www.homes.co.jp   弱点 「たった一つの」とか言っておいてアレなんですが、この回転寿司メソッドにはまだ「寿司の間隔調整が難しい」「寿司の数が変わるたびに変数を手で差し替えないといけない」などの弱点があります。 「俺ならもっと美しく寿司を回してみせるぜ!」という方はコメント欄などからアドバイスいただけると嬉しいです!それでは、よき寿司を!
Apple原理主義者の大坪です。 前回 は「tvOS上でアプリを作ろうと思ったらFocusのパワーを身につけなくちゃね」と言ったところでおしまい。今回書くのはそのFocusのパワーがアプリのデザインに与える影響について。 ちょっとまて、貴様のような生活に疲れたエンジニアがデザインについて何を語るというのだ、という声がどこからか聞こえますが気にしません。いや、最近耳が遠いもので... 「題材」にするのは、Youtube 上の動画をだらだら眺めるのが目的のアプリです。 iPad版はこんな感じで動きます。あれやこれやと機能がありますが今回対象とするのは、動画の下に流れている関連動画リスト。 ずらずら並んでいる関連動画を好きなだけ左右にスクロールして興味をひく動画のサムネイルを探す。サムネイルを上にスワイプすれば再生される。表示を「お気に入り」とか「履歴」とかにしたければ画面右下に並んでいるボタンを押す。 こうしたやり方自体そう変わったものではありません。しかし同じ機能を「さてtvOS上で実現しよう」と考えると最初の一歩からつまづくことになります。「左右に自由にスクロール」というのがまずtvOSではできない。もちろんスクロールはできますが、それはフォーカス移動にともなってポチポチと移動するだけ。 さらに リストを切り替える際の「ボタン操作」も困る。iPad版では切り替えのためのボタンがあちこちに存在していますが、tvOS上のアプリで操作できるのはフォーカスが存在するところだけ。つまり「タップに反応する領域」をあちこちに配置すると「何をするにも山ほどカーソルを移動させなくてはならない」ことになる。じゃあどうするか?どうもtvOSで発生するエラー(APIが微妙に違うので)を治すだけではなく、デザインに立ち戻って考える必要がありそうです。 こういう時は、30分ほど現実逃避した後に、ぐっと画面を眺めて考えましょう。 そもそもここの操作とか表示はどうあるべきなのか?tvOS上のアプリの特性を考えながら以下にずらずらと書きます。 *1 iPad版では全ての画像に文字が重ねて表示されている。なぜならばユーザはどの画像でも瞬時にアクセスできるので。ところがtvOSではフォーカスが当たっているものしか選択できない。ならば全部の画像に常に文字を表示しておかなくてもよいかもしれない。 そもそもTV画面上に文字がやたら表示されていると鬱陶しく感じる。 フォーカスがどの画像にあたっているかは何かの手段でユーザに教えてあげる必要がある。 リストの切り替えをボタンでやっている限り、ユーザの負担は減らない。ここは上下左右のカーソル移動でなんとかできないか こういった事情をあれこれ考えた末、tvOS版の動きはこうなっています。 リストの中で文字を表示するのは、フォーカスがあたったものだけにしました。これによりフォーカスがあることをフィードバックするとともに画面上がごちゃごちゃするのを防いでいます。 さらに リストを「お気に入り」とか「履歴」とかに切り替えるのにはフォーカス移動を利用します。リストにフォーカスがあたった状態からさらに下にフォーカスを移動させようとした時、リストの内容を順繰りに変化させる。こうした方法をとると、直接「履歴がみたい」とかはできなくなるわけですが、あれですよ。昔テレビってそういうものだったじゃないですか。今では死語になった「チャンネル」を回すと順繰りに番組が変わる。ここで操作しているのは「テレビ」なんだからあれでいいだろう、と力強く納得するわけです。納得しますよね?ね?ね?(焦点の合わない血走った目で延々と繰り返す) とかなんとか書いてきて 最初に「聞こえないフリ」をした問いに戻ります。なぜ私が生活に疲れたエンジニアの身でありながらtvOSアプリのデザインについて書こうとしたか。tvOSはその機能こそiOSと似通っていますが、その上で動くアプリケーションの体験はiOS版(iPhone or iPad)のそれとは異なるものであるべきです。なぜならばデバイスが異なり、操作方法が異なり、それを使うユーザの姿勢が異なるから。 そう考えれば、tvOSと新しいApple TVの登場はまたまた起こった「よーいドン!」ではないかと考えることもできる。つまり誰も正解を知らない世界の扉がまた開いたのです。 iOS上で初めてアプリ開発が可能になった時、今ではほとんど使われなくなったいろいろな手法が試みられたことを覚えています。今同じようなことが(小規模に)起こっているのではないか。であれば、いろいろなことをトライし「なんだこれは」「おっと、この手があったか」と喜んだり悔しがったりできる。今回私が使った方法も数年後には「笑い話」になっているかもしれません。しかし今ならドサクサに紛れてあれこれ語っても怒られないかもしれない。いや、楽しい。 *1 : 以下にあげたものの他に、動画の画像は勝手に動いていくので画面からフォーカスが消えてしまっても困る。画面の端にきたら自動的にフォーカスを移動させなくてはならない、という厄介な問題がありますがここでは省略しています。
こんにちは。HOME'SのiOSアプリチームの新卒1年目の塙です。 新卒入社して早9ヶ月、時間が過ぎるのは早いですね。 Swiftを導入するまで タイトルからお察し頂けるかと思いますが、つい最近まで弊社のiOSアプリは全てObjective-Cという"最先端の言語"で書かれていました。 しかし昨年Swiftが公に発表され、今年にはメジャーアップデート、さらにはオープンソース化されました。 swift.org 私はこの波に乗っている新しい言語で書きたい気持ちが一杯でした。 ただ、4年間に渡ってユーザの皆様のご要望に基づいて様々な機能を追加していった秘伝のタレに、アップデートの激しい新言語を取り入れるのは、メンテナンスの手間を考えるとGOサインを出しにくかったと思います。 そんな中、我々のリーダーが勇気ある決断をしてくれました。 「塙君、次の機能なんだけど、新しい機能だからSwiftで書いてみない?」 この言葉を聞いた時に、NOという選択肢は頭の中にありませんでした。 Objective-Cとの共存 まず、既存のプロジェクトにSwiftを共存させる上での必要な作業をざっと調べました。 SwiftからObjective-Cを使用する場合 ① $(PRODUCT_MODULE_NAME)-Bridging-Header.h を作成 ② 上記ファイルにSwiftで使用するObjective-Cのヘッダファイルをimport #import &lt;GameFeatKit/GFController.h&gt; #import &#34;NSObject+Empty.h&#34; ③ ターゲットの[Build Settings] → [Objective-C Bridging Header]に上記ファイルを指定 ※ 初めてSwiftファイルを追加する際には、上記1〜3の設定が全て自動で行われます Objective-CからSwiftを使用する場合 ① $(PRODUCT_MODULE_NAME)-Swift.h を対象の .m ファイルにimport(ヘッダファイルにインポートするとコンパイルエラーになる) #import &#34;YourProduct-Swift.h&#34; $(PRODUCT_MODULE_NAME) はデフォルトで $(PRODUCT_NAME) $(PRODUCT_NAME) のデフォルト値は $(TARGET_NAME) もし $(PRODUCT_NAME) に . や - がある場合は _ にリプレイス ※ $(PRODUCT_MODULE_NAME)-Swift.h はXcodeが自動生成し、ファイル内の変更は一切必要ありません 互換を保つために気をつけること サブクラスと属性の付与 Objective-CからSwiftクラスを呼び出す場合 Objective-Cクラスのサブクラスとして定義 上記以外の場合は @objc属性を付与すれば名前の変更も可能 これらを行うことで自動的に $(PRODUCT_MODULE_NAME)-Swift.h に追加される class MySwiftClass: NSObject { // implementation } @objc(MySwiftClass) class 私のスイフトクラス: NSObject { // implementation } ※ パフォーマンスとSwift移行の為にも必要な場合以外はネイティブベースを使用する方が良いです コンバージョン Objective-Cの変数を型変換してSwiftで使用する場合 // CGFloat型をFloat型に代入するにはコンバージョンが必要 myFloat = Float(cgfloat) ダウンキャスト Objective-Cの変数を型変換してSwiftで使用する場合(派生クラス) // NSDictionary型をDictionary型に代入するにはas演算子でダウンキャストが必要 myDictionary = nsdictionary as Dictionary&lt;String , AnyObject&gt; Enum Objective-C側で NS_ENUM を使用すれば、Swiftからenumとして呼び出せる typedef NS_ENUM(NSInteger, Fruit) { FruitApple, FruitOrange, FruitGrapes }; Swiftで呼び出す際には以下の内容に変換されます enum Fruit: Int { case .Apple case .Orange case .Grapes } ※ メンバの接頭語はSwiftで使用する際に自動で省略されます 互換性のないもの Swiftで定義したジェネリクス タプル Int以外のrawValueを使用したEnum Swiftで定義した構造体 Swiftでトップレベルで宣言された関数 Swiftで定義したグローバル変数 タイプエイリアス Swiftで定義した可変引数(var) ネストされた型 カリー化関数 ユニットテスト Objective-Cで書かれたユニットテストは $(PRODUCT_MODULE_NAME)-Swift.h をインポート不可(ターゲット内で使用可能の為) SwiftコードのユニットテストはSwift(別ファイル)で記述(Objective-Cのフレームワークを使用する場合はインポート可能) 上記を頭に入れ、Swiftでプログラミングを行うのは特に労力のいるものではなく、案外すんなり動いてくれたので拍子抜けでした。 ※ 実際のプログラミングではSwiftで書く時間よりも、既存のObjective-Cで書かれた箇所の改修に時間がかかりました(泣) Swiftの恩恵 現在では、基本的に新しい機能の追加をする際にはSwiftで書くようになっています。Swiftを使用することで下記のような恩恵を受けることができます。 型安全なコードによってnilが入るなどのよくあるクラッシュをコンパイル時に防止 記述方法がシンプルになったことでコード量の削減 Swiftネイティブ(enum、struct)の型を使用することで柔軟なプログラミングが可能 実際の実装の中で感じたのは、enumにprotocolを準拠させたり、getterでパターンマッチさせる方法はとても便利でした。 protocol Color { var color: String { get } } enum Fruit: String, Color { case Apple = &#34;apple&#34; case Orange = &#34;orange&#34; var color: String { switch self { case .Apple: return &#34;Red&#34; case .Orange: return &#34;Orange&#34; } } } 最後に 書き方に慣れない、コンパイル時間が長いなど少なからず不満はあるとは思いますが、それ以上にSwiftという新しい言語に挑戦できる環境というものはエンジニアにとってこの上なく嬉しいものだと思います。 是非、この記事を読んだiOSアプリエンジニアの皆さんは自社のプロジェクトがObjective-Cで進んでいた場合、とりあえず新しい機能や、書き直せるものからSwiftを導入してみることをお勧めします。 参考文献 Using Swift with Cocoa and Objective-C (Swift 2.1): Swift and Objective-C in the Same Project Using Swift with Cocoa and Objective-C (Swift 2.1): Writing Swift Classes with Objective-C Behavior Swift&#x306E;ENUM - Qiita Swift&#x3068;Objective-C&#x306E;&#x76F8;&#x4E92;&#x5229;&#x7528;&#x3059;&#x308B;&#x969B;&#x306E;&#x6CE8;&#x610F; - Qiita