狠狠撸

狠狠撸Share a Scribd company logo
乙女ゲー
を支える技術
  Play2.0 + Scalaの開発事例紹介

           daiksy




                  2012-07-14
第3回 Playframework勉強会 #play_ja
自己绍介
自己绍介
@daiksy
 粕谷 大輔
    フリュー株式会社

       プログラマ
自己绍介



 乙女ゲー
作ってます!
ゲームの
 デモ
構成
Amazon EC2       Amazon RDS


  Play2.0            MySQL



                 Amazon S3
Amazon EC2           backup

                  Amazon ElastiCache

  Play2.0
                      Cache

                     Fluentd
开発概要
开発概要
期間:
开発概要
期間: 2012年2月~5月末
             (4ヶ月)
开発概要
期間: 2012年2月~5月末
             (4ヶ月)
チーム構成:6名
开発概要
期間: 2012年2月~5月末
             (4ヶ月)
チーム構成:6名

  Play2.0 + Scalaの
 開発は会社として初めて
开発概要
FW:Play2.0
开発概要
FW:Play2.0
開発言語:Scala
开発概要
FW:Play2.0
開発言語:Scala
ORM:Squeryl
开発概要
FW:Play2.0
開発言語:Scala
ORM:Squeryl
DB:MySQL
開発当初はPlay2.0 RC1
開発当初はPlay2.0 RC1

途中で正式リリース
開発当初はPlay2.0 RC1

開発途中で何度かVer Up
開発当初はPlay2.0 RC1

開発途中で何度かVer Up
_人人人人人人人人人人人人人人人_
>?コンパイルエラーとの戦い!?<
 ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
今回开発の注意点
今回开発の注意点
ガラケー文字コード问题
今回开発の注意点
ガラケー文字コード问题
ガラケー,スマフォ
同時リリース
今回开発の注意点
ガラケー文字コード问题
ガラケー,スマフォ
同時リリース
痴颈别飞テンプレート问题
ガラケー文字コード问题
ガラケー文字コード问题

  docomo     Windows-31J



    au       Windows-31J



  SoftBank     UTF-8
ガラケー文字コード问题

  docomo     Windows-31J



    au       Windows-31J



  SoftBank     UTF-8



キャリアによって異なる!
ガラケー文字コード问题

play.api.mvc.BodyParsers

  tolerantFormUrlEncoded

                     を拡张
ガラケー文字コード问题
ガラケー,スマフォ
同時リリース
ガラケー,スマフォ
同時リリース




 ガラケーとスマフォの
 違いは何か?
ガラケー,スマフォ
同時リリース




 viewが違う
    ※今回は画面迁移は同じ
普通の辫濒补测アプリ
普通の辫濒补测アプリ
controllers.hogeController
普通の辫濒补测アプリ
controllers.hogeController

  def fuga = Action {
    //いろいろ処理をする
    // ?
    // ?
    // ?


      Ok(views.html.hoge)
  }
ガラスマ同時リリース版
controllers.hogeController
  def fuga = Action {
    //いろいろ処理をする
    // ?
    // ?
    // ?


      MultiResult(
        Ok(views.html.sp.hoge),
        Ok(views.html.fp.hoge)
      )
  }
ガラスマ同時リリース版
controllers.hogeController
  def fuga = Action {
    //いろいろ処理をする
    // ?
    // ?
    // ?                          DeviceTypeに
                                  よって切り分け
      MultiResult(
        Ok(views.html.sp.hoge),
        Ok(views.html.fp.hoge)
      )
  }
ガラスマ同時リリース版

 def MultiResult(sp: => PlainResult, fp: => PlainResult)
      (implicit request: MyRequest) = {

    request.deviceGroup match {
      case Some(SmartPhone) => sp
      case Some(FeaturePhone) => fp
      case _ => throw DeviceGroupNoMatchException()
    }
}
痴颈别飞テンプレート问题
痴颈别飞テンプレート问题

標準のScalaテンプレート
はコンパイルが必要
痴颈别飞テンプレート问题

標準のScalaテンプレート
はコンパイルが必要


制御文がガチScala
痴颈别飞テンプレート问题
デザイナさんが
気軽に触れない
痴颈别飞テンプレート问题
デザイナさんが
気軽に触れない

viewだけの変更にも
コンパイルが必要
痴颈别飞テンプレート问题



play-velocity-plugin
痴颈别飞テンプレート问题



play-velocity-plugin

     近日公开!!
所感
所感

結構最後まで文字コードに
悩んだ。
所感

Scalaなのでコード量は
減った。
所感

慣れてしまえば、ちょっと
しか機能追加は楽
所感
なにより開発が
楽しかった!
Thank You!


 ご清聴
 ありがとうございました!

More Related Content

Play勉強会 第3回

Editor's Notes