iOSDC Japan 2018で「Musicアプリのトランジションを再現する」というトークをしてきました

こんにちは。技術部 Lobi 事業部の長堂です。

カヤックの技術ブログには初登場なので、一言で自己紹介をさせていただきます。

沖縄出身の自称ボディビルダーです。

自称ボディビルダーとは言え、本業は iOS エンジニアです。

iOS エンジニアとしての技術力をバルクアップさせるべく、先日 iOSDC Japan 2018 に参加してきました。

iOSDC Japan とは?

f:id:kzmsngd:20180907131527j:plain

iOSDC Japan は、iOS 関連の技術をテーマとする技術カンファレンスです。

エンジニアによる登壇発表だけでなく、

  • 登壇者に直接質問できる Ask the Speaker
  • ある特定のテーマ(例: Storyboard / Auto Layout など)について、悩み事の相談やディスカッションが出来る IRT (Interactive Round Table)
  • 参加者と交流できる懇親会
  • 前夜祭
  • オープニングパーティー

...etc という感じでいろいろと企画があり、エンジニア同士の交流に力を入れているところが特徴的なカンファレンスです。

規模も年々拡大していて、参加者数も1000人に届きそうな感じです。

私は今回、この iOSDC Japan 2018 の CfP に応募し、採択されたので登壇をしてきました。

実はこれが初めてのカンファレンストークだったのですが、なんとか無事に終わりホッと一息ついています。初めてのボディビルコンテストより緊張したかもしれません。

では、当日話した内容について簡単に紹介します。

8/31 Track C 「Musicアプリのトランジションを再現する」

トークで使ったスライド↓

CfPに応募したときのプロポーザル

このトークは、Apple の純正アプリである「Music」のように、 インタラクティブなトランジションができるモーダルビューを再現するために試行錯誤したお話です。

iOSアプリで使われるモーダルビューはカスタマイズの幅が広がってきています。 例えば、

  • Music: ミュージックプレイヤーがインタラクティブに開閉できるモーダルビュー
  • Map: 経路検索画面が、表示位置を段階的に変えられるモーダルビュー
  • 某SNS: Webビューがスワイプで閉じれるモーダルビュー

という感じで、モーダルビューの目的に応じて様々なUIが生まれてきています。

しかし、Appleの純正アプリのようなインタラクティブなトランジションを 簡単に表現できるようなものはまだUIKitのコンポーネントとしては提供されておらず、 実現するためには少し工夫が必要です。

そのインタラクティブなトランジションを実現するためにどう工夫したか、 また、カスタマイズしたモーダルビューで起きてしまった問題と解決策をスライドにまとめて発表しました。

初カンファレンストークの感想

  • 良かった点
    • カスタマイズしたモーダルビューの実装を検討している人に聞いてもらえた
    • 発表内容について質問してもらえた
    • 発表が参考になったと言ってもらえた
    • 30分話しきれるか不安だったが、ほぼほぼぴったり30分話しきった
  • 悪かった点
    • Swiftのサンプルコードも用意したかった…
    • トークは15分枠、30分枠が意外と楽かもしれない
      • 時間が5分程度しかないLT枠の方が、伝えたいことを短くまとめる必要があるので難しいかも

コアスタッフもやっていました

実は、iOSDC Japan 2018 のコアスタッフとしても参加しており、前夜祭の8/30から最終日の9/2までずっと会場にいました。

前夜祭を含めると3.5日間、普段の業務とは違うスタッフ業務で疲れ切りましたが、最後にスタッフ総出で参加者をお見送りした後の やっと終わった感 達成感は気持ちがいいです。また来年、スタッフとしても関われたら良いなと思っています。


カヤックでは iOS に興味のあるエンジニアを積極的に募集しています。

筋肉に興味のあるエンジニアもたくさん来て欲しいです。一緒にトレーニングしましょう!

CEDEC 2018に弊社の藤原と谷脇が登壇します

こんにちは、酷暑の夏いかがお過ごしでしょうか?

先日のパシフィコ横浜の某イベントでかなり消耗してしまった竹田です。

パシフィコ横浜といえば、CEDEC 2018が来週8/22(水) - 8/24(金)の間、開催されますね。

弊社カヤックからは、エンジニアの藤原と谷脇が登壇する予定となっています。

Amazon ECS とマネージドサービスを活用した、フルコンテナ構成によるゲームサーバの構築と運用 講演者:藤原 俊一郎

セッションの内容

本セッションでは Amazon Web Services(AWS)上で Amazon Elastic Container Service(ECS) とマネージドサービスを活用した、ソーシャルゲームサーバの構築と運用方法について説明します。

Docker に代表される Linux コンテナ技術を利用したサーバ運用は近年一般的になってきました。コンテナをゲームサーバの開発やテストに用いると、ローカルマシンやサーバ上に複数の独立した環境を構築できるため利便性が高く、広く利用されています。

しかし Linux コンテナは名前空間とリソースが分離された単なるプロセス群であるため、複数のサーバ上で複数のコンテナを協調させてシステムとして動作させるためには、コンテナオーケストレーションツールと呼ばれるミドルウェアが必要になります。

AWS におけるオーケストレーションツールのマネージドサービスである Amazon ECS を利用すると、高可用性を要求される本番環境でコンテナ上で動作するアプリケーションとミドルウェア、AWS の豊富なマネージドサービスを組み合わせ、構成管理とデプロイの簡略化、高速化を実現できます。

コンテナ環境では、サーバ上に直接アプリケーションやミドルウェアを起動する従来の環境と比較して、デプロイ、ログの取り扱い、監視等の運用にこれまでと異なる手法が要求されます。これらの課題を、自社で Go 言語で開発した OSS を利用して解決した内容についても解説します。また、本番リリース前に必須である負荷試験もコンテナを活用することで柔軟に行えるため、その手法についても説明します。

スケール可能で運用しやすいWebSocketサーバ設計の課題と工夫 講演者:谷脇 真琴

セッションの内容

本セッションでは、スマートフォンゲームに多く採用されるようになってきたリアルタイム通信について、サーバサイドの観点から課題を解説し、従来のソーシャルゲームで多く用いられている構成のアプリケーションに対して、どのようにしてリアルタイム通信機能を付加したかを説明します。

面白法人カヤックではリアルタイム通信基盤として、WebSocketを用いているゲームがあります。これらのプロジェクトでは独自のWebSocket通信を受け持つミドルウェアを介して、普通のWebアプリケーションサーバにリアルタイム通信機能を付け加えています。この構成を採用すると、ステートレス通信とステートフル通信の分離や、サーバアプリケーションの更新に伴う通信路の切断の克服など、様々なメリットが得られました。

リアルタイム通信部分をアプリケーションサーバから分離する構成上の工夫と、運用上のメリットについて詳しく解説します。


カヤックの社員も多数参加予定です。 社員はサイトで事前に把握できるので見つけて気軽に話しかけてください、面白い話が聞けるかもしれません。

では、当日の来場をお待ちしております。