<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Wantedly Engineer Blog</title>
  <subtitle>Wantedly開発チームブログ</subtitle>
  <id>http://engineer.wantedly.com/</id>
  <link href="http://engineer.wantedly.com/"/>
  <link href="http://engineer.wantedly.com/feed.xml" rel="self"/>
  <updated>2016-07-21T07:49:00Z</updated>
  <author>
    <name>@wantedly</name>
  </author>
  <entry>
    <title>エンジニアブログは移転しました</title>
    <link rel="alternate" href="http://engineer.wantedly.com/2016/07/21/renew-engineer-blog.html"/>
    <id>http://engineer.wantedly.com/2016/07/21/renew-engineer-blog.html</id>
    <published>2016-07-21T07:49:00Z</published>
    <updated>2016-07-27T14:15:02+09:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;Wantedlyエンジニアブログは移転しました！&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.wantedly.com/feed/s/wantedly_engineers"&gt;https://www.wantedly.com/feed/s/wantedly_engineers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wantedly&lt;a href="https://www.wantedly.com/feed"&gt;フィード&lt;/a&gt;に新しく追加されたメディアを作成・運用できる「スペース機能」を使って運用しています。&lt;/p&gt;

&lt;p&gt;今後ともよろしくお願いします！&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>管理画面チラ見せ♡ナイト#3 に登壇してきました</title>
    <link rel="alternate" href="http://engineer.wantedly.com/2016/06/07/admin-night.html"/>
    <id>http://engineer.wantedly.com/2016/06/07/admin-night.html</id>
    <published>2016-06-07T02:29:00Z</published>
    <updated>2016-07-16T13:46:25+09:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;はじめまして、エンジニアの天野です。&lt;/p&gt;

&lt;p&gt;今更感があるのですが、2016/05/14(火)に行われた、&lt;a href="http://connpass.com/event/31779/"&gt;管理画面チラ見せ♡ナイト#3&lt;/a&gt;に登壇してきました。&lt;/p&gt;

&lt;p&gt;他社さんが、ガッツリ内部の管理画面を公開する中、（半分！）サービス管理画面の発表となってしまい大変恐縮でしたが、
穏やかな空気の中、楽しく発表できました。ご質問を頂いた方々もありがとうございました！&lt;/p&gt;

&lt;h2&gt;発表資料&lt;/h2&gt;

&lt;script async class="speakerdeck-embed" data-id="daa3dbd3000b4098a9036a164f24808d" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;p&gt;このスライドで紹介されている、「候補者管理機能」は現在βテストを実施中です。&lt;/p&gt;

&lt;p&gt;ご協力いただける企業さまは、ぜひ&lt;a href="https://wantedly.zendesk.com/hc/ja/requests/new"&gt;ご連絡&lt;/a&gt;いただけますと幸いです！&lt;/p&gt;

&lt;h2&gt;当日のツイートまとめ / レポートなど&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://togetter.com/li/979261"&gt;管理画面チラ見せ♡ナイト#3に関するつぶやきまとめ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kakakakakku.hatenablog.com/entry/2016/05/25/000755"&gt;「管理画面チラ見せ♡ナイト #3」に参加して管理画面をもっと好きになろうと思った&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;We are hiring&lt;/h2&gt;

&lt;p&gt;ところで、この候補者管理画面は React を使って書かれています。React書きたい人、ぜひ遊びに来てください。&lt;/p&gt;

