Slide 1

Slide 1 text

9BNBSJOਵ۽䱋 ݽ߄ੌজѐߊࡅܰѱद੘ೞӝ 9BNBSJO'PSNTܳ੉ਊೞৈJ04৬"OESPJEܳ૑ਗೞח䱋 ௼۽झ೒ۖಬݽ߄ੌজѐߊਸрױೠपणਵ۽ࣗѐ೤פ׮ !ೠন؀೟Ү೟ো࢑௿۞झఠ

Slide 2

Slide 2 text

1.9BNBSJO੉ۆ 䱋 ೠ݅ઙ ъթ؀೟Ү].JDSPTPGU4UVEFOU1BSUOFST,PSFB䱋 2.9BNBSJO'PSNTܳ੉ਊೠݽ߄ੌজѐߊपण*䱋 ߅ࢶ৔ Ҋ۰؀೟Ү].JDSPTPGU4UVEFOU1BSUOFST,PSFB䱋 3.9BNBSJO'PSNTܳ੉ਊೠݽ߄ੌজѐߊपण**䱋 ੉ೞ৔ ೠন؀೟Ү].JDSPTPGU4UVEFOU1BSUOFST,PSFB

Slide 3

Slide 3 text

9BNBSJO੉ۆ ೠ݅ઙ ъթ؀೟Ү].JDSPTPGU4UVEFOU1BSUOFST

Slide 4

