Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Dart
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
funnelbit
January 30, 2017
Programming
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dart
funnelbit
January 30, 2017
More Decks by funnelbit
See All by funnelbit
Hatena Engineer Seminar #9
funnelbit
5
7.5k
droidkaigi-2017-renovation
funnelbit
10
11k
BottomBarAndSnackBar
funnelbit
0
540
Dagger2 Optional bindings
funnelbit
0
610
WearableRecyclerView
funnelbit
1
840
QucikSettingsTileAPI
funnelbit
0
380
Mobile Vision
funnelbit
0
490
AwarenessAPI
funnelbit
0
160
Asynchronous Injection
funnelbit
1
290
Other Decks in Programming
See All in Programming
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
350
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
270
CSC307 Lecture 17
javiergs
PRO
0
320
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
180
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
550
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
150
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
140
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
290
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
170
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
290
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
110
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
410
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
107
250k
Test your architecture with Archunit
thirion
1
2.3k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
170
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
200
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
780
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
We Are The Robots
honzajavorek
0
250
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
250
RailsConf 2023
tenderlove
30
1.5k
Transcript
%BSU
ࣗݾհ ଜྋ גࣜձࣾͯͳ )BUFOBGVOOFMCJU 5XJUUFS!FYQFSPQFSP
%SPJE,BJHJͰൃද͠·͢ w IUUQTESPJELBJHJHJUIVCJP w 3PPNd w IUUQTESPJELBJHJHJUIVCJP UJNFUBCMFIUNM
*OUFOU ͷ ѻ͍Λ ؆୯ʹ͢Δ
4USJOH .BJO"DUJWJUZ .BJO"DUJWJUZ
.BJO"DUJWJUZ public class MainActivity extends AppCompatActivity { … Intent intent
= new Intent(MainActivity.this, Main2Activity.class); intent.putExtra(Main2Activity.EXTRA_TEXT, "ok"); startActivity(intent); … }
.BJO"DUJWJUZ public class Main2Activity extends AppCompatActivity { … public static
final String EXTRA_TEXT = “text"; … Bundle extras = getIntent().getExtras(); Log.e("extra_text", extras.getString(EXTRA_TEXT)); … }
4USJOH PS /VMM .BJO"DUJWJUZ .BJO"DUJWJUZ
.BJO"DUJWJUZ public class Main2Activity extends AppCompatActivity { public static final
String EXTRA_TEXT = "text"; … Bundle extras = getIntent().getExtras(); if (extras != null) { Log.e(“extra_text", extras.getString(EXTRA_TEXT, "defaultValue")); } … }
w ૿͑Δఆ w ૿͑ΔJGจ w ૿͢ϨϏϡʔίετ
%BSU %BSUBOE)FOTPO
%BSU %BSUBOE)FOTPO w #VUUFS,OJGFΈͨ͘&YUSBͷΛ*OKFDU͢Δ w ίϯύΠϧ࣌ʹ*OKFDU͢ΔίʔυΛੜ
4USJOH .BJO"DUJWJUZ .BJO"DUJWJUZ
.BJO"DUJWJUZ public class MainActivity extends AppCompatActivity { … Intent intent
= new Intent(MainActivity.this, Main2Activity.class); intent.putExtra(Main2Activity.EXTRA_TEXT, “ok"); … Intent intent = Henson.with(MainActivity.this) .gotoMain2Activity() .text("ok") .build(); startActivity(intent); … }
.BJO"DUJWJUZ public class Main2Activity extends AppCompatActivity { … @InjectExtra String
text; public static final String EXTRA_TEXT = "text"; … Dart.inject(this); Log.e("extra_text", text); … }
0QUJPOBM*OKFDUJPO
4USJOH PS /VMM .BJO"DUJWJUZ .BJO"DUJWJUZ
.BJO"DUJWJUZ public class MainActivity extends AppCompatActivity { … Intent intent
= new Intent(MainActivity.this, Main2Activity.class); intent.putExtra(Main2Activity.EXTRA_TEXT, “ok"); … Intent intent = Henson.with(MainActivity.this) .gotoMain2Activity() .text("ok") .build(); startActivity(intent); … }
.BJO"DUJWJUZ public class Main2Activity extends AppCompatActivity { … @Nullable @InjectExtra
String text; public static final String EXTRA_TEXT = "text"; … Dart.inject(this); if (!TextUtils.isEmpty(text)) { Log.e("extra_text", text); … Bundle extras = getIntent().getExtras(); if (extras != null) { Log.e(“extra_text", extras.getString(EXTRA_TEXT, "defaultValue")); } }
%FGBVMU7BMVFT
.BJO"DUJWJUZ public class Main2Activity extends AppCompatActivity { … @Nullable @InjectExtra
String text = "default"; … }
'SBHNFOU
%BSUJOKFDU 'SBHNFOU public class BlankFragment extends Fragment { @InjectExtra String
param1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Dart.inject(this);
%BSUJOKFDU BOESPJEBQQ'SBHNFOU
%BSUJOKFDU 0CKFDU #VOEMF
.BJO"DUJWJUZ public class Main2Activity extends AppCompatActivity { … Bundle extras
= Henson.with(this) .gotoBlankFragment() .param1(“??????”) .build() .getExtras(); blankFragment = new BlankFragment(); blankFragment.setArguments(extras); getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, blankFragment, TAG_FRAGMENT) .commit(); … }
#MBOL'SBHNFOU public class BlankFragment extends Fragment { @InjectExtra String param1;
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Dart.inject(this, getArguments()); Log.e("param1", param1); } } w ͪΐͬͱେม
.BJO"DUJWJUZ public class MainActivity extends AppCompatActivity { … Bundle
fragmentExtras = Henson.with(MainActivity.this) .gotoBlankFragment() .param1("!!!!!!!!!") .build() .getExtras(); Intent intent = Henson.with(MainActivity.this) .gotoMain2Activity() .text("a") .build(); intent.putExtras(fragmentExtras); startActivity(intent); … }
.BJO"DUJWJUZ public class Main2Activity extends AppCompatActivity { … Fragment blankFragment
= getSupportFragmentManager().findFragmentByTag(TAG_FRAGMENT); if (blankFragment == null) { getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, new BlankFragment(), TAG_FRAGMENT) .commit(); } … }
#MBOL'SBHNFOU public class BlankFragment extends Fragment { @InjectExtra String param1;
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e("param1", param1); } @Override public void onAttach(Context context) { super.onAttach(context); Dart.inject(this, getActivity()); } } w ͍ͩͿେม
·ͱΊ w ίʔυྔͷ૿ՃΛ͑Δ͜ͱ͕ग़དྷΔ w Մಡੑ্ w ϨϏϡʔ͍͢͠ w 'SBHNFOUͰ͏ʹͪΐͬͱบ͕͋Δ
ࢀߟ w IUUQTHJUIVCDPNGQSBUFFLEBSU
͋Γ͕ͱ͏͍͟͝·ͨ͠