ScalaでAndroidアプリを作ると         何が良いのか?         株式会社hemplant  麻植泰輔                 Twitter:@OE_uia               Facebook:oe....
自己紹介麻植(おえ)Twitter:@OE_uia, Facebook:oe.taisukeScalaでAndroidアプリ&オレオレAPI開発株式会社hemplant(麻 hemp + 植 plantが由来)決して大麻工場ではありません(‘・...
ScalaでAndroidアプリ開発?AndroidアプリをScalaで開発するときの問題について、@lyrical_logicalさんが第86回で発表済み。Twitter界隈では素人は手を出すな、ということでFA? (‘・ω・`)
ScalaでAndroidアプリ開発?じゃあ反論するのか?答)できません (‘・ω・`)でも良いとこもあるよ?というのをAndroidという文脈でアピールするのを試みます。
Scalaで開発するメリットとにかく簡潔に書ける その1ScalaのCollection APIは並行コレクションを除いて使用可能。高階関数 ヒャッハ-!!
Scalaで開発するメリットとにかく簡潔に書ける その2Androidアプリで頻出のEventListenerやRunnableも、関数から暗黙の型変換で無名クラス化すると簡潔に。処理のカプセル化>コード量削減
Scalaで開発するメリット         EventListenerの書き換え例JAVA:button.setOnClickListener( new View.OnClickListener() {   public void onCli...
Scalaで開発するメリットとにかく簡潔に書ける その3Resourceへのアクセスや、Viewのコンストラクタに必ず使われるContextを、暗黙の引数化注:Contextはメモリリークの頻出場所なので、注意は必要
Scalaで開発するメリット    Contextの暗黙の引数化JAVA:Toast.makeText( context,"写真を保存しました。",Toast.LENGTH_SHORT).show()SCALA:"写真を保存しました".toast
Scalaで開発するメリットとにかく簡潔に書ける その4構造的部分型(Structual Subtyping)ArrayAdapter(縦スクロール型)とPagerAdapter(横スワイプ型)は、どちらもnotifyDataSetChange...
Scalaで開発するメリット    ViewPagerとArrayAdapterを纏めるtype Observer = {def notifyDataSetChanged():Unit}val vAdapter = new ArrayAdapt...
Scalaで開発するメリットとにかく簡潔に書ける その5TypedResourcesResourceIDとViewを結びつける際、通常は型キャストが必要だが、android-pluginのTypedResourcesでは型キャスト不要。
Scalaで開発するメリット    Resourceファイルから型情報も取得JAVA:Button button = (Button)findViewById(R.id.button1);SCALA:val button = findView(...
その他のメリットTraitのmixin継承で、デフォルトの実装パターンをオレオレフレームワーク化ServerSideのオレオレAPIも同じ言語でサクっと作れるから、頭の切り替えが不要。
Scalaで開発するメリットこんな感じでAndroidアプリの工数が下がるだけでなく、作るのも楽しくなりますYO!勿論環境設定+習熟に時間がちょっぴり(?)かかりますので、最初は締切の緩いプロジェクトでの使用を推奨します。
参考文献:Scala my Androidhttp://ktoso.github.com/scala-android-presentation/#/現状 #Scala で #Android をやるのは思っている以上に罠が多いという話 -Toge...
Upcoming SlideShare
Loading in …5
×

2012 09-26-scala

2,151 views

Published on

第88回Scala勉強会 #rpscala LT資料

Published in: Technology
  • Be the first to comment

2012 09-26-scala

  1. 1. ScalaでAndroidアプリを作ると 何が良いのか? 株式会社hemplant  麻植泰輔 Twitter:@OE_uia Facebook:oe.taisuke
  2. 2. 自己紹介麻植(おえ)Twitter:@OE_uia, Facebook:oe.taisukeScalaでAndroidアプリ&オレオレAPI開発株式会社hemplant(麻 hemp + 植 plantが由来)決して大麻工場ではありません(‘・ω・`)次回のScalaConferenceで会計職担当。
  3. 3. ScalaでAndroidアプリ開発?AndroidアプリをScalaで開発するときの問題について、@lyrical_logicalさんが第86回で発表済み。Twitter界隈では素人は手を出すな、ということでFA? (‘・ω・`)
  4. 4. ScalaでAndroidアプリ開発?じゃあ反論するのか?答)できません (‘・ω・`)でも良いとこもあるよ?というのをAndroidという文脈でアピールするのを試みます。
  5. 5. Scalaで開発するメリットとにかく簡潔に書ける その1ScalaのCollection APIは並行コレクションを除いて使用可能。高階関数 ヒャッハ-!!
  6. 6. Scalaで開発するメリットとにかく簡潔に書ける その2Androidアプリで頻出のEventListenerやRunnableも、関数から暗黙の型変換で無名クラス化すると簡潔に。処理のカプセル化>コード量削減
  7. 7. Scalaで開発するメリット EventListenerの書き換え例JAVA:button.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { // クリック時の処理 } });SCALA:button.setOnClickListener{(v:View)=> // クリック時の処理}
  8. 8. Scalaで開発するメリットとにかく簡潔に書ける その3Resourceへのアクセスや、Viewのコンストラクタに必ず使われるContextを、暗黙の引数化注:Contextはメモリリークの頻出場所なので、注意は必要
  9. 9. Scalaで開発するメリット Contextの暗黙の引数化JAVA:Toast.makeText( context,"写真を保存しました。",Toast.LENGTH_SHORT).show()SCALA:"写真を保存しました".toast
  10. 10. Scalaで開発するメリットとにかく簡潔に書ける その4構造的部分型(Structual Subtyping)ArrayAdapter(縦スクロール型)とPagerAdapter(横スワイプ型)は、どちらもnotifyDataSetChanged():Unitを持つが継承関係なし。
  11. 11. Scalaで開発するメリット ViewPagerとArrayAdapterを纏めるtype Observer = {def notifyDataSetChanged():Unit}val vAdapter = new ArrayAdapter[POJO]{...}val hAdapter = new PagerAdapter[POJO]{...}val adapterMap:Map[String,Observer] = Map( "vertical"->vAdapter, "horizontal"->hAdapter )def onComplete(){ adapterMap.values.foreach{_.notifyDataSetChanged}}
  12. 12. Scalaで開発するメリットとにかく簡潔に書ける その5TypedResourcesResourceIDとViewを結びつける際、通常は型キャストが必要だが、android-pluginのTypedResourcesでは型キャスト不要。
  13. 13. Scalaで開発するメリット Resourceファイルから型情報も取得JAVA:Button button = (Button)findViewById(R.id.button1);SCALA:val button = findView(TR.button1)
  14. 14. その他のメリットTraitのmixin継承で、デフォルトの実装パターンをオレオレフレームワーク化ServerSideのオレオレAPIも同じ言語でサクっと作れるから、頭の切り替えが不要。
  15. 15. Scalaで開発するメリットこんな感じでAndroidアプリの工数が下がるだけでなく、作るのも楽しくなりますYO!勿論環境設定+習熟に時間がちょっぴり(?)かかりますので、最初は締切の緩いプロジェクトでの使用を推奨します。
  16. 16. 参考文献:Scala my Androidhttp://ktoso.github.com/scala-android-presentation/#/現状 #Scala で #Android をやるのは思っている以上に罠が多いという話 -Togetter http://togetter.com/li/367665

×