Sansan/EightのiOS開発について紹介!/ Introduction-to-iOS-Development-of-Sansan-Eight

13d936e697fe0f4fa96f926d0a712f6c?s=47 Sansan
September 20, 2020

Sansan/EightのiOS開発について紹介!/ Introduction-to-iOS-Development-of-Sansan-Eight

■イベント
iOSDC JAPAN 2020
https://iosdc.jp/2020/

■登壇概要
タイトル:
Sansan/EightのiOS開発について紹介!

登壇者:
Sansan事業部 プロダクト開発部 荒川聖悟

13d936e697fe0f4fa96f926d0a712f6c?s=128

Sansan

September 20, 2020
Tweet

Transcript

  1. 4BOTBOͱ&JHIUʹ͍ͭͯ͝঺հʂ

  2. ߥ઒੟ޛʢ4IPHP"SBLBXBʣ ೥4BOTBOגࣜձࣾʹத్ೖࣾɻೖࣾ౰ॳ͸αʔόαΠυΤϯδχΞ ͱͯ͠ϞόΠϧ޲͚"1*Λ։ൃɻ೥݄ʹJ04ΤϯδχΞʹస޲͠ݱ ࡏʹࢸΔɻ 4BOTBOגࣜձࣾ ϓϩμΫτ։ൃ෦J04ΤϯδχΞ ࣸਅ

  3. 4BOTBOʹ͍ͭͯ

  4. None
  5. ๏ਓ޲໊͚ࢗ؅ཧαʔϏε ݸਓ޲໊͚ࢗΞϓϦ 4BOTBOͷ̎ͭͷαʔϏε

  6. ૊৫ߏ੒ ๏ਓ޲໊͚ࢗ؅ཧαʔϏε 4BOTBOͷ։ൃɺఏڙ ݸਓ޲໊͚ࢗΞϓϦαʔϏε &JHIUͷ։ൃɺఏڙ 3% σʔλ෼ੳɾݚڀ։ൃ ʢը૾ॲཧʗػցֶशɾ"*ʣ 4BOTBOࣄۀ෦ &JHIUࣄۀ෦

    %40$ 4BOTBOגࣜձࣾ σʔλ౷ׅ෦໳
  7. ૊৫ߏ੒ ๏ਓ޲໊͚ࢗ؅ཧαʔϏε 4BOTBOͷ։ൃɺఏڙ ݸਓ޲໊͚ࢗΞϓϦαʔϏε &JHIUͷ։ൃɺఏڙ 3% σʔλ෼ੳɾݚڀ։ൃ ʢը૾ॲཧʗػցֶशɾ"*ʣ 4BOTBOࣄۀ෦ &JHIUࣄۀ෦

    %40$ 4BOTBOגࣜձࣾ σʔλ౷ׅ෦໳
  8. 4BOTBOJ04ʹ͍ͭͯ঺հ

  9. ๏ਓ޲໊͚ࢗ؅ཧαʔϏε

  10. Sansan iOSΞϓϦͷྺ࢙  W  W  W  W

     W  W TUϦϦʔε ৄࡉݕࡧ ύϑΥʔϚϯεվળ ෳ਺ຕࡱӨ χϡʔε ண৴࣌ࢯ໊දࣔ ਓ෺ৄࡉ ΦϯϥΠϯ໊ࢗ
  11. - ӦۀͳͲ͕঎ஊͷલʹ֎ग़ઌͰ໊ࢗ৘ใ΍χϡʔεΛ֬ೝ - లࣔձ΍ࣾ֎ଧͪ߹ΘͤͰަ׵໊ͨࢗ͠৘ใΛͦͷ৔Ͱొ࿥ - ΦϯϥΠϯ঎ஊ΍΢ΣϏφʔͰ͸ΦϯϥΠϯ໊ࢗΛަ׵͢Δ SansanΞϓϦͷར༻γʔϯ 11

  12.  ։ൃݴޠ4XJGUʢҰ෦0CKFDUJWF$ʣ  ΞʔΩςΫνϟ7*1&3  ίʔυ؅ཧ(JU)VC  ίʔυղੳ4JEFS  $*$%#JUSJTF

     ӡ༻'JSFCBTF$SBTIMZUJDT  ϥΠϒϥϦ3Y4XJGU "MBNPGJSF 3FBMNͳͲ Sansan iOSνʔϜͷ։ൃ؀ڥ
  13. Sansan iOSͰ͸VIPERΛ࠾༻

  14. Sansan iOSνʔϜͷߏ੒ (8݄Լ०࣌఺) ϦʔυΤϯδχΞ ! J04 !!!! ϝϯόʔ ϦʔυΤϯδχΞ !

    J04 !!! ϝϯόʔ σβΠφʔ ! ! ! 1. J04ΤϯδχΞ໊ ! 2"
  15. 4BOTBOͷ։ൃϓϩηε 15

  16. 4BOTBOͷ։ൃϓϩηε 16 ɾ1. σβΠφʔ͕୲౰ ɾཁ݅ఆٛʙجຊઃܭ·Ͱ ɾόοΫϩάͷ༏ઌ౓൑அ΋ߦ͏

  17. 4BOTBOͷ։ൃϓϩηε 17 ɾΤϯδχΞ σβΠφʔ͕୲౰ ɾৄࡉઃܭʙςετɾϨϏϡʔ·Ͱ

  18.  Ұੲ͸֤νʔϜ͝ͱʹόοΫϩάΛ؅ཧ͍͕ͯͨ͠ɺݱࡏ͸શνʔϜͰ όοΫϩάΛ౷Ұ͞Ε͓ͯΓɺJ04νʔϜ΋ྫ֎Ͱ͸ͳ͍  νʔϜͷݸผ࠷దԽΛආ͚ͯɺશମ࠷దΛ໨ࢦͦ͏ͱͨ݁͠Ռͱͯ͠ɺ όοΫϩά͕ҰຊԽ͞Εͨ 4BOTBOͰ͸όοΫϩάҰຊԽ

  19.  ΞϓϦϦϦʔε͸ຖिߦ͍ͬͯΔ  ༵ۚ೔ʹ"QQ4UPSFਃ੥ɺ݄༵೔ʹެ։Λ΄΅ຖि܁Γฦ͢  ϦϦʔε࡞ۀ͸CPUͰࣗಈԽʢGBTUMBOFͰ͸ͳ͘BQQMFCPUΛར༻   ϦϦʔε୲౰ऀ͸ϓϩύʔશһͰ࣋ͪճΓͰߦ͏ 

    ӡ༻νΣοΫ͸ຖ೔ϓϩύʔͰ࣋ͪճΓ  ଞνʔϜ͔ΒͷௐࠪґཔରԠ͸ϙΠϯτ੍Ͱෛՙ෼ࢄ ͦͷଞӡ༻ܥλεΫʹ͍ͭͯ
  20.  ฐࣾ3%ͱ࿈ܞ͠ɺը૾ೝࣝͷٕज़౳Λར༻ ͨ͠շదͳ໊ࢗࡱӨମݧͷఏڙ  ෳ਺ຕ໊ࢗͷಉ࣌ࡱӨػೳͷڧԽ  ϦΞϧλΠϜͰͷۣܗೝࣝ  ͦͷଞɺJ04ඪ४Χϝϥʹशͬͯ)BQUJD 'FFECBDLΛ͚ͭΔͳͲͷ޻෉΋

    ௚ۙϦϦʔεͨ͠ػೳΛ͍͔ͭ͘঺հʂʢ7݄Լ०ϦϦʔεʣ ໊ࢗը૾ೝࣝͷվળ
  21. ௚ۙϦϦʔεͨ͠ػೳΛ͍͔ͭ͘঺հʂʢ8্݄०ϦϦʔεʣ  ঎ஊه࿥ʢίϯλΫτʣʹͯϑΝΠϧΛఴ෇ɾ ӾཡػೳΛ࣮૷  ը૾΍1%'ͳͲΛΞϓϦ಺ͰӾཡՄೳʹͳͬͨ  ϑΝΠϧͷӾཡʹ͸2-1SFWJFX7JFXΛར༻ ʢ݁ߏۂऀͩͬͨʜʣ ঎ஊه࿥΁ͷఴ෇ϑΝΠϧػೳ

  22. &JHIUJ04ʹ͍ͭͯ঺հ

  23. ݸਓ޲໊͚ࢗΞϓϦ

  24. &JHIUJ04νʔϜͷ։ൃ؀ڥ  ։ൃݴޠ4XJGUʢҰ෦0CKFDUJWF$ʣ  ΞʔΩςΫνϟ.77.  ίʔυ؅ཧ(JU)VC  ίʔυղੳ%BOHFS 

    $*$%#JUSJTF  ӡ༻'JSFCBTF$SBTIMZUJDT GBTUMBOF "QQ$FOUFS  ϥΠϒϥϦ3Y4XJGU 3FBMN 4XJOKFDUͳͲ
  25. &JHIUͷΞʔΩςΫνϟʹؔ͢Δࢿྉ΋ͥͻ https://speakerdeck.com/sansanbuildersbox/architecture-to-support-eight-ios

  26. &JHIUJ04νʔϜͷߏ੒ !!!! J04ΤϯδχΞ໊ ! σβΠφʔ ! 2"

  27. &JHIUJ04ͷ։ൃ͸εΫϥϜ εϓϦϯτܭը ϓϩμΫτόοΫϩάΛجʹ εϓϦϯτόοΫϩά˞Λܾఆ͢Δ σΠϦʔεΫϥϜ ʢຖ೔෼ͷϛʔςΟϯάʣ ϓϩμΫτόοΫϩά ϦϑΝΠϝϯτ ʢϝϯόʔશһͰ֬ೝͱௐ੔ʣ ࣾ಺ؔ܎ऀΛूΊͨ

    εϓϦϯτϨϏϡʔ ,15ʹΑΔνʔϜ ಺ͷৼΓฦΓ ,ɾɾɾ 1ɾɾɾ 5ɾɾɾ ϓϩμΫτόοΫϩά ˞ϓϩμΫτόοΫϩά ɹϓϩμΫτͷϏδϣϯΛ࣮ݱ͢ΔͨΊɹ ɹͷػೳͳͲ ˞εϓϦϯτόοΫϩά ɹΤϯδχΞ 2"ͰܭըΛλεΫϨϕϧʹ ɹམͱͨ͠΋ͷ Ϧ Ϧ ồ ε िؒ εϓϦϯτ ˞
  28. ௚ۙϦϦʔεͨ͠ػೳΛ͍͔ͭ͘঺հʂʢ5݄த०ʣ εΩϧλάػೳ  &JHIUʹొ࿥͞Ε͍ͯΔϓϩϑΟʔϧ৘ ใΛ΋ͱʹɺ&JHIU͕ࣗಈͰλά෇͚Λ ͢Δػೳ  ࣗ෼ͰεΩϧλάΛ෇༩͢Δ͜ͱ΋Մ ೳ

  29. ௚ۙϦϦʔεͨ͠ػೳΛ͍͔ͭ͘঺հʂʢ6্݄०ʣ  &JHIUʹ΋ΦϯϥΠϯ໊ࢗػೳΛϦϦʔ ε͍ͯ͠·͢  23ίʔυ͔63-ΛγΣΞ͢Δ͜ͱͰ &JHIU্Ͱͷ໊ࢗަ׵͕Ͱ͖Δ  23ίʔυೖΓͷόʔνϟϧഎܠ΋μ΢ ϯϩʔυͯ͠࢖͏͜ͱ͕Ͱ͖·͢

    &JHIUΦϯϥΠϯ໊ࢗ
  30. ΦϯϥΠϯ໊ࢗϦϦʔεʹ͍ͭͯ ˞4BOTBOJ04ͷ࿩

  31. Sansan΋ΦϯϥΠϯ໊ࢗΛϦϦʔε͍ͯ͠·͢  4BOTBOʹొ࿥໊ͨࢗ͠Λ63-Λڞ༗͢Δ͜ ͱͰަ׵͢Δ  ඇ4BOTBOϢʔβʹ΋ڞ༗͢Δࣄ͕Մೳʂ  ௚ۙͰ͸&JHIUϢʔβͱ΋࿈ܞͰ͖ΔΑ͏ʹͳ Γ·ͨ͠

  32. Sansan iOSΞϓϦͷΦϯϥΠϯ໊ࢗͷ։ൃن໛ ։ൃʹؔΘͬͨΤϯδχΞ਺ ਓ ౰࣌શһ ։ൃظؒ ೔ Ӧۀ೔ϕʔε 1VMM3FRVFTU਺ 1VMM3FRVFTUT

    ։ൃظ݄ؒ೔ʙ݄೔
  33. ͲͷΑ͏ʹλεΫΛ෼ׂ͔ͨ͠  جຊతʹ͸ը໘୯ҐͰϝϯόͷΞαΠϯ  ભҠ෦෼͸7*1&3ʹͯந৅Խ͞Ε͓ͯΓɺલޙͷը໘ͰΠϯλʔϑΣʔε ΛܾΊ͓͚ͯͩ͘Ͱ։ൃΛ͢͢ΊΔ͜ͱ͕Ͱ͖ΔΑ͏ʹ ˠಉ࣌ฒྻ਺Ͱ։ൃΛ͢͢ΊΔ͜ͱ͕ग़དྷͨ

  34.  σόοάϝχϡʔʹͯલޙͷը໘͕Ͱ͖͍ͯ ͳͯ͘΋ભҠͰ͖ΔΑ͏ʹ͠ɺσβΠφʔϨ ϏϡʔΛಠཱ࣮ͯ͠ࢪͰ͖ΔΑ͏ʹͨ͠  ίʔυͷϨϏϡϫʔΛϦʔυΤϯδχΞΛத ৺ͱ͢Δ͜ͱͰɺͦΕҎ֎ͷϝϯόʔ͸࣮૷ ʹूதͰ͖ΔΑ͏ʹͨ͠ʢࢍ൱྆࿦͋Γʣ ͦͷଞͷ޻෉

  35. ٕज़తͳ࿩: Firebase Dynamic Linksͷར༻ ৄ͘͠͸஌Γ͍ͨํ͸ ݄ ͷத઒ͷηογϣϯʹͯʂ  23ίʔυಡΈऔΓ͔ΒΞϓϦભҠ·Ͱ ͷಈ͖Λ'JSFCBTF%ZOBNJD-JOLTΛར

    ༻  6OJWFSTBM-JOLTͷαʔό؀ڥΛϥοϓ͠ ͨΑ͏ͳαʔϏε  "OESPJEͰ΋ར༻Մೳ
  36.  5FTU'MJHIUΛར༻ͯ͠Ќ൛Λࣾ಺޲͚ʹ഑෍  ຊϦϦʔεલʹࣾ಺ͷϑΟʔυόοΫΛҰఆ ൓өͤ͞Δ  Ќ൛ʹ΋৹͕ࠪඞཁ͕ͩɺϏϧυ൪߸Λ͋͛ Δ͚ͩͳΒ͹ɺ৹͕ࠪෆཁͩͬͨϥΠϑϋο Ϋʢཧ༝͸ෆ໌ʣ ٕज़తͳ࿩:

    ࣾ಺༻ʹβ൛ͷެ։
  37. ࠷ޙʹʜࣾ಺ษڧձΛ঺հʂ

  38.  དྷͨΔ4XJGU6*࣌୅ʹ޲͚ͯϥϯνͷ࣌ؒ ʢ(FFL4FFLʣʹΞϓϦΛ։ൃ  ୊ࡐ͸ࡢ೥ͷฐࣾͷΧϯϑΝϨϯεΞϓϦ  ΩϟονΞοϓ͠ͳ͕Βগͣͭ͠ਐΊ͍ͯ ·͢ SwiftUIษڧձ ษڧձΛ։࠵͢Δ͜ͱͰன৯୅ΛҰఆิॿ͢Δ੍౓

  39.  4BOTBOͱ&JHIUͷJ04ΤϯδχΞͷϥϯ νަྲྀձ  ௚ۙ৮Εٕͨज़ͳͲΛޓ͍ʹ஌ݟΛڞ༗ ͢Δ৔  ϞόΠϧϝϯόʔͰू·ͬͯ-5େձ͕։ ࠵͞ΕͨΓ͢Δ͜ͱ΋ʂ SansanͱEight

    ͷ߹ಉษڧձ
  40. J04ΤϯδχΞ ੵۃืूதͰ͢ʂ

  41. ΤϯδχΞʹඞཁͳ lੈքͷ࠷৽৘ใzΛຖ݄͓ಧ͚ #VJMEFST#PYͱ͸ɺΤϯδχΞͷͨΊʹ࡞ΒΕͨ৘ใαϒεΫϦϓγϣϯʢແྉʣͰ͢ɻ ઌਐاۀͷΤϯδχΞͨͪʹऔࡐͨ͠ݫબ৘ใΛձһݶఆͰ͓ಧ͚͠·͢ɻ    ৄࡉɾձһొ࿥͸ͪ͜Β ɹɹɹɹɹɹɹIUUQTCVJMEFSTCPYPOMJOFDPN ɹɹɹɹɹɹɹ˞ొ࿥ͷࡍɺ঺հίʔυͷཝʹʮJ04%$ʯͱೖྗ͍ͩ͘͞ɻ