Slide 1

Slide 1 text

͏͍ͯ͝Δ ίʔυϨϏϡʔ JUPDIBO IUUQJOTJEFQJYJWOFUFOUSZ ͏͝Πϥ5FDI5BMLT

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

͏͝Πϥഒ

Slide 4

Slide 4 text

ൃදऀʹ͍ͭͯ w ͍ͱ͓ w !J w IUUQJUPDIBOKQ w ϐΫγϒΞϧόΠτ೥໨ʹಥೖ w ॳΊͯձࣾͰ-5͠·͢

Slide 5

Slide 5 text

ൃදऀʹ͍ͭͯ w "OESPJEΞϓϦ։ൃऀ w ൃදऀͷதͰ࠷΋͏͝Πϥʹؔͯ͠
 ஌ݟ͕ͳ͍Ͱ͢

Slide 6

Slide 6 text

͏͝Πϥʹ͍ͭͯͪΐͬͱߟ͑ͯΈͨ | ΒΜͩΉ͚Μ͖Ύ͏͡ΐ! http://rndomhack.com/2014/07/04/%E3%81%86%E3%81%94%E3%82%A4%E3%83%A9%E3%81%AB %E3%81%A4%E3%81%84%E3%81%A6%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8%E8%80%83 %E3%81%88%E3%81%A6%E3%81%BF%E3%81%9F/ l࣮ࡍͷ࿩͸͏͝Πϥ 5FDI5BMLTͳΜ͔ʹ ߦ͚͹͍͍͔΋͠Ε· ͤΜɻz

Slide 7

Slide 7 text

࣮ࡍͷ࿩Λ͠·͢

Slide 8

Slide 8 text

͏͝Πϥͱ͸ w ͏͘͝Πϥετͷུ w දهͷΏΕ

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

͏͝Πϥͱ͸ w ͏͝ΠϥPS͏͘͝Πϥετ
 PS6HPJSBPS"OJNBUFE*MMVTUSBUJPO w ͏͝Πϥ͕ਖ਼໊ࣜশ͔Ͳ͏͔Θ͔Βͳ͘ ͳ͖ͬͯͨ w ͜ͷ৔ʹ͓͍ͯ͸͏͝ΠϥͰਐߦ͠·͢

Slide 12

Slide 12 text

ίʔυϨϏϡʔ
 ʹ͍ͭͯ

Slide 13

Slide 13 text

"OESPJEΞϓϦ w ଞϓϩδΣΫτͰ͸(JU-BC͕࢖ΘΕͯ ͍Δ͕ɺΞϓϦͱ͍͔ͭ͘ͷϓϩδΣ ΫτͰ͸(JU)VC͕࢖ΘΕ͍ͯΔ w ݱࡏ"OESPJEΞϓϦͷίʔυΛॻ͍ͯ ͍Δͷ͸ࣾһ໊ΞϧόΠτ໊

Slide 14

Slide 14 text

ϨϏϡʔͷྲྀΕ

Slide 15

Slide 15 text

1VMM3FRVFTU ཱ͕ͭ

Slide 16

Slide 16 text

ϨϏϡʔͯ͠ʂ ཉٻߴ·Δ

Slide 17

Slide 17 text

ϨϏϡʔΛ͢Δ

Slide 18

Slide 18 text

Αͦ͞͏

Slide 19

Slide 19 text

Α͞

Slide 20

Slide 20 text

IUUQTUXJUUFSDPNUPUPUPTIJTUBUVTFT

Slide 21

Slide 21 text