&lt;p&gt;(弊社の React事情については&lt;a href="http://engineer.wantedly.com/2016/04/21/meguro-es-03.html"&gt;Wantedlyの最近のReact事情についてMeguro.es #3で発表しました!&lt;/a&gt;をご覧ください。)&lt;/p&gt;

&lt;iframe frameborder='0' height='305px' name='wantedly_project_widget_51709' scrolling='no' src='https://www.wantedly.com/projects/51709/widget' style='border: none; max-width: 100%; min-width: 240px; width: 540px;'&gt;&lt;/iframe&gt;
</content>
  </entry>
  <entry>
    <title>Apple Watchアプリをリリースしていました</title>
    <link rel="alternate" href="http://engineer.wantedly.com/2016/04/30/watch-app.html"/>
    <id>http://engineer.wantedly.com/2016/04/30/watch-app.html</id>
    <published>2016-04-30T13:12:00Z</published>
    <updated>2016-07-16T13:46:25+09:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;エンジニアのshingtです。このblogを書くのは2年前に&lt;a href="/2014/01/02/neo4j-introduction.html"&gt;Neo4jの記事&lt;/a&gt;を書いて以来ですね。&lt;/p&gt;

&lt;p&gt;さて、時期を少し逃してしまった感がありますが、3月にWantedlyのApple Watch用アプリをこっそりリリースしました。&lt;/p&gt;

&lt;p&gt;このアプリには少し変わった機能として &amp;ldquo;Wantedly上に登録された企業が近くにある際に、その企業を通知・表示する&amp;rdquo; というものを入れています。（注: 通知候補は一部の企業様のみとなっております。）&lt;/p&gt;

&lt;p&gt;設計としても多少変わったものになったため、簡単にですがここで紹介します（自分の備忘録も兼ねて）。なお、watchOS 2、iOS9上での開発です。&lt;/p&gt;

&lt;h2&gt;機能について&lt;/h2&gt;

&lt;p&gt;前述のように、このWatchアプリではユーザの近くにある企業を通知/表示することができます。
このフローは大きく分けて2つ存在しており、画面遷移は以下のようになっています。
通知もしくは起動時の画面から、最終的には同じ位置情報を表示する画面に行き着く、という構成です。&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2016-04-30/image1.png" width=600px&gt;&lt;/p&gt;

&lt;p&gt;メッセージが確認できる画面等もありますが、機能としてはそれくらいで、watchOSのドキュメントや&lt;a href="http://nerds.airbnb.com/airbnb-watch/"&gt;airbnbのblogなどで言われるように&lt;/a&gt;、本体アプリの&amp;ldquo;Lightweight Extension&amp;quot;となるような機能に留めつつ、watchらしい体験も組み込んだという形です。&lt;/p&gt;

&lt;h2&gt;位置情報取得周りのフロー&lt;/h2&gt;

&lt;p&gt;上の図の通り、このアプリでは位置情報をユーザが確認するフローが2つ存在しています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;フローA: 通知経由の場合&lt;/li&gt;
&lt;li&gt;フローB: ユーザが自らアプリを起動した場合&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;フローA: 通知経由の場合&lt;/h3&gt;

&lt;p&gt;前提としてこのアプリの通知は頻繁に送る類のものではありません。
そのため、&lt;code&gt;CLLocationManager&lt;/code&gt;における&lt;a href="https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/doc/uid/TP40007125-CH3-SW60"&gt;Significant Location Change&lt;/a&gt;が検出されたタイミングで、一定条件を満たしている場合のみ通知を送信する、という方針を選択しました。&lt;/p&gt;

&lt;p&gt;シーケンス図として正確ではありませんが、大まかな流れは以下のようになります。&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2016-04-30/image2.png" width=600px&gt;&lt;/p&gt;

&lt;p&gt;位置情報画面に移動してからは、watchOSの&lt;code&gt;CLLocationManager&lt;/code&gt;が持つ&lt;code&gt;requestLocation&lt;/code&gt;を利用してiOS側に位置情報を問い合わせ、定期的に画面中の距離情報や地図をアップデートします。
（Apple WatchにはGPSが内蔵されていないため、iOS側に問い合わせない限り位置情報を得ることはできません。）&lt;/p&gt;

&lt;p&gt;この際の位置情報取得はiOS側で引き続き行い、それをwatchOS側で渡す流れにすることも可能でした。
そうしなかったのは以下の理由からです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requestLocation&lt;/code&gt;を利用すればそれ以降の位置情報に関するコードはwatchOS側で完結させることができる&lt;/li&gt;
&lt;li&gt;要件として&lt;code&gt;CLLocationManager&lt;/code&gt;の精度としては最高のもの（&lt;code&gt;kCLLocationAccuracyBestForNavigation&lt;/code&gt;）を利用する必要があり、例えばハンドリングのバグ起因でiOS側で位置情報の取得が誤って行われている（= iOSデバイスのバッテリーの消費が大きくなってしまう）という状況は絶対に避けたかった&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;あくまでwatchOSアプリはエクステンションと捉えており、iOSアプリ側に影響が出ることは基本的に無いように設計していました。もちろん、Apple Watchとのペアリングが行われていない端末であれば、そもそも位置情報の取得許可を得ることもありません。&lt;/p&gt;

&lt;h3&gt;フローB: ユーザが自らアプリを起動した場合&lt;/h3&gt;

&lt;p&gt;こちらはユーザが通常通りApple Watch上でアプリを起動したケースです。&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/2016-04-30/image3.png" width=600px&gt;&lt;/p&gt;

&lt;p&gt;先ほどよりやや複雑ですね。一度近くの企業情報を取得した後の挙動はプロセス1の場合と同様です。&lt;/p&gt;

&lt;p&gt;当初はwatchOSがiOSに対して&lt;code&gt;requestLocation&lt;/code&gt;を発行し、その結果を受け取った後、再度近くの企業を取得するリクエストを発行するという方針で考えていました。
しかしこの場合、コードとしては単純に記述できるものの、watchOS &amp;lt;=&amp;gt; iOS間のやり取りが上記の図よりも余分に一度増えてしまいます。&lt;/p&gt;

&lt;p&gt;そのためwatchOSからiOSへの問い合わせについて、図のように&lt;code&gt;WCSession&lt;/code&gt;を利用して近くの企業自体をリクエストするようにし、現在地の取得はiOS上で行うようにしました。&lt;code&gt;WCSession&lt;/code&gt;はデバッグし辛かったりシミュレータ上で不安定だったりと少し扱い辛くもありましたが、実機上ではある程度安定していたように思います。&lt;/p&gt;

&lt;h2&gt;Local Notification / Remote Notificationの扱い&lt;/h2&gt;

&lt;p&gt;watchアプリについて、Xcode上で&lt;code&gt;UIRemoteNotification&lt;/code&gt;を簡単にデバッグすることができる仕組みが用意されていますが、&lt;code&gt;UILocalNotification&lt;/code&gt;についてはその限りではありません。&lt;/p&gt;

&lt;p&gt;&lt;code&gt;UIRemoteNotification&lt;/code&gt;と&lt;code&gt;UILocalNotification&lt;/code&gt;用の共通のラッパーを用意し、基本的に必要な処理はそのラッパーオブジェクトを通して行い、&lt;code&gt;UILocalNotification&lt;/code&gt;であってもシミュレータ上で挙動確認ができるようにしていました。
こちらに関しては&lt;a href="http://potatotips.connpass.com/event/28780/"&gt;potatotips #28&lt;/a&gt;で紹介しましたので、以下スライドを参照して頂ければと思います。&lt;/p&gt;

&lt;div style="width: 65%"&gt;
&lt;script async class="speakerdeck-embed" data-id="9376e6b4833343e88899900856891fc4" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;/div&gt;

&lt;h2&gt;まとめ&lt;/h2&gt;

&lt;p&gt;WantedlyのApple Watch用アプリに関して、主に位置情報制御と通知周りに関して簡単に紹介しました。
Apple Watchと言えば先日、今年の6月以降にsubmitするアプリについてはwatchOS 2以降のSDKを利用しなければならないとのアナウンスがありました（参考: &lt;a href="https://developer.apple.com/news/?id=04222016a"&gt;Upcoming Requirement for watchOS Apps&lt;/a&gt;）。&lt;/p&gt;

&lt;p&gt;今年のWWDCで何かしらのアップデートもあるでしょうし、何だかんだでwatchOS &amp;lt;=&amp;gt; iOS間の通信の制御は楽でもないので、この辺りが実装しやすくなることを個人的には期待したいです。&lt;/p&gt;

&lt;p&gt;ということで、Watchアプリも付属しているWantedlyのiOSアプリは以下からダウンロードできます。ぜひぜひお試し下さい。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://itunes.apple.com/jp/app/wantedly-zhuan-zhini-shieru/id804727886?mt=8"&gt;Wantedly - 転職に使える会社訪問求人アプリ&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;We are hiring&lt;/h2&gt;

&lt;p&gt;WantedlyではwatchOS、iOSに限らず、多分野のエンジニアを募集しています。興味のある方はぜひ話を聞きに来て下さい。&lt;/p&gt;

&lt;div style="margin: 0 auto; width: 470px;"&gt;
&lt;div class="wantedly-visit-button" data-visit-button-id="y7wE1GQEYdR11nH_D_ArCA" data-width="470" data-height="80"&gt;&lt;/div&gt;
&lt;script&gt;
  (function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "https://platform.wantedly.com/visit_buttons/script.js";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, "script", "wantedly-visit-buttons-wjs"));
