iOS DC 2016 : フルSwiftでバイクフリマアプリRIDEを作って得た学び

7f2e0d6b54e2bd2a6527b9d468b1c4f6?s=47 huin
August 19, 2016

iOS DC 2016 : フルSwiftでバイクフリマアプリRIDEを作って得た学び

2016年8月19日(金) に行われたiOS DC 2016 前夜祭でお話したスライドです。

トークページ : https://iosdc.jp/2016/c/node/36

7f2e0d6b54e2bd2a6527b9d468b1c4f6?s=128

huin

August 19, 2016
Tweet

Transcript

  1. ϑϧ4XJGUͰ όΠΫϑϦϚΞϓϦ3*%&Λ࡞ͬͯಘֶͨͼ

  2. ࣗݾ঺հ  !,PJDIJ4BLBUB "!IVJO #IVJONF $'BCMJD *OD % J04"OESPJE

  3. ͓࿩͢͠Δ͜ͱ w 3*%&ͷ঺հ w ϑϧ4XJGUͰͷΞϓϦ։ൃ w 3FEVYΞʔΩςΫνϟͷ࠾༻ w ·ͱΊ 

  4. 3*%&ͷ঺հ 

  5. None
  6. όΠΫϑϦϚΞϓϦ3*%&

  7. όΠΫϑϦϚΞϓϦ3*%& w όΠΫंମͷചങʹಛԽͨ͠ϑϦϚΞϓϦ w ڑ཭ݕࡧˠ௚઀͋ͬͯऔҾ w J04൛ϦϦʔε w ݄೔ʹύʔπͷऔҾʹ΋ରԠʂʂ 

  8. ͓࿩͢͠Δ͜ͱ w 3*%&ͷ঺հ w ϑϧ4XJGUͰͷΞϓϦ։ൃ w 3FEVYΞʔΩςΫνϟͷ࠾༻ w ·ͱΊ 

  9. ϑϧ4XJGUͰͷΞϓϦ։ൃ 

  10. ϑϧ4XJGUͰͷΞϓϦ։ൃ w ϓϩδΣΫτ֓ཁ w J04ϓϩδΣΫτߏ੒ w ։ൃπʔϧ w ։ൃϑϩʔ w

    ΞϓϦͷΞʔΩςΫνϟ 
  11. ϓϩδΣΫτ֓ཁ w ։ൃظؒʙ ໿̏ϲ݄  w ମ੍J04ΤϯδχΞ໊̏ σβΠφʔ໊ w ಛ௃

    w ϥΠϒϥϦؚΊՄೳͳݶΓ4XJGUͰ࣮૷ w 3FEVYΞʔΩςΫνϟΛશ໘తʹ࠾༻ 
  12. J04ϓϩδΣΫτߏ੒ w ຊ൪"1*ͱ։ൃ"1*ͷ̎ͭͷλʔήοτͰ։ൃ w ϦϦʔε൛࢖͍ͭͭ։ൃ൛ΛࢼͤΔ w ։ൃ൛͸ΤϯλʔϓϥΠζॺ໊Ͱ഑෍ w ୺຤؅ཧෆཁͰࣾ಺શһʹ഑෍ 

  13. ։ൃπʔϧ w 4XJGU-JOU w $PDPBQPET$BSUIBHF w $JSDMF$*'BCSJD#FUB w 'BTUMBOF w

    ςετ JQB࡞੒ #FUB΁ͷΞοϓϩʔυ౳ΛλεΫԽ w ୭Ͱ΋ಉ͡λεΫ͕࣮ߦͰ͖ΔΑ͏ʹ 
  14. ։ൃϑϩʔ  ᶃ13ͷ࡞੒ ᶆJQB࡞੒ ᶇϕʔλ഑෍ ᶄϒϥϯνςετ ᶅ13Ϛʔδ & ! &

    & جຊ͸HJUqPX GFBUVSFϒϥϯν࡞ͬͯˠEFWFMPQʹϚʔδ
  15. "1*෦෼ͷ.PEVMFԽ  ೝূ৘ใ  ϝιουͷݺग़ JNNVUBCMFͳ Ϩεϙϯεͷฦ٫ 6*ͷఏڙ ΞϓϦͷ಺෦ঢ়ଶͷอ࣋ 3*%&J04

    3&45"1*΁ͷϦΫΤετϨεϙϯε 3*%&"1*
  16. "1*෦෼ͷ.PEVMFԽ w "QQଆͷ౎߹ΛϞσϧଆʹ৵ೖͤ͞ͳ͍ w JNNVUBCMFͳσʔλΛఆٛͯ͠ಡࠐઐ༻ͷσʔλΛ࡞Δ w "QQଆͰඞཁͳ৘ใ͸FYUFOTJPOͰ࣮૷͢Δ w ͘Δ͔΋͠Εͳ͍ "QQ&YUFOTJPOT΁ͷԼ४උ

     Ϟσϧ૚ͱ6*૚ͷ࣮૷Λ໌֬ʹ෼཭͢Δ
  17. JNNVUBCMFͳσʔλͷఆٛ w σʔλ͸શͯTUSVDU ఆ਺ϓϩύςΟͰఆٛ w ஋ΛηοτͰ͖Δͷ͸ॳظԽ࣌ͷΈ +40/͔Βͷม׵࣌ͷΈ  w "QQଆ͸ϞσϧΛมߋͰ͖ͳ͍

    
  18. "QQଆͰͷ֦ு w ͓஌ΒͤͷछྨͱλϒҐஔͷରԠΛFYUFOTJPOͰ࣮૷ w αʔϏεͱͯ͠ͷఆٛͱΞϓϦͱͯ͠ͷ࢖༻ํ๏Λ෼཭ w ҧ͏ίϯςΩετͳΒҧ͏֦ுΛ΋ͨͤΒΕΔ  ͓஌Βͤը໘ "1*Ϟσϧͷఆٛ

    "QQ6*ͱͷରԠ෇͚
  19. QSPUPDPMͷ׆༻ w QSPUPDPMͰ6*7JFX$POUSPMMFS͚ͩʹϝιουΛ௥Ճ w ܧঝΛ࢖Θͣʹ6*7JFX$POUSPMMFSʹಉ͡ػೳΛ࣋ͨͤΒΕΔ 

  20. 4XJGUͰ࡞ͬͯΈͨײ૝ 

  21. 4XJGUͰ࡞ͬͯΈͨײ૝ w ॻ͍͍ͯͯͲΜͲΜ޷͖ʹͳͬͨ w WBSMFU FOVN ܕਪ࿦ ύλʔϯϚονϯάʜ w TUSVDUఆ਺ϓϩύςΟͰෆҙͳมߋ͕ൃੜ͠ͳ͍


    ϓϩάϥϜ͕ॻ͚Δ w QSPUPDPMͰϜϦͷͳ͍֦ுɾڞ௨Խ͕Ͱ͖Δ  ྑ͔ͬͨॴ
  22. w ίϯύΠϧ͕࣌ؒͲΜͲΜ௕͘ʜ w ݱࡏ໿ສߦ ΫϦʔϯϏϧυͩͱඵ͔͔ۙ͘Δ w ػցͷͨΊʹਓ͕ؤுΔͷ΋ຊ຤స౗ͳͷͰόϥϯε೉͍͠ w 4XJGUͰ·ͨେ͖ͳมߋ͕ೖΔͷͰରԠίετ͔͔Δ 

    4XJGUͰ࡞ͬͯΈͨײ૝ ѱ͔ͬͨॴ
  23. ٳܜ 

  24. ͓࿩͢͠Δ͜ͱ w 3*%&ͷ঺հ w ϑϧ4XJGUͰͷΞϓϦ։ൃ w 3FEVYΞʔΩςΫνϟͷ࠾༻ w ·ͱΊ 

  25. 3FEVYΞʔΩςΫνϟͷ࠾༻ 

  26. ΞϓϦ։ൃʹ͓͚Δ՝୊ w 7JFX$POUSPMMFSؒͰϓϩύςΟʹηοτ͢Δʁ w ը໘ͷߏ੒มΘͬͨ࣌ʹਏ͘ͳ͍Ͱ͔͢ʁ w /4/PUJpDBUJPO͋Δ͍͸,70ʁ w ୭͕Ͳ͔͜Β൴ΒΛมߋͯ͠Δͷ͔೺Ѳͮ͠Β͘ͳ͍Ͱ͔͢ʁ w

    ΞϓϦશମͷঢ়ଶΛ͍͔ʹ্खʹ؅ཧ͢Δ͔Ͱۤ࿑͢Δ  ը໘ؒͷσʔλಉظ͍͍ͶͷಉظͲ͏΍ͬͯ·͔͢ʁ
  27. ͦ͜Ͱ3FEVY 

  28. 3FEVYͱ͸ʁ  4JOHMF4UBUF 4UBUF 3FEVDFS 4UBUF 3FEVDFS 4UBUF 3FEVDFS 7JFX

    "DUJPO &WFOU 8FCͷੈքͰੜ·Εͨঢ়ଶ؅ཧͷϑϨʔϜϫʔΫ
  29. 4JOHMF4UBUF 4UBUF 3FEVDFS 4UBUF 3FEVDFS 4UBUF 3FEVDFS 7JFX "DUJPO &WFOU

    3FEVYͱ͸ʁ w ̍ͭͷ4UBUFʹ͢΂ͯͷঢ়ଶΛू໿ w 4UBUFΛ௚઀มߋ͢Δͷ͸3FEVDFSͷΈ w 7JFX͸"DUJPOΛൃߦ͢Δ͚ͩ w ֤3FEVDFS͸"DUJPOΛड͚औͬͯ
 4UBUFΛมߋ͢Δ w 4UBUFͷมߋΛड͚औͬͯ7JFX͸දࣔΛ ߋ৽͢Δ 
  30. 3FEVYʹٻΊͨ΋ͷ w ΞϓϦ಺ͷঢ়ଶ؅ཧʹடংΛ΋ͨΒ͢ w ஋ܕ TUSVDU ͷঢ়ଶఆٛͱ"DUJPOܦ༝ͷߋ৽Ͱ
 ঢ়ଶͷมԽΛ੍ޚԼʹஔ͘ w ը໘ؒͰͷσʔλڞ༗Λ7JFX$POUSPMMFS͔ΒҾ͖ണ͕͢

    w αʔϏεͷ੒௕Ͱഁ୼͠ͳ͍ΞʔΩςΫνϟ 
  31. 3F4XJGU3FEVYͷ4XJGU࣮૷  ࣌఺Ͱ˒ 

  32. 3FEVY࣮ྫ 

  33. ·ͣ͸ಈ࡞σϞ 

  34. None
  35. ࣮૷ 

  36. "QQ4UBUFΛߏ੒  "QQ4UBUFͷࢠ΋ؚΊͯશͯ஋ܕͰఆٛ͢Δ

  37. ͳͥTUSVDUʁ  DMBTT ࢀরܕ ͷ৔߹ ίϐʔͨ͠ม਺΁ͷมߋ͕ݩͷΦ ϒδΣΫτʹӨڹΛ༩͑ͯ͠·͏ TUSVDUͰߏ੒͓ͯ͘͠ͱ҆શʹ৽͍͠ঢ়ଶΛ࡞ΕΔ TUSVDU ஋ܕ

    ͷ৔߹ ίϐʔΛมߋͯ͠΋ݩͷ஋ʹӨڹ Λ༩͑ͳ͍
  38. "DUJPOΛఆٛ  ඇಉظॲཧ͸ϦΫΤετϨεϙϯεΤϥʔͷΞΫγϣϯΛ࡞Δ

  39. None
  40. None
  41. None
  42. 3FEVDFSͷॲཧΛ࣮૷ 

  43. "DUJPOͷൃߦ4UBUFΛॲཧ  "DUJPOൃߦˠ ঢ়ଶͷมԽ ˠOFX4UBUF Ͱड͚औΔ

  44. None
  45. None
  46. ΑΓ࣮༻తͳ࣮૷ྫ 

  47. ΑΓ࣮༻తͳ࣮૷ྫ w ΢ΥονϦετͷಉظ w ঎඼ͷฤूɾग़඼ w ঢ়ଶมߋͷ௥੻ w /FUXPSL"DUJWJUZ*OEJDBUPSͷ؅ཧ 

  48. ΢ΥονϦετͷಉظ  ΢ΥονϦετ͍͍Ͷ

  49. ঎඼ৄࡉ λΠϜϥΠϯ ΢ΥονϦετ

  50.  5BC#BS$POUSPMMFS λΠϜϥΠϯ ݕࡧ ग़඼঎඼ ͓஌Βͤ ϚΠϖʔδ ঎඼ৄࡉ ΢ΥονϦετ ঎඼ৄࡉ

    ݕࡧ݁Ռ ঎඼ฤू ঎඼ৄࡉ ঎඼ৄࡉ
  51.  5BC#BS$POUSPMMFS λΠϜϥΠϯ ݕࡧ ग़඼঎඼ ͓஌Βͤ ϚΠϖʔδ ঎඼ৄࡉ ΢ΥονϦετ ঎඼ৄࡉ

    ݕࡧ݁Ռ ঎඼ฤू ঎඼ৄࡉ ঎඼ৄࡉ
  52. 4JOHMF4UBUF 4UBUF 3FEVDFS 4UBUF 3FEVDFS 4UBUF 3FEVDFS 7JFX "DUJPO &WFOU

    3FEVYͷ͓͞Β͍  3FEVDFS͸શͯͷΞΫγϣϯΛड͚औΔ
  53. 4JOHMF4UBUF 4UBUF 3FEVDFS 4UBUF 3FEVDFS 4UBUF 3FEVDFS 7JFX "DUJPO &WFOU

    3FEVYͷ͓͞Β͍  3FEVDFS͸શͯͷΞΫγϣϯΛड͚औΔ
  54. ΢ΥονϦετͷಉظ  ؔ܎͢Δ3FEVDFS͕௥Ճ࡟আͷΞΫγϣϯʹ൓Ԡ͢Δ͚ͩ "DUJPO 4UBUF 3FEVDFS 4UBUF 3FEVDFS 4UBUF 3FEVDFS

    ΢ΥονϦετ 8BUDIMJTU4UBUF λΠϜϥΠϯ #JLF*UFNT4UBUF ঎඼ৄࡉ *UFNT%FUBJM4UBUF 4JOHMF4UBUF 1PTU*UFN3FTQPOTF"DUJPO %FMFUF*UFN3FTQPOTF"DUJPO
  55.  ΢ΥονϦετͷಉظ ؔ܎͢Δ3FEVDFS͕௥Ճ࡟আͷΞΫγϣϯʹ൓Ԡ͢Δ͚ͩ

  56. ঎඼ͷฤूɾग़඼ 

  57. ঎඼ͷฤूɾग़඼ w ঎඼ͷ࡞੒ɾߋ৽ɾग़඼ ެ։ ɾ࡟আΛ
 ̍ͭͷը໘಺Ͱߦ͏ w ը૾ͷΞοϓϩʔυ׬ྃޙʹ঎඼ͷอଘΛߦ͏ ͳͲϦΫΤετͷґଘؔ܎͕ଘࡏ w

    ࣅͨΑ͏ͳϦΫΤετͷίʔϧόοΫ஍ࠈʹ
 ͨ͘͠ͳ͍ʜ
  58. ঎඼ͷฤूɾग़඼  ঎඼ͷঢ়ଶΛঢ়ଶػցͱݟཱͯΔ

  59. ঎඼ͷฤूɾग़඼  ඞ͍ͣͣΕ͔ͷঢ়ଶʹఆ·ΔͷͰFOVNͰఆٛ

  60. None
  61. ঎඼ͷฤूɾग़඼  7JFXଆ͸*UFN4UBUFʹ߹ΘͤͯදࣔΛ੾Γସ͑Δ

  62. None
  63. ඒ͘͠͸ͳ͍Ͱ͕͢ʜ FOVNͷ஋͚ͩΛݟΕ͹͍͍ͷͰ೉͘͠͸ͳ͍ ϋζ 

  64. มߋͷ௥੻  .JEEMFXBSFΛ࢖ͬͯ"DUJPOͷมߋΛϩάʹు͘

  65. /FUXPSL"DUJWJUZ*OEJDBUPSͷ؅ཧ  .JEEMFXBSFͰ3FRVFTU3FTQPOTFΛΧ΢ϯτ

  66. 3FEVYͷϝϦοτσϝϦοτ 

  67. 3FEVYͷϝϦοτ w 7JFXͱঢ়ଶૢ࡞ มߋ ͷ໌֬ͳ෼཭ w ࢓༷มߋͰը໘ߏ੒͕มΘͬͯ΋มߋ͠΍͍͢ w 7JFX͸OFX4UBUF ಺ͰදࣔΛม͑Δ͚ͩ

    w ঢ়ଶߋ৽ͷ࡞๏͕νʔϜͰ౷Ұ͞ΕΔ w ߟ͑ํ͸୯७ͳͷͰ3FEVY͕ഇΕͯ΋ੜ͖ଓ͚Δ͜ͱ͸Ͱ͖ͦ͏ 
  68. 3FEVYͷσϝϦοτ w ొ৔ਓ෺ 4UBUF 3FEVDFS "DUJPOʜ ͕ଟ͍ͷͰ࣮૷͕গ͠खؒ w ୅ΘΓʹ੹೚ൣғ͸໌֬ͳͷͰ໎͏͜ͱ͸ͳ͍ w

    ঢ়ଶΛ͍͔ʹϞσϦϯά͢Δ͔ʁ͕ΩϞ w 6*ߋ৽ͷϩδοΫ͕ඞཁʹͳΔ৔߹΋ 
  69. 3FEVYʹର͢Δෆ҆ w ϚϧνεϨουԼͰҙਤ͠ͳ͍มߋ͕ى͖ͨΓ͠ͳ͍ʁ w ى͜Γ͏Δݱঢ়"DUJPOͷൃߦ͸ϝΠϯεϨουલఏ w มߋ௨஌ͰϝΠϯεϨουΛϒϩοΫ͢ΔͷͰ͸ʁ w 7JFX$POUSPMMFSͷදࣔʹ߹Θͤͯ6OTVCTDSJCF͍ͯ͠ΔͷͰେྔʹ ͳΔ͜ͱ͸ͳ͍

    w ̍ͭͷڊେͳঢ়ଶ ετΞ ͕ϝϞϦΛѹഭ͠ͳ͍͔ʁ w ϝσΟΞσʔλ ը૾ ʹൺ΂Ε͹େৎ෉Ͱ͸ʜʁ 
  70. ͓࿩͢͠Δ͜ͱ w 3*%&ͷ঺հ w ϑϧ4XJGUͰͷΞϓϦ։ൃ w 3FEVYΞʔΩςΫνϟͷ࠾༻ w ·ͱΊ 

  71. ·ͱΊ w 4XJGU͸࢖͏΄Ͳ޷͖ʹͳΔݴޠͩͬͨ w ։ൃதͷΫϥογϡ͸0CKFDUJWF$ʹൺ΂Δͱগͳ͔ͬͨ ମײ  w ϕετͳॻ͖ํΛ໛ࡧ͢Δ࣌ؒ͸ඞཁ w

    ίϯύΠϧͷ࣌ؒ͸΋ͬͱૣ͘ͳͬͯཉ͍͠ʜ  ϑϧ4XJGUͳϓϩδΣΫτͷ։ൃʹ͍ͭͯ঺հ
  72. ·ͱΊ w ΞϓϦͷঢ়ଶ؅ཧʹடংΛ΋ͨΒ͢ଘࡏ w νʔϜશһͷঢ়ଶ؅ཧͷ࡞๏Λ౷ҰͰ͖Δ w ΞϓϦͷن໛͕େ͖͘ͳͬͯ΋ಉ͡Ξϓϩʔν͕࢖͑Δ ͸ͣ  w

    ঢ়ଶͷઃܭͳͲҧ͏खؒ͸͋ΔͷͰۜͷ஄ؙͰ͸ͳ͍  3F4XJGUΛར༻ͨ͠3FEVYΞʔΩςΫνϟͷ࣮ྫ
  73. J04ΤϯδχΞઈࢍืूதʂ https://fablic.co.jp/recruit

  74. 5IBOL:PV