SlideShare ist ein Scribd-Unternehmen logo
1 von 16
おいしいFragment
           31.3.2012
Takahiro Yoshimura (@alterakey)
自己紹介

こんな人

 埼玉で活動しているアーキテクトです。

 FlashゲームからWebアプリまで。

 Twitterやってます→@alterakey
さて


Fragmentと聞いて

 何を思い浮べますか?

 何に使えるものなのでしょう?
Fragment?

Fragmentとは断片と見つけたり

Activityを機能的に分解する方法

大画面対応だけじゃない!

Android 1.6∼で使えます
大事なことなので


Android 1.6∼で使えます。

Support Package
簡単な例


Activityから他のアプリを呼び出しましょう。

Activity.startActivityForResult()

Activity.onActivityResult()
指針

MainActivity.java(抜粋)

public void onCreate(...) {
    ...
    this.startActivityForResult(intent, REQ_1);
    ...
}
...
public void onActivityResult(int requestCode, ...) {
    if (requestCode == REQ_1) {
        ...
    }
    ...
}
もしもこれが

Activity.startActivityForResult()を複数箇所で
呼び出していたら…?

Activityがもっと複雑だったら…?

カオス!!
指針


見通しを確保するために…

Activityから機能を分離します。

 REQ_1にまつわる部分
指針

MainActivity.java(抜粋)

public class MainActivity extends FragmentActivity {
...
    public void onCreate(...) {
      ...
      getSupportFragmentManager()
          .beginTransaction()
          .add(new RequestOneFragment(), null)
          .commit();
      ...
    }
...
指針

MainActivity.java(抜粋)

...
private class RequestOneFragment extends Fragment {
    private static final int REQ = 1;
    @Override
    public void onCreate(...) {
      super.onCreate(...);
      this.startActivityForResult(intent, REQ);
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, ...) {
      ...
    }
}
こうすると

「機能」ごとにまとまってすっきりする

同じようなことをしたい時に使い回しが効く
→機能を抽出しているので当然といえば当然…

状態を保存するのにも使える

しかし自動テストの役には立ちにくい…
大画面対応と聞くけど


ActivityからFragmentとしてUIを分離

条件に合わせてレイアウトを読んで、
Fragmentをはめこんで行けば…
(e.g. 狭ければ別Activity、広ければペイン)
まとめ

FragmentはActivityの持つ「機能」のこと

ペイン型UIやタブレットは関係ない

今からでも使える

しかし自動テストの役にはあまり立たない
まとめ

gdgdになりがちだったActivity周辺の見通し確
保にも有効

再利用もできる

ガンガン使おう!
ご静聴ありがとうございました。

Weitere ähnliche Inhalte

Andere mochten auch

アプリを弄ってみる #3 #antama_ws
アプリを弄ってみる #3 #antama_wsアプリを弄ってみる #3 #antama_ws
アプリを弄ってみる #3 #antama_ws
Takahiro Yoshimura
 
アプリを弄ってみる #2 #antama_ws
アプリを弄ってみる #2 #antama_wsアプリを弄ってみる #2 #antama_ws
アプリを弄ってみる #2 #antama_ws
Takahiro Yoshimura
 

Andere mochten auch (14)

Viagra-ranking-report
Viagra-ranking-reportViagra-ranking-report
Viagra-ranking-report
 
伝授の巻について #スクエアフリーセミナー #yochiand
伝授の巻について #スクエアフリーセミナー #yochiand伝授の巻について #スクエアフリーセミナー #yochiand
伝授の巻について #スクエアフリーセミナー #yochiand
 
アプリを弄ってみる #3 #antama_ws
アプリを弄ってみる #3 #antama_wsアプリを弄ってみる #3 #antama_ws
アプリを弄ってみる #3 #antama_ws
 
Strategies for class
Strategies for classStrategies for class
Strategies for class
 
serp-iq-buy-viagra-ranking-report
serp-iq-buy-viagra-ranking-reportserp-iq-buy-viagra-ranking-report
serp-iq-buy-viagra-ranking-report
 
アプリを弄ってみる #1 #antama_ws
アプリを弄ってみる #1 #antama_wsアプリを弄ってみる #1 #antama_ws
アプリを弄ってみる #1 #antama_ws
 
参考書選びと迷った時の勉強法。 #antama_ws
参考書選びと迷った時の勉強法。 #antama_ws参考書選びと迷った時の勉強法。 #antama_ws
参考書選びと迷った時の勉強法。 #antama_ws
 
Eco Shift Power Corp. Overview
Eco Shift Power Corp. OverviewEco Shift Power Corp. Overview
Eco Shift Power Corp. Overview
 
アプリを弄ってみる #2 #antama_ws
アプリを弄ってみる #2 #antama_wsアプリを弄ってみる #2 #antama_ws
アプリを弄ってみる #2 #antama_ws
 
serp-iq-life-insurance-ranking-report
serp-iq-life-insurance-ranking-reportserp-iq-life-insurance-ranking-report
serp-iq-life-insurance-ranking-report
 
CLAS PLUACLD071 Evaluation
CLAS PLUACLD071 EvaluationCLAS PLUACLD071 Evaluation
CLAS PLUACLD071 Evaluation
 
LESION LIGAMENTO CRUZADO ANTERIOR
LESION LIGAMENTO CRUZADO ANTERIORLESION LIGAMENTO CRUZADO ANTERIOR
LESION LIGAMENTO CRUZADO ANTERIOR
 
Fracturas e inmovilizaciones
Fracturas e inmovilizacionesFracturas e inmovilizaciones
Fracturas e inmovilizaciones
 
Enfermedad de charcot marie tooth
Enfermedad de charcot marie toothEnfermedad de charcot marie tooth
Enfermedad de charcot marie tooth
 

Ähnlich wie おいしいFragment #antama_ws

ちょっと詳しくJavaScript 特別編【悪霊の神々】
ちょっと詳しくJavaScript 特別編【悪霊の神々】ちょっと詳しくJavaScript 特別編【悪霊の神々】
ちょっと詳しくJavaScript 特別編【悪霊の神々】
株式会社ランチェスター
 
goog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたgoog.ui.Component のはぐれかた
goog.ui.Component のはぐれかた
Soichi Takamura
 
Node.js - JavaScript Thread Programming
Node.js - JavaScript Thread ProgrammingNode.js - JavaScript Thread Programming
Node.js - JavaScript Thread Programming
takesako
 
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
yoshiaki iwanaga
 
Androidの通信周りのコーディングについて
Androidの通信周りのコーディングについてAndroidの通信周りのコーディングについて
Androidの通信周りのコーディングについて
Shoichi Takagi
 

Ähnlich wie おいしいFragment #antama_ws (20)

Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
 
GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackGroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hack
 
GDG DevFest 2020 Android data linkage info
GDG DevFest 2020 Android data linkage infoGDG DevFest 2020 Android data linkage info
GDG DevFest 2020 Android data linkage info
 
ちょっと詳しくJavaScript 特別編【悪霊の神々】
ちょっと詳しくJavaScript 特別編【悪霊の神々】ちょっと詳しくJavaScript 特別編【悪霊の神々】
ちょっと詳しくJavaScript 特別編【悪霊の神々】
 
AsyncTask アンチパターン
AsyncTask アンチパターンAsyncTask アンチパターン
AsyncTask アンチパターン
 
goog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたgoog.ui.Component のはぐれかた
goog.ui.Component のはぐれかた
 
Using the Fragments(Android)
Using the Fragments(Android)Using the Fragments(Android)
Using the Fragments(Android)
 
About Jobs
About JobsAbout Jobs
About Jobs
 
Build your AR app by using AR Foundation samples
Build your AR app by using AR Foundation samplesBuild your AR app by using AR Foundation samples
Build your AR app by using AR Foundation samples
 
Node.js - JavaScript Thread Programming
Node.js - JavaScript Thread ProgrammingNode.js - JavaScript Thread Programming
Node.js - JavaScript Thread Programming
 
Android4.2徹底解剖!
Android4.2徹底解剖!Android4.2徹底解剖!
Android4.2徹底解剖!
 
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
 
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackTwitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
 
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
 
Androidの通信周りのコーディングについて
Androidの通信周りのコーディングについてAndroidの通信周りのコーディングについて
Androidの通信周りのコーディングについて
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
 
Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.
 
Rx java x retrofit
Rx java x retrofitRx java x retrofit
Rx java x retrofit
 
JavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, PerformanceJavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, Performance
 

Mehr von Takahiro Yoshimura

Mehr von Takahiro Yoshimura (20)

Looking Back 2023
Looking Back 2023Looking Back 2023
Looking Back 2023
 
Fill In The Blank
Fill In The BlankFill In The Blank
Fill In The Blank
 
Ticket To The Dark World
Ticket To The Dark WorldTicket To The Dark World
Ticket To The Dark World
 
Looking back 2022
Looking back 2022Looking back 2022
Looking back 2022
 
Hazy Datagrams
Hazy DatagramsHazy Datagrams
Hazy Datagrams
 
Wartime Pigeons
Wartime PigeonsWartime Pigeons
Wartime Pigeons
 
Securing Supply Chains
Securing Supply ChainsSecuring Supply Chains
Securing Supply Chains
 
Looking Back: CIS on Managed K8S
Looking Back: CIS on Managed K8SLooking Back: CIS on Managed K8S
Looking Back: CIS on Managed K8S
 
Beijing Report 2022
Beijing Report 2022Beijing Report 2022
Beijing Report 2022
 
Asynchronicity
AsynchronicityAsynchronicity
Asynchronicity
 
Outsmarting Smartphone Apps 2
Outsmarting Smartphone Apps 2Outsmarting Smartphone Apps 2
Outsmarting Smartphone Apps 2
 
Outsmarting Smartphone Apps 2
Outsmarting Smartphone Apps 2Outsmarting Smartphone Apps 2
Outsmarting Smartphone Apps 2
 
Outsmarting Smartphone Apps
Outsmarting Smartphone AppsOutsmarting Smartphone Apps
Outsmarting Smartphone Apps
 
Drawing Dataflow On Dalvik Bytecodes
Drawing Dataflow On Dalvik Bytecodes Drawing Dataflow On Dalvik Bytecodes
Drawing Dataflow On Dalvik Bytecodes
 
Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
Trueseeing: Effective Dataflow Analysis over Dalvik OpcodesTrueseeing: Effective Dataflow Analysis over Dalvik Opcodes
Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
 
10 (about make 10 with 4 numbers challenge)
10 (about make 10 with 4 numbers challenge)10 (about make 10 with 4 numbers challenge)
10 (about make 10 with 4 numbers challenge)
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
 
Android Wear: Good Parts
Android Wear: Good PartsAndroid Wear: Good Parts
Android Wear: Good Parts
 
DEFCON21×S2 REPORT
DEFCON21×S2 REPORTDEFCON21×S2 REPORT
DEFCON21×S2 REPORT
 
あげフォト開発ノート #antama_ws
あげフォト開発ノート #antama_wsあげフォト開発ノート #antama_ws
あげフォト開発ノート #antama_ws
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

おいしいFragment #antama_ws

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n