僕はここだ!

読書記録とか、ポエムとか、メモとか、コードスニペットとか。まとまったのはQiitaにも書きます。(http://qiita.com/RyotaMurohoshi) 掲載内容は個人の見解であり、所属する企業を代表するものではありません。

「第5回Kotlin勉強会 @ Sansan」でSequenceやCoroutineについてLTした #KOTLIN_SANSAN

 2017年04月04日にSansan様で開催された「第5回Kotlin勉強会 @ Sansan」にて、「SequenceとCoroutineの話し」というタイトルでLTをしました。

 イベントページはこちら。

sansan.connpass.com

 私の発表資料はこちら。

speakerdeck.com

 私はKotlin 1.1について10分間で話す枠で登壇しました。

 具体的には

  • Sequence<T>というインターフェースについての概要
  • Kotlin1.1でSequence<T>関連の関数が簡単に実装できるようになったこと

 の2点をメインにお話しさせていただきました。

 5分のLTでも、50分の登壇でも、セッションで大切なのは「誰に何を伝えるのか?」

 今回、「(async / awaitじゃない)Sequenceの方のCoroutineを話したい」というの大枠のテーマは早い段階で決まりました。

 しかし「誰に」というのが中々決められずにいました。

 今回の勉強会に参加される方はみなさんKotlinは使ったことがあるでしょうけど、

  • Sequence<T>について知らない人
  • Kotlin 1.1でCoroutineが入ることを知っている人
  • 「なないろAndroid」のasync / awaitの章を読んだ人
  • buildSequenceや以前のgenerate関数を実際に触ったことがある人

 という感じで、いろいろな方が来ることが予想できました。

 10分という限られた時間では話せることが限られます。いろいろな理解度の参加者のみなさんに対して話すため、どれくらい詳しく前提知識を話す必要があるのか、またはどれくらい前提知識をざっとながしていいのか、悩みました。

 結局、事前知識である「Sequence<T>というインターフェースについての概要」をわりと長めに話しました。

 事前知識を長めに取ってしまった結果、本来伝えることを1つにすべきLTなのに

  • Sequence<T>というインターフェースについての概要
  • Sequence<T>関連の関数が簡単に実装できるようになったこと

 と、伝えることが2個になってしまいました。10分のLTで、これはあまりいいことではないですね。ばっさり事前知識はカットしても良かったかも。

 Sequence<T>の記事を勉強会の数日前に書いたので、そちらもよければ読んでみてください。

qiita.com

qiita.com

 参加者の皆様の感想お待ちしております。

2017年3月振り返り

 気が付いたら2017年も1年の1/4が終わりました。

 やっぱりあわただしい年度末、あっという間ですね。

 やばい。

DroidKaigiにKotlinセッションのチューターとして参加

 2017年3月9日(木)・10日(金)に開催されたDroidKaigi 2017のKotlinハンズオンのチューターをさせてきたいただきました。

 ハンズオンなどのTAは何回か経験させていただいているんですが、初めてのAndroid系、そしてKotlin。

 また機会があれば、ぜひやりたいです。

 関連 : DroidKaigi 2017でKotlinハンズオンのチューターとしてお手伝いしてきた #DroidKaigi

UniLinqがバンドリというソーシャルゲームで採用される

github.com

 だいぶ前に作ったUnity向けのライブラリ「UniLinq」を、「Bang Dream ガールズバンドパーティー」というスマホゲームで使っていたたいだようです。

 自分のコードが多くの人の遊んでいるゲームで動いている。とても嬉しいです。

 関連 : UniLinqがスマホゲーム「Bang Dream ガールズバンドパーティー」で使われてた

ブログ投稿まとめ

 技術的なことはQiitaに、勉強会の参加等ログ的なことははてなブログに書いています。

 Qiita

 はてなブログ

年間目標振り返り

 年始に建てた目標を振り返ります。

  • 個人ゲーム開発3個リリース
  • ブログ 100記事書く
  • TOEIC 860点以上をとる
  • 体重62kg以下にする
  • 彼女を1人作る

個人ゲーム開発3個リリース

 2017年1作目の「転生勇者」。リリース目標は4月中です。

 3月の初めに立てた目標と振り返り

  • できた : 毎日10分でもいいからUnityプロジェクトを開いて何でもいいから何かを改善する
  • できてない : 3/04(土)・3/18(土)・3/25(土)は一人もくもく会をやる
  • できてない : アルファ版リリース準備

 結構忙しかった年度末。

 それでもなんとか「毎日10分でもいいからUnityプロジェクトを開く」は達成できました。趣味・副業として何かを作っている場合は、日が空いてしまうと「あれ、何をやるんだっけ?」となったり、腰が重くなってしまうので、毎日ちょっとでも良くしていくのはいいですね。

 仕事が入ったり別の予定が入ったりで、3/18(土)と3/25(土)は残念ながらもくもく会ができませんでした。

 4月は厳しくなってきたので、ゴールデンウイーク開けまでリリースがもつれ込んしまうかも。

 4月の目標

  • [継続] 毎日10分でもいいからUnityプロジェクトを開いて何でもいいから何かを改善する
  • [変更] 週末、土日のどちらかはもくもく会をする
  • [新規] リリースする際の最終成果物を決める
  • [新規] リリース日を決める

ブログ 100記事書く

 3月の目標 : 13記事書く(テーマも列挙済み)

 計8記事。列挙したテーマではほとんど書けず。

 1月・2月は13記事書いたので、現在21記事。

 このままだと1年で100記事できなそうですね。

 4月の目標

  • 登壇予定のKotlin勉強会のブログ (×1記事)
  • ↑関連のKotlinの記事 (×2記事)
  • Unityの5.6関連の記事 (×2記事)
  • Unity + C# 6.0の記事 (×2記事)
  • Unity 2D Experimental PreviewやTilemap関連記事 (×2記事)
  • Build Insider執筆報告 (×2記事)
  • Kotlinの赤べこぼん レビュー記事 (×1記事)
  • その他勉強会関連 (×1記事)

 の計、13記事を書きたいです。

TOEIC 860点以上をとる

 3月の目標

  • DMM英会話を月・水・金・日の週4回やる

 結果として、月合計8回。前半はいい感じだったんですが、年度末ということで後半になって失速してしまいました。

 4月の目標

  • [継続] DMM英会話を月・水・金・日の週4回やる

体重62kg以下にする

 1月:69.5kg -> 2月:69.8kg -> 3月:68.5kg

 ほんのちょっとやせました。後半全然運動できてないのに!

 後半仕事が忙しかったから痩せたのかも!(もしくは自炊しないほうがいいかも)

 4月の目標は3月の小目標を継続で。

  • 軽くてもいいので週3回運動
  • 目標が適切か聞く
  • オフィスにいる時は、お菓子を自分で買わない
  • ヘルシープログラマを読む

彼女を1人作る

 進捗ありません。

まとめ

 4月は、たとえ仕事が忙しくても、事前に決めた小さな目標を達成して、進捗を積み上げていきたいです。

Unite Tokyo 2017の公募セッションに落ちた

 2017年5月8日(月)・9日(火)に開催が予定されている国内最大規模のUnityのイベント、Unite Tokyo。 

https://unite.unity.com/ja/2017/tokyounite.unity.com

 3/29(水)に一部のセッションが公開されましたね。

events.unity3d.jp

 Uniteには公募セッションがあり、実は私も申し込んでいました。

 テーマは「TileMapEditor」について。

 残念ながら採択見送り(落選)となってしまいました。

 この内容についていつか別の機会で披露させていただければと思います。

 PS.落選、実は二年ぶり二回目。

『Unity Ads ミートアップ #09 「個人デベロッパーが実行できるメディアへのアプローチ」』に参加しました。

 2017年03月29日(水)に開催された『Unity Ads ミートアップ #09 「個人デベロッパーが実行できるメディアへのアプローチ」』に参加しました。

 その感想とメモです。

 ハッシュタグ : #unityadsミートアップ

https://atnd.org/events/86093atnd.org

掲載されやすいプレスリリースの作り方

 少し前に

 「個人開発者でもプレスリリースを送ろう。メディアに掲載してもらおう」

 というのが私の観測範囲で話題になりました。

 「送るって言ってもどんなの送ればいいんだ?」

 と思っていた私にとって、「どんなプレスリリースを作ればいいのか」という 松井 悠 さんによるセッションはとても楽しみでした。

 ポイントは、

 「とにかく送ったプレスリリースを読みメディアの担当者が、めんどくさくなくする」

 メディアさん・当編集者さんにもよりますが個人開発者からのプレスリリースは、

  • 「手が空いていたら載せようかなー」
  • 「めんどくさいから、優先順位が下げようかなー」

 となることも多いそうです。

 そして、

「プレスリリースで送った内容が、掲載されたらラッキー」

 くらいに考えるといいみたいです。

 具体的なポイントは資料が公開されているのでそちらをご覧ください。

www.slideshare.net

アプリストアでのフィーチャーの効果とその対策

 いつかは載せたいアプリストアのフィーチャー

 Ninebonz いたのくまんぼう さんのセッションは、一部オフレコでした。

 「Google PlayApp Storeもインディーズゲーム特集に申し込めるページがある」

 というのが一番の収穫でした。

 ストアごとにアプリカテゴリやフィーチャーされやすいゲーム、そして基準が違います。

 それぞれにしっかり合わせて、いつかフィーチャーされたいものです。

 余談ですが、私が作っているゲームに関しては、AndroidiOSのダウンロード数が大きく違います。ざっとAndroidの方が8倍くらい多いです。これはそれぞれの端末のユーザー層の違いもあるかなとも思っています。


メディアに載る意味と使い方

 ゲームキャスト トシ さんのセッション。

 だいぶ前は、

 「メディアに掲載される -> ダウンロード数爆上がり」

 という方程式が成り立っていましたが、それは過去のこと。

 「だけどメディアに載ったことで間接的に、爆発的流行る可能性が上がるよね」というのに納得しました。

 また、ライターさんも人間なので関係構築を行ったり、イベントに参加して取材していただいたり・取り上げていただく努力をしたりすることも大切だなと思いました。

その他

 「Unity マネタイゼーション情報局」というfacebookグループができたらしいです。

 今回のようなマネタイズにかかわる情報に興味がある人は、入っておくといいと思います。

https://www.facebook.com/Unity-%E3%83%9E%E3%83%8D%E3%82%BF%E3%82%A4%E3%82%BC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E6%83%85%E5%A0%B1%E5%B1%80-770472869767710/

 余談ですがマネタイズ系の勉強会、やっぱりいつも行く開発者メインの勉強会とはやはり雰囲気が違いますね。

UniLinqがスマホゲーム「Bang Dream ガールズバンドパーティー」で使われてた

 だいぶ前、Unity向けのライブラリUniLinqを作っていました。

github.com

 このUniLinq、「Bang Dream ガールズバンドパーティー」というスマホゲームで使っていたたいだようです。

bang-dream.bushimo.jp

 2017/03/19(日)、現在の設定 > 権利表記のスクショです。

 UniLinqの文字がゲームの中にある!

f:id:MRStar:20170320004645j:plain

 Ryota Murohoshiの文字がゲームの中にある!

f:id:MRStar:20170320004646j:plain

 やっほい!!!

 私の書いたコードがライブラリとしてゲームの一部として動いていて、いろんな人がそのゲームを遊んでいる、とてもうれしいです。

 私の作ったゲームをたくさんの人が遊んでくれたら、もっともっと嬉しいと思うので、ゲーム開発もより一層頑張りたいと思います。

「Unity 5.6新機能/Unity 2017 Betaのご紹介とマネタイズの最前線」 に参加しました #Unity道場

 2017年3月17日(金)に開催された「【Unity道場】Unity 5.6新機能/Unity 2017 Betaのご紹介とマネタイズの最前線」 に参加しました。そのメモです。

kenjin.unity3d.jp

GDC 2017行ってきました報告会&Unityのサービスを利用したマネタイズの最前線

 Unity Technologies Japan 鎌田さんのセッション

  • プロトタイピング大事!
  • 課金アイテムや動画視聴をうまくゲームのリソースフローにうまく組み込むため、最初からこれらを考慮しリソースフローの設計をしっかりしたい
  • 初心者向けのスターターパックなどうまくターケティングした課金アイテムの設計が大事
  • 海外に比べて日本のゲームは寿命がみじかい。長く愛されるゲームの設計をしたい。

 資料や動画がをじっくりもう一度見たい!

Unity 5.6新機能/Unity 2017 Betaのご紹介

 Unity Technologies Japan 山村さんのセッション

 今回セッション中に紹介されたUnityの新機能で、個人的に楽しみなものなどの雑なピックアップ。

  • タイルマップはまだ来ない。ショック
  • SpriteRendererのSlicedとTiled、すごく待っていた
  • SpriteのソーティングオーダーをY座標などで制御できるようになった
  • タイルマップはまだ来ない。ショック
  • Colliderの結合はアクションゲームを作る際に便利そう。動的ステージ生成など
  • NavMeshのパワーアップ。2Dとかでも使いやすく
  • .NET 4.6、もうすぐ来そう。楽しみしかない
  • タイルマップはまだ来ない。ショック

 タイルマップはまだ来ないのはショックだけど、楽しみな機能がたくさん。

おまけ

 ベルサール六本木とベルサール六本木コンファレンスセンターは違う場所!

 覚えた!!!

Visual Studio 2017リリース記念勉強会 #csugjp #まどすた に参加しました。

 2017年3月11日(土)に開催されたVisual Studio 2017リリース記念勉強会 #csugjp #まどすた に参加しました。そのメモです。

csugjp.connpass.com

C# 7

  • C# 7.1、7.2など小数点リリースが決まり、マイルストーンも大体きまった
  • C# 7.0、コミニティ実装で入った機能もある
  • 「それXXXXXXを使えばコードすっきりするよ」という時、自分は言語機能の正式名称や共通言語を覚えてないことが多いなーと感じた
  • 他の言語でよくあるIndexedメソッドがTupleで可能。IEnumerableの拡張メソッドのZipみたいな、Tupleの拡張メソッドも
  • ValueTupleという構造体が裏側にいる。ValueTupleは8個まで型引数をとるものがある。8より大きいやつを作る場合は入れ子
  • throw式が加わって、return x ?? throw new XxxException();とか書ける
  • Discard普通のときの変数名とマルチ代入の場合で違う
  • ローカル関数のおかげでLINQみたいなnullチェックが必要なメソッドがすっきり!
  • バイナリーリテラル、Unityのタイルマップで使いたい
  • C# 7バイナリ互換、ValueTypeを除きある

Xamarin.Formsとコンソールアプリでモデル層を共通化してみた

  • サービスが軌道に乗るまでXamarin.Forms、乗ったらXamarin.Nativeもありかー
  • タイプが違っても共通化ができるのはモデル層

Unityの話

 オフレコでした

AWS Loves .NET : または私はいかにして心配するのを止めてMacを愛するようになったか

  • おめでとうございます
  • 技術書典2、楽しみにしています
  • ナイスデモ、お疲れ様でした

ホントのホントの0から始める3Dモデリング超入門

  • HoloLens Live Modeling
  • UnityとmetasequoiaはライブでSyncできる
  • UnityとHoloLensもライブでつなげられる
  • モデリングしながら、HoloLensでどんな感じがチェックできる!!!!

Visual Studio 2017の新機能

  • インストーラー、Electron
  • ソリューションを開くのが早くなった
  • ネストが深いif文でもどこにいるのか見やすくなる機能がついた
  • EditorConfigに対応!
  • プライベートメンバーの命名規則、間違っていたらコンパイルエラーにすることも可能
  • ヌルポ(NullPointerException)ではなく、ヌルリ(NullReferenceException)
  • いろいろ修正してくれる。ある箇所を直したら、ソリューションやプロジェクト内の同様の修正点を直してくれる
  • ファイル名とクラス名の不一致をサクッと直せる
  • Live Unit Testing、定義済みのユニットテストがコード編集中もリアルタイムで走る

まとめ

C# 7.0はいいぞ!!! Visual Studio 2017もいいぞ!!!!!

あと、HoloLensもよかった! ジェスチャーも発音も俺はくそだったけど。