Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Xamarin으로 모바일 앱 개발 빠르게 시작하기

Manjong Han
November 26, 2017

Xamarin으로 모바일 앱 개발 빠르게 시작하기

Manjong Han

November 26, 2017
Tweet

More Decks by Manjong Han

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. )JTUPSZPG9BNBSJO
    ↟֙ਘ .JHVFMEF*DB[Bܳ࠺܃ೠ.POP೐ۨ੐ਕ௼ѐ
    ߊ૓ী੄೧ࢸ݀ػӝস䱋
    ↟.POP೐ۨ੐ਕ௼ _

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

    View Slide

  5. .JDSPTPGU/&5

    View Slide

  6. .JDSPTPGU/&5

    View Slide

  7. .JDSPTPGU/&5

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. 9".-۽6*٣੗ੋೞӝ
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="XamlSamples.GridDemoPage"
    Title="Grid Demo Page">






    Grid.Row="0" Grid.Column="0"
    TextColor="White"
    BackgroundColor="Blue" />


    View Slide

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

    View Slide

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

    View Slide

  25. $ਵ۽জ۽૒ҳഅೞӝ
    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;

    View Slide

  26. $ਵ۽জ۽૒ҳഅೞӝ
    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);
    }
    }
    }

    View Slide

  27. хࢎ೤פ׮

    View Slide