[번역] DroidKaigi 2017 ~ Android 앱 개발 채력 키우기
Oct 4, 2017. | By:
pluulove
본 포스팅은 DroidKaigi 2017 ~ Androidアプリ開発の体力づくり💪 을 기본으로 번역하여 작성했습니다
제 일본어 실력으로 인하여 오역이나 오타가 발생할 수 있습니다.
1p
Android 앱 개발 채력 키우기
2p, About Me
- Shinobu Okano
- @operandoOS
- Mercari, Inc.
- Souzoh, Inc.
3p, 질문이 있으시면
https://github.com/operando/DroidKaigi 에 issue라든지 올려주세요!
4p
Android 재미있습니까? 😊
5p
Android 개발 어려워
6p
그렇지않아요
7p
Android 개발 재미있어요 😊
8p
해봤지만, 무엇부터 시작해야 할지 모르겠다
9p
알 것 같아
10p, 앱을 만드는 과정
- 만들고 싶은 앱을 생각한다! 💪
- 환경 구축한다! 💪
- 구현하자! 💪
- 공개하자! 💪
11p
만들고 싶은 앱을 생각한다! 💪
12p
어떤 것을 만들면 좋을까 🤔
13p
음~… 🤔
14p
음, 음음~… 🤔🤔
15p
음음음, 음음~… 🤔🤔🤔
16p
나는 딱히 떠오르지않았다 😐
17p, 어느 금발이 말하길…
- 만들고 싶은 앱이 없었다
- 앱 디자인에 신경쓰여 구현 진척이 안됐다
18p
개인이 앱을 공개하는데 몇 년 걸렸는가
19p
4
20p
일? 개월?
21p
4
년입니다… 🙈
22p, 딜레마
- 어느 정도 만들어지면 구현보다도 그 전단계가 힘들다
- 행복한 고민이다고 실감한다 (기술력이 남아돈다)
- 구현은 가능하지만…같이 아무것도 안되는 사람이 된다 😨
23p, 딜레마 해소하자! 💪
잡동사니 앱이라도 괜찮다!
24p, 딜레마 해소하자! 💪
작게 시작하자
25p, 딜레마 해소하자! 💪
재미있어 보이는 것을 만들자
26p, 딜레마 해소하자! 💪
잡동사니라도 공개하면 배울게 있다
27p, 4년 걸려서 공개한 자랑스런 앱 💪
Neko Atsume Launcher
https://play.google.com/store/apps/details? id=com.os.operando.neko.launcher
28p
https://www.youtube.com/watch?v=4F2rEdtx18A
29p, Developer 등록해두자!
https://support.google.com/googleplay/android-developer/answer/6112435?hl=ja
30p
환경 구축한다! 💪
31p
Android Studio
32p, Android Studio에 빠진 곳
- 내가 알려주는 최강 Keyboard Shortcut ✨
- 내가 추천하는 최강 Plugin
33p
정말로 미안해요
34p
아무래도 좋다~ 😫
※ 처음에는 괜찮아!
35p, Android Studio
- 처음에는 기본 조작만 기억하는데 전념하는 것이 좋다
- 평소 IntelliJ 사용하고 있는 사람은 설정을 import하면 편하다
- shortcut 라든지 소개해도 “기억 못해”가 된다
- 기억하지 않아도 어느 정도 쓸 수 있다
- 단축키 피폐가 되지 않도록 주의를 기울인다
36p, 단지
- 지속적으로 사용하는 것이므로 이곳저곳 여러 가지 해보는 것이 필요
- 불편하네~. 다른 더 좋은 방법이 있을 것 같은데~라고 생각되면 찾아본다
- 여러 가지 기능이 들어있기 때문에 익숙해졌을 때 써보는 것도 좋다
37p, Android Studio User Guide
https://developer.android.com/studio/intro/index.html
38p, Android Studio 최속 입문 ~ 효율적으로 코딩하는 방법
http://gihyo.jp/dev/serial/01/android_studio
39p, Android Studio Plugin 주변
작년 DroidKaigi에서 몇가지 소개했습니다
https://www.slideshare.net/shinobuokano7/android-dev-tools-knowledge#40
40p
구현하자! 💪
41p, 구현하자! 💪
42p
Android 개발언어는 뭔가요? 🙂
43p
Java
입니다 💪
44p
어떻게 구현하면 좋을까 🤔
45p
샘플로 배우자 💪
46p, Android Studio New Project Wizard
47p
하나씩 만들어 움직이는게 귀찮다 😩
48p, Android Studio Sample Projects
https://github.com/operando/Android-Studio-Sample-Projects
49p, Android Studio Sample Projects
- Configuration를 바꾸는 것만으로 여러 샘플을 대략 테스트해볼 수 있습니다
- Android Studi 2.3에서 추가된 Bottom Navigation 샘플도 있어요!
50p, 공식으로 있는 샘플에서 배우자
- 다양 + 자세한 사양 부분까지 적혀있다
- 필요한 부분만 읽으면 된다
- 문서 갱신이 빠르다
51p, Android Training
https://developer.android.com/training/index.html
52p, Android Samples
https://developer.android.com/samples/index.html
53p, Google Samples - Github
https://github.com/googlesamples
54p, Google Developer Training
for Android
https://developers.google.com/training/android/
55p, Android Developer Fundamentals
https://developers.google.com/training/courses/android-fundamentals
56p, 입문서(책)으로 배우자
Android 학습에 대한 책을 간략하게 적혀있습니다!
http://hack-it-iron.hatenablog.com/entry/2016/07/16/182141
57p
앱 디자인은 어떻게 해야지 🤔
58p, 앱 디자인
- 개인 앱에서 디자인이 곤란하다
- Material Design은 은의 탄환이 아니다
- Material Design으로 하지 않으면 안된다고 생각하게 된다
- 만들 앱에 맞는 디자인을 중시해야 한다
59p, 그렇지만…
Material Design이라면 깔끔하게 만들 수 있다!
60p, Material Design Introduction
https://material.io/guidelines/
61p, Material Design Introduction
이해하면 지속적으로 도움이 되는 Material Design이외의 관점에서도 유용하다.
62p, 더욱 진화한 디자인 가이드라인
https://www.youtube.com/watch?v=R49m4-NlWs0
63p, Material Design Resources
- Material Icons
- Material Design Resources
64p, Material Desig 구현
- materialdoc
- Topeka for Android
- Material Components for Android
65p, 다른 앱 디자인을 참고하자
- Android Niceties
- 어떤 앱 디자인을 흉내내서 만든다
66p
공개하자! 💪
67p, 공개하자! 💪
- 완성되면 공개한다
- 앱이 완성되었는데 바로 공개하지않는 것은 아깝다
- Google Play의 설명도 대충하면 된다
68p, Google Play 설명도 대충하면 된다
Neko Atsume Launcher
Android NのEasterEggであるねこあつめもどきの一覧画面が簡単に起動できるNeko Atsume Launcher
ただそれだけです...🐱
69p, 공개때문에 괴로워 😩
Google Play Developer Help Center 보자
https://support.google.com/googleplay/android-developer
70p, 여기까지 정리
- 갈팡질팡해서 만들지 못하는 것도 아까우므로 잡동사니라도 해나가자 💪
- 하나부터 만들기위해 도큐먼트는 갖춰있다
71p
앱 제작 흐름을 이해했어 💪
72p
더 좋은 앱 만들고 싶은데 🤔
73p, 더 좋은 앱 만들고 싶은데 🤔
74p, 더 좋은 앱 만들고 싶은데 🤔
75p ~ 76p, 여러 앱 만들었네 🚀
- 최근 2년간 만든 것
- Mercari (운영)
- アッテ (신규)
- Taxnote (신규)
77p
3가지 앱을 만드는데 있어서 필요했던 기술
78p
여러가지 있는데 🤔🤔🤔
79p, 3가지 앱을 만드는데 있어서 필요했던 기술
- Android API
- Google Play Serices
- 새로운 OS 버전 대응
80p, 3가지 앱을 만드는데 있어서 필요했던 기술
실제로 더 있지만 특히 이야기해두고 싶은 것입니다!
81p
Android API
82p, Android API
- 가장 중요한 지식
- 알고 있는가 모르는가의 경계
- 자주 쓰이는 API는 그럭저럭 정해져 있다
83p, Android API를 이해하자 💪
공식 문서 · Reference를 읽는다
84p, Android API를 이해하자 💪
85p, Android API를 이해하자 💪
86p, Android API를 이해하자 💪
- 여러 코드를 읽고 API 사용방법을 이해한다
- Android 내부 구조를 읽는다
- OSS의 Library를 읽는다
87p, Android API를 이해하자
88p, Android API를 이해하자 💪
배운 것을 output 한다
89p, 배운 것을 output 한다
- 풀 스크래치(그대로 사용)로 RadioGroup와 RadioButton를 구현해봤다
- ANDROID ID가 어떻게 생성되는지 대략 알아봤다
90p, 시대의 흐름과 API를 생각한다
- 인터넷에서 찾아서 나오는 정보가 오래되고 있다
- 비추천 API
- 더 나은 API가 있어요! 같은 것
91p, 비추천 API와의 싸움
- Android Studio에서 비추천이라고 나오니 확실히 본다
- 도큐먼트에 “대신에 이걸 사용해!”라고 적혀있다
- Lint 돌려서 비추천 API를 사용하고 있지 않은가 점검한다
92p, Android Studio에서 비추천이라고 나오니 확실히 본다
getResources().getDrawable(R.mipmap.ic_launcher);
ContextCompat.getDrawable(this, R.mipmap.ic_launcher);
93p, 도큐먼트에 “대신에 이걸 사용해!”라고 적혀있다
getDrawable
Drawable getDrawable (int id)
This method was deprecated in API level 22.
Use getDrawable(int, Theme) instead.
94p, Lint 돌려서 비추천 API를 사용하고 있지 않은가 점검한다
95p
당신의 구현하는 방법 최신판
으로 되어 있습니까?
96p, 더 나은 API 있어요! 같은 것
- 앱을 사용하는 사용자가 기대하는 움직임이 무엇인가
- OS 자체는 필요로 하는 API를 제공하고 있을 … 터이다..
- 저전력이라면 Doze
- 모바일에서도 화면이 커졌다, 하면서 작업하고 싶은 앱을 넘나들며 뭔가 하고 싶다 = Multi-window
97p, 더 나은 API 있어요! 같은 것
- 필요에 대한 기술 캐치업이 중요
- 새롭게 제공되는 API는 지금의 니즈, 장래의 니즈를 내다본 것
98p, 더 나은 API 있어요! 같은 것
오래된 API를 사용해도 구현 가능하지만, 그것은 이전의 사용자가 요구하던 움직임을 실현하기 위한 것이고, 지금의 사용자가 요구하는 움직임을 실현하려면 이쪽의 새로운 API가 좋아! 라는 기분으로 앱 제작하자 😎
99p
Google Play Services
100, Google Play Services
- Google Play Services를 통해서 Google의 서비스를 앱 내에서 사용가능 하도록 한다
- 간단하게 Google 서비스를 앱 내에 포함시킬 수 있다
101p
앱을 만드는데 있어서 빠뜨릴 수 없는 것이 가득
제공되고 있는 보석함 💎🎁
102p
멋져 😍
103p, Overview of Google Play Services
https://developers.google.com/android/guides/overview
104p, Google Play Services로 사용하고 있는 기능
- Mercari - plus, wallet, appinvite, gcm, 그외 다수
- アッテ - maps, location, gcm
- Taxnote - In-app Billing(앱내 과금)
105p, Google Play Services 공략 키 🔑
- Google Play Services를 사용해 어떤 것이 가능한지 파악해둔다
- 새로운 기능이 추가된 것을 쫓는다
106p, Google Play Services 공략 키 🔑
- Google Play Services Release Notes
- Google Developers - Youtube
107p ~ 108p, 자주 확인하는 Android 개발에서 중요한것 Release Notes 링크 모음
https://qiita.com/operandoOS/items/d2feb53cd55e94c4e9a6
이 정리 최고! (자화자찬)
109p
보다 빠르게 ⚡
110p
Google Play Services Public Beta Program
111p, Google Play Services Public Beta Program
https://developers.google.com/android/guides/beta-program
112p
새로운 OS 버전 대응
113p, 새로운 OS 버전 대응
114p, Andorid M
- RuntimePermission
- Auto Backup
- Doze
- Apache HTTP Client Removal
- etc.
115p, Android N
- Multi-window
- Doze 개선판!!
- Project Svelte: Background Optimizations
- App Shortcut
- etc.
116p
새로운 OS 버전 대응에 맞춘 우리들의 싸움
117p, 광속 ⚡ Mercari Android M 대응 🚀
- Android M 정식 배포된 것이 2015/10
- Mercari Android M 대응
- 2015/10말 대응판 배포 🚀
- 정식 배포되고나서 1개월정도에 대응 완료 💯
- 덧붙여서 말하면 내가 했다 😊
118p, 늦게 온 신생 🚴 アッテ Android N 지원 🚀
- Android N 정식 배포된 것이 2016/8
- アッテ Android N 대응
- 2017/2 대응판 배포
- Multi-window 포기했다 🙈
- Support Library 올리는데 애먹었다
119p, 새로운 OS 버전 대응에 맞춘 우리들의 싸움
- 엔지니어 주도로 움직인다
- 대응한 타이밍도 정한다
120p, 새로운 OS 버전 대응 판단 기준 🤔
- 전체 그림이 보이면 대응 시기를 판별한다
- 이 업데이트는 앱에 있어서 부정 or긍정 🤔
- 점유율을 보면서 생각한다
121p, 대응을 위해 먼저 한것
- Preview부터 써본다
- compileSdkVersion, targetSdkVersion을 올려서 build 해본다
- 문서를 몇 번이라도 다시 읽는다
122p, Preview부터 써본다
- Android Beta Program에 참가한다 🙋
123p, Preview부터 써본다
124p, compileSdkVersion, targetSdkVersion을 올려서 build 해본다
- build가 성공하는가
- 오래된 API나 불필요한 API는 사라질 운명 😇
- 비추천 API 체크
- API Differences Report를 읽는다
- 시작해서 죽지 않는가
125p, Android API Differences Report
- Android N API Differences Report
126p, 문서를 몇번이라도 다시 읽는다
- 중요한 2개의 문서
- New Features Document
- Behavior Changes Document
127p, New Features Document
- Android N New Features Document
128p, Behavior Changes Document
- Android N Behavior Changes Document
129p, 어쨋든 관심가는 기사 등은 모아둔다
- 모두가 output 해주는 것을 모은다
- 촉각을 곤두세운다
130p, 항상 촉각은 세워둘 곳
- Qiita
- Blog
- Medium
- Twitter
- etc.
131p
하나씩 링크 소개하는 것도 뭐하므로…
- 저의 Android 피드 공개합니다!
- 관심가는 것이 있으면 등록해서 올려줘요!
https://goo.gl/Zqg5RD
134p, 여기까지 정리
- Android API를 이해의 연장선상에 앱을 만드는데 있어서 중요한 것이 가득 차있다
- Android 변화의 흐름을 따라가는 것으로 더 나은 앱을 만들 수 있는 가능성이 넓어진다
135p
Android 개발의 지금과 앞으로
136p
Android 개발의 지금
137p, Android 개발의 지금
- Android Framework이나 Library가 정리되어 있다
- Library 등을 구사해서 어떻게 앱을 요리할까
138p, 라이브러리에 대해서… 진짜 잘 정리되어있습니다 😊
- OSS의 동향을 파악한 구현방침 by wasabeef
- 지금부터 새롭게 Android 앱을 만들기 시작한다면. by wakwak312
139p, 어떻게 새롭고·좋은 라이브러리를 찾을까
- Android Arsenal를 지켜본다
- Github의 Feed를 사용해 찾는다
- 앱의 라이센스 페이지를 본다 👀
140p
New Android Layouts
141p
ConstraintLayout + FlexboxLayout
142p
지금 바로 다른 방에서 thagikura씨가 “Exploring new Android layouts”라는 이야기를 하고있다!!
143p
Conference
144p, 전세계에서 Conference가 이루어지고 있다
- Android Conferences
- Conference 자료를 본다
- droidcon은 봐두면 좋다
- 세계적으로 어떤 이야기를 하고 있는가?
- 무엇이 인기인가?
145p
Android 개발의 앞으로
146p, Android 개발의 앞으로
- Android O
- Instant Apps
- Android Things
- Chrome
- Java 9 Support??🤔
147p, Android 개발의 앞으로
- Android O
Instant Apps
- Android Things
- Chrome
- Java 9 Support??🤔
148p
Instant Apps
149p, Instant Apps
설치 필요없이 실행 가능한 앱
150p, Instant Apps
Access Apps From Anywhere
151p, Instant Apps
https://developer.android.com/topic/instant-apps/index.html
152p, Instant Apps
153p, Viki - Instant Apps의 사례
https://developer.android.com/topic/instant-apps/images/viki.gif
154p
멋지다 😍
155p, Preparing Your App Instant Apps
https://developer.android.com/topic/instant-apps/prepare.html
156p, Instant Apps을 위해 유의할 점
- 앱을 줄이고 필요없는 것은 버린다 🗑
- App Links를 대응한다
- 사용자 인증으로는 Smart Lock for Passwords 를 사용
- Instant Apps로 불가능한 것을 안다
157p, Instant Apps을 위해 유의할 점 (주관적 관점)
- Google Play Services 기능을 한층 더 숙지해서 제대로 사용할 필요가 있을 것 같다
- Google Play 외부에서 앱 도선을 얼마나 펼칠 수 있을까
- Web
- SNS / Messaging
- Real World
- etc.
158p
모듈화하는 애플리케이션
159p
정리
160
Thanks!!
comments powered by