1ヶ月でAndroidカメラアプリ開発(1/4)
by
sakebook
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
̍ϲ݄Ͱ ANDROIDΧϝϥΞϓϦ։ൃ @Trunk ञຊ৳ 2016/3/13
Slide 2
Slide 2 text
͡Ίʹ
Slide 3
Slide 3 text
ࣗݾհ ञຊ৳ ੴݝ @sakebook Android 3͘Β͍ iOS ͪΐͬͱ ϥΠϑϩά͖
Slide 4
Slide 4 text
ຊͷྲྀΕ • ࡞ΔΞϓϦͷσϞ • Androidʹ͍ͭͯ • ։ൃڥઃఆ • ։ൃڥղઆ • ΞϓϦͷσόοά • ιʔείʔυཧ • Adobe SDKಋೖ
Slide 5
Slide 5 text
࡞ΔΞϓϦͷσϞ
Slide 6
Slide 6 text
ANDROID
Slide 7
Slide 7 text
ANDROIDͱ • Google͕։ൃ͢ΔΦʔϓϯιʔεͳ ϞόΠϧ͚ϓϥοτϑΥʔϜ
Slide 8
Slide 8 text
ΞʔΩςΫνϟ https://ja.wikipedia.org/wiki/Android
Slide 9
Slide 9 text
όʔδϣϯ • ࡉ͔͍ͷΛؚΊΔͱ 20Ҏ্ͷछྨ (API LEVEL) • 4.1Ҏ͕߱90%ऑΛΊΔ (2015/6/1)
Slide 10
Slide 10 text
APK • ΞϓϦͷ֦ுࢠ • Application PaKage ͔Β͖͍ͯΔ • ։ൃͨ͠ΞϓϦ̋̋.apk ͱ͍͏ܗʹͳΔ
Slide 11
Slide 11 text
։ൃڥ
Slide 12
Slide 12 text
ANDROID STUDIO • Intellij IDEAΛϕʔεʹͨ͠౷߹։ൃڥ(IDE) • Google͕։ൃ • Androidͷ։ൃʹಛԽ • Eclipseଔۀ͍ͯͩ͘͠͞(ADT͕։ൃऴྃ)
Slide 13
Slide 13 text
͊͞͡ΊΑ͏
Slide 14
Slide 14 text
NEW PROJECT • Application name • ΞϓϦͷ໊લ • Company Domain • ࣗΛϢχʔΫʹ ͢ΔυϝΠϯ
Slide 15
Slide 15 text
NEW PROJECT • Package name • ΞϓϦΛϢχʔΫʹ ͢Δจࣈྻ • ଞͷΞϓϦͱॏෳېࢭ • Project location • PCͷϓϩδΣΫτύε
Slide 16
Slide 16 text
NEW PROJECT • Phone and Tablet • API 16(4.1) • Empty Activity • Activity ≒ ը໘ • ͦͷ··(ޙ͔ΒมߋՄೳ)
Slide 17
Slide 17 text
ϓϩδΣΫτߏ
Slide 18
Slide 18 text
• ϓϧμϯΛ Android -> Project ʹมߋ
Slide 19
Slide 19 text
• MyApplication(Root) • ϓϩδΣΫτϧʔτ • .gradle/ • ϩʔΧϧϦϙδτϦ • .idea/ • IDEͷઃఆঢ়گ
Slide 20
Slide 20 text
• build/ • Ϗϧυ࣌ͷ ϑΝΠϧஔ͖ • gradle/ • Ϗϧυʹඞཁͳ Gradleஔ͖ • .gitignore • gitͰཧ͠ͳ͍ͷΛ ࢦఆ • build.gradle • ϓϩδΣΫτͷ ґଘؔΛهड़
Slide 21
Slide 21 text
• gradle.properties • Gradle͕ ࢀর͢ΔϓϩύςΟ • gradlew • Linuxͷ Gradle࣮ߦϑΝΠϧ • gradlew.bat • Windowsͷ Gradle࣮ߦϑΝΠϧ
Slide 22
Slide 22 text
• local.properties • ݸਓͷڥͷSDKͷ ύεͷઃఆ • MyApplication.iml • IntellijͷϑΝΠϧ • setting.gradle • GradleͷϏϧυϞδϡʔϧΛهड़ • External Libraries • ϓϩδΣΫτͷ ֎͔Βࢀর͍ͯ͠Δ ϥΠϒϥϦ
Slide 23
Slide 23 text
• app/ • Ϟδϡʔϧ • app/libs • ϩʔΧϧϥΠϒϥϦ ஔ͖ • app/build.gradle • ϞδϡʔϧͷϏϧυͷઃఆ ґଘؔΛهड़ • app/proguard-rules.pro • ಡԽʹ༻͍Δ
Slide 24
Slide 24 text
• src • ίϯύΠϧରͷ ϑΝΠϧஔ͖ • src/androidTest • ςετϑΝΠϧஔ͖ • src/main/java • ιʔεϑΝΠϧஔ͖ • src/main/res • ϦιʔεϑΝΠϧஔ͖
Slide 25
Slide 25 text
• drawable • ը૾xmlΛஔ͘ॴ • layout • ϨΠΞτͷxmlΛ ஔ͘ॴ • menu • ϝχϡʔͷxmlΛஔ͘ॴ • mipmap • ΞΠίϯը૾Λஔ͘ॴ
Slide 26
Slide 26 text
• dpi (Dot Per Inch: ը໘ີ) • mdpi(48x48) • hdpi(72x72) • xhdpi(96x96) • xxhdpi(144x144)
Slide 27
Slide 27 text
• dimens.xml • จࣈͷαΠζ ༨നͷͳͲΛ ఆٛͰ͖Δ • strings.xml • ςΩετΛఆٛͰ͖Δ • styles.xml • ΞϓϦͷςʔϚΛ هड़Ͱ͖Δ
Slide 28
Slide 28 text
• AndroidManifest.xml • ΞϓϦͱؒͷ Permission ActivityͳͲͷ ৼΔ͍ɺ Package nameͳͲ ༷ʑͳ͜ͱΛ ઃఆͰ͖Δ
Slide 29
Slide 29 text
ANDROID STUDIO SETTING
Slide 30
Slide 30 text
ίʔυิ • ్த·Ͱೖྗ͢Δͱ༧ଌͰ ݱࡏར༻ՄೳͳީิΛදࣔͯ͘͠ΕΔ • Android Studio -> Preference -> Keymap ->ʮCompletionʯ (͖ͳίϚϯυΛׂΓͯΔ)
Slide 31
Slide 31 text
ߦදࣔ • ϑΝΠϧͷࠨଆʹݱࡏͷߦΛ දࣔͯ͘͠ΕΔ • Android Studio -> Preference -> Editor -> General -> Appearance -> ʮShow line numbersʯ (νΣοΫΛೖΕΔ)
Slide 32
Slide 32 text
GENERATE • ࣗಈੜͰ͖ΔͷͷγϣʔτΧοτ (⌘+n)
Slide 33
Slide 33 text
ࠔͬͨ࣌ • (Alt + Enter)ͰͦͷͰͰ͖Δ͜ͱΛ αδΣετͯ͘͠ΕΔ
Slide 34
Slide 34 text
ଞʹͨ͘͞Μ • http://qiita.com/sugoi_wada/items/ db449d5cbb5c83cb586c • http://qiita.com/takke/items/ 5cbc629f7f65d6a49906
Slide 35
Slide 35 text
Ϗϧυ
Slide 36
Slide 36 text
ϏϧυγεςϜ • Gradle • GroovyͰهड़Ͱ͖Δ • setting.gradleͰରͱͳΔϞδϡʔϧΛࢦఆ • app/build.gradleʹϏϧυ࣌ͷλεΫΛهड़ • ίϚϯυϥΠϯ or ASͷػೳͰϏϧυ࣮ߦ
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
ίϚϯυϥΠϯ • $./gradlew assembleDebug • BuildType͕DebugͰϏϧυ͞ΕͨapkΛ app/build/outputs/apk ʹ࡞ • $./gradlew installDebug • ରͷσόΠεʹapkΛΠϯετʔϧ
Slide 39
Slide 39 text
࣮ػ OR ΤϛϡϨʔλ
Slide 40
Slide 40 text
࣮ػ͕ͳ͚ΕΤϛϡϨʔλ • ७ਖ਼ͷͷ͋͘ͼ͕ग़Δ΄Ͳ͍ • 2.x͔Βૣ͘ͳΔΒ͍͠ɻ • GenymotionΛ͏
Slide 41
Slide 41 text
GENYMOTION • രͷΤϛϡϨʔλ • ແྉ൛ͩͱ੍ݶ͕͋Δ͕ɺ ௨ৗར༻ͳΒे • https://www.genymotion.com/
Slide 42
Slide 42 text
LOGCAT
Slide 43
Slide 43 text
LOGCAT • ଓ͞Ε͍ͯΔσόΠε͕ྲྀ͍ͯ͠ΔϩάΛ ऩूɾදࣔ͢Δػೳ
Slide 44
Slide 44 text
දࣔͤ͞Δ • ͬͱίʔυʹ৮Δʂʁ • 14ߦʹ Log.d(“Trunk”, “onCreate”);
Slide 45
Slide 45 text
͜͏͍͏ͱ͖͕ • Alt + Enterͷग़൪ʂ
Slide 46
Slide 46 text
දࣔ͞Εͨ • ݟ͚͕ ͭ͘Α͏ʹ ͳͬͨ
Slide 47
Slide 47 text
अຐͳͷΛഉআ͍ͨ͠ • FilterΛ࡞͢Δ
Slide 48
Slide 48 text
ݟ͘͢ͳͬͨʂ
Slide 49
Slide 49 text
͍͚ • Log.v(String tag, String msg) ʮʯ • Log.d(String tag, String msg) ʮσόοάʯ • Log.i(String tag, String msg) ʮใʯ • Log.w(String tag, String msg) ʮܯࠂʯ • Log.e(String tag, String msg) ʮΤϥʔʯ
Slide 50
Slide 50 text
BREAKPOINT
Slide 51
Slide 51 text
BREAK POINT • LogcatͩͱΫϥογϡͨ͠ॴͰɺଞͷ͕ Ͳ͏ͳ͍ͬͯΔ͔ͳͲ͕Θ͔Βͳ͍ • Ϋϥογϡ͢Δ͔ۙΒಈ͖Λ ͭͿ͞ʹ͍͍ͨʂ
Slide 52
Slide 52 text
DEBUG • ϓϩάϥϜΛ ࢭΊ͍ͨॴʹ ؙΛઃஔ • ʮhogeʯͷ ΛݟͯΈΔ
Slide 53
Slide 53 text
͓͍ͷσόΠεਖ਼ৗͰ͢ • σόΠεଆʹද͕ࣔ ͰΔ͕ͭ
Slide 54
Slide 54 text
εςοϓΦʔόʔ • 15ߦͰBreak • ࢭ·ͬͨߦ ͦͷ࣌Ͱ ධՁ͞Εͳ͍
Slide 55
Slide 55 text
• ʮhogeʯ͕ఆٛ ͞Ε͍ͯΔ
Slide 56
Slide 56 text
• ʮhogeʯͷ த͕”huga”ʹ ͳ͍ͬͯΔ
Slide 57
Slide 57 text
ෳઃஔͨ࣌͠ • ݱࡏͷ Breakpoint͔Β ൈ͚ͨΓଓΛ Δ͜ͱ Ͱ͖Δ
Slide 58
Slide 58 text
ιʔείʔυཧ
Slide 59
Slide 59 text
GIT • ࢄܕόʔδϣϯཧγεςϜ • GitHub • GitΛ༻͍ͨWebαʔϏε
Slide 60
Slide 60 text
Α͘͏ίϚϯυ • git status • git diff ϑΝΠϧ • git checkout ϑΝΠϧ • git add ϑΝΠϧ • git commit -m “ϝοηʔδ” • git pull “ϦϞʔτϦϙδτϦͷURL” “ϩʔΧϧͷϒϥϯν໊” • git push “ϦϞʔτϦϙδτϦͷURL” “ϩʔΧϧͷϒϥϯν໊”
Slide 61
Slide 61 text
• git status • ݱࡏͷϒϥϯνͰ มߋ͕͋Δ͔Ͳ͏͔Λ֬ೝ • git diff ϑΝΠϧ • ରͷϑΝΠϧͷ Ͳ͜ʹมߋ͕͋Δͷ͔Λ֬ೝ
Slide 62
Slide 62 text
• git checkout ϑΝΠϧ • ରͷϑΝΠϧͷ ϩʔΧϧϦϙδτϦͰͷมߋΛ͢ • git add ϑΝΠϧ • ରͷϑΝΠϧΛcommitରʹ͢Δ
Slide 63
Slide 63 text
• git commit -m “ϝοηʔδ” • commitରʹͨ͠ϑΝΠϧͨͪΛ pushରʹ͢Δ • git pull “ϦϞʔτϦϙδτϦͷURL” “ϩʔΧϧͷ ϒϥϯν໊” • ϦϞʔτϦϙδτϦͷมߋΛϩʔΧϧʹ өͤ͞Δ
Slide 64
Slide 64 text
• git push “ϦϞʔτϦϙδτϦͷURL” “ϩʔΧ ϧͷϒϥϯν໊” • pushରʹͨ͠ϑΝΠϧͨͪΛϦϞʔτ ϦϙδτϦpush͢Δ
Slide 65
Slide 65 text
~/.GITCONFIG [user] name = Shinya Sakemoto email =
[email protected]
[color] ui = auto [alias] st = status br = branch -a ch = checkout cm = commit stt = status -uno difff = diff --word-diff • Α͘͏ͷ ొ͓ͯ͘͠ͱศར
Slide 66
Slide 66 text
ৄ͘͠ • http://blog.nanapi.co.jp/tech/2014/04/23/git-love/
Slide 67
Slide 67 text
GITHUBʹొ͠Α͏ • ઌ΄Ͳ࡞ͨ͠ϓϩδΣΫτΛొ • GitHubͰదͳϦϙδτϦ࡞ • $git remote add origin ϦϙδτϦ
Slide 68
Slide 68 text
ADOBE CREATIVE CLOUD
Slide 69
Slide 69 text
SDK • Software Development Kit • ࠓճͩͱAdobe͕ఏڙ͍ͯ͠ΔػೳΛɺΞϓϦ ʹΈࠐΉ͜ͱ͕Ͱ͖Δɻ • https://creativesdk.adobe.com/docs/android/#/articles/ gettingstarted/index.html • Ұॹʹઃఆ͠·͠ΐ͏