&lt;/script&gt;
&lt;/div&gt;
</content>
  </entry>
  <entry>
    <title>Wantedlyのデザイン事情について UI Crunch #8で発表しました！</title>
    <link rel="alternate" href="http://engineer.wantedly.com/2016/04/26/ui-crunch-08.html"/>
    <id>http://engineer.wantedly.com/2016/04/26/ui-crunch-08.html</id>
    <published>2016-04-26T10:40:00Z</published>
    <updated>2016-07-16T13:46:25+09:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;こんにちは、Wantedlyデザイナーの青山です。&lt;br&gt;
DeNA さん、 Goodpatch さん主催のイベント、&lt;a href="http://ui-crunch.connpass.com/event/28054/"&gt;「UI Crunch #8」&lt;/a&gt; に参加してきました。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://connpass-tokyo.s3.amazonaws.com/thumbs/a9/54/a95424fc38b0ce8606215684a4076ef9.png" alt="header.png" width="720"&gt;&lt;/p&gt;

&lt;p&gt;UI Crunch 8回目となる今回のテーマは「デザインに求められる実装スキルと考え方」。&lt;br&gt;
UI/UXデザイナーの間では、デザイナーも技術のことをわかっていないと厳しいよね・・・という認識が年々広まりつつあります。&lt;/p&gt;

