Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

さくさくAndroid開発

2,413 views

Published on

Android Night No.25 LT Document

Published in: Technology
  • Be the first to comment

さくさくAndroid開発

  1. 1. さくさくAndroid開発
  2. 2. さくさくAndroid開発に⾜足りないもの
  3. 3. ⼈人と時間
  4. 4. ⼈人と時間
  5. 5. その1.⼈人が、⾜足りないんだ
  6. 6. とある会社の開発者分布
  7. 7. Java Android Objective-‐‑‒CVBとか
  8. 8. Java Android Objective-‐‑‒CVBとか
  9. 9. Java Androidここを取り込み Objective-‐‑‒Cたい VBとか
  10. 10. 現実
  11. 11. Servletじゃないと ちょっと…リスナーって何?
  12. 12. Servletじゃないと ちょっと…リスナーって何?
  13. 13. その2.時間も、⾜足りないんだ
  14. 14. Android開発あるある
  15. 15. とにかく待ちが⻑⾧長いそして、動作確認にも時間がかかる
  16. 16. Jenki○sさんに任せてみた
  17. 17. 結果
  18. 18. 結果
  19. 19. やっぱり遅いJe○kinsさんも内部でエミュレータを起動しています。
  20. 20. さくさくAndroid開発
  21. 21. さくさくAndroid開発
  22. 22. もう少し考えよう
  23. 23. もう少し考えよう
  24. 24. ⼈人が⾜足りない→Java開発者のAndroid習得に課題
  25. 25. 時間が⾜足りない→Android端末へのデプロイと動作確認に課題
  26. 26. それならさ、
  27. 27. Android依存をなくせばいいんじゃね?
  28. 28. というわけでさくさくAndroid開発ライブラリをつくってみた
  29. 29. さくさくAndroid開発ライブラリ“Watson”
  30. 30. “Watson”基本仕様Android開発におけるMVCモデルをサポートするライブラリ/フレームワーク・View層とModel層の連携・Model層のPOJO化・Control層の簡略略化  (バリデーション、画⾯面遷移)
  31. 31. 画⾯面の⼊入⼒力力値を モデルにマッピング。 Contro-­‐ バリデーションを⾏行行い ller モデルに紐紐づく処理理を起動必要に応じ、画⾯面遷移や処理理結果の表⽰示する。 Model View モデルの処理理実⾏行行に伴う 値の変更更をViewに通知。
  32. 32. Model層はPOJO形式で実装。 Contro-­‐Androidを知ら ller ないJava開発者も担当可能。 Model また、POJO形式のため、単体テストが容易易にな View ります。
  33. 33. Controller層はContro-­‐ Modelの結果を ller 受けての画⾯面遷 移を担当。 Model View層は通常ど おり開発を⾏行行い ます。 View
  34. 34. 使い⽅方
  35. 35. R.layout.*.xml  <TextView                  android:tag="textView0”                  w:bind_field="textView0"  />        <EditText                  android:tag="editText1”                  w:bind_field="editText1”  />      <Button                  android:tag="button1  »                  w:bind_method="bindMethod1"  />   ※抜粋
  36. 36. Modelpublic  class  SampleModel  {      public  BindString  textView0  =  new  BindString();        @Required    @IntegerType    public  BindInteger  editText1  =  new  BindInteger();      public  void  bindMethod1(){      textView2.set(String.valueOf(editText1.get()));    }  }    
  37. 37. ActivitySampleModel  model  =  new  SampleModel();  setModelAndLayout(model,  R.layout.main);  
  38. 38. これだけ
  39. 39. 動かします 時間があれば
  40. 40. “Watson”の今後・画⾯面遷移系の充実・対応Activityの種類充実・競合(Android-‐‑‒binding)と  の差別化  ※重要
  41. 41. 2012.05.14@monochromeganeさくさくAndroid開発
  42. 42. 2012.05.14@monochromeganeさくさくAndroid開発

×