-(5. -00,4(00%50.& IUUQXXXMHUNJOJ;6;

Slide 22

Slide 22 text

ಈ͖ॏཁ

Slide 23

Slide 23 text

ίʔυϨϏϡʔʹ ಈ͖Λ

Slide 24

Slide 24 text

͏͍ͯ͝Δ ίʔυϨϏϡʔ

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

DPNNFOUT

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

BEEJUJPOT EFMFUJPOT

Slide 30

Slide 30 text

େྔͷมߋ ഭΓ͘Δίʔυ

Slide 31

Slide 31 text

్தͰϨϏϡΞ͕ มΘͬͨΓͨ͠

Slide 32

Slide 32 text

มߋଟ͗ͯ͢ ݟΕͳ͍

Slide 33

Slide 33 text

ͦ͜ΛͳΜͱ͔

Slide 34

Slide 34 text

ػೳ໘ͷϨϏϡʔ͸ લͷϨϏϡΞ͕طʹ ͍͍ͩͨ΍͍ͬͯͨ

Slide 35

Slide 35 text

ओʹ࡞๏ͳͲͷ Α͘ͳ͍ίʔυ ΛϨϏϡʔͨ͠

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

ίʔυͷ࿩

Slide 38

Slide 38 text

ਓͷϨϏϡΞ !@@DIPDPNFMPO !J

Slide 39

Slide 39 text

ྫ֎Λ QSJOU4UBDL5SBDF͠ͳ͍ ✘ Bad ! 1 try { 2 // something code 3 } catch (SomethingException e) { 4 e.printStackTrace(); 5 }

Slide 40

Slide 40 text

ྫ֎Λ QSJOU4UBDL5SBDF͠ͳ͍ ✔ Good ! 1 try { 2 // something code... 3 } catch (SomethingException e) { 4 // custom log utils 5 LogUtils.e("PixivAndroidApp", "SomethingException", e); 6 }

Slide 41

Slide 41 text

*%&͕ੜ੒͢Δ ίϝϯτΛফ͢ ✘ Bad ! 1 package jp.pxv.android; 2 3 /** 4 * Created by Chobi on 2014/05/26. 5 */ 6 7 public class CreatedByComment { IUUQTUBDLPWFSqPXDPNRVFTUJPOT

Slide 42

Slide 42 text

*%&͕ੜ੒͢Δ ίϝϯτΛফ͢ ✔ Good ! 1 package jp.pxv.android; 2 3 public class CreatedByComment { IUUQTUBDLPWFSqPXDPNRVFTUJPOT

Slide 43

Slide 43 text

ఆ਺͸TUBUJDpOBMͰ 1 public class Constants { 2 // ✘ Bad 3 private final String BAD_FOO = "foo"; 4 private final String BAD_BAR = "bar"; 5 6 // ✔ Good 7 private static final String GOOD_FOO = "foo"; 8 private static final String GOOD_BAR = "bar"; 9 }

Slide 44

Slide 44 text

ม਺໊ ✘ Bad 1 @Override 2 public void onProgressChanged(float progressRate) { 3 final float _progressRate = progressRate; 4 uiThreadHandler.post(new Runnable() { 5 @Override 6 public void run() { 7 if (_progressRate == 1) { 8 progressBar.setVisibility(View.GONE); 9 } 10 } 11 }); 12 }

Slide 45

Slide 45 text

ม਺໊ ✔ Good 1 @Override 2 public void onProgressChanged(final float progressRate) { 3 uiThreadHandler.post(new Runnable() { 4 @Override 5 public void run() { 6 if (progressRate == 1) { 7 progressBar.setVisibility(View.GONE); 8 } 9 } 10 }); 11 }

Slide 46

Slide 46 text

ଞʹ͸ w ্ྲྀϒϥϯνͰ͢Ͱʹมߋ͞Ε͍ͯΔ ΋ͷ͕1VMM3FRVFTUͷϒϥϯνͰ΋ಉ ͡มߋͷผͷDPNNJUΛ͍ͯ͠Δ w ˠఆظతʹ্ྲྀϒϥϯνΛ
 git merge --no-ffͰऔΓࠐΊ͹ Α͍

Slide 47

Slide 47 text

·ͱΊ w มߋ͕ଟ͗͢ΔͱϨϏϡʔ͠ʹ͍͘ w ϨϏϡʔΛසൟʹߦ͏ͳͲ͢Δඞཁ͕͋Δ ˠ1VMM3FRVFTUͷ୯ҐΛࡉ͔͘͢Δ w ͏͔͝ͳ͍ίʔυΑΓ͸͏͘͝ίʔυͷ΄ ͏͕͍͍ w ίʔυ͸அવ͖Ε͍ͳ΄͏͕͍͍

Slide 48

Slide 48 text

͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