&lt;p&gt;そんな中、Wantedlyのデザイナーは「開発チーム」の一員としてエンジニアと一緒にコードを書き、プロダクトにコミットしつづけてきました。
実際にエンジニアと席を並べて毎日一緒に仕事をしていると、デザイナーとエンジニアのやっていることの違いは、それぞれの個人が得意な領域の差でしかないと感じます。
今回の UI Crunch では、そんなコードを書くのが当たり前になっている会社の事例として、Wantedlyを紹介させていただきました。&lt;/p&gt;

&lt;script async class="speakerdeck-embed" data-id="4590fedd257b4f76b3865859f191c6bf" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;p&gt;&lt;br&gt;
発表では主にチーム開発での効率の観点からお話しました。
一方、クオリティの面でも、デザイナーがコードを書いてリリースまで見届けることで、
細部まで妥協やあきらめのないアウトプットができているのではないかと思っています・・・！&lt;/p&gt;

&lt;h2&gt;登壇者の方々の発表内容&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://book.mynavi.jp/wdonline/detail_summary/id=52526"&gt;他の登壇者の方々の発表資料と内容はこちら&lt;/a&gt;にまとめられています。
皆さん、それぞれの会社での取り組みについて、その背景となる組織のカルチャーも感じられる、大変興味深いお話をされていました。&lt;/p&gt;

&lt;p&gt;エンジニアの間で多くの勉強会が行われているのに比べ、デザイナーの間ではまだまだ知見を共有する場が少ないように思えます。
私は今回 UI Crunch　に参加 &amp;amp; 登壇されていただいて、普段聴くことのできない色々な方の考え方に触れることができ、大変勉強になりました。もっとこのような場が増えることでデザインが元気になっていくとうれしいですね！&lt;/p&gt;

&lt;h2&gt;We are hiring&lt;/h2&gt;

&lt;p&gt;今後もWantedlyでは、コードを書いてプロダクトにコミットするデザイン文化を基盤として、
テクノロジーとともにしか実現できない強い表現、体験を作り上げていきます。興味のある方は、ぜひWantedlyまで遊びに来てください。&lt;/p&gt;

