株式会社エムティーアイを退職しました。
昨日(2017/12/27)、新卒として入社した株式会社エムティーアイへの最終出社でした。退職日としては2018/1/15なんですが、個人的には退職した!って感じなので、色々覚えているうちに記しておこうと思います。
入社まで
京都工芸繊維大学という大学および大学院で情報工学を学んでました。関東の方には全く馴染みがない大学かと思いますが、一応理系の単科国立大学です。大学のなかには理系の人だらけという、若干男臭い大学でした。ただ、情報工学をやっている人とプロダクトデザインやグラフィックデザインといったデザインをやっている人が一緒にチームを組んで、半年かけて1つのプロダクトを作る講座などもあり、個人的にはとてもよい大学でした。
大学でやったこととしては
をやってました。基本的にはハードウェアやアプリ内に閉じたプログラミングをしていたため、Webには非常に疎い状況でした。
就活では、
- アプリを作れること
- 課題を解決するためにものづくりをすること(ロジカルシンキング周り)
を武器にして各Web企業と戦っていました。いろいろな企業を見させていただきましたが、結果的には株式会社エムティーアイへ入社することにしました。
ちなみにエムティーアイは、ルナルナやmusic.jpなどのサービスを展開する企業です。念のため。
入社してからやったこと
興味ない人はここは飛ばしてOKです!日記みたいになっちゃってる。
研修
同期は約40人で、そのうちエンジニアは8人でした。新卒約40人で約2ヶ月間集合研修を受けました。集合研修ではマーケティングにかなり力を入れていて、みっちりと学ぶことができました。学生時代は、自分で課題を見つけてきて、それに対して理論を肉付けしていっていたのですが、マーケティングでは広い視点から課題に落としていく感じなので、非常に新鮮で楽しく感じました。また、入社前は「同期とかどうでもいいからさっさと仕事させろや」って思った私ですが、なんだかんだ仲の良い同期が10人ほどでき、プライベートも遊ぶほどになるような仲間になったので、非常によかったなと思いますし、退職したあとも関係を続けていきたいと思えているので、自分でビックリしています。
集合研修後は、1ヶ月の開発研修でした。基本的には座学でしたが、個人的には95%は知っている内容だったので、非常に退屈だったのを覚えています。話も聞かず、せっせと何かを作っていたような記憶があります。
7月上旬にヘルスケア事業部に配属されました。初年度は@vatscyさんがOJTとしてついてくださりつつ2人のチームとして、そして2年目からはOJTではなく普通にチームとしていろいろなことをやってきました。
はじめてのWebAPI
当時、AWSを使ってみようという流れが来ていて、その流れに乗って、v0系のServerless Frameworkをつかって簡単なWebAPIを作りました。私にとっては初めてのWebAPI実装でした。
これがめちゃくちゃ苦労した記憶があります。わからないことだらけ、ServerlessFrameworkのドキュメントは整っていないなどが重なり、初めて終電で帰りました。ただ、この開発を通じて、現場での開発のイロハやWebAPIとは何か?を学ぶことができたので、非常に良い経験になりました。また、AWSを使ってプライベートでもAPIを構築できるようになったのも非常に大きかったです。
プロトタイプiOSアプリ作成
上記で作ったAPIを活用したプロトタイプiOSアプリを開発しました。社長に見せるからサッサと作ってね〜みたいなノリで言われて、必死に作った覚えがあります。ただ今考えると、ここで作ったプロトタイプの感触がよかったのか、ルナルナメディコという医師とユーザーをつなぐサービスへとつながっていったので、やったことは実は大きかったのかもしれないですね。
闇の期間
たぶんあんまりやる案件がなくて、全然開発をしていなかったと思います。あまり深くは触れないでおきます。
Androidタブレット向けアプリの開発
ルナルナメディコを実際に医師に使ってもらおうという話になり、開発スピードやタブレットのやすさの観点から、Androidで開発することになりました。これもプロトタイプではありますが、個々の出来によってビジネスを左右するようだったので、デザイナーの方にも入ってもらって開発しました。JavaとAndroid Studioを使って開発を進めていきました。
社外の方に使ってもらうはじめてのプロダクトだったので、非常に楽しく実装することができた記憶があります。Android Studio高機能で最高やん!ってなってた気がします。
栄養指導サービスの開発
LINEを絡めて、栄養指導をやれないか?みたいな話が来ました。ちょうどプライベートでLINE Bot作ったりしていたので、調査段階から入って、進めていきました。
このときは、Node.js x ExpressをAWS Beanstalk上で動かすWebサービスとして構築しました。はじめてのWebサービスの開発だったので、毎日が学びばかりでした。また、S3やCognitoといったAWSのサーバレス系のサービスも活用して作っていたので、最新技術を活用していろいろやっているのが非常に楽しかったです。
ダイエットアプリの開発
部署の偉い人から、我々のチームにダイエットアプリを作ろうという話が舞い込んできました。アイディアのベースはあるから、自由にやっちゃっていいよっていうラフさできました。結果的にはkilosをリリースすることができました。
このkilosの開発は、アプリとデザインは私が、バックエンドは@vatscyが担当して本当に2人で開発したサービスとなりました(ロゴはデザイナーに書いてもらった)。スピード感を非常に大切にしつつも、毎日使ってもらいたいアプリだったので、やはり使う人が快適に使えることも大切にしていました。その観点で、アプリのアーキテクチャやライブラリの選定、画面の見せ方や文言の統一など、ユーザーのことを第一に考えてサービスを作っていく日々は最高でした(残業結構しちゃったけど)。作っては社内テスターに使ってもらうことを繰り返し、どんどん意見をもらい、どんどん改良していくスピード感と、それに合わせて自分の力がついていっている感覚はなかなか味わえるものではないなと感じていました。
2017年の9月上旬にリリースしましたが、退職まで毎日、ユーザーの意見を見てよりよいものにできないかを考えていました。自分のサービスだ!という愛着はすごいので、今後も発展していけばいいなと願っています。
ルナルナアプリの開発
女性の方だけでなく、男性の方まで名前は聞いたことがあるであろうルナルナのiOSチームに9月中頃からジョインして開発をするようになりました。
ルナルナのiOSアプリは、内部的にはかなりきれいに作られており、kilosの開発を経験したからこそ感じる出来のよさがありました。ルナルナにジョインすることで更に自分のiOS開発力は上がったことが実感でき、やりがいがありました。自分が開発した機能が日本の多くの女性に届く環境はなかなかないと思うので非常にいい経験になりました。
また、kilosは2人でほぼすべてをやっていたのですが、ルナルナではちゃんと各担当がいたので、大人数の開発になりました。ルナルナのアプリチームは非常に若い方ばかりで、やりやすく、楽しい毎日でした。
なぜ転職するのか
端的にいうと
- エンジニアとしての成長速度をもっと高めたい
- よりよい待遇で働きたい
の2点につきます。自分は社会的に見てどの程度の人間なのかを知るために軽い気持ちで転職活動をはじめました。様々な企業の採用担当者やエンジニアと会うにつれて、自分の人生について考えるようになりました。その中で、「このままで自分の夢が達成できるのか?」という疑問が沸々と湧いてきて、本格的に面接を受けるようになりました。縁あって、上記2点を満たすような企業からオファーを頂くことができたため、転職することにしました。
エムティーアイではめちゃくちゃ自由にやらせてもらったので、感謝の気持ちが非常に大きいです。自由にやらせてもらえたからこそ、トレンド周りの技術を身につけることができ、よりよい待遇の企業へ転職することができたというのは、なかなか皮肉かもしれないなといつも感じています。。。
次は何するの?
次は、株式会社ディー・エヌ・エー(DeNA)でiOSアプリを作りつつWebもやるというマルチな感じでお仕事をする予定です。これに合わせて年明けに武蔵小杉あたりに引っ越すのですが、全然荷造りできてないのでヤバさを感じています。
転職しますが、これからも引き続きよろしくお願いできたら幸いです。
おわり。
4Kテレビを買うときに重要視したこと
最近4Kテレビを買いました。買ったのはこれ。
東芝 49V型地上・BS・110度CSデジタル4K対応 LED液晶テレビ(別売USB HDD録画対応)REGZA 49BZ710X
- 出版社/メーカー: 東芝
- メディア: エレクトロニクス
- この商品を含むブログを見る
買って3日くらいしか経っていませんが、テレビが大きくてきれいなだけでなんだかQoLが上がった気がしています。我ながら単純である。
まずはじめに、Before -> Afterをどうぞ。Afterがちょっとわかりにくいな。
テレビ台内に余裕で収まっていたのが、テレビ台から余裕ではみ出しちゃうサイズになってます。
★追記(2017/12/28) 4Kレグザの動画配信サービス「Amazonプライム・ビデオ」対応について|テレビ|REGZA:東芝〈レグザ〉
購入した49BZ710XがアップデートでAmazonプライムビデオに対応しました!しかも4Kビデオも見れる!ヒャッホウ!!みるこれボタンからプライムビデオアプリを起動することができます。早速使ってみましたが、やはり動きは多少もっさりしている感はありますが許容範囲内!テレビだけで見れるとか、もうこいつ最強やないか。。。
買う前の私の生活
- BRAVIA 32型 07年製を5年ほど使ってた
- PS4でFIFA(サッカーゲーム)やJRPGを主にプレイ
- nasneでアニメを毎日視聴
- バラエティやスポーツ番組も視聴
- 朝はニュース番組を視聴
- たまにPS4のAmazonPrimeビデオで映画とか視聴
という感じ。まあ1日平均2〜3時間くらいはテレビが点いてる。ずっと集中して見ているわけではないけど。ちなみに10畳位の部屋に住んでいて、視聴距離は近くて2m弱、遠くて3m弱でした。
購入の動機
- 大きい画面でゲームしたい
- きれいな画面でゲームしたい
- nasneではできない2番組同時録画をしたい
- 仕事柄、目が悪くなってきたのか、3m弱から見ていると見えづらくなってきてた
てな感じです。前半3つが主ですね。
この時点での買う条件は
- 4K
- 40インチ以上
- 2番組録画可能
- 外付け挿せば録画可能
あたりで考えてました。
重要視したこと
さて本題。本当に正しいかどうかはわからないけど、調べていくと最終的には下記を重要視しました。読んでいただければわかるかもしれませんが、はじめは予算10万くらいでしたが、やっぱり高価格帯のほうが満足できそうだということで予算を15万強に引き上げました。
応答速度
ゲームをする私にとっては応答速度は非常に重要でした。昔、AQUOSを使っていたとき、パワプロをプレイすると、○ボタンを押して、画面上でバットがスイングされるのが0.5秒後・・・そんな時代がありました。なかなか辛くて、慣れてしまえばなんとかなりますが、とてもイライラしていました。
今回、調べていると、応答速度という観点ではREGZAが圧倒的に良いようでした。低遅延モード(ゲームモード)も存在しているので、特にいいと。ひとまずREGZAで絞ることに。購入したもの以外だと、下記あたりを見てました。型落ちとかも全然ありかなとも。
東芝 43V型地上・BS・110度CSデジタル4K対応 LED液晶テレビ(別売USB HDD録画対応)REGZA 43C310X
- 出版社/メーカー: 東芝
- メディア: エレクトロニクス
- この商品を含むブログを見る
東芝 50V型地上・BS・110度CSデジタル4K対応 LED液晶テレビ(別売USB HDD録画対応)REGZA 50M510X
- 出版社/メーカー: 東芝
- メディア: エレクトロニクス
- この商品を含むブログを見る
HDR対応
HDRとは、簡単に言うと「明暗を表現できる幅が広い」機能のこと。私的にはこれも非常に重要だと思っていて、よくきれいな景色を写真で取ったときに、なんか暗かったり、暗くなりきらなかったりと、不満があることが多いのです。HDR対応であればその部分の表現力が高くなるので、より映像に満足できるのではないかと考えたわけです。
ただ、HDR対応を謳っていても、なんちゃってHDRというのが非常に多いらしい。よって高価格帯を探すことに(まんまと策略にハマっている気もするが)。
言わずもがな4K
これもなんちゃって4Kというのがあるらしく、RGBWのものはなんちゃって4Kなんだって。 the360.life
まあそんなに大差ないかもしれないけど、どうせならいいの買っちゃうかーって感じ。どうせ長く使うし。
音がいいこと
音もなかなか重要だと思っています。別に、スピーカー買えばいいええがなって話ですが、追加でお金もかかるしスペースもいるしで、テレビにいいスピーカーがついていればお得だなあと思ってました。
この時点で、購入した710Xが最有力候補に。
パネル方式
VAとIPSというのがあるらしい。 tv-erabikata.at.webry.info
ヨドバシカメラとかで、REGZAの510X(VA)と710X(IPS)を比較してみたんですが、VAのほうは映り込みがひどい感じがした。暗い画面だとめっちゃ自分の顔が映り込んで、すごい萎えた。やっぱ実機見るの大事。
リモコン操作の応答速度
はじめはこの観点なかったですが、これは地味に効いてくるかなーと思います。BRAVIAの8000Eとかも見てたんですが、操作が少し重い。
ソニー SONY 43V型 4K対応 テレビ ブラビア KJ-43X8000E B (2017年モデル)
- 出版社/メーカー: ソニー(SONY)
- メディア: エレクトロニクス
- この商品を含むブログを見る
Androidが入ってるというのもなんか印象悪い。スマホ用のOSを無理やりTVに載せてるなんて、重いに決まってる。ただ、Primeビデオを見れるのは羨ましいけど。
とにかくこの点でもREGZAは優れている様子。
購入するお店で気をつけたこと
私は、コジマネットで購入しました。ずっと価格.comを見ていましたが、やはり最安で争っているお店は、保証等の対応周りで不安が残りました。そこそこ高い買い物なので、ちゃんと保証してくれるところがいいなーと思ってました。
コジマネットの場合は、5年保証も無料でついてくるし、送料無料だし、たまたまGoogleHomeMiniもついてくるしで、総合的に見ると、最安店で5年保証つけた値段+5000円くらいだったのでコジマネットで決定。
とにかく
- お店の対応がしっかりしているか
- 保証がついているか
をしっかり見たほうがよさそうです。
49BZ710Xのレビュー
上記重要視ポイントを鑑みると、49BZ710Xになりました。
- 4K&HDR対応
- レビューもかなり高い
- 実際とてもきれい
- スピーカーがいい
- 重低音バズーカが搭載されていて重低音がすごい
- 実際かなりすごくて、臨場感がすごい
- 応答速度が高い
- FIFAやってみましたけど、まじでストレスフリー
- 画面がでかい
- 本当は43インチくらいがよかったんですが、710Xは49〜しかなかったの
- でも使ってみるとそれがよくて離れてみてもよく見えるし迫力がすごい
- 録画視聴時に早送りボタンみたいなのでCM飛ばしできる
結局約16万でしたが、5年保証もついてるし、なかなか満足。テレビ見るの楽しいし、ゲームするの楽しいし、最高です。買ってよかった!
周辺機器
外付けHDDはこれ。使ってみても、音ほとんどしないし、コンパクトだし、安いし。問題なく動作してます。
I-O DATA HDD 外付けハードディスク 3TB PC/テレビ録画/日本製/土日サポート EX-HD3CZ
- 出版社/メーカー: アイ・オー・データ
- 発売日: 2017/05/02
- メディア: Personal Computers
- この商品を含むブログ (2件) を見る
HDMIケーブルはこれ。HDR対応だし。やすいし。安すぎだし。ビビるわ。
Amazonベーシック ハイスピード HDMIケーブル - 1.8m (タイプAオス - タイプAオス)
- 出版社/メーカー: AmazonBasics
- メディア: エレクトロニクス
- この商品を含むブログを見る
あとは前から使ってるけどPS4×nasne。マジ最強。録画した番組をスマホに予め転送しておけば、通信無しでスマホで見れる。アプリでその機能使うには買い切り600円くらい払わないとあかんけど、安いもん。最近は映像の良さを求めてPS4 Proにしておけばよかったとめちゃくちゃ後悔してる。
PlayStation 4 ジェット・ブラック 500GB (CUH-2100AB01) 【数量限定特典 New みんなのGOLF ダウンロード版付】
- 出版社/メーカー: ソニー・インタラクティブエンタテインメント
- 発売日: 2017/07/24
- メディア: Video Game
- この商品を含むブログを見る
- 出版社/メーカー: ソニー・インタラクティブエンタテインメント
- 発売日: 2016/12/08
- メディア: Video Game
- この商品を含むブログ (3件) を見る
おわりに
高い買い物しちゃいましたが、めちゃくちゃ満足してます。普段から家に引きこもってるインドア人間なので、余計によかったのかもしれない。もともとあんまりお金を使わない(飲み会行かないお酒全く飲まないタバコ吸わない)タイプなので、こういう買い物はたいていイイヤツ買いがち。でもいい感じ。
よい4Kテレビライフを!
RxSwiftのオペレータdistinctUntilChangedに混乱した
combineLatest
で10個くらいCombineしていたので、ストリームに流れるイベントの量がバカにならなくなってきたので、各Variableでは値が変化したときだけイベントが流れるようにしたかった。
オペレータを探すときは、まず下記記事を読むことが多かった。今回はここのなかのdistinctUntilChanged
がかなり近い!となった。
本当に過去に流れたことのある値はもう流れなくなるのかが少し疑問だったので、公式も見ることに。
The Distinct operator filters an Observable by only allowing items through that have not already been emitted.
んー確かに流れなさそうな感じ。でも一旦実装してみることにした。
すると、普通に0--1--0
の0が流れてる!おや??となってよく見ると、
RxMarbles: Interactive diagrams of Rx Observables
こちらが正しかったみたい。結論としては、distinct
とdistinctUntilChanged
は違うし、RxSwiftにはそもそもdistinct
はなさそう。
結果的には欲しい機能が元々用意されていて助かりましたという話でした。