Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

우리모두 삽질한다

우리모두 삽질한다

"DEVFEST 23 Songdo"에서 발표한 "우리모두 삽질한다" 발표 자료입니다.

pluulove (노현석)

December 10, 2023
Tweet

More Decks by pluulove (노현석)

Other Decks in Programming

Transcript

  1. • ড 4֙р੄ ܻ݃ੋ٘. ࢗ૕ ா੉झ ҕਬ • ޙઁ੄ ೧Ѿ

    ߂ ߑೱ ١ э੉ Ҋ޹ೡ ష೗ • ઱ҙ੸ੋ ࠙ࢳ੉޲۽ ੿׹੉ ইש • ੉ग ೧Ѿ ߑߨ X, ੿ഛೠ ҳഅ ࣗѐ X য়ט ࢗ૕ ߊ಴ח…
  2. Index 1. ೐۽೙ ੹ജ গפݫ੉࣌ 2. ੉޷૑ ച૕ ੷ೞ അ࢚

    3. UI పझ౟ ~ ੉޷૑ 4. ੗োझ۞਍ ઁझ୊ 5. ߈ࠂ ౵ੌ ࢤࢿ ೒۞Ӓੋ ઁ੘
  3. Ҋ޹1. UI ࢸ҅ • ױੌ Viewীࢲ ૒੽ ۪؊݂ • Custom

    ViewGroup + ImageView 2ѐ ੉޷૑о ೞաੋ ҃਋о ׮ࣻ • Composeח Modifier#layout, Modifier#offset
  4. Ҋ޹2. ౠ੿ ੉޷૑ܳ ݢ੷ Ӓܻӝ • Draw ҙ۲ ೣࣻীࢲ Ӓܻח

    ࣽࢲܳ ઑ੿ • Z୷ ࣻ੿ (z, translationZ) • View#bringToFront() ==> ਋ࢶࣽਤܳ ઑ੿ೞח द੼੉ ೙ਃ
  5. Ҋ޹3. সؘ੉౟ / ࠭ ௿ܼ • ؘ੉ఠ সؘ੉౟द • যו

    ࠭ ӝળਵ۽ ߄ੋ٬ • 1ѐ ↔ 2ѐ ߸҃द ز੘ • ௿ܼद যו ೐۽೙੉ ݫੋੋо? • ࣘࢿী ٮۄ ߸҃ ೙ਃ (৘: Z୷)
  6. QA౱੄ ઁࠁ ೐۽೙ী׮о ࢎ૓ਵ۽ ࢸ੿ೞݶ উ٘݅ ೐۽೙ ࢎ૓੉ ٣ѱ ൒ܻѱ

    ࠁ੉Ѣٚৈ ೠߣ ഛੋ ࠗఌ٘۰ৈ QA౱ c______.b____ pluu.pluu żźża ٯ൤ ׮ܲѤ হਸబؘ ೠߣࠅѱਃ ֖ ઁ ই੉ਬ ࢎ૓੉ Ӓېب 1000x1000਷ ֈחؘ… QA౱ c______.b____
  7. 1333 x 1333 (1 : 1) 1125 x 2000 (0.5

    : 1) 2000 x 1125 (1.7 : 1) ੉޷૑ ୹୊ : https://m.post.naver.com/my/series/detail.naver? seriesNo=637119&memberNo=51071215&prevVolumeNo=30582870 ੉޷૑ܳ ۽٘ೞݶ? View ௼ӝ = 150dp
  8. పझ౟ ௏٘ Glide.with(this) .load(/** Image */) .circleCrop() .into(/** ImageView */)

    <ImageView android:layout_width="150dp" android:layout_height="150dp" /> पઁ ௏٘৬ 100% زੌೞ૑ ঋणפ׮.
  9. Ѿҗ View ௼ӝ = 150dp ࢠ೒ ੉޷૑ • 1333 x

    1333 (1 : 1) • 1125 x 2000 (0.5 : 1) • 2000 x 1125 (1.7 : 1)
  10. ѐ߹ ੉޷૑ ݽण ੌࠗ ੉޷૑о ࢶݺೞ૑ ঋ਺ 1333 x 1333

    (1 : 1) 1125 x 2000 (0.5 : 1) 2000 x 1125 (1.7 : 1)
  11. circleCrop optionalCircleCrop Downscale݅ оמೞৈ ࣗ࠺غח ܻࣗझܳ ୭؀ೠ ੸ѱ ࢎਊ Upscaleب

    ೲਊೞ޲۽ ੉޷૑ ಿ૕ਸ ࠁ੢ оמ. ؊ ݆਷ ݫݽܻܳ ࣗ࠺
  12. • ز੘੉ ੉࢚ೡ ٺ …. ҕध ޙࢲܳ ׮द ୓௼ •

    ઱ࢳب ׮द ࢓ಝࠁ੗ • (ଵҊ) Glide۽ ࠛ۞য়ח ੉޷૑੄ ઙഫ࠺о ௼׮ݶ, optionalCircleCrop()о ೙ࣻ • https://pluu.github.io/blog/android/glide/2022/11/20/glide-circlecrop/ TIP. Glide
  13. • पઁ ٣߄੉झ ഑਷ Emulator పझ౟ • पઁ ز੘җ ਬࢎࢿ੉

    ֫਺ • ٣߄੉झ ࢚కী ৔ೱ ߉਺ • ֎౟ਕ௼, ױ݈ ੿ࠁ ١ • ੌࠗ పझ౟ח ੘ࢿदী ࢿҕೡ ࣻ ੓૑݅, ৻ࠗ ৔ೱ(ؘ੉ఠ ࢏ઁ ١)ਵ۽ पಁೡ ഛ ܫ੉ ਫ਼੤੸ਵ۽ ઓ੤ UI Testীࢲ Fake੄ ೙ਃࢿ Fake
  14. • PlaceHolder/Error ੉޷૑ ா੉झо হח ҃਋ • ࠂࣻ ੉޷૑ ੹୓

    ۽٘غয ୭ઙ ചݶ੉ ֢୹غח ҃਋ • ࠛ߸ೠ ੉޷૑ੋо? • दр੉ ૑դ റীب పझ౟ח ࢿҕ೧ঠೣ • ѐߊ ࢲߡীࢲח औѱ ࢎۄ૕ ࣻ ੓਺ ೙ࣻ ੉޷૑
  15. Glide рۚೠ ز੘ ӝࠄ ઁҕغח Model Loader Bitmap, Drawable, String,

    Uri, File, Drawable Resource ID, URL, Byte[], Object Glide Registry Model Loader Decoding Storage
  16. Glide ೧Ѿߨ Glide Registry Model Loader Decoding ӝࠄ ઁҕೞח Loaderࠁ׮

    ࢶ೯ ୊ܻೞח Custom Loader ١۾ Custom Model Loader Storage
  17. • ೞ٘ਝয : పझ౟ ੢࠺ झ௼ܽ ௼ӝ, ֎౟ਕ௼ оמ ৈࠗ

    • ࣗ೐౟ਝয : ੉޷૑ ۄ੉࠳۞ܻо UI పझ౟ী ੸೤ೠ૑ ৈࠗ • झషܻ૑ : ৻ࠗ ੷੢ࣗ੄ ੉޷૑ܳ ۽٘ೞח ҃਋, ೧׼ URL੉ ೦࢚ ਬബೠ૑ ৈࠗ ੿ܻ. UI పझ౟੄ Ҋ۰ ࢎ೦
  18. ۨ੉ইਓ ҳઑ ਘәా੢ ž · · · ஠٘ ੉୓ ࣁ੉೐߅झ

    ImageView Button TextView पઁ ҳઑ৬ 100% زੌೞ૑ ঋणפ׮. Әঘࠁӝ Әঘࠁӝ
  19. ઁझ୊ оמ ৔৉ ࢶ੿ ਘәా੢ ž · · · ஠٘

    ੉୓ ࣁ੉೐߅झ पઁ ҳઑ৬ 100% زੌೞ૑ ঋणפ׮. Әঘࠁӝ Әঘࠁӝ
  20. ೐ܖ೐ܖ ղ ҅ઝ ਘәా੢ ž · · · ஠٘ ੉୓

    ࣁ੉೐߅झ ࢎਊ੗݃׮ ׮ܲ ఠ஖ ઝ → ਋ ઁझ୊ח ࢎਊ੗݃׮ ୭ୡ ఠ஖ द੘ ૑੼੉ ઑӘঀ ׮ܴ 1. ೧׼ ৔৉ ߄۽ ਤ 2. ೧׼ ৔৉ࠁ׮ ৽ଃীࢲ द੘ Әঘࠁӝ 1 2 Әঘࠁӝ
  21. ೐ܖ೐ܖ ղ ҅ઝ ਘәా੢ ž · · · ஠٘ ੉୓

    ࣁ੉೐߅झ ࢎਊ੗݃׮ ׮ܲ ఠ஖ ઝ → ਋ ઁझ୊ח ࢎਊ੗݃׮ ୭ୡ ఠ஖ द੘ ૑੼੉ ઑӘঀ ׮ܴ 1. ೧׼ ৔৉ ߄۽ ਤ 2. ೧׼ ৔৉ࠁ׮ ৽ଃীࢲ द੘ ఠ஖ೞӝী ੸੺ೠ ௼ӝੋо? Әঘࠁӝ Әঘࠁӝ
  22. ೐ܖ೐ܖ ղ ҅ઝ ਘәా੢ ž · · · ஠٘ ੉୓

    ࣁ੉೐߅झ ఠ஖ೞӝী ੸੺ೠ ௼ӝੋо? ӂ੢ ఠ஖ ௼ӝ Material 3 : ఠ஖ ߂ ನੋఠ : 48px x 48px • https://m3.material.io/foundations/accessible-design/ accessibility-basics Apple HIG : 44 x 44pt • https://developer.apple.com/design/human-interface- guidelines/accessibility#Buttons-and-controls Әঘࠁӝ Әঘࠁӝ
  23. ఠ஖ ৔৉ ਘәా੢ ž · · · ஠٘ ੉୓ ࣁ੉೐߅झ

    Әঘࠁӝ Әঘࠁӝ पઁ ҳઑ৬ 100% زੌೞ૑ ঋणפ׮.
  24. ఠ஖ ৔৉ ਘәా੢ ž · · · ஠٘ ੉୓ ࣁ੉೐߅झ

    Әঘࠁӝ Әঘࠁӝ 123,456,789ਗ पઁ ҳઑ৬ 100% زੌೞ૑ ঋणפ׮.
  25. ఠ஖ ৔৉ ਘәా੢ ž · · · ஠٘ ੉୓ ࣁ੉೐߅झ

    Әঘࠁӝ Әঘࠁӝ पઁ ҳઑ৬ 100% زੌೞ૑ ঋणפ׮. 123,456,789ਗ
  26. ਘәా੢ ž · · · ੉୓ ࣁ੉೐߅झ Әঘࠁӝ Әঘࠁӝ 123,4

    ஠٘ ਘәా੢ ž · · · ੉୓ ࣁ੉೐߅झ Әঘࠁӝ Әঘࠁӝ 123,456,789ਗ ஠٘ ѐࢶ ߡ੹
  27. TIP. ఠ஖ ৔৉ ഛࠁ 1. Padding ࢎਊ 2. TouchDelegate/HitRect ઑ೤

    (ৈ۞࠙੄ दрਸ ࡐ঒ਸ ࣻ ੓਺) 3. ఠ஖ ৔৉ ഛ੢ਸ SPEC-OUT 4. ӝఋ ଵҊ ੗ܐ > [ࢗ૕] ߡౡ੄ ௿ܼ ఠ஖ ৔৉ ழझథ ೧ࠁӝ > TouchDelegate/HitRect ~ ઁೠػ ߧਤ۽ ఠ஖ ੉߮౟ ٜ݅ӝ
  28. • ೐۽ં౟੄ ؀ӏݽച + ழझథ • Android Studio ѐߊ ҕా੄

    ೠ҅ • ߈ࠂ ੘স + ӝࠄ ҳࢿ ജ҃ ೒۞Ӓੋ੄ ೙ਃࢿ
  29. IDE৬ ҙ۲ػ ӝৈೠ ӝמٜ • Plugin • Feature Module ࢤࢿ

    • Sample Feature Module ࢤࢿ • Activity/Fragment ࢤࢿ • Custom Live Templates • Custom File Templates • Custom Lint ୭Ӕ ୶о
  30. UI Feature UI Common Domain Data Sample Sample apps Development

    ೙ਃೠ ӝמ݅ਵ۽ ҳࢿػ ࢠ೒ জ
  31. UI Feature UI Common Domain Data Sample ࠽٘ दр਷ ଵઑೞח

    Moduleࣻী ৔ೱ - Gradle Task Sample apps Development ೙ਃೠ ӝמ݅ਵ۽ ҳࢿػ ࢠ೒ জ
  32. Module݃׮ ೙ਃೠ ର੉ UI Feature UI Common Domain Data Sample

    App Android Application Android Library Core Java/Kotlin Library or Android Library Android Application ѐߊदী ݆਷ ੘স + ߈ࠂ ୭ୡ ӝࠄ ࢤࢿ
  33. ߈ࠂਸ ೒۞Ӓੋਵ۽ ؀୓ UI Feature UI Common Domain Data Sample

    App Android Application Android Library Core Java/Kotlin Library or Android Library Android Application - Application - Library - Sample Module - ӝࠄ(మ೒݁) ௏٘ UI
  34. • ׮ࣻ੄ ౵ੌਸ ٜ݅ ࣻ ੓ਵ޲۽ ಞܻ • դ੉بח য۰਍

    ಞ • ଵҊೡ ੗ܐ ࠗ઒ • ASী ҙ۲ؼࣻ۾, সؘ੉౟ द ࣻ੿ ߓನ ೙ਃ • рױೠ ӝמٜ਷ File Template, Live Template ӂ੢ TIP. ೒۞Ӓੋ ઁ੘?!
  35. ؊ ੗ࣁೠ ղਊ - AS ࢸ੿ - ೒۞Ӓੋ ઁ੘ Re:Android

    Studio ࢸ੿ ࢓ಝࠁӝ ߂ ࢤ࢑ࢿ ৢܻӝ https://speakerdeck.com/pluu/re-android-studio-seoljeong-salpyeobogi-mic-saengsanseong-olrigi