&lt;iframe frameborder='0' height='305px' name='wantedly_project_widget_51709' scrolling='no' src='https://www.wantedly.com/projects/51144/widget' style='border: none; max-width: 100%; min-width: 240px; width: 540px;'&gt;&lt;/iframe&gt;
</content>
  </entry>
  <entry>
    <title>Wantedlyの最近のReact事情についてMeguro.es #3で発表しました!</title>
    <link rel="alternate" href="http://engineer.wantedly.com/2016/04/21/meguro-es-03.html"/>
    <id>http://engineer.wantedly.com/2016/04/21/meguro-es-03.html</id>
    <published>2016-04-21T02:50:00Z</published>
    <updated>2016-07-16T13:46:25+09:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;目黒界隈のJavaScriptを書くエンジニアがあつまる勉強会、 &lt;a href="http://meguroes.connpass.com/event/28320/"&gt;&amp;ldquo;Meguro.es #3 in Drecom&amp;rdquo;&lt;/a&gt;に参加してきました。&lt;/p&gt;

&lt;p&gt;&lt;img alt="header.jpg" src="https://connpass-tokyo.s3.amazonaws.com/thumbs/9c/78/9c7804e8832001af408547c43c0390d4.png" /&gt;&lt;/p&gt;

&lt;p&gt;会場はドリコムさんのオフィス内のカフェのようなスペースで、お酒を飲みつつ、ゆるやかで居心地良い雰囲気でした。&lt;/p&gt;

&lt;p&gt;&lt;img alt="drecom.jpg" src="/images/2016-04-21/1461061446-d0d6598d.jpg" /&gt;&lt;/p&gt;

&lt;p&gt;Wantedlyからは&lt;a href="https://www.wantedly.com/users/544320"&gt;高松&lt;/a&gt;と&lt;a href="https://www.wantedly.com/users/1468880"&gt;森脇&lt;/a&gt;の2人で最近のWantedlyのフロントエンド開発で使っているツールやライブラリの話をしました。&lt;/p&gt;

&lt;h2&gt;WantedlyにReact + Reduxを導入した話&lt;/h2&gt;

&lt;p&gt;Wantedlyのこれまでのフロントエンド開発の歴史と、既存のRailsプロジェクトにReact + Reduxを導入した方法について話しました。&lt;/p&gt;

&lt;script async class="speakerdeck-embed" data-id="e0f9b90b1e4749f6bc9a93470b9fa8f9" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;h2&gt;Immutable.jsとReact @Wantedly ~入門編~&lt;/h2&gt;

&lt;p&gt;Facebookが開発している不変オブジェクトライブラリの &lt;a href="https://facebook.github.io/immutable-js/"&gt;Immutable.js&lt;/a&gt;の特徴や、Wantedlyでの活用例についての発表です。&lt;/p&gt;

&lt;script async class="speakerdeck-embed" data-id="9b0d97c3a7644a0c879ce81f1a701fed" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;h2&gt;We are hiring&lt;/h2&gt;

&lt;p&gt;一緒にReactを書いてくれる仲間を募集してます!!!&lt;/p&gt;

&lt;iframe frameborder='0' height='305px' name='wantedly_project_widget_51709' scrolling='no' src='https://www.wantedly.com/projects/51709/widget' style='border: none; max-width: 100%; min-width: 240px; width: 540px;'&gt;&lt;/iframe&gt;
</content>
  </entry>
  <entry>
    <title>Reactive Swift Meetup @Wantedlyを開催しました！</title>
    <link rel="alternate" href="http://engineer.wantedly.com/2016/04/14/reactive-swift-meetup.html"/>
    <id>http://engineer.wantedly.com/2016/04/14/reactive-swift-meetup.html</id>
    <published>2016-04-14T11:07:00Z</published>
    <updated>2016-07-16T13:46:25+09:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;&lt;img alt="concept.jpg" src="/images/2016-04-14/title-2dd54534.png" /&gt;&lt;/p&gt;

&lt;p&gt;4月13日に&lt;a href="http://wantedly.connpass.com/event/29039/"&gt;Reactive Swift Meetup&lt;/a&gt;をWantedlyで開催させて頂きました。&lt;/p&gt;

