How we create our app using Xamarin;

2d3b2f74f42ca11f0883ee0930e97425?s=47 ailen0ada
August 31, 2019

How we create our app using Xamarin;

2019/08/31 JXUG #25 at Microsoft Shinagawa; Seminor room A

2d3b2f74f42ca11f0883ee0930e97425?s=128

ailen0ada

August 31, 2019
Tweet

Transcript

  1. )PXXFDSFBUF PVSBQQ  +96( 5TVCBTB)*3"/0.BOBUP,".&:"

  2. "CPVUVT Tsubasa Hirano Director @ailen0ada Manato Kameya CTO @grabacr07

  3. ࠓ೔࣋ͪؼͬͯ΄͍͜͠ͱ 9BNBSJO͸֮ޛͱ໨తҙࣝΛ ࣋ͬͯ࢖͏

  4. ࠓ೔࣋ͪؼͬͯ΄͍͜͠ͱ ʢ೚ҙʣ͸֮ޛͱ໨తҙࣝΛ
 ࣋ͬͯ࢖͏

  5. ͓͠ͳ͕͖ w ࡞ͬͨ؀ڥ w બఆٕͨ͠ज़ελοΫ w ͕͜͜ਏ͍Α9BNBSJO w બ͹Εͳ͔ͬͨ9BNBSJO'PSNT w

    ͦΕͰ΋9BNBSJOΛ࢖͏
  6. Ԋֵ • ઃཱ • J048FC൛αʔϏεΠϯ • "OESPJE൛αʔϏεΠϯ • Ϣʔβʔ਺ສ •

    ϦϓϨΠε։࢝ • Ϣʔβʔ਺ ສ • ϦϓϨΠε J04 ϦϦʔε
  7. 9BNBSJOબఆͷϞνϕʔγϣϯ w ॳظίʔυϕʔε ʙ೥  w *OGSB"84 &$ 3%4 

     w 4FSWFS3BJMT w J04BQQ0CKFDUJWF$ w %SPJEBQQ+BWB w ӡ༻ͻͲ͍ ख࡞ۀଟ਺
  8. 9BNBSJOબఆͷϞνϕʔγϣϯ w ։ൃ೥ɺӡ༻೥ w ʮ͍͔ʹૣ͘ϦϦʔε͢Δ͔ʯͷ࣌ظ w ى͜Δ΂ͯ͘͠ى͜Δෛ࠴ w ฦࡁ͠ͳ͔ͬͨ Ͱ͖ͳ͔ͬͨ

     w Ҏޙͷେن໛ͳվम͸ෆೳ
  9. 9BNBSJOબఆͷϞνϕʔγϣϯ w ϦϓϨΠεର৅4FSWFSJ04"OESPJE8FC w ͢΂ͯʂ w গ਺ਫ਼ӶνʔϜ w αʔόʔɾΞϓϦઐ೚෦ୂΛ࡞Εͳ͍

  10. 9BNBSJOબఆͷϞνϕʔγϣϯ w ౳਎େͷιϦϡʔγϣϯͱͯ͠ͷબ୒ࢶ w গ਺ϝϯόʔ ௿ίετ  w $ͷ࿹ʹ֮͑ͷ͋Δϝϯόʔ w

    ਓࣄݖɺ࠾༻ͷΞς͕͋Δ͜ͱ w ωΠςΟϒΑΓ΋ۤ࿑͢Δ֮ޛ
  11. ٕज़ελοΫ֓؍ w "84 &,4 3%4   w %PDLFS ,VCFSOFUFT

    w "41/&5$PSF.7$ w 9BNBSJOJ04 w 9BNBSJO"OESPJE
  12. ͓͠ͳ͕͖ w ࡞ͬͨ؀ڥ w બఆٕͨ͠ज़ελοΫ w ͕͜͜ਏ͍Α9BNBSJO w બ͹Εͳ͔ͬͨ9BNBSJO'PSNT w

    ͦΕͰ΋9BNBSJOΛ࢖͏
  13. ޿ࠂ4%,ͷόΠϯσΟϯά w όΠϯσΟϯάϥΠϒϥϦ࡞੒ࣗମ͸͞΄Ͳ೉͘͠ͳ͍ w ֎෦ϑΝΠϧͷؚΊ๨ΕͰϥϯλΠϜΤϥʔͱ͔ w UYU͔ͩΒ͍Βͳ͍ͩΖ͏ͱࢥͬͨΒத਎͸+BWB4DSJQUͩͬͨͱ͔ w %FQFOEFODZ)FMM w

    'JSFCBTFWT"E.PC w ෆҙͷ4%,Ξοϓσʔτ͔ΒͷϥϯλΠϜΤϥʔ w ্࠭ͷ࿖ֳඍົͳόϥϯε
  14. όΠϯσΟϯάϥΠϒϥϦͷ044αεςφϏϦςΟ w όΠϯσΟϯάϥΠϒϥϦ࡞੒ࣗମ͸͞΄Ͳ೉͘͠ͳ͍ʢ࠶ʣ w 'JSFCBTFͷΑ͏ʹਐԽ͕ૣ͘ػೳ͕๲େͳϥΠϒϥϦ͸Ͳ͏͢Δʁ w ࢖͏ʹ͋ͨͬͯ࢓ࠐΈ͕ඞཁͳػೳ͸ςετ΋೉͍͠ w 9BNBSJO'JSFCBTFJ04 /V(FUύοέʔδͷ࠷ऴߋ৽͸͍ͭʁ

    w ࣗࣾͷ࢖͏෦෼͚ͩΛόΠϯσΟϯάϥΠϒϥϦʹى͜͢ w ݕূ΋ࣗࣾϦιʔεΛ࢖͍౰֘Օॴ͚ͩͰࡁΉ w ͜ΕΛίϛοτ͢΂͖͔ʁू߹஌ͱͳΓಘΔ͔ʁ
  15. .FUIPE4XJ[[MJOH w طଘΫϥεͷϝιου࣮૷Λ͛͢ସ͑Δࠇຐज़ w 0CKFDUJWF$3VOUJNFͷػೳmethod_exchangeImplementations w άϩʔεɼΞφϦςΟΫεܥͷϥΠϒϥϦͰ͸සൟʹݟΔ w ॳظԽॲཧͱ͔௨஌ͷड৴ͱ͔Λ͠Εͬͱ΍͓͍ͬͯͯ͘ΕΔ w

    ͍͍ͨͯ͸ݏͳਓͷͨΊʹΦϓτΞ΢τͯࣗ͠ݾ࣮૷͢Δ͜ͱ΋Ͱ͖ ΔΑ͏ʹͳ͍ͬͯΔ w ΦϓτΞ΢τͰ͖ͳ͍ϥΠϒϥϦͷͨΊʹํ਑స׵Λ༨ّͳ͘͞Εͨ
  16. .FUIPE4XJ[[MJOH w গ͠Ͱ΋ߦّΑ͘͢ΔͨΊγάωνϟνΣοΫΛߦ͏DG344XJ[[MF w /4.FUIPE4JHOBUVSF ΄ͱΜͲDIBS<>Έ͍ͨͳ΋ͷ w ͜ΕΛTUSDNQ͍ͯͨ͠ͷͰແݶʹࣦഊ͢Δ userNotificationCenter:willPresentNotification:withCompletionHandler: Xamarin

    v@:@@^v void function(v) selector of object(@:) take 2 object-args (@@) and 1 pointer to void (^v) Objective-C v40@0:8@16@24@?32 = v@:@@@? void function(v40) selector of object (@0:8) take 2 object-args(@16@24) and 1 pointer to function (@?32) w όΠϯσΟϯάΛॻ͚͹ԿͰ΋࢖͑Δͱ͍͏ݴઆ͸ਅ࣮Ͱ͸ͳ͍
  17. ηϧϥʔωοτϫʔΫܦ༝Ͱ௨৴Ͱ͖ͳ͘ͳΔࣄ݅ w ௨৴தʹόοΫάϥ΢ϯυʹճΔͱ*OWBMJE0QFSBUJPO&YDFQUJPOൃใ w 9BNBSJOͰઃఆ͞ΕΔίʔϧόοΫίʔυͷඇಉظपΓͷෆ࢝຤ w ࢓ֻ͔͍ͬͯΔϦΫΤετΛΩϟϯηϧͯ͠ճΖ͏ͱͯͨ͠·ʹࢮ͵ w ࣌఺Ͱ΋9BNBSJOJ04͸͜ͷ໰୊Λ๊͍͑ͯΔ w

    DGYBNBSJONBDJPTJTTVF w ͡Θ͡ΘΫϥογϡϨϙʔτ্͕͕͖ͬͯͯͱͯ΋΢β͍ͷͰରࡦ
  18. ηϧϥʔωοτϫʔΫܦ༝Ͱ௨৴Ͱ͖ͳ͘ͳΔࣄ݅ w )UUQ$MJFOUDUPSͰ)UUQ.FTTBHF)BOEMFSΛࠩ͠ࠐΉ w /46SM4FTTJPO)BOEMFSDTΛYBNBSJONBDJPTNBTUFS͔Β࣋ͬͯ ͖ͯ*0&ൃใͷݪҼΛ௵͢ w NBTUFSͷ/46SM4FTTJPO)BOEMFSDTʹ໰୊͕͋ͬͨʢ͋Δʣ w CPPMBMMPXT$FMMVMBS"DDFTTϑΟʔϧυʹ୭΋஋ΛೖΕ͍ͯͳ͍͠ɼ

    ೖΕΔํ๏΋ͳ͍ w ηϧϥʔωοτϫʔΫܦ༝Ͱ௨৴͕ඞࣦͣഊ w ͦΜͳͱ͜ΖͰյΕΔͱ͸ࢥ͍΋͠ͳ͔ͬͨ
  19. ܧঝ͕αϙʔτ͞Εͳ͍ͳΒTFBMFEͯ͠΄͍͠ w 6*,JUͷυΩϡϝϯτʹΑΔͱαϒΫϥεԽ͸ඇରԠ w FYUFOTJPOͱ͔͋ΔͷͰ͞΄ͲࠔΒͳ͍ w 9BNBSJOͷόΠϯσΟϯά͸TFBMFE͞Εͯͳ͍ w 7JFX%JE"QQFBSʹॲཧΛڬΈ͔ͨͬͨ w

    ΧςΰϦ֦ுͱ͔ͳ͍͠ w Ϗϧυ4%,ʹؔΘΒͣJ04Ͱݟࣄʹരൃ w 4XJGUͰαϒΫϥεԽͯ͠΋͜ͷ໰୊͸ى͖ͳ͍
  20. "OESPJE൛͸9BNBSJO'PSNTͷເΛݟΔ͔ w ෳࡶͳϥΠϑαΠΫϧͷ໘౗Λݟͯ͘ΕΔظ଴ w 04όʔδϣϯͷࠩҟΛຒΊ͍͍ͯײ͡ʹڞ௨Խ૚Λ࣋ͯΔظ଴ w φϏήʔγϣϯαʔϏε৐͔ͬͬͯϏϡʔ͚ͩωΠςΟϒ͔Β΋Β͑͹ ͍͍ͩΖ͏ͱ͍͏ظ଴

  21. ͦΕͰ΋9BNBSJOΛ࢖͏ w গਓ਺ͰͳΜͱ͔͢ΔͨΊͷ؀ڥΛ͖ͬͪΓ੔͑ͨ w ࣍ͷϦϓϨΠε΋9BNBSJOϕʔε͔Ͳ͏͔͸Θ͔Βͳ͍ w ϓϥοτϑΥʔϜͷಛ௃Λ࢖͍੾ΔͳΒͦͷ͓࡞๏Ͱॻ͘ w 9BNBSJO͕͍͍΋ͷ͔ͩΒબΜͰ͍ΔΘ͚Ͱ͸ͳ͍ w

    ʮݱஈ֊ͷ૊৫ʹͱͬͯ͸ʯ͍͍΋ͷͰ͋Δͱೲಘͯ͠΋Β͏ w ϔΠτ͸ཷ·ΔҰํ૯߹ྗͰ࢖͍͜ͳ͢
  22. 8FSFIJSJOH ·ͣ͸͓࿩͠͠·͠ΐ͏