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

花嫁アプリを作った

 花嫁アプリを作った

Nagoya iOS meetup Vol. 4 @ ヤフー株式会社 名古屋オフィス #nagoyaios
https://nagoya-ios-meetup.connpass.com/event/95974/

Satoshi Hachiya

August 20, 2018
Tweet

More Decks by Satoshi Hachiya

Other Decks in Programming

Transcript

  1. ՖՇΞϓϦΛ࡞ͬͨ
    2018.8.20 - Nagoya iOS meetup Vol. 4
    Satoshi Hachiya (@jpmartha_jp)

    View Slide

  2. Satoshi Hachiya (@jpmartha_jp)

    View Slide

  3. ࿩͢಺༰
    • αʔϏεͷ֓ཁ
    • iOS ΞϓϦͷ։ൃ؀ڥ
    • ͍͔ͭ͘ͷ՝୊ͱղܾࡦ

    View Slide

  4. αʔϏεͷ֓ཁ

    View Slide

  5. ΞʔϧΩϡʔϒͷαʔϏε
    • ձඅࠗ
    • https://www.kaihikon.com
    • ϋφίϨ
    • https://hana-collection.com
    ໿40໊தɺΤϯδχΞ͸4໊

    View Slide

  6. ձඅࠗ
    ձඅ੍ʹಛԽͨ݁ࠗࣜ͠αʔϏε
    ձඅࠗ͸ձඅ੍ͷ݁ࠗࣜʹಛԽͨ͠೔ຊͰॳΊͯͷαʔϏεͰ
    ͢ɻਓؾϗςϧ΍ߴڃϨετϥϯͰ݁ࠗࣜΛ໿൒ֹͰɺ͔͠΋ޙ
    ෷͍Λ࣮ݱ͠·ͨ͠ɻ
    https://www.kaihikon.com

    View Slide

  7. https://medium.com/family-lifehack/wedding-4339917360e1

    View Slide

  8. ϋφίϨ
    ཧ૝ͷ͕݁ࠗࣜͭ͘ΕΔαʔϏε
    ࣮ࡍͷଔՖՇ͞Μͷ࣮ྫهࣄ΍঎඼ࣸਅͳͲ༷ʑͳ݁ࠗࣜͷΞΠ
    σΞ͔Βཧ૝ͷ݁ࠗࣜΛݟ͚ͭग़͠ɺΦϦδφϧͷ݁ࠗࣜΛ࡞Ε
    ΔαʔϏεͰ͢ɻ
    https://hana-collection.com

    View Slide

  9. View Slide

  10. ϋφίϨ iOS ΞϓϦ
    ✨"✨
    ʮϋφίϨʯͰݕࡧ
    https://itunes.apple.com/jp/app/id1325522339

    View Slide

  11. iOS ΞϓϦͷ։ൃ؀ڥ

    View Slide

  12. iOS ΞϓϦͷ։ൃ؀ڥ
    • Realm (Database)
    • Firebase (Crashlytics)
    • Bitrise
    • fastlane
    • SwiftLint
    !
    DB ͸طଘͷ΋ͷʢFirebase Ͱ͸ͳ͍ʣ

    View Slide

  13. ෼ੳ
    • Firebase (Analytics)
    • BigQuery
    • Google Data Studio
    • …

    View Slide

  14. ͍͔ͭ͘ͷ՝୊ͱղܾࡦ

    View Slide

  15. ՝୊ͦͷ1
    ࣗ෼͕ՖՇ͡Όͳ͍

    View Slide

  16. ࣗ෼͕ՖՇ͡Όͳ͍
    • ͳͥͦͷػೳ͕ඞཁͳͷ͔ೲಘ͍ͯ͠ͳ͍෦෼͕͋ͬͨ
    • ΍Δ͜ͱ͕ͨ͘͞Μ͋ͬͯࡉ͔͍഑ྀΛ͍ܽͨ
    • ͩ͜ΘΔϙΠϯτ͕ҧͬͨ

    View Slide

  17. ͓·͚ʹ
    • Ұ౓ͷΞοϓσʔτͰେ෯ʹมߋͨ͠
    !
    ظ଴͞Εͨ΋ͷͱҧ͏΋ͷ͕Ͱ͖͍ͯͨ

    View Slide

  18. ͻͱͭͷλεΫΛ࠷খݶʹ
    • খࠁΈʹςετ഑৴ͯ͠۩ମతʹΠϝʔδ͠ͳ͕Β࡞ΓࠐΉ
    • ͦͯ͠ڍ͕ͬͨࡉ͔͍ཁ๬Λ൓өͤ͞Δ
    • ฒߦͯ͋͠Ε͜Ε΍Βͳ͍
    • ࠩ෼͕େ͖͗͢Δͱଥڠͨ͠ΓϛεΛݟམͱ͠΍͍͢

    View Slide

  19. ՝୊ͦͷ2
    ॳΊͯͷ iOS ΞϓϦ։ൃ
    ʢͱͳͬͨϝϯόʔ͕͍Δʣ

    View Slide

  20. Forced Unwrapping
    https://qiita.com/maiki055/items/b24378a3707bd35a31a8
    ?ͱ!ͷ࢖͍෼͚͕෼͔ΒͣͱΓ͋͑ͣ"?"Λ͚ͭΔɺιʔείʔυ
    Λॻ͍͍ͯͨΒٸʹXcodeʹౖΒΕɺΤϥʔʹಋ͔ΕΔ··
    ʹ"!"Λ͚ͭΔ...
    !
    Ϋϥογϡ͢ΔՄೳੑ͕͋ΔͨΊΉ΍Έʹ࢖Θͳ͍

    View Slide

  21. Swift ͷ if จʹ ()
    !
    ෆཁ

    View Slide

  22. ͦͷଞͷࡉ͔͍ʁվળ

    View Slide

  23. count == 0 ΑΓ isEmpty Λ࢖͓͏
    !
    ଎͍

    View Slide

  24. if จΑΓ guard จͰ Early Exit ͠Α͏
    !
    ωετΛઙͯ͘͠ՄಡੑΛ޲্

    View Slide

  25. UICollectionView ʹ͸
    indexPath.row ΑΓ indexPath.item Λ࢖͓͏

    View Slide

  26. ແବͳεϖʔεΛফͦ͏
    • ελΠϧΛ౷ҰͰ͖͓ͯΒͣඒ͘͠ͳ͍
    • Swift ͚ͩͷ࿩Ͱ͸ͳ͍

    View Slide

  27. ͔͠͠

    View Slide

  28. ͦͷ··Ͱ΋
    ಈ͔͘ΒΑ͘ͳ͍ʁ

    View Slide

  29. ਖ਼͍͠આ໌͕೉͍͠
    • Τϥʔʹ͸ͳΒͳ͍ͷͰͦͷ··ϦϦʔεͰ͖Δ
    • ͳͥ޷·͘͠ͳ͍ͷ͔ͱ͍͏ࠜڌ͸ʁ
    !
    جຊΛௐ΂௚ͨ͠

    View Slide

  30. ࢀߟ: ֤ࣾͷ Swift ΨΠυϥΠϯ
    • https://google.github.io/swift/
    • https://github.com/eure/swift-style-guide/
    • https://github.com/recruit-lifestyle/swift-style-guide
    • https://github.com/cookpad/styleguide/blob/master/
    swift.ja.md
    • https://qiita.com/susieyy/items/f71435cc962e70d81b37

    View Slide

  31. ΨΠυϥΠϯͷ໨త
    • ಉ͡Α͏ͳ໎͍ΛԿ౓΋܁Γฦͣ͞ʹ͢·ͤΔ
    • ΄͔ͷϝϯόʔ͕ಡΈ΍͍͢Α͏ʹॻ͘
    • ط஌ͷϦεΫΛճආ͢Δ

    View Slide

  32. ͦͯ͠ SwiftLint Λ׆༻
    • force_unwrapping
    • control_statement
    • empty_count
    • trailing_newline
    • vertical_whitespace
    ͳͲ

    View Slide

  33. ՝୊ͦͷ3
    ։ൃମ੍͕ສશͱ͸ݴ͑ͳ͍

    View Slide

  34. શ෦Ұ͔Βߏங͢Δͷ͸େม

    View Slide

  35. ࣗ෼Ͱߏங͢Δ͍͍ػձʂ
    શ෦Ұ͔Βߏங͢Δͷ͸େม

    View Slide

  36. ଞࣾͷ؀ڥ͕Α͘ݟ͑Δ͜ͱ͕͋Δ
    ؾʹͳΔ͜ͱ͕ແݶʹग़ͯ͘Δ

    View Slide

  37. ͕ɺߴ๬Έ͗͢͠ͳ͍Α͏ʹ͢Δ
    • ݁ہ͸ࣗ෼࣍ୈ
    • ·ͣ͸༩͑ΒΕͨ؀ڥͰશྗΛਚ͘͢΂͖
    • ͍͔ʹࣗ෼ͱνʔϜΛ৳͹ͤΔ͔͕࿹ͷݟͤͲ͜Ζ

    View Slide

  38. ࠓͷ͍͍ͱ͜ΖΛߟ͑Δ΄͏͕
    ϙδςΟϒʹͳΕΔ

    View Slide

  39. ·ͱΊ
    • ͻͱͭͷλεΫΛ࠷খݶʹͯ͠΍Δ΂͖͜ͱΛ໌֬ʹ͠Α͏
    • ΋ͷ͝ͱΛਖ਼͘͠ཧղͯ͠ແବΛ࡟ݮ͠Α͏
    • ·ͣ͸༩͑ΒΕͨ؀ڥͰશྗΛਚͦ͘͏

    View Slide

  40. Thanks!

    View Slide