&lt;p&gt;RxSwift、ReactiveCocoa、ReSwift、SwiftFlux、SwiftBond、MVVM、FRPなどの各技術を先見的に活用されている素晴らしい登壇者の方々をお招きして、それぞれのフレームワークの特徴やパラダイムについて、また業務のアプリ開発でどのように利用されているのかをお話頂きました。アプリの開発が複雑になる中どのようにこの課題を解決していくのか、登壇者の皆さんのそれぞれのアプローチと深い知見を聞くことができ、登壇者同士の間でも互いに刺激となる会になったのではと思います。&lt;/p&gt;

&lt;p&gt;&lt;img alt="concept.jpg" src="/images/2016-04-14/IMG_4340-42b1bc8d.jpg" /&gt;&lt;/p&gt;

&lt;p&gt;筆者の登壇風景です。&lt;/p&gt;

&lt;p&gt;&lt;img alt="concept.jpg" src="/images/2016-04-14/IMG_5082-38311075.jpg" /&gt;&lt;/p&gt;

&lt;p&gt;オーディエンスにもたくさんの方々にお越し頂きました。ありがとうございます！ 登壇者やスタッフを含めると参加者は１００名ほどの勉強会となりました。弊社でこの規模の勉強会の運営は初めてなところもあり、至らず行き届いてない点もあったとは思いますが、以下のようにも言って頂けてスタッフ一同嬉しい限りです。&lt;/p&gt;

&lt;p&gt;&lt;blockquote class="twitter-tweet" data-lang="ja"&gt;&lt;p lang="ja" dir="ltr"&gt;&lt;a href="https://twitter.com/hashtag/Reactive_Swift_Meetup?src=hash"&gt;#Reactive&lt;em&gt;Swift&lt;/em&gt;Meetup&lt;/a&gt; Wantedly さんの勉強会、タイムキーピング、照明、音響どれをとっても完璧だったし、運営スタッフさんも慣れている感じだった。勉強会運営という観点でも非常に勉強になった。&lt;/p&gt;&amp;mdash; Kosuke Ogawa (@koogawa) &lt;a href="https://twitter.com/koogawa/status/720227555333132288"&gt;2016年4月13日&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;h2&gt;登壇者の方々の発表資料です&lt;/h2&gt;

&lt;h1&gt;キーノート / Oba Shinichiro @bricklife Mercari, Inc.&lt;/h1&gt;

&lt;p&gt;資料はありません。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://qiita-image-store.s3.amazonaws.com/0/4943/ec85597e-3c92-36b2-ca73-a6f8e958a371.png" width=100px /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://qiita.com/bricklife"&gt;Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/ooba"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bricklife"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bricklife.com"&gt;Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h1&gt;SwiftBondとMVVMで状態管理をシンプルにしよう / Sugigami Yohei @susieyy Wantedly, Inc.&lt;/h1&gt;

&lt;script async class="speakerdeck-embed" data-id="2826248a7dde4c908dde73ea152ff699" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;p&gt;&lt;img src="https://qiita-image-store.s3.amazonaws.com/0/4943/275d70a0-9941-c1ba-6ad4-4415e80281b6.png" width=100px /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://qiita.com/susieyy"&gt;Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/susieyy"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="github.com/susieyy"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/susieyy"&gt;Speakerdeck&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.wantedly.com/users/631708"&gt;Wantedly&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h1&gt;ReactiveCocoa 4.1入門 / Nick Matsunaga  Vasily Inc.&lt;/h1&gt;

&lt;script async class="speakerdeck-embed" data-id="16bc265d1f2b418cb9d5e5824ec57bea" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;p&gt;&lt;img src="https://qiita-image-store.s3.amazonaws.com/0/4943/c35e8c60-f666-8f7a-37a5-bf91f3a28233.png" width=100px /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Nirma"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h1&gt;カッコ悪くリアクティブじゃダメですか？ / Tokoro Yuta @tokorom Freelancer&lt;/h1&gt;

&lt;script async class="speakerdeck-embed" data-id="b644b20cbd964dc197617e4fbff8f54a" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;p&gt;&lt;img src="https://qiita-image-store.s3.amazonaws.com/0/4943/b6bf5c58-b947-e2d0-2e5e-b523fd7c536b.png" width=100px /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/tokorom"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tokorom"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.tokoro.me"&gt;Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/tokorom"&gt;Speakerdeck&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h1&gt;Fluxで複雑な状態の変化を予測可能にするiOSアプリ開発 / Yonekawa Kenichi @yonekawa freee K.K&lt;/h1&gt;

&lt;script async class="speakerdeck-embed" data-id="af582170179a45c8b127a272923ca541" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;p&gt;&lt;img src="https://qiita-image-store.s3.amazonaws.com/0/4943/e4529b02-47ce-7f77-5f32-e08d24af880a.png" width=100px /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://qiita.com/yonekawa"&gt;Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/yonekawa"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/yonekawa"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h1&gt;Getting Started with ReactiveCocoa v4.1.0 / Inami Yasuhiro @inamiy LINE Corp.&lt;/h1&gt;

&lt;script async class="speakerdeck-embed" data-id="d2b4360e781747a78851bd87182f92f8" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;p&gt;&lt;img src="https://qiita-image-store.s3.amazonaws.com/0/4943/8ca71a6d-7349-037b-afeb-1b1dcee5c249.png" width=100px /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/inamiy"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/inamiy"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/inamiy"&gt;Speakerdeck&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h1&gt;RxSwift + MVVM / Ishikawa Yosuke @_ishkawa Mercari Inc.&lt;/h1&gt;

&lt;script async class="speakerdeck-embed" data-id="b96c88210c0840799d705e12c607e202" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;p&gt;&lt;img src="https://qiita-image-store.s3.amazonaws.com/0/4943/734957f0-13c8-30db-2d1a-79ecb21a8a63.png" width=100px /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/_ishkawa"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ishkawa"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.ishkawa.org/"&gt;Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/ishkawa"&gt;Speakerdeck&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h1&gt;ReSwiftでアプリの状態管理 / ninjinkun @ninjinkun Fablic Inc.&lt;/h1&gt;

&lt;script async class="speakerdeck-embed" data-id="51a0008044f2436aaa99c0eb3c012dc9" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;p&gt;登壇時のデモ動画もありますので、是非の以下リンクからご覧ください。&lt;/p&gt;

&lt;p&gt;http://in.fablic.co.jp/entry/reswift&lt;/p&gt;

&lt;p&gt;&lt;a href="http://in.fablic.co.jp/entry/reswift" style="text-decoration: none"&gt;
&lt;img alt="ReSwiftVideo" src="/images/2016-04-14/ReSwiftVideo-f98de6cf.png" /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://qiita-image-store.s3.amazonaws.com/0/4943/fd163700-ee7e-b81f-6c11-f040f7ba61c5.png" width=100px /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://ninjinkun.hatenablog.com/entry/2016/02/02/183136"&gt;アプリ開発と状態遷移の管理&lt;/a&gt; ninjinkun&amp;#39;s diary&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/ninjinkun"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ninjinkun"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ninjinkun.hatenablog.com/"&gt;Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/ninjinkun"&gt;Speakerdeck&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h1&gt;Carthage and ReactiveCocoa / Ikeda Syo @ikesyo Hatena Co, Ltd.&lt;/h1&gt;

&lt;script async class="speakerdeck-embed" data-id="9d6eb1d13ae64ddbb103378380a46ab0" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;

&lt;p&gt;&lt;img src="https://qiita-image-store.s3.amazonaws.com/0/4943/d6406606-7aeb-6857-6707-2eb96b9f5b0e.png" width=100px /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/ikesyo"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ikesyo"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ikesyo.hatenablog.com"&gt;Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.slideshare.net/syoikeda"&gt;Slideshare&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h1&gt;Wantedlyは一緒にiOSアプリを開発してくださるエンジニアを募集しています！&lt;/h1&gt;

&lt;iframe frameborder='0' height='305px' name='wantedly_project_widget_51088' scrolling='no' src='https://www.wantedly.com/projects/51088/widget' style='border: none; max-width: 100%; min-width: 240px; width: 540px;'&gt;&lt;/iframe&gt;
</content>
  </entry>
</feed>
