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
Xamarin.Forms 使いこなし術
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
yo ohtagawa
October 28, 2016
Programming
910
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Xamarin.Forms 使いこなし術
JXUG#18で発表した内容
yo ohtagawa
October 28, 2016
More Decks by yo ohtagawa
See All by yo ohtagawa
Xamarinは流行る?
ayasesh
1
340
じゃじゃ馬UIフレームワークXamarin.Formsを活用した アプリ開発のノウハウ
ayasesh
0
730
Formsで使えるライブラリやテクニックをご紹介 〜日本酒アプリSakenomyは、Forms製です〜
ayasesh
0
3.9k
Other Decks in Programming
See All in Programming
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
1.9k
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
110
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
530
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
320
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.9k
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
280
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
380
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
330
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
740
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
120
Featured
See All Featured
The Limits of Empathy - UXLibs8
cassininazir
1
350
Designing for humans not robots
tammielis
254
26k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
A better future with KSS
kneath
240
18k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Code Reviewing Like a Champion
maltzj
528
40k
How to build a perfect <img>
jonoalderson
1
5.6k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
580
Un-Boring Meetings
codingconduct
0
310
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
WENDY [Excerpt]
tessaabrams
11
38k
Transcript
Xamarin.Forms ͍͜ͳ͠ज़ 2016/10/28 JXUG #18 @AyaseSHʢଠా ༸ʣ
͜ͷൃݴݸਓͷݟղ͕ ଟʹؚ·Ε͓ͯΓɺ ॴଐ͢Δ৫ͷެࣜݟղͰ͋Γ·ͤΜ
ࣄͰ ʮ܅ɺ͜Ε͔ΒXamarinͶʯ ͱݴΘΕͨਓ
ʮ͡Ό͋͜Μͳײ͡ͷ ɹΞϓϦΛ࡞ͬͯΑʯ ͱݴΘΕͨਓ
ࣗݾհ • ΞΧϯτID:ɹAyaseSH • ΞΧϯτ໊:ɹΦʔλΨʔʢଠా༸ʣ • ͬͨ͜ͱ:ɹຊञΞϓϦ”Sakenomy”Λ୲ • Sakenomyͱ:ɹ Wܥྻ
J04 NPOPUPVDI9BNBSJOJ04 WҎ߱ J04 "OESPJE 9BNBSJO'PSNTJ04"OESPJE
͔͍͘͏ࢲ ʮ܅ɺXamarin.FormsͶʯ ͱݴΘΕͨਓͰ͢ɻ^^;
ը૾จࣈϦιʔεͷཧ FormsͷػೳΛ͍͚ Embedded Native Controls
ը૾จࣈϦιʔεͷཧ
ը૾จࣈϦιʔεͷཧ • XamarinͰϦιʔεΛPCLཧ͢ΔͨΊʹ RESX(Resource File)͕༻Մೳ • VSͰςΩετͷϦιʔεཧͱͯ͠͏ͷͱಉ͡ • આ໌ͱͯ͠XamarinͷެࣜυΩϡϝϯτಡΊे •
ը૾αϙʔτ͞Εͯ·ͤΜ͕ɺؤுΕग़དྷ·͢ɻ ৄ͘͠ moonmile͞ΜͷϒϩάهࣄΛʂ
ϩʔΧϥΠζΔͱ͖ͷҙ • PCLiOSͰ ‘zh-Hans’, ’zh-Hant’͕͑·͕͢ɺ Xamarin.AndroidͰ ‘zh-CN’, ‘zh-TW’͔͑͠ͳ͍ • iOSͰResxΛ༻͢Δ߹ඞཁͳ͍Ͱ͕͢ɺ
info.plistͰCFBundleLocalizationsʹݴޠίʔυΛઃఆ ͠ͳ͍ͱίϯτϩʔϧͷσϑΥϧτςΩετ͕มΘΒͳ ͍ ex: PickerKeyboardͷDone NavigationͷBack
Xamarin Studio͋Δ͋Δ • XSͰσϑΥϧτ໊ͷ ”Resources” มߋਪ Xamarin.Forms.Resources Ϋϥε͕ଘࡏ͢ΔͷͰඃΓ ·͢ •
VSσβΠφʔͰՃͰ͖Δ͕ XSXmlͰΔ͔͠ͳ͍…ͭΒ͍… <data name=“Hoge_Text" xml:space="preserve"> <value>Hoge</value> <comment>͜Ε΄͛Λදࣔ͢ΔςΩετͰ͢</comment> </data>
ࢲతݟղ ͦͷ̍ • Ͳ͜·Ͱڞ༗͢Δʁ • Xamarin.FormsʢPCLʣͰݺͼग़͢ςΩετϚετ • ઃఆͰݺͼग़͢ςΩετωΠςΟϒ • ios:
ΞϓϦ໊ ϓϥΠόγʔΞΫηεͷUsageDescription ← new! • android: ΞϓϦ໊ • ը૾ωΠςΟϒͷํ๏ • ݴޠͱαΠζͷ͕ؔີ • ͍͜͠ͱߟ͑ΔΑΓී௨ͷํ๏Ͱ σόΠεʹ༏͍͠ΞϓϦ͕͓͢͢Ί
ࢲతݟղ ͦͷ2 • ϩʔΧϥΠζͱ͍͏ࢹͰߟ͑Δ • ݴޠը૾Λม͑Δͷαϙʔ τ͞Ε͍ͯΔ • ͕ʂਂ͘ϩʔΧϥΠζͱߟ͑Δͱ ͦͦFormsΛ͏͜ͱΛߟ͑
͠·͠ΐ͏ • ΞϥϏΞޠͳͲͷςΩετ͕ӈ͔Βࠨ ͷݴޠͷ߹Layout Λࠨӈٯʹ ͢Δඞཁ͕͋Γ·͢ • αϙʔτΛߟ͑ΔͳΒΦϨΦϨ࣮ ͢ΔΑΓωΠςΟϒ͔Βαϙʔτ͞ Ε͍ͯΔػೳΛ͍·͠ΐ͏(^^)
FormsͷػೳΛ͍͚
FormsͷػೳΛ͍͚ • Triggers • Behaviors • Effects • Custom Renderers
• Dependency Service • Messaging Center • Properties Dictionary
FormsͷػೳΛ͍͚ • Triggers PCLͷΈͰগ͠Πϕϯτ͔ΒViewΛม͍͑ͨɻ͔ͯ͠͠ ValueConverter? • Behaviors PCLͷΈͰ৽͍݅͠Λ૿͢ɻ˓˓ͯ͠Έͨɻ • Effects
Platformຖ࣮Ͱ͖Δɻ࠶ར༻ੑ͕ߴ͍ ← ͕͜͜ॏཁ • Custom Renderers ͳΜͰग़དྷΔ༏ੜɻListViewͰ Custom RendererҎ֎͋Γ͑ͳ͍www • Dependency Service FormsͷఱఢɻϋʔυͷAPIΛݺΜͩΓɺPlatformͷҧ͍ΛΫογϣϯͯ͘͠ΕΔ • Messaging Center ϫʔΫΞϥϯυɻͲ͔͜ΒͰϝοηʔδΛૹΓɺड৴ଆʹॲཧͤ͞Δ͜ͱ͕ग़དྷΔ • Properties Dictionary ϫʔΫΞϥϯυɻͲ͔͜ΒͰForms͕ఏڙͯ͘͠ΕΔσΟΫγϣφϦʔʹอଘग़དྷΔ
ࢲతݟղ νʔτ ਖ਼͍͠ ָ 5SJHHFST #FIBWJPST ۤ 1SPQFSUJFT %JDUJPOBSZ .FTTBHJOH
$FOUFS &⒎FDUT $VTUPN 3FOEFSFST
ࢲతݟղ νʔτ ਖ਼͍͠ ָ 5SJHHFST #FIBWJPST ۤ 1SPQFSUJFT %JDUJPOBSZ .FTTBHJOH
$FOUFS &⒎FDUT $VTUPN 3FOEFSFST %FQFOEFODZ4FSWJDF
Native Embedding
Embedded Native Controls • PlatformಠࣗͷίϯτϩʔϧΛFormsͰݺͼग़ͤΔ • v2.3.0 ʹshared projectͷΈՄೳ •
v2.3.3 ͔ΒɺxamlͷΈPCLͰՄೳ • ͨΓલͰ͕͢… ݱࡏɺ x:Name ༻ෆՄ ίʔυϏϋΠϯυ͕ग़དྷͳ͍ͷͰBindingʹͯߦ͍· ͠ΐ͏ɻ
• ωΠςΟϒΒͳ͍ͱίʔσΟϯά͕େม… • ࢥͬͨ͜ͱ • ίʔυϏϋΠϯυ͍ͨ͠ • Ͱ͖ͳͯ͘ωΠςΟϒͰRendererͰ͖Ε… • ͏ͪΐͬͱௐ·͢ʂ
͍ൃදͰ͕ͨ͠ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ͦͯ͜͠Ε͔Β͕ ຊ൪Ͱ͢ʂʂ(๑•̀ŷ•́)و✧