Slide 4 text

)JTUPSZPG9BNBSJO ↟֙ਘ .JHVFMEF*DB[Bܳ࠺܃ೠ.POP೐ۨ੐ਕ௼ѐ ߊ૓ী੄೧ࢸ݀ػӝস䱋 ↟.POP೐ۨ੐ਕ௼ _ 䱋 .JHVFMEF*DB[Bо֙ਘী୊਺ҕѐػ.JDSPTPGU੄/&5೐ۨ੐ ਕ௼ܳ-JOVYীࢲҳزೞӝਤ೧द੘ೠয়೑ࣗझ೐۽ં౟䱋 /&5&$."಴ળ੄ҳഅ୓੉ӝٸޙী/&5೐ۨ੐ਕ௼੄য়೑ࣗझߡ੹ ੉঻ਵݴ -JOVYܳ࠺܃ೠ׮নೠജ҃ীࢲҳزоמ䱋 ↟֙ਘ .JDSPTPGUী੄೧ੋࣻ

Slide 5

Slide 5 text

.JDSPTPGU/&5

Slide 6

Slide 6 text

.JDSPTPGU/&5

Slide 7

Slide 7 text

.JDSPTPGU/&5

Slide 8

Slide 8 text

8IZ9BNBSJO ↟֎੉౭࠳۽ஹ౵ੌغয۠ఋ੐ࢿמ੷ೞ୭ࣗച䱋 9BNBSJO"OESPJE+*5 +VTU*O5JNF ֎੉౭࠳ஹ౵ੌ䱋 9BNBSJOJ04"05 "IFBE0G5JNF ஹ౵ੌਸాೠ֎੉౭࠳"3. ߄੉ցܻࢤࢿ䱋 ↟$җ9".-঱যܳࢎਊೞח௼۽झ೒ۖಬѐߊبҳ䱋 ↟.JDSPTPGU/&5'SBNFXPSL .POP ӝ߈੄ѐߊജ҃

Slide 9

Slide 9 text

9BNBSJO0WFSWJFX iOS Native API Android Native API Shared App Logic iOS UI Logic Android UI Logic

Slide 10

Slide 10 text

9BNBSJO0WFSWJFX iOS Native API Android Native API Shared App Logic iOS UI Logic Android UI Logic Xamarin.iOS Xamarin.Android

Slide 11

Slide 11 text

9BNBSJO0WFSWJFX iOS Native API Android Native API Shared App Logic Shared UI Logic

Slide 12

Slide 12 text

9BNBSJO0WFSWJFX iOS Native API Android Native API Shared App Logic Shared UI Logic Xamarin.Forms

Slide 13

Slide 13 text

#BTJDPG9BNBSJO'PSNT ↟"QQ ↟1BHF ↟-BZPVU ↟7JFX

Slide 14

Slide 14 text

"QQ ↟੘ࢿೞחয೒ܻா੉࣌੄ӝ߈੉غח௿ېझ䱋 ↟য೒ܻா੉࣌୊਺प೯दप೯غח1BHFࢸ੿䱋 ↟য೒ܻா੉࣌੉प೯غחزউࢎਊೡࣻ੓ח੿੸ؘ੉ఠ੷੢ ࣗ1SPQFSUJFT٤࣊ցܻਤ஖䱋 ↟അ੤য೒ܻா੉࣌ੋझఢझ ೐۽ࣁझ ܳଵઑೞח$VSSFOU੿ ੸ࣘࢿਤ஖

Slide 15

Slide 15 text

1BHF ↟ചݶীࢲо੢௾ױਤ੄6*ҳࢿਃࣗ۽ࢲ੗धਃࣗࣗਬ䱋 ↟J04ীࢲח7JFX$POUSPMMFSܳ੄޷ "OESPJEীࢲח"DUJWJUZ৬ਬࢎ

Slide 16

Slide 16 text

-BZPVU ↟7JFXژחژ׮ܲ-BZPVUਸߓ஖ೞח7JFX

Slide 17

Slide 17 text

7JFX ↟о੢੘਷ױਤ੄6*ҳࢿਃࣗ۽ࢲ6*ஶ౟܀ਤઇ Entry EntryRenderer EntryRenderer UITextField EditText

Slide 18

Slide 18 text

/V(FU1BDLBHF.BOBHFS ↟.JDSPTPGUѐߊജ҃ਸਤೠয়೑ࣗझ ಁః૑ݒפ੷䱋 ↟7JTVBM4UVEJP੄ഛ੢೐۽Ӓ۔䱋 ↟/&5೐ۨ੐ਕ௼ਊ ֎੉౭࠳$ਊ ۄ੉࠳۞ܻ١ࢸ஖оמ

Slide 19

Slide 19 text

HBH޽ࢤࢿজѐߊपण https://github.com/iBluemind/meme9gag

Slide 20

Slide 20 text

9BNBSJO'PSNTܳ੉ਊೠѐߊपण ߅ࢶ৔ Ҋ۰؀೟Ү].JDSPTPGU4UVEFOU1BSUOFST

Slide 21

Slide 21 text

9".-۽6*٣੗ੋೞӝ ↟F9UFOTJCMF"QQMJDBUJPO.BSLVQ-BOHVBHF䱋 ↟.JDSPTPGUীࢲѐߊೠ9.-ӝ߈੄కӒ঱য䱋 ↟)5.-୊ۢ6*ҳࢿਃࣗܳࣚऔѱߓ஖䱋 ↟$௏٘࠺ೞੋ٘౵ੌҗোѾغযز੘䱋 FY .BJO1BHFYBNM౵ੌҗ.BJO1BHFYBNMDT

Slide 22

Slide 22 text

9".-۽6*٣੗ੋೞӝ

Slide 23

Slide 23 text

9BNBSJO'PSNTܳ੉ਊೠѐߊपण ੉ೞ৔ ೠন؀೟Ү].JDSPTPGU4UVEFOU1BSUOFST

Slide 24

Slide 24 text

$ਵ۽জ۽૒ҳഅೞӝ ↟9".-౵ੌҗোѾغয௏٘࠺ೞੋ٘౵ੌ۽ࢲӝמҳഅ䱋 ↟पઁয೒ܻா੉࣌ز੘ࠗ࠙ੋজ۽૒ਸҳഅ䱋 ↟ࠁా.77. .PEFM7JFX7JFX.PEFM ಁఢਵ۽ҳഅ

Slide 25

Slide 25 text

$ਵ۽জ۽૒ҳഅೞӝ using System; using Xamarin.Forms; namespace FormsGallery { class ButtonDemoPage : ContentPage { Label label; int clickTotal = 0; public ButtonDemoPage() { Button button = new Button { Text = "ׂ۞઱ࣁਃ!", HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand }; button.Clicked += OnButtonClicked;

Slide 26

Slide 26 text

$ਵ۽জ۽૒ҳഅೞӝ label = new Label { Text = "0ߣ ־࣑ܰणפ׮", HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand }; this.Content = new StackLayout { Children = { button, label } }; } void OnButtonClicked(object sender, EventArgs e) { label.Text = String.Format("{0}ߣ ־࣑ܰणפ׮”, ++clickTotal); } } }

Slide 27

Slide 27 text

хࢎ೤פ׮