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
AngularDart
Search
yujikawa
January 23, 2019
Programming
320
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AngularDart
yujikawa
January 23, 2019
More Decks by yujikawa
See All by yujikawa
Tauriでデスクトップアプリを作る with ChatGPT
yujikawa
0
150
データ品質について考えてみた
yujikawa
0
290
大問題を解決する
yujikawa
1
190
Airflowの話/about airflow
yujikawa
0
260
FastAPIに入門してみた/fastAPI
yujikawa
0
610
Jupyterでダッシュボードを簡単に作る!
yujikawa
2
980
私がUXの大切さを知った瞬間/uxjam_kitaq_1
yujikawa
0
100
Introduce Flutter
yujikawa
0
410
グロースハック完全読本を読んでみた
yujikawa
0
630
Other Decks in Programming
See All in Programming
ソフトウェアラスタライザ
fadis
1
720
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
250
Hono + Inertia + React で LP を構築した話
oukayuka
2
180
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
190
Flow は今どうなっているか
mizdra
PRO
0
760
My Marp Sample
sinoue0108
0
130
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
200
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
500
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
7.9k
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
1
370
AIの中の人になってみる
htkym
0
140
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.7k
The Curse of the Amulet
leimatthew05
2
14k
Typedesign – Prime Four
hannesfritz
42
3.1k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
220
Six Lessons from altMBA
skipperchong
29
4.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
710
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
480
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
630
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Transcript
"OHVMBS%BSUʹೖͯ͠Έͨ GVLVPLBEBSU Ώ͔͡Θ!ZVKJLBXB@MFF
*O<>໊લ c্༞࢘ Ώ͔͡Θ *O<>ॴଐ cΧϥϏφςΫϊϩδʔ *O<>৬छʢࣗশʣ cݟश͍άϩʔεϋοΧʔ *O<>ීஈͷ͓ࣄ c8FCΞϓϦ։ൃ
*O<>ඪ cάϩʔεϋοΧʔʹͳΓ͍ͨ ࣗݾհ ZVKJLBXBMFF ZVKJLBXB@MFF
"OHVMBS%BSU IUUQTXFCEFWEBSUMBOHPSHBOHVMBS "OHVMBSͷ%BSUόʔδϣϯɺຊՈ"OHVMBSͱϓϩδΣΫτ͕ผΒ͍͠ ݱࡏͷW̑ʢʣ
Πϯετʔϧ dCSFXUBQEBSUMBOHEBSU dCSFXJOTUBMMEBSU dQVCHMPCBMBDUJWBUFBOHVMBS@DMJ dQVCHMPCBMBDUJWBUFXFCEFW ˞.BDͰͷ։ൃखॱΛॻ͍ͯ·͢
ϓϩδΣΫτ࡞ OHEBSUOFXRVJDLTUBSU ʲ࣮ߦ݁Ռʳ dOHEBSUOFXRVJDLTUBSU */'04BWJOHRVJDLTUBSUXFCJOEFYIUNM */'04BWJOHRVJDLTUBSUXFCNBJOEBSU */'04BWJOHRVJDLTUBSUXFCTUZMFTDTT */'04BWJOHRVJDLTUBSUBOBMZTJT@PQUJPOTZBNM */'04BWJOHRVJDLTUBSUHJUJHOPSF */'04BWJOHRVJDLTUBSUQVCTQFDZBNM
*/'04BWJOHRVJDLTUBSUMJCBQQ@DPNQPOFOUEBSU */'04BWJOHRVJDLTUBSUMJCBQQ@DPNQPOFOUIUNM ࢥͬͨҎ্ʹग़ྗ͞ΕΔͷ͕গͳ͍
ϑΥϧμߏ RVJDLTUBSU ᵓᴷᴷBOBMZTJT@PQUJPOTZBNM ᵓᴷᴷMJC ᴹᵓᴷᴷBQQ@DPNQPOFOUEBSU ᴹᵋᴷᴷBQQ@DPNQPOFOUIUNM ᵓᴷᴷQVCTQFDMPDL ᵓᴷᴷQVCTQFDZBNM ᵋᴷᴷXFC ᵓᴷᴷJOEFYIUNM
ᵓᴷᴷNBJOEBSU ᵋᴷᴷTUZMFTDTT
OHEBSUίϚϯυΛݟͯΈΔ dOHEBSUI /HEBSUJTBDPNNBOEMJOFJOUFSGBDFGPS"OHVMBS%BSU 6TBHFOHEBSUDPNNBOE<BSHVNFOUT> (MPCBMPQUJPOT I IFMQ1SJOUUIJTVTBHFJOGPSNBUJPO W <OP>WFSCPTF0VUQVUFYUSBMPHHJOHJOGPSNBUJPO "WBJMBCMFDPNNBOET
HFOFSBUF(FOFSBUFDPNQPOFOUPSUFTU IFMQ%JTQMBZIFMQJOGPSNBUJPOGPSOHEBSU OFX$SFBUFBO"OHVMBS%BSUQSPKFDU 3VOOHEBSUIFMQDPNNBOEGPSNPSFJOGPSNBUJPOBCPVUBDPNNBOE
OHEBSUίϚϯυΛݟͯΈΔ dOHEBSUHFOFSBUFI (FOFSBUFDPNQPOFOUPSUFTU 6TBHFOHEBSUHFOFSBUFTVCDPNNBOE I IFMQ1SJOUUIJTVTBHFJOGPSNBUJPO "WBJMBCMFTVCDPNNBOET DPNQPOFOU(FOFSBUF"OHVMBS%BSUDPNQPOFOU EJSFDUJWF(FOFSBUF"OHVMBS%BSUEJSFDUJWF QJQF(FOFSBUF"OHVMBS%BSUQJQF
UFTU(FOFSBUF"OHVMBS%BSUDPNQPOFOUUFTU UIJTDPNNBOE TIPVMECFSVOVOEFSSPPUEJSFDUPSZPGUIFQSPKFDU 3VOOHEBSUIFMQUPTFFHMPCBMPQUJPOT
࣮ࡍʹ্ཱͪ͛ͯΈΔ ϓϩδΣΫτ࡞ dDERVJDLTUBSU dQVCHFU dXFCEFWTFSWF ฤूͨ͠ΒͪΌΜͱϗοτϦϩʔυͯ͘͠Ε·͢
None
7FSZTJNQMF
OH.PEFMΛ͏ "OHVMBSͷόΠϯσΟϯάʹ͏OH.PEFMΛ͏ͨΊʹ BOHVMBS@GPSNTͱ͍͏ϥΠϒϥϦʔΛՃ͢Δඞཁ͕͋Δ dependencies: angular: ^5.0.0-beta+2 angular_forms: ^2.0.0 QVCTQFDZNM
OH.PEFMΛ͏ EJSFDUJWFTϓϩύςΟʹGPSN%JSFWUJWFTΛՃ͢Δɺ͜ΕͰ ͑ΔΑ͏ʹͳΔɻ import 'package:angular/angular.dart'; import 'package:angular_forms/angular_forms.dart'; import './hero.dart'; @Component(
selector: 'app-component', templateUrl: 'app_component.html', directives: [formDirectives] ) class AppComponent { final String title = 'Tour of Hero'; Hero hero = Hero(1, 'Windstorm'); } BQQ@DPNQPOFOUEBSU IUUQTXFCEFWEBSUMBOHPSHBQJBOHVMBS@GPSNTBOHVMBS@GPSNTGPSN%JSFDUJWFTDPOTUBOU
OH.PEFMΛ͏ IUNMʹόΠϯσΟϯά͍ͨ͠มΛબ͢Δ <h1>{{title}}</h1> <h2>{{hero.name}}</h2> <div><label>id: </label>{{hero.id}}</div> <div><label>name: </label>{{hero.name}}</div> <div> <label>name:
</label> <input [(ngModel)]="hero.name" placeholder="name"> </div> BQQ@DPNQPOFOUIUNM
݁Ռ
OH*GOH'PSΛ͏ EJSFDUJWFTϓϩύςΟʹDPSF%JSFDUJWFTΛՃ͢Δɺ͜ΕͰ ͑ΔΑ͏ʹͳΔɻ import 'package:angular/angular.dart'; import 'package:angular_forms/angular_forms.dart'; import './hero.dart'; @Component(
selector: 'app-component', templateUrl: 'app_component.html', directives: [coreDirectives, formDirectives] ) class AppComponent { final String title = 'Tour of Hero'; Hero hero = Hero(1, 'Windstorm'); } BQQ@DPNQPOFOUEBSU IUUQTXFCEFWEBSUMBOHPSHBQJBOHVMBSBOHVMBSDPSF%JSFDUJWFTDPOTUBOU
OH*GOH'PSΛ͏ OH'PSOH*GΛςϯϓϨʔτʹՃ͠·͢ɻ͜ͷลͷॻ͖ํ ຊՈ"OHVMBSͱಉͩͬͨ͡ <h1>{{title}}</h1> <h2>Heroes</h2> <ul class="heroes"> <li *ngFor="let hero
of heroes" (click)="onSelect(hero)" [class.selected] = "hero === selected"> <span class="badge">{{hero.id}}</span> {{hero.name}} </li> </ul> <div *ngIf="selected != null"> <h2>{{selected.name}}</h2> <div><label>id: </label>{{selected.id}}</div> <div> <label>name: </label> <input [(ngModel)]="selected.name" placeholder="name"> </div> </div> BQQ@DPNQPOFOUIUNM
৽͍͠ίϯϙʔωϯτΛ࡞ OHEBSUHFOFSBUFDPNQPOFOUQ\1BUI^\/BNF^ dOHEBSUHFOFSBUFDPNQPOFOUQMJCTSDIFSP@DPNQPOFOU */'04BWJOHMJCTSDIFSP@DPNQPOFOUEBSU */'04BWJOHMJCTSDIFSP@DPNQPOFOUIUNM
!*OQVUΛ͏ ֎͔ΒΛड͚ΔͨΊʹ!*OQVUΛ͏ɻ͜ΕʹΑΓηϨΫ τ͞ΕͨIFSPΛऔಘ import 'package:angular/angular.dart'; import 'package:angular_forms/angular_forms.dart'; import './hero.dart'; @Component(
selector: 'hero-component', templateUrl: 'hero_component.html', directives: [coreDirectives, formDirectives], ) class HeroComponent { @Input() Hero hero; } MJCTSDIFSP@DPNQPOFOUEBSU
ςϯϓϨʔτͷҰ෦ΛҠಈ IFSPͷৄࡉΛදࣔ͢ΔϩδοΫΛBQQ@DPNQPOFOUIUNM͔ ΒIFSP@DPNQPOFOUIUNMҠಈͤ͞Δ <div *ngIf="hero != null"> <h2>{{hero.name}}</h2> <div><label>id: </label>{{hero.id}}</div>
<div> <label>name: </label> <input [(ngModel)]="hero.name" placeholder="name"> </div> </div> MJCTSDIFSP@DPNQPOFOUIUNM
֎ग़͠ςϯϓϨʔτΛ͏ ઌ΄Ͳ֎ʹग़ͨ͠IFSP@DPNQPOFOUIUNMΛBQQ@DPNQPOFOUIUNMͰ ͏ɻBQQ@DPNQPOFOUEBSUͷEJSFDUJWFTʹՃ͢Δ͜ͱΛΕͣʹ // লུ <hero-component [hero]="selected"></hero- component> BQQ@DPNQPOFOUIUNM import
'./src/hero_component.dart'; @Component( selector: 'app-component', templateUrl: 'app_component.html', directives: [coreDirectives, HeroComponent], styleUrls: ['app_component.css'], ) // লུ BQQ@DPNQPOFOUEBSU
·ͱΊ "OHVMBSΛීஈ͔Βॻ͍͍ͯͨͱͯ͠؆୯ʹೃછΊͨؾ ͕͢Δ͕ɺϧʔςΟϯάΨʔυͱ͍ͬͨ෦ΛͲ͏࣮͢ Δͷ͔ؾʹͳΔͱ͜Ζɻ·ͨຊ൪ϓϩμΫτʹ͚ͭΔ͔Ͳ͏ ͔ͳͲΛݟۃΊΔͨΊʹͬͱॻ͍ͯΈΑ͏ͱࢥ͏ɻ IUUQTXFCEFWEBSUMBOHPSHBOHVMBSUVUPSJBM
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