Android Lollipop Arrival โ Google Calendar Update โ Samsung Galaxy S6 Rumor Jayce talks about what is delaying the Lollipop update, Google calendar being revised, and the rumors surrounding the Galaxy S6! Good... source

#dc#dc comics#batman#batfamily#bruce wayne#batfam#dick grayson#tim drake#dc fanart

seen from Australia
seen from China
seen from China
seen from United States
seen from China
seen from United States
seen from United States
seen from United States
seen from China
seen from China
seen from Japan
seen from China
seen from Germany

seen from United States
seen from Germany
seen from China
seen from United Kingdom
seen from United States
seen from United States

seen from Germany
Android Lollipop Arrival โ Google Calendar Update โ Samsung Galaxy S6 Rumor Jayce talks about what is delaying the Lollipop update, Google calendar being revised, and the rumors surrounding the Galaxy S6! Good... source

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch โข No registration required โข HD streaming
Android Wear, Motorola 360, LG G Watch, Oppo Find 7 Rocks! - Android Weekly - Join Jayce as he talks about what is in store for new wearable devices running Android Wear. Oppo tries to make a splash with thier new high-end smart phone, the Oppo Find 7. Galaxy S5... source
Google Smart Contact Lens & Endgame: New Augmented Reality โ Android Weekly Join Jayce as he talks about Google's new Smart Contact Lens and their new augmented reality game based on author James Frey's new book series called Endgame. source
What HTC One M8 Means for Selfies? Android for Business & Google Now Comes to Chrome - Jayce talks about why the HTC One M8 has only a 4 megapixel rear facing camera, but a 5 megapixel front facing camera? Good news on Android for business, and how Google Now card features come to Chrome. HTC... source
What is Wrong with Samsung? - Android Weekly
What is Wrong with Samsung? โ Android Weekly
Join Jayce as he talks about what could be in store for Samsung. Can Samsung innovate? Can they remain at the top of Android OEMs?
Android Weekly:
LGโฆ source
View On WordPress

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch โข No registration required โข HD streaming
Android Weekly 171 ~ 180 ๋ฆฌ๋ทฐ
๋ฐ๋ฆฐ Android Weekly ๋ชฐ์๋ณด๊ธฐ!
171
Testing Intents With Espresso Intents
์ค, espresso intent๋ฅผ ์ฌ์ฉํ๋ฉด espresso์์ ๊ฐ๋จํ๊ฒ 1) ์ธ๋ถ์์ ๋๊ฒจ๋ฐ์ ์ธํ ํธ์ ๊ฐ์ ๋ง๋ค์ด๋ผ ์๋ ์๊ณ , 2) ํธ์ถ๋ ์ธํ ํธ์ ๊ฐ์ด ์ ๋๋ก ๋ค์ด์๋์ง ํ์ธํ ์ ์๋ค!
Unit Testing RxJava Observables and Subscriptions
RxJava๋ฅผ ์์จ์ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๋์ค์ ๋จ์ํ ์คํธ๋ผ๋ ์ ์ฉํ ๋ผ์น๋ฉด ๋์์ด ๋ ๋ฏ ํ๋ค.
Observable ํ ์คํธ ํ๊ณ ์ถ๋ค๋ฉด TestSubscriber ์จ๋ผ
subscribe ํ๋ ํด๋์ค ๋์ ํ ์คํธํ๊ณ ์ถ๋ค๋ฉด observable ๋ชฉํนํ๊ณ , ๊ธฐ๋ณธ ์ค์ผ์ฅด๋ฌ๋ฅผ override
Observable ์คํ ํ ์ ๋ฑ๋กํด์ observable ํธ๋ํนํ๋ผ.
Android Feature Graphic Generator
ํ๋ ์ด ์ฝ์์ ์ฑ์ ์ถ์ํ๋ ค๋ฉด ์์ด์ฝ ์ธ์๋ ๋ช ๊ฐ์ง ์ด๋ฏธ์ง ๋ฆฌ์์ค๋ฅผ ๋ ์ฌ๋ ค์ผ ํ๋ค. ์ค์ท์ ์ด์ฐ์ด์ฐ ๋ง๋ค๊ฒ ์ง๋ง ํผ์ณ ์ด๋ฏธ์ง๋ง ํด๋ ๋์์ธ์ด๋ ์นํ์ง ์์ ๊ฐ๋ฐ์์๊ฒ ๋ง๋ค๊ธฐ ๊ท์ฐฎ์ ๋ ธ๋ฆ์ธ๋ฐ, ๋์ถฉ ๊ธ์๋ง ํ๊ฐ๊ธด ์ด๋ฏธ์ง๋ฅผ ์์ฝ๊ฒ ๋ง๋ค ์ ์๋ ์ฌ์ดํธ์ด๋ค.
172
Speed up your app
๋์ ์ ์ธ ์ ๋ชฉ์ ๊ฑธ๋ง๊ฒ ์์ฃผ ํ๋ฅญํ ๊ธ์ด๋ค. Systrace, Traceview, AllocationTracker ๋ฑ ์ฌ๋ฌ ์ฑ๋ฅ ์ธก์ ๋๊ตฌ๋ค์ ์๊ฐํ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ ๋๋ก์ ์ชฝ์์ ์ ๊ฒฝ์จ์ผ ํ ๋ถ๋ถ์ ์ด๋ง๋ผํ ๊ธ์ด๋ค. ๊ตณ๊ตณ! ๊ทผ๋ฐ... ์์๋ ์ค์ ๋ช๊ฐ๋ง ์ฐ๊ฒ ๋๋ค.
Approaching Android with MVVM
data binding์ ์ด์ฉํด์ ์๋๋ก์ด๋์ MVVM ๋ชจ๋ธ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค. ์ฝ๋๊น์ง ์ ์ํ ๊ฝค ์น์ ํ ํฌ์คํ ์ด๋ ์ฐฌ์ฐฌํ ๋ณด๋ฉด ๋์์ด ๋ ๋ฏ ํ๋ค.
Archi
๋ ๋ค๋ฅธ MVP / MVVM ์์ . ๋๋ฌด ๋ง๋ค ใ ใ
173
Optimizing Android bytecode with ReDex
ํ์ด์ค๋ถ์ด ๋ง๋ ์ฝ๋ ์ต์ ํ ๋๊ตฌ์ธ redex๋ฅผ ์๊ฐํ๋ ๊ธ์ด๋ค. proguard ๋ฑ๋ ์ด๋ฏธ bytecode ์ต์ ํ๋ฅผ ํ๊ณ ์๋๋ฐ, ์ด๋ค ์ ์์ ๋ ๋์ ์ง ๋ชจ๋ฅด๊ฒ ๋ค.
Android development like a pro
fragment์ ๋จ์ ์ ์ง์ ํ๋ฉฐ presentation ๊ณ์ธต์ ๋์ ํ๋๋ฐ ๋ด๊ฐ ๋ณด๊ธฐ์ fragment๋ณด๋ค ํจ์ฌ ๋ ๋ณต์กํด๋ณด์ด๋๋ฐ ๋ด๊ฐ ์๋ชป ์ดํด๋ฅผ ํ๋? ๊ฒ๋ค๊ฐ WeakReference๊น์ง ์ด์ถ๋ํ๊ณ ๊ตฌํ์ฒด ํ๋๋ฐ์ ์์ interface๋ฅผ ์ ์ธํ๋๊ฑด ์ข ์ดํด๊ฐ ์๋๋ค. @_@
Async Android
์ฌ๋ฌ ์๋๋ก์ด๋์ ๋น๋๊ธฐ ๊ตฌํ ๋ชจ๋ธ์ ์๊ฐํ๋ฉฐ, RxJava์ ์๋์ ์ธ ์ฅ์ ์ ์ค๋ช ํ๋ค. ๊ธฐ์น์ RxJava.
Functional Android (II): Collection operations in Kotlin
kotlin์ ์ ๋ง ๋ค์ํ collection ํจ์๋ค์ด ์๊ตฌ๋! ๋น์ฅ ์จ๋จน์ ์ ์์ด์ ๊ตฐ์นจ๋ง ํ๋ฆฌ๊ฒ ๋๋ค.
Annotations to support your contracts
support annotation์ ๋ํ ๊ฐ๋จํ ์๊ฐ์ด๋ค. @IntDef ๋ฅ, @Nullable ๋ฅ, @UiThread ๋ฅ์ ์ ๋ ธํ ์ด์ ์ ์ ์ฐ๋ฉด ์ ์ ๋ถ์์ ๋์์ ๋ฐ์ ์ ์ฌ์ ์ค๋ฅ๋ฅผ ์ฐพ์๋ผ ์ ์์ผ๋ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํฉ์๋ค!
ExplosionField
๋ทฐ๋ฅผ ํญ๋ฐ์ํค๋ ์ ๋๋ฉ์ด์ ์ ์ ๊ณตํ๋ ์ฌ๋ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ฐ์! ์์ค๋ฅผ ์ด์ง ๋ณด๋ ValueAnimator๋ฅผ ๋ง๋ค์ด์ ๋ทฐ๋ก ๋ถํฐ bitmap์ ๋ง๋ค๊ณ , bitmap ๊ธฐ๋ฐ์ผ๋ก ๋ถ์์ง ์กฐ๊ฐ(Particle)์ ๋ง๋ค์ด์ ์ ๋๋ฉ์ด์ ์ ๋๋ฆฌ๋ค. ์์ด๋์ด ๋ฉ์ง๋ค!
RxJava for Android App Development
O'Reilly๊ฐ ์ ๊ณตํ๋ RxJava for Android App Development๋ผ๋ ๊ณต์ง e-Book์ ๋ฐ์ ์ ์๋ค. 30ํ์ด์ง ๋จ์งํ์ง๋ง RxJava๋ฅผ ์ฒ์๋ถํฐ ์ตํ๋ ค๋ ์ฌ๋(๋?)์๊ฒ ๋์์ด ๋ ๋ฏ.
174
Sharing files on Android in a world with runtime permissions
์๋๋ก์ด๋ M์ ๋ฐํ์ ํผ๋ฏธ์ ์ ์ฐธ ๋ง์ ๊ดด๋ก์์ ๋ง๋ค์๋๋ฐ, ์ด ๊ธ์์ action_send ๋ฅผ ๋ฐ์ ์ฒ๋ฆฌํ๋ ์ชฝ์์ READ_EXTERNAL_STORAGE ํผ๋ฏธ์ ์ ์ฒ๋ฆฌํด์ผํ๋ ๊ดด๋ก์์ ๋ค๋ฃฌ๋ค. ๊ธ์์ ์ธ๊ธํ mike murphy ์์ ์จ์ ๊ธ Runtime Permissions, Files, and ACTION_SEND์์ ์ด ๋ด์ฉ์ ์ข ๋ ๋ค๋ฃจ๊ณ ์๋ค.
file:// ๊ฐ ๋์ด์ค๋ฉด READ_EXTERNAL_STORAGE ํผ๋ฏธ์ ์ทจ๋ํด์ ์ ๊ทผํ๋ฉด ๋๊ณ , content uri ๊ฐ ๋์ด์ค๋ฉด FileProvider๋ฅผ "์" ์ฐ๋ฉด ๋๋ค. ๋ ContentProvider๋ฅผ ์ง์ ์จ์ ์ ๋ชฐ๋๋๋ฐ, FileProvider์ ๋ฌธ์ ๊ฐ ์๋๋ณด๊ตฐ. ํฌ์ผ...
175
Vectors For All (almost)
๋ด๊ฐ ์ด ๊ธ, ์๋๋ก์ด๋ ํ๋ก์ ํธ์ vector drawable์ ์ ์ฉํด๋ณด๋ ค๊ณ ์ฝ์งํ๋ ๊ธฐ๋ก๊ณผ ๋น์ทํ ๊ฒฐ๋ก ์ด๋ค. ์์ง svg -> vector drawble ๋ณํ ๋๊ตฌ์ ์์ฑ๋๊ฐ ๋์ง ์์, ๋์์ด๋๊ฐ ๋ง๋ค์ด์ค svg๋ฅผ ์ด์ฉํด ๋ฒกํฐ๋ฅผ ๋ณธ๊ฒฉ์ ์ผ๋ก ํ์ฉํ๊ธฐ ์ฝ์ง ์๋ค.
Develop a secured Android application
๋ณด์ ์ธก๋ฉด์์ ๋ ์์ ํ ์ฑ์ ๋ง๋ค๊ธฐ ์ํ ๋ช ๊ฐ์ง ๋ฐฉ์์ ์ ์ํ๋ค. ์ฐ์ ๋คํธ์ ๋ณด์ ๊ฐํ๋ฅผ ์ํด X509TrustManger๋ฅผ ํ์ฅํ ์ปค์คํ ํด๋์ค๋ฅผ ์ ์ํ๋ค. ๋ค์์ผ๋ก SharedPreference ๋ณด์ ๊ฐํ๋ฅผ ์ํ ๋ฐฉ์์ ์ ์ํ๋ค. ๋ง์ง๋ง์ผ๋ก ์์ค์ฝ๋ ๋ฆฌ๋ฒ์ค์์ง๋์ด๋ง์ ์ด๋ ต๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ค. ์ฒซ ๋๊ฐ์ง๋ ์ฌ๋ฐ๋๋ฐ ๋ง์ง๋ง์ ๋๋ ํํ๊ณ native library ์ฐ๋ผ๋ ์ข ๋ปํ ์ด์ผ๊ธฐ์ด๋ค.
Beware EditText on API 21
api 21์์๋ง edit text์ ํ๋จ padding์ด ๋ค๋ฅธ๊ฐ๋ณด๋ค. ์ด๊ฑด ๋ ๋ชฐ๋๋ค. ์ผ์ผ์ผ...
TextSurface
ํ ์คํธ๋ก ๊ฝค ๋ฉ์ง ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์ด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๋ฉ์ง๋ค! ์ด๋ฆ๋๋ก surface view๋ก ๋ง๋ค์๋?
176
Android Basic Project Architecture for MVP
๋๋ค๋ฅธ MVP ๊ธ. ๊ทผ๋ฐ Domain Layer ๋ผ๋ ๊ฒ ์ข ๋๋ฐ์๋ค. Model layer ๋ฅผ ๋ค๋ฅด๊ฒ ์ธ๊ธํ๊ณ ์ถ์๋ ๊ฒ ๊ฐ์๋ฐ, ๊ทธ๋ฅ ๋ชจ๋ธ ๋ ์ด์ด๋ผ๊ณ ํ๋๊ฒ ๋ง์ง ์์์๋ผ๋. ๊ทธ๋ฆฌ๊ณ GetPopularTitlesUsecaseController ์ฝ๋๋ฅผ ๋ณด๋ฉด ๋ง ์ด์ชฝ ์ด๋ฒคํธ ๋ฒ์ค์์ unscribe ํ๊ณ ์ ์ชฝ ์ด๋ฒคํธ ๋ฒ์ค์ subscribe ํ๋๋ฐ, ์ด๊ฒ ๊ด๋ฆฌ๊ฐ ๋๋ ค๋. ๊ฐธ์ฐ๋ฑ...
MVP ๋ผ๋ ํ์ดํ์ ๋น์ด ์ฌ๋๋ง๋ค ๋ค ๋ง๋๋ก ๊ตฌํํ๋ค๋ ๋๋์ด ๋ฌด๋ญ๋ฌด๋ญ ๋ ๋ค.
Material ProgressBar
๋กค๋ฆฌํ ํ๋ก๊ทธ๋์ค ๋ฐ์ ๋จธํฐ๋ฆฌ์ผ ํ๋ก๊ทธ๋์ค ๋ฐ๋ฅผ ๋น๊ตํ ์์์ด ์ฒจ๋ถ๋์ด ์๋๋ฐ, ๋ ๋ญ๊ฐ ๋ค๋ฅธ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค -_-;
Testing the Geofencing API
genymotion , genymotion shell ์ ์ด์ฉํด geofencing API ํ ์คํธ๋ฅผ ์ด์ผ๊ธฐํ๋๋ฐ, genymotion shell์ ์ด์ฉํด ์์น์กฐ์ํ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋ ๋ฏ ํ๋ค. ์ ์ด์ฉํ๋ฉด ์์น simulation์ ์๋ํํ๋ ๋ฐ ์ข์ ํํธ๊ฐ ๋ ๋ฏ ํ๋ค.
Using hardware layers to improve Android animation performance
ํ๋์จ์ด ๋ ์ด์ด๋ฅผ ์ด์ฉํ๋ฉด ์ ๋๋ฉ์ด์ ์ฑ๋ฅ์ ์ฌ๋ฆด ์ ์๋ค๋ ๊ธ. ์์ฝํ๋ฉด ์ ๋๋ฉ์ด์ ์์ ์ hardware layer ์ค์ -> ์ ๋๋ฉ์ด์ ์คํ -> layer ๋ฆฌ์ ํ๋ผ. min api lv 16+ ์ด๊ณ , ViewPropertyAnimator ๋ฅผ ์ด๋ค๋ฉด ๊ฐ๋จํ withLayer() ๋ฉ์๋๋ง ๋ถ์ฌ๋ ๋๋ค. ํ์ง๋ง ์ฌ๋ฌ ์์๋ค์ด animation ๋๋ ์์ค์ parent์ hardware layer๋ฅผ ์ ์ฉํ๋ค๋ฉด invalidate ๋ ๋ ๋ง๋ค GPU ์บ์ฑ์ด ์ผ์ด๋ ์ฑ๋ฅ์ด ์คํ๋ ค ๋จ์ด์ง ์ ์์ผ๋ ์กฐ์ฌํด์ ์ ์ฉํ๋ผ๊ณ ํ๋ค. ์ด๋ฐ ๋ฌธ์ ๋ ๊ฐ๋ฐ์ ์ต์ ์์ "Show hardware layers updates"๋ฅผ ์ผ์ ๊ณ์ ๋ น์๋ถ์ด ๋ค์ด์ค๋์ง๋ฅผ ๋ณด๊ณ ํ์ธํ ์ ์๋ค.
๋ง์ง๋ง ๋ถ๋ถ์ ์ํ์ ๊ฐ์ง๊ณ ํ ์คํธํ ๋ด์ฉ๋ ์์ผ๋ ์ฑ์ ์ ๋๋ฉ์ด์ ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ๊ผญ ์์๋ฌ์ผ ํ ๋ด์ฉ์ผ๋ก ๋ณด์ธ๋ค. ๊ตณ๊ตณ
Build a Material Design App with the Android Design Support Library
design support lib.์ ์ด์ฉํด ๋จธํฐ๋ฆฌ์ผ ๋์์ธ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋ค. ๊ทธ๊ฒ๋ณด๋ค ์ด google codelab ์ฌ์ดํธ ๊ต์ฅํ ์ ๋ง๋ค์๋ค!
Android Development Tidbits // No. 2
์งง์ ์๋๋ก์ด๋ ๊ฐ๋ฐ ํ์ ์ ์ ๊ธ์ด๋ค. ์๋ฆฌ์ฆ๊ฐ ๋ ๋ง์ด ์์ผ๋ ํจ๊ป ์ฝ์ด๋ณด์. : 1, 3, 4 , 5, 6, 7, 8
๋ช ๊ฐ์ง ๋์ ๋๋ ๊ฑธ ๊ผฝ์๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. * ๋จธํฐ๋ฆฌ์ผ ๋์์ธ์ 8dp ๋ ์ด์์ ํ์ธ์ฉ ์ฑ: keylines * sqlite query ์ ? ๋ณ์ ๊ฐ์๋ ํ์ ๋์ด ์์: Limits In SQLite ์ 9๋ฒ ํญ๋ชฉ์ธ๋ฐ, ๋๋ ํ๋ฒ ๋ฌธ์ ๊ฐ ๋ ์ ์ด ์๋ค. ์ ๋ฐ ํ๊ณ๊ฐ ์๋ค๋ ๊ฒ๊ณผ ๋ณ๋๋ก, ? ๋ณ์๋ฅผ ๋์ ์ผ๋ก ์ถ๊ฐํ๋ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ ๋ค๋ ๊ฒ ์์ฒด๊ฐ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค. * ContentLoadingProgressBar : ๊ป๋ปํ๊ณ ๋ฐ๋ก ์ฌ๋ผ์ง๋ progressbar๋ฅผ ํผํ๊ธฐ ์ํด์ ์ ๊น ๊ธฐ๋ค๋ ธ๋ค progressbar๋ฅผ ๋ณด์ฌ์ค์ผ ํ๋๋ฐ, ์ด ํด๋์ค๋ฅผ ์ฐ๋ฉด ์ฝ๊ฒ ๊ตฌํ์ ํ ์ ์๋๋ณด๋ค. * If you want your views to save state, you MUST give them an id : ์์ ์ form์ ๋ณต๊ตฌํ ๋ ๋ญ๊ฐ ์ด์ํ๊ฒ ๋ณต๊ตฌ๋์ด์ id ๋ค์ ์๋ดค๋ ๊ธฐ์ต์ด ๋๋ค. * When opening the camera app on Android 6.0+ with an intent, you need to request Camera permissions to actually get back a result : ์ด๊ฑฐ๋ ์ ๋ง ์ดํด๊ฐ ์๊ฐ. ๊ตณ์ด app ์์ฒด์ ์ผ๋ก permission ์ ์ธํ ํ์์์ด ์ปจํ ํธ์ ์ ๊ทผํ๋ผ๊ณ intent ๋ง๋ค์์ผ๋ฉด์ (๊ฐ์ด๋๋ ๊ทธ๋ ๊ฒ ํ๊ณ ), ์นด๋ฉ๋ผ intent๋ฅผ ๋ ๋ฆฌ๋ ค๋ฉด ์ฑ์ด camera permission์ ์ ์ธํด์ผ ํ๋ค. ๋ญ๊ฐ ์ด๋ทฐ์ง (ex. ๋ชฐ์นด์ฑ?) ์ ๋ง๊ธฐ ์ํ ์ฉ๋๋ผ๊ณ ๋ ๋ณด์ด๊ธด ํ์ง๋ง.
FlowingDrawer
ํจ๊ณผ ๋๋ด์ค๋ค ใ ใ
ViewInspector
๋ทฐ profiling, layout ๋ถ์ ๋ฑ๋ฑ์ด ๋ค ๋ค์ด๊ฐ์๋ ์ข ํฉ ์ ๋ฌผ์ธํธ๋ค. ํ๋ฒ ์ ์ฉํด๋ด์ผ๊ฒ ๋ค. ๊นํ ํ์ด์ง์ ๋์จ ๊ด๋ จ ๋๊ตฌ๋ค๋ ์ดํด๋ณด๋ฉด ์ข์ ๋ฏ.
177
Mastering the Coordinator Layout
design support lib. ์ ์ถ๊ฐ๋ coordinator layout ์๊ฐ ๊ธ์ด๋ค. ์ด๊ฒ๋ ์ตํ๋ฌ์ผ ํ๋๋ฐ ์ธ์ ์จ๋ณผ๋ฐ์ง @_@
The Complete Guide to Creating and Publishing an Android Library
์ ๋ชฉ์์ ์๊ธฐํ๋ฏ, android library ํ๋ก์ ํธ๋ฅผ sonartype์ repo์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์ ์ค๋ช ํ๊ณ ์๋ค. ์ํด๋ดค์ง๋ง, ์ ์ง ์ด๊ฒ๋ง ๋ฐ๋ผํ๋ฉด ๋ค ๋ ๊ฒ ๊ฐ์ ๋๋์ ์ธ ํ๋ง
Fragment transitions with shared elements
activity transition ๊ณผ ๋ฌ๋ฆฌ fragment transition์์ shared element ์ฒ๋ฆฌ๊ฐ ํจ์ฌ ๊ฐ๋จํ ๋ฏ ํ๋ค. fragment transition์์ shared eleement ํ์ฉ ๋ฐฉ๋ฒ์ ์ ์ ๋ฆฌํ ๊ธ์ด๋ค.
Exploring Google Play Services: Place Picker & Autocomplete
ํ๋ ์ด ์๋น์ค๋ง ์ด์ฉํด๋ ์์น ํผ์ปค / ์๋์์ฑ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๊ตฌ๋!
plaid
๋จธํฐ๋ฆฌ์ผ ๋์์ธ ์ผ์ผ์ด์ค ์ฑ์ธ๋ฐ, ์ ์์๊ฐ ๊ตฌ๊ธ์ nick butcher์ด๋ ๋ ๋์ฌ๊ฒจ๋ด์ผํ ๋ฏ!
178
The Perils of Loading Native Libraries on Android
๋ฉ์ฉกํ ๋ค์ด๊ฐ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ๋ฐ๋ UnsatisfiedLinkError ํฌ๋์ ๊ฑด์ด ์กํ๋๋ฐ, ์ด ๋ฌธ์ ์ ๋ฐ์ ์์ธ์ ๋ถ์ํ๊ณ , ํด๊ฒฐ์ฑ ์ผ๋ก Relinker ๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค. ReLinker v1.2 is Here! ๋ ๊ฐ์ด ์ฝ์ด๋ณด๋ฉด ์ข์๋ฏ.
native library๋ฅผ ์ฐ๋ ์ฑ์ด๋ผ๋ฉด ReLinker๋ฅผ ํ๋ฒ ๋ค์ฌ๋ค๋ด์๋ฏ!
Debugging RxJava on Android
gradle plugin์ผ๋ก ๋์ํ๋ frodo๋ผ๋, rxjava ๋ก๊น ๋๊ตฌ๋ฅผ ์๊ฐํ๋ค. ๊นํ ์คํ๊ฐ 850๊ฐ๋ ๋๋ค! RxJava๋ฅผ ๊ณต๋ถํ๊ฒ ๋๋ค๋ฉด ์ ์ฉํ๊ฒ ํ์ฉํ ์ ์์ ๋ฏ ํ๋ค.
On Activities using Theme.NoDisplay
ํ๋ฉด์ ๋ณด์ด์ง ์๋ ์กํฐ๋นํฐ๋ฅผ ์ ์ธํ ๋ Theme.NoDisplay๋ก ํ ๋ง๋ฅผ ์ง์ ํ๋ฉด, ์๋์ฐ ์์ฒด๊ฐ ์์ฑ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก finish() ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด ์ฑ ํฌ๋์์ ์ํ์ด ์์ผ๋, ์ด ๊ฒฝ์ฐ์ Theme.Translucent.NoTitleBar๋ก ํ ๋ง๋ฅผ ์ค์ ํ๋ผ๋ ์ด์ผ๊ธฐ.
Fixed aspect ratio with the Percent Support Library 23.1
์คํธ, PercentRelativeLayout๋ฑ์ ์ด์ฉํ๋ฉด ์์ ๋ทฐ์ aspect ratio๋ฅผ xml ์์ app:layout_aspectRatio="178%" ํํ๋ก ๋ฐ๋ก ์ง์ ํ ์ ์๊ตฌ๋. ๊ธฐ์กด์ ์ด๊ฑฐ ํ๋ ค๋ฉด ํ๋ฉด ํญ ์์๋ธ ๋ค์, ๊ฑฐ๊ธฐ์ ์ข ํก๋น ๊ตฌํ๊ณ ๋์ ์ฒ๋ฆฌํ์ด์ผ ํ๋๋ฐ. ๊ตณ๊ตณ
Dynamic Android dependency versions done right
gradle dependency์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ ๋์ ์ผ๋ก ํ๋จํ๋๋ก ์ค์ ํ๋ฉด ์๋ง lint warning์ด ๋ด๋ ๊ฑธ๋ก ๊ธฐ์ตํ๋ค. ๋๋ฌด ๋์ ์ด๋ฉด ๋ฌธ์ ๊ฐ ๋ ์ ์์ผ๋ฏ๋ก ์ด ๊ธ์์ generateLock, saveLock ์ด๋ gradle์ ์ต์ ์ ์๊ฐํ๋ค.
./gradlew --refresh-dependencies generateLock saveLock
๊ทผ๋ฐ ๋๋ ๊ทธ๋ฅ ๋์ ๋ฒ์ ์ฐ์ง ์๊ฒ ๋ค. ๊ตณ์ด ์ฌ๊ธฐ์ ๊ธฐ ๊น์ ์์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ ํ์ธํด์ผ ํ๋ ์๊ณ ๋ฅผ ํด์ผํ๋? ๋ํ ๋ฒ์ ์ฌ๋ฆฌ๋ฉด ๋ช ์์ ์ผ๋ก ์ปค๋ฐ์ ๋จ๊ธฐ๋ ๊ฒ๋ ํ์ํ๊ณ .
179
Unique Identifiers: Thereโs a better way with Instance ID
์์ดํฐ์์ ๋๋ฐ์ด์ค ๊ณ ์ ๊ฐ์ ์์คํ ์ด ์ ๊ณตํ๋๋ฐ, ์๋๋ก์ด๋์์ ์ด๋ฐ ๊ฐ์ ๊ด๋ฆฌํ๊ธฐ๊ฐ ์์ํ์ง ์์๋ค. ํ์ง๋ง ์ด์ instance id๋ฅผ ์ด์ฉํ๋ฉด ์ด๋ฐ ์์ ์ ์ข ๋ ์ฝ๊ฒ ํ ์ ์๋ค. ํ์ง๋ง ์ด๋ฆ ๊ทธ๋๋ก ์ฑ ์ธ์คํจ ์ธ์คํด์ค ๋ณ ์๋ณ์๋ผ์ ํด๋น ๋๋ฐ์ด์ค์ ์ฑ์ ์ฌ์ค์นํ๋ค๋ฉด ๊ฐ์ด ๋ฐ๋๊ฒ ๋๋, ๋๋ฐ์ด์ค ๊ณ ์ ๊ฐ์ด ํ์ํ๋ค๋ฉด uuid api ๋ฑ์ ์ด์ฉํด ์ง์ ๊ด๋ฆฌํด์ค์ผ ํ๋ค.
RxJavaโs Side Effect Methods
RxJava์์ steam๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฉํ ์ ์๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋๋ณด๋ค. resource ์ ๋ฆฌ ๋ฑ๋ฑ์ ํ์ฉํ ์ ์๋๋ณธ๋ฐ, RxJava๋ฅผ ์จ ๋ดค์ด์ผ ๋ง์ด์ง...
FlycoTabLayout
์ค์, ์งฑ์ด๋ค. ํญ์ ๋นจ๊ฐ ์ , ๋ฑ์ง ์ธํฐ์ผ์ดํฐ ๋ค ๊ตฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. ์ค๊ตญ๋ถ์ด ๋ง๋ค์๋๋ณธ๋ฐ, ๊ฐ์ ์์์๋ผ์ ์๊ตฌ์ฌํญ์ด ๋น์ทํ๋. ์ฌํผ ์ด๊ฒ๋ง ๊ฐ๋ค ์ฐ๋ฉด ๋ค ๋ ๋ฏ.
180
Improving UX with RxJava
RxJava ์ debounce ๋ฑ์ ์ด์ฉํด ๋๋ํ๊ฒ ์๋์์ฑ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. ๋ท ๋ถ๋ถ์ ์๋ฌ์ฒ๋ฆฌ๋ฅผ ์๊ฐํ๊ณ ์๋๋ฐ, ๋คํธ์ํฌ ์ฐ๊ฒฐ๋๋ฉด ์๋์ผ๋ก ์ฌ์๋ํ๋ค๊ณ ์๊ธฐํ๋๋ฐ ์ด ์ ๋ต์ ์ข ๋์ํ๊ธฐ ์ด๋ ต์ง๋ง, ํ์ฌ๊ฐ RxJava๋ฅผ ์ด์ฉํด ๋ณต์กํ ์๋๋ฆฌ์ค๋ฅผ ๊น๋ํ๊ฒ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค.
Exploring Meaningful Motion on Android
animator, interpolator, transition ๊น์ง ์๋๋ก์ด๋ ์ ๋๋ฉ์ด์ ์ ์ฌ๋ฌ ๋ถ๋ถ๋ค์ ๊ฐ๋ตํ ์๊ฐํด์ค๋ค. ํ๋ฒ ๋ค์ ๋ณต๊ธฐํ๋ ์ฉ๋๋ก ์ข์ ๊ธ.
Overscroll AppBarLayout Behavior
overscroll์ผ ๋ ์๋จ ์ด๋ฏธ์ง์ ํ๋ ํจ๊ณผ๋ฅผ ์ฃผ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. ์ด ๊ธฐ๋ฅ์ ์ธ ์ผ์ ์์ ๋ฏ ํ์ง๋ง, overscroll์ผ ๋์ ๋์๋ฐฉ๋ฒ์ ์ฐธ๊ณ ํ ๋ ์ข์ ๋ฏ.
Android Weekly 161~170 ๋ฆฌ๋ทฐ
๋ฐ๋ฆฐ Android Weekly ๋ชฐ์๋ณด๊ธฐ!
๊ทผ๋ฐ... ๋๋ฌด ๋ฐ๋ ธ๋ค. 2015๋ 9์ ๋ด์ฉ์ด๋ค-_-;
161
Spock Ahoi!
์ฝ๊ธฐ ์ข์ ํ ์คํธ๋ฅผ ์์ฑํ๊ธฐ ์ํ ์๋๋ ๋์์์ด ๊ณ์ ๋๊ณ ์๋ค. ์ด ๊ธ์์ spock ์ด๋ผ๋ ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํด ์๋๋ก์ด๋ ํ ์คํธ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค. spock์ groovy ๊ธฐ๋ฐ์ผ๋ก ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋๋ณด๋ค. ํ์, ๊ทผ๋ฐ ํ ์คํธ ์์ฑ์ ์ํด ๊ทธ๋ฃจ๋น๊น์ง ๋๊ณ ์์ผ ํ ๊น?
Java 8 Stream on Android
retrolambda์ lightweight stream api๋ฅผ ์กฐํฉํด์ ์๋๋ก์ด๋์์ java 8 ์ stream ๋น์ทํ๊ฒ collection์ ๋ค๋ฃฐ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค. ๊ทธ๋ฐ๋ฐ ์ค๋ฌด ํ๋ก์ ํธ์ ์ฌ์ฉํ๊ธฐ์ ์ ์ง๋ชจ๋ฅด๊ฒ ์ข ๊ฑฑ์ ์ด ์์ ๋ค. ๋ํ ๋๊ธ์์ ์ง์ ํ stream๊ณผ ๋ฌ๋ฆฌ lazy evaluation์ด ์๋๋ค๋ ํฐ ๋จ์ ๋ ๊ฑธ๋ฆฌ๊ณ .
Gradle tip #3: Tasks ordering
gradle์์ task ์์กด๊ด๊ณ, ์คํ์์๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค. dependsOn ์ ๋๋ฐ์ ๋ชฐ๋๋๋ฐ ์ฌ๋ฌ๊ฐ์ง ๋ง๋ค. ๋ณธ๋ฌธ์์๋ ์๊ฐํ์ง๋ง, finalizedBy ๋ฉ์๋๋ ์ต์ ๋ฒ์ ์ธ 2.10 ์์๋ ์ฌ์ ํ incubating ์ํ์ด๋ค.
B.dependsOn A : A๋ฅผ ๋จผ์ ์คํํ ๋ค์ B๋ฅผ ์คํํ๋ค.
B.mustRunAfter A : B์ A๊ฐ ๋ชจ๋ ์คํ๋ ๊ฒฝ์ฐ, B๋ A ๋ค์์ ์คํํ๋ค.
A.finalizedBy B : A๋ฅผ ์คํํด๋ B๊ฐ ์คํ๋๋ค.
Mortar-architect
mortar๋ฅผ ์ด์ฉํด ๊ตฌ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ๋ก ํ์ ๋๋๋ฐ, Activity๋ ์์ด ViewPresenter ๋ฑ๋ฑ์ผ๋ก ์ฑ์ ๊ตฌ์ฑํ๋, ์ด์ฏค๋๋ฉด ์ด๊ฒ ์๋๋ก์ด๋ ์ฑ์ธ๊ฐ ์ถ๋ค. ๋๋ฌด ๋ฉ๋ฆฌ ๊ฐ ๊ฒ ์๋๊ฐ.
ThreeTenABP
๊ฑฐ์ฅ jake wharton์ ํ๋ก์ ํธ๋ก, java 8์ Date์ Calendar๋ฅผ ๋์ฒดํ๊ธฐ ์ํด ์ถ๊ฐ๋ JSR-310 java.time.* ํจํค์ง์ ์๋๋ก์ด๋ ํฌํ ์ด๋ค.
์๋ฐ์์ Date, Calendar๋ฅผ ๋ค๋ค๋ณด๋ฉด ๊ฝค๋ ์ง์ฆ์ด ๋๋๋ฐ, ํ๋ฒ ์ ์ฉํด๋ณด๊ณ ์ถ์ด์ง๋ค.
162
android lint summary
์ปค๋งจ๋๋ผ์ธ์์ lint ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋๊ตฌ์ธ๋ฐ, ๋ html๋ก ๋ด์ ์ธ ์ผ์ ์์ ๋ฏ. ๊ทผ๋ฐ ์ด์๋ค.
A First Glance at Stetho tool
ํ๋ถ์ด ๋ง๋ ์๋๋ก์ด๋ ์ฑ ๋๋ฒ๊น ๋ธ๋ฆฟ์ง ๋๊ตฌ? stetho๋ฅผ ์๊ฐํ ๊ธ์ด๋ค. stetho๋ ์ ๋ง ์งฑ์ด๋ค. ์ด ๊ธ์์ view๋จ์ ๋ณด์ฌ์คฌ๋๋ฐ, ๋ฌด์๋ณด๋ค network๊ณผ db ๋ค๋น๊ฒ์ด์ ์ ์ด๋งํ ๋๊ตฌ๊ฐ ์๋ค. ์ด๊ฑฐ ๋ชฐ๋์ ๋ ํ๋ค๊ฒ proxy๋ฑ์ ๋ถ์์ง๋ง stetho๋ฅผ ์ฐ๋ฉด ์์ฃผ ์ฝ๊ฒ network ๋จ ์ถ์ ์ ํ ์ ์๊ณ , db๋ ์ง์ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๊ฑฐ๋ update ๋ฑ์ ์์ ๋ ํ ์ ์๋ค. ์ ๋ฌด์ฉ์ผ๋ก ๋ณธ๊ฒฉ์ ์ผ๋ก ์ฑ์ ๊ฐ๋ฐํ๋ค๋ฉด stetho๋ ํ์ ์ค์ ํ์์ด๋ค.
Architecting AndroidโฆThe evolution
retrolambda, rxjava, dagger ๋ค๋ฃฌ ๊ธ๋ค์ ๋งค์ฐ๋งค์ฐ ๋ง์์ ๋ฑํ ์ด์ฌํ ์ฝ์ด๋ณด์ง ์์๋๋ฐ, ๋ง์ง๋ง gradle script ๋ถ๋ถ์ด ๊ฝค ์ฌ๋ฐ๋ค. ์๋์ ๊ฐ์ด dependency๋ฅผ ๋ฐ๋ก ์ค์ ํ์ง ์๊ณ , ์ผ์ข ์ dictionary๋ฅผ ๋ง๋ค์ด์ ์ฐ๋๋ฐ, ์ฌ๋ฌ ์๋ธ ๋ชจ๋์ด ๋น์ท๋น์ทํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ์ ๊ฐ์ง๋ค๋ฉด ์ด๋ ๊ฒ ์ค์์ ์ ์ํด๋๊ณ ์ฐ๋ ๊ฒ๋ ์ข๊ฒ ๋ค.
dataTestDependencies = [ junit: "junit:junit:${jUnitVersion}", assertj: "org.assertj:assertj-core:${assertJVersion}", mockito: "org.mockito:mockito-core:${mockitoVersion}", robolectric: "org.robolectric:robolectric:${robolectricVersion}", ]
Improving Your Code With Android Support Annotations
support library์ ์๋ support annotation ์ค ๋ช ๊ฐ๋ฅผ ์๊ฐํ๋ค. ์ด ๊ธ๋ ์ด์ง ๋ณด๊ณ , ์ ์ฒด support annotation ๋ชฉ๋ก๋ ํ๋ฒ ์ดํด๋ณด์.
GlidePalette
์ ๋ช ํ ์ด๋ฏธ์ง ๋ก๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ glide์์ ์ฝ๊ฒ palette ๊ธฐ๋ฅ์ ์ธ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ฌ๋ฐ๋ค~
awesome-android-ui
์๋๋ก์ด๋ ui ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชฉ๋ก์ธ๋ฐ, ์์ฒญ๋๊ฒ ๋ง๋ค. ์ฐ์! ์๊ฐ๊ฐ๋ ์ค ๋ชจ๋ฅด๊ณ ๋ดค๋ค.
163
Glide - How Yelpโs Android App Loads Images
yelp ๊ธฐ์ ๋ธ๋ก๊ทธ์ ์ฌ๋ผ์จ ์ด๋ฏธ์ง ๋ก๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ glide์ ์ฅ์ ์๊ฐ ๊ธ์ด๋ค. ๊ฐ๋ณ๊ฒ ์ฝ์ด๋ณด์.
Overview of the Android Design Support Library
๋๋ค๋ฅธ design support library ์๊ฐ๊ธ์ด๋ค. ์ฐ์ผ์ฝ~ ํ๋ฒ ๋ชฉ๋ก๊ณผ ๋์์ ํ์ด๋ณด์.
InstaMaterial meets Design Support Library
instagram์ ๋จธํฐ๋ฆฌ์ผ ๋์์ธ์ ์ ์ฉํด๋ณด๋ ์ํ ํ๋ก์ ํธ์ธ instamaterial ์๋ฆฌ์ฆ์ design support library๋ฅผ ์ ์ฉํด๋ณธ ๊ธ์ด๋ค. navigation view, fab, coordinator layout์ ์ ์ฉํ๋ค. ๋ฉ์ง๋ค!
MAKING A TDD-BASED HACKERNEWS CLIENT FOR ANDROID
์ฑ์ ์ฌ๋ฌ ๊ตฌ์ฑ ์์์ ๋จ์ ํ ์คํธ๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ฐธ๊ณ ํ ์ ์๋ค.
Connect With the World Around You Through Nearby APIs
nearby api๋ฅผ ์๊ฐํ๋ ๊ตฌ๊ธ ๊ฐ๋ฐ์ ๋ธ๋ก๊ทธ ๊ธ์ด๋ค. ์ฒ์์ places api์ ๊ฐ์ด ์์น์ ๋ณด ๊ด๋ จ ๊ธฐ๋ฅ์ธ์ค ์์๋๋ฐ, ๊ทผ์ฒ์ ์ฑ ์ฌ์ฉ์๋ค์๊ฒ ๋ฉ์์ง๋ฅผ ๋ ๋ฆด ์ ์๋ ๊ธฐ๋ฅ์ด๋ค. ์คํธ! ํ๋ค์ด ์น๊ตฌ ๋งบ๊ธฐ์ ์ ์ฌํ ๋ฅ์ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ ๋ฏ ํ๋ค. ๊ธ์ ๋ณด๋ ์ด๋ฏธ trello์ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ํ๋ ํ๋ฒ trello ๊ฐ์ง๊ณ ํ ์คํธํด๋ด์ผ๊ฒ ๋ค.
164
Deferring Observable code until subscription in RxJava
square์ dan lew ์์ ์จ๊ฐ ์ด์ฌํ RxJava ๊ด๋ จ ๊ธ์ ์ฌ๋ ค์ฃผ๊ณ ์๋ค. RxJava๋ ๊ธ๋ง ์ฝ๊ณ ์ค์ ์์ ์์ง ์จ ๋ณด์ง ๋ชปํ์ง๋ง, ์ ๋ชฉ๊ณผ ๋ด์ฉ๋ง ๋ด์ observable์ subscribe ํ ๋ ๊น์ง ๊ฐ ํ๊ฐ๋ฅผ ์ง์ฐ์ํค๋ ๋ด์ฉ์ธ๊ฐ๋ณด๋ค. ํ์, RxJava๋ ๋ ์ธ์ ํด๋ณด๋.
MVVM on Android using the Data Binding Library
design support library์ ์ถ๊ฐ๋ data binding ๊ธฐ๋ฅ์ ์ด์ฉํ๋, ViewModel ๋ ์ด์ด๋ฅผ ์ค๊ฐ์ ๋ผ์ด๋ฃ์ด ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋ค. ๋ด๊ฐ data binding์ ์ฌ์ฉํ๋ค๊ณ ํด๋ ์ด๋ฐ ๋ฐฉ์์ ์ทจํ ๋ฏ ํ๋ค.
How to centralize the support libraries dependencies in gradle
๋ช๋ช ๋ค๋ฅธ ๊ธ์์๋ ๋ณธ, gradle์์ ์์กด์ฑ ๋ถ๋ถ์ ๊น๊ธํ๊ฒ ์ ๋ฆฌํ๋ ํ์ด๋ค.
WilliamChart
๊ฝค ์ด์ ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. 2012๋ ๋ง ํ๋ก์ ํธ๋ฅผ ํ ๋๋ง ํด๋ ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ช ๊ฐ ์๋๊ณ , ๊ทธ๋ค์ง ์ด์์ง ์์๋๋ฐ ์์ฆ์ ์ฐธ ์ด์ ์ฑ ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง๋ค.
Blurry
์ด๋ฏธ์ง ๋ธ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ค์ ์ชฝ์ ๋ณด๋ renderscript๋ ์ฌ์ฉํ๋๋ณด๋ค. ๋ธ๋ฌ ์ธ ์ผ์ด ์๋ค๋ฉด ์ ์ฉํ๊ฒ ๋ค. 2.3 ์ด์ ์ฌ์ฉ๊ฐ๋ฅ.
165
Android Testing Blueprint
unit test, instrumentation test ๋ฑ ๋ค์ํ ํ ์คํธ๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ฐธ๊ณ ์๋ฃ์ด๋ค. ๊ตณ๊ตณ
RxJava Code Review Part 1
RxJava ์ฝ๋ ๋ถ์๊ธ์ด๋ค. ์์ฒญ ๋ง์ ์ค ์์๋๋ฐ part1, part2 ๋๊ฐ๊ฐ ์ ๋ถ๋ค. ์ฝ์ด๋ด์ผ ํ ํ ๋ฐ...
Flux Architecture on Android
facebook์์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ฉ์ผ๋ก ์ ์ํ flux ์ํคํ ์ณ๋ฅผ ์๋๋ก์ด๋์ ์ ์ฉํด ๋ณธ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค.
dispatcher๋ ์ก์ ์ store์ ์ ๋ฌํ๋ ์ญํ ์ ํ๋๋ฐ, ์ฌ๊ธฐ์ eventbus๋ก ๊ตฌํํ๋ค. view๋ ๋ง ๊ทธ๋๋ก ui ๋ทฐ๋ก, ์๋๋ก์ด๋์์ activity๋ fragment๊ฐ ๋ด๋นํ๋ค. store๊ฐ ํต์ฌ์ธ ๋ฏ ํ๋ฐ, ๋น์ฆ๋์ค ๋ก์ง, ์ํ, ์ํ ๋ณ๊ฒฝ ์ด๋ฒคํธ ๋ฐํ ๋ฑ์ ๋ด๋นํ๋ค. ์ค๊ฐ์ ๋ณด๋ฉด sotres are not repositories ํฅ๋ฏธ๋ก์ด ๋๋ชฉ์ด ๋์จ๋ค. API๋ DB์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๋ ๊ฒ store์ ์ญํ ์ด ์๋๋ผ action์ด ์ ๊ณตํ data๋ค์ ๊ฐ์ง๊ณ state๊ด๋ฆฌํ๋ ๊ฒ ํต์ฌ์ธ ๋ฏ ํ๋ค. data ๊ฐ์ ธ์ค๋ ๊ฑด action์ ๋ง๋ค์ด๋ด๋ action creator๊ฐ ํ๋ค.
๋ญ๊ฐ ๊ฐ๋ ์ ์ข ์ฌํํ ๋ฏ ํ๋ฐ ์ด๊ฒ๋ ํ๋ฒ ์ดํด๋ด์ผ ํ ๋ฏ.
Using Espresso for Easy UI Testing
espresso๋ก ui ํ ์คํธ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค. UI ํ ์คํธ๋ฅผ ํ ๊ฒฝ์ฐ, api ๋ฑ์ ํธ์ถ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ๋ ๊น์ง ๋๊ธฐํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๋๋ฐ, ๋จ์ํ thread.sleep ๋ฑ์ผ๋ก ๋ถ์กฑํ ์ ์ด ๋ง๋ค. ์ฌ๊ธฐ์ IdlingResource ๋ผ๋ interface๋ฅผ ์ด์ฉํด ์ด๋ฐ ๊ฒฝ์ฐ๋ฅผ ๊น๋ํ๊ฒ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋ค. ๊ตณ๊ตณ!
166
Face Detection in Google Play services
๊ตฌ๊ธ ํ๋ ์ด ์๋น์ค๊ฐ ์ ๊ณตํ๋ mobile vision api ์ค ์ผ๊ตด ์๋ณ ๊ด๋ จ ๊ธฐ๋ฅ์ ์ค๋ช ํ๋ค. mobile vision api๋ ์ผ๊ตด ์๋ณ, ๋ฐ์ฝ๋(+QR์ฝ๋) ์ธ์ ๋๊ฐ์ง ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ง์ ๋ง๋ค๊ธด ๊ต~~~์ฅํ ์ด๋ ค์ด ๊ธฐ๋ฅ์ธ๋ฐ ๊ตณ๊ตณ!
FlatBuffers in Android - introduction
api ํต์ ์ ๊ฑฐ์ json์ผ๋ก ๋๋๋จ๊ฒฐํ ์ํ์ธ๋ฐ, ์ด ๋ ์์ ์ค๊ฐ๋ ๋ฐ์ดํฐ๋์ด๋ ์๋ฐ ๊ฐ์ฒด๋ก ํ์ฑํ๋ ๋น์ฉ ๋ฉด์์ ๊ทธ๋ค์ง ๋ฐ๋์งํ์ง๋ง์ ์๋ค. ์ด๋ฐ ์๊ตฌ๋ฅผ ํด์ํ๊ธฐ ์ํด ๊ตฌ๊ธ์ flatbuffer๋ฅผ ์ ๊ณตํ๋ค. flatbuffer๋ ๋ชจ๋ธ์ ๋ํ ์คํค๋ง๋ฅผ ์ ์ํ ํ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ์ปดํ์ผ๋ฌ๋ฅผ ์คํํ๋ฉด ๋ชจ๋ธ ๊ฐ์ฒด, ๋ณํ๋ ๋ฐ์ดํฐ ํ์ผ(json to flatbuffer binary)๋ฅผ ์์ฑํ๋ค. ์ด ๊ธ์ ์ด๋ฌํ ๊ณผ์ ์ ์ฝ๊ฒ ๋ฐ๋ผํ ์ ์๋๋ก ์ค๋ช ํ๋ค. ๋ชจ๋ ๋ฐ์ดํฐ ํต์ ์ flatbuffer์ ํ์ฉํ๊ธด ์ด๋ ต๊ฒ ์ง๋ง, ํน๋ณํ ๋ณต์กํ ๋ชจ๋ธ ๊ตฌ์กฐ๋ ์์ด ๋ง์ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ์ ๊ฝค ํจ๊ณผ์ ์ธ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํ๋ค.
Iconify just got a lot better
Iconify๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฐํ๋ค. TextView๋ฅผ ํ์ฅํด์ ํฐํธ ๊ธฐ๋ฐ ์์ด์ฝ์ ์์ฝ๊ฒ ํํํด ์ฃผ๋ ๋ทฐ๋ฅผ ์ ๊ณตํ๋ค. custom font๋ ์ฌ์ฉํ ์ ์๊ณ , ๋น๋น ๋์๊ฐ๋๋ก ์ค์ ๋ ๊ฐ๋ฅํ๋ค. ๋น๋น ๋์๊ฐ๋ ๊ฑธ ์ด๋ป๊ฒ ๊ตฌํํ์๊น ์ฐพ์๋ณด๋ span์ canvas rotate๋ฅผ ํ๊ณ ,post animation์ ๋ถ์ด๋ ๋ฐฉ๋ฒ์ ์ผ๋ค. ์คํธ~ ์ฌ๋ฐ๋ค!
Quick return with CoordinatorLayout
design support library์ ์ถ๊ฐ๋ CoordinatorLayout์ ์ด์ฉํด quick-return view๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ฝ๊ฒ ์ค๋ช ํ๋ค. ๊ตณ๊ตณ~
List of Android Testing Libraries
์๋๋ก์ด๋ ํ ์คํธ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋๊ตฌ๋ค์ ๋ชฉ๋ก์ด๋ค.
167
Tinting drawables
support library๊ฐ ์ ๊ณตํ๋ DrawableCompat๊ณผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๊ตฌํํ TintedBitmapDrawable์ ์๊ฐํ๋ค. ๊ทธ๋ฐ๋ฐ ๊ตณ์ด ์ด๊ฑธ ์จ์ผํ ๊น ์ถ์ ์๊ฐ์ด ๋ค๊ธด ํ๋ค.
Percentage Based Dimensions and Margins with the Percent Support Library
linear layout ์ด๋ relative layout์ด๋ผ๋ ๋ ๊ฐ์ ๋๊ตฌ๋ง ์ฐ๋ค๋ณด๋ฉด ์ค์ฒฉ๋ ๋ ์ด์์์ ํผํ๊ธฐ ์ด๋ ต๋ค. ์ ๋ง ๋ณต์กํ ๊ฑฐ๋ผ๋ฉด ๋ชจ๋ฅด๊ฒ ๋๋ฐ, "์ ์ด๊ฑฐ ๊ผญ ์ด ๋ฐฉ๋ฒ๋ฐ์ ์๋!" ํ๊ณ ์์ฌ์ธ ๋๊ฐ ๋ง์๋ฐ, Percent support library๊น์ง ํ์ฉํ๋ฉด ์ข ๋ ๋ ์ด์์์ ๊ฐ๋จํ ๋ง๋ค ์ ์์ ๋ฏ ํ๋ค. percent ํจํค์ง ์ ๊ณตํ๋ ๋ ์ด์์์ PercentFrameLayout ๊ณผ PercentRelativeLayout ๋ ๊ฐ์ง์ด๋, ์๋ง๋ relative layout์ ์ฃผ๋ก ์ธ ๋ฏ.
A small leak will sink a great ship
square์์ ๊ณต์ ํ ๋ฉ๋ชจ๋ฆฌ ๋ฆญ ํ์ง ์ฌ๋ก. leak canary๋ฅผ ์ด์ฉํด ๋ฉ๋ชจ๋ฆฌ ๋ฆญ์ ์ฐพ์๊ฐ๋๋ ๋ฒ์ธ์ alert dialog์์ ํํ ์ฐ๋ DialogInterface.OnClickListener์๋ค๊ณ . ์ด ๊ณผ์ ์ ์ฐพ์๋ด๋ ๊ณผ์ ์ ์ค๋ช ํ๋๋ฐ ์ฌ๋ฐ์ผ๋ ํ๋ฒ์ฉ ์ฝ์ด๋ณด์๋ผ.
Coordinator Behavior example
coordinator layout ์ํ์ธ๋ฐ ๊ฝค ํ๋ฅญํด๋ณด์ธ๋ค!
168
Tools of the Trade
tools namespace, support annotation์ ์ค๋ช ํ๋ค. ์ ํ์ฉํ๋ฉด ์๋๋ก์ด๋ ์คํ๋์ค์์ ์์ฝ๊ฒ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์ฐพ์๋ผ ์ ์๋ค.
Speed up your app
์ด ๊ธ์ systrace, MAT, hierarchy viewer ๋ฑ ๋ค์ํ ์ฑ๋ฅ์ธก์ ๋๊ตฌ๋ฅผ ์๊ฐํ๋ค. ๊ทผ๋ฐ pt๋ง ๋ด์ ์ด๋ค ๋ถ๋ถ์ ๊ฐ์กฐํ๋์ง ์ ๊ฐ์ด ์ค์ง ์๋๋ค. youtube ์์๋ ๊ฐ์ด ๋ด์ ๋ฏ
Android Camera 2 API
camera api๋ ํ๋ฒ ์ด์ง ์จ ๋ณธ ๊ฒฝํ๋ฐ์ ์๋๋ฐ, ๊ธฐ๊ณ๋ง๋ค ๋๋ฌด๋๋ฌด ๋ฌ๋ผ ์ด์ชฝ๋ ๋ค์ ํด ๋ณด๊ณ ์ถ์ง ์์๋ค. os ๋ฒ์ ์ฌ๋ผ๊ฐ๋ฉด์ api ๋ ๋ฒจ 21์ camera2 api ๊ฐ ๋์ ๋์๋๋ฐ, ์ด pt๋ฅผ ์ฝ์ด๋ด๋ ์ํ ๊ต์ฅํ ๋ณต์กํ๋ค. ๊ทธ๋ฅ ์นด๋ฉ๋ผ api๋ ์์ผ๋ก๋ ์ ๊ทผํ ์ผ์ด ์์์ผ๋ฉด ํ๋ ์๊ฐ๋ง ๋ค ๋ฟ์ด๋ค.
Preferences Support Library: Preference Fragments for API 7+, no matter the Activity
Preferences Support v7 Library๋ฅผ ์ด์ฉํ๋ฉด ๊ตฌ๋ฒ์ os์์๋ ๋ ์ด์ PreferenceActivity์ด ์๋ Activity์์ PreferenceFragment๋ฅผ ์ด์ฉํด preference ui๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค. ๊ทผ๋ฐ ์ด๊ฑฐ ๋ง์ด ์ฐ๋? ์ค์ ํ๋ก์ ํธ์์ ์ค์ ํ๋ฉด์์๋ ์๋ ์ด๋ฐ ์ ๋ฐ ๋์ง์ ๋ฑ์ด ๋ง์ด ๋ค์ด๊ฐ์ ํ๋ฒ๋ ์จ๋ณด์ง ์์๋๋ฐ.
Android Architecture
MVC, MVP, MVVM ์ํคํ ์ณ๋ฅผ ๊ฐ๋ตํ ์๊ฐํ๋ค. ๊ทผ๋ฐ ์ด๊ฑฐ๋ง ๋ด์ ๋ฑํ ๊ฐ์ด ์ ์์ค์ง... MVP ๊ด๋ จํด์ ๊ตฌ๊ธ์ด ๋ง๋ android architecture ์ชฝ์ ๊ฐ์ด ์ดํด๋ด์ผ ํ ๋ฏ.
Announcing the Android Auto Desktop Head Unit
์๋๋ก์ด๋ ์คํ ์ฉ ์ฑ์ ๊ฐ๋ฐํ๋ ค๊ณ ์๋์ฐจ์ ๋ค์ด์์ ์ ์์ผ๋ ๋ด ๋ฐฉ๋ฒ์ด ์์ด์ผ์ง! sdk์ ํฌํจ๋ ๋ฐ์คํฌํ ํค๋ ์ ๋์ ์ด์ฉํ๋ฉด ์์ฑ ์ถ๋ ฅ, ์ ๋ ฅ ๋ชจ๋ ์ ํ ์คํธํ ์ ์๋ค. ๋ค๋ง ์ค์ ๊ด๋ จํด์ Run and Test Auto Apps ๋ถ๋ถ์ ์ ์ฝ์ด๋ด์ผ ํ๋ค. ํ๋์๋ ๋ฑ์ ์ค๋ฌผ ํค๋์ ๋์ ๊ฒฝ์ฐ์ ๊ตฌ๊ธ ํ๋ ์ด์ ์คํ ์ฑ์ผ๋ก ์ถ์๋ฅผ ํด์ผ๋ง ๋์ํ๊ธฐ ๋๋ฌธ์ ๊ทธ ์ ์ ๋ฌด์กฐ๊ฑด DHU๋ฅผ ์จ์ผ ํ๋ค.
Using styles and themes without going crazy
theme, style์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ์ด๋ค. ์๋๋ก์ด๋ N์์ multi-window ๊ด๋ จํด์ ๋ ๋ญ๊ฐ ๋ฌ๋ผ์ง๋ค๋๋ฐ, ์๋๋ก์ด๋ ํ ๋ง๋ ๋ค๋ค๋ณธ์ง ๋๋ฌด ์ค๋๋์ด ์ด์ ๊ฐ๋ฌผ๊ฐ๋ฌผํ๋ฐ ์์ฒญ ๊ตฌ๋ ธ๋ค๋ ๊ธฐ์ต๋ง ๋์ถฉ ๋จ์์๋ค.
MVVM using Data Binding
์๋๋ก์ด๋ databinding์ ์ด์ฉํ mvvm ์ํ์ด๋ผ๋๋ฐ, mvp ์ํ๋ฑ๊ณผ ํจ๊ป ๋น๊ตํด๋ด์ ๋ฏ...
SCViewPager
์์ฆ ์์ฃผ ๋ณด์ด๋ ๋ทฐํ์ด์ ์ ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ํ์ด๋ค. ๊ทผ๋ฐ ๋ท ํ์ด์ง์ฉ ๋ทฐ๋ฅผ ์ด๋ป๊ฒ ๋จผ์ ๋ถํฐ ์๊ณ ์๋ ๋ณด๋ ๊ทธ๋ฅ ํด๋น ๋ทฐ๋ฅผ ๋ฐ๋ก ๊ฐ์ง๊ณ ์๋ค.
169
Unleash functional power on Android (I): Kotlin lambdas
kotlin ์๊ธฐ๋ ์ฐธ ๋ง์๋ฐ, view.setOnClickListener() ๋ฅผ ์ด๋ป๊ฒ ์ค์ด๋ ์ง ํ๋ํ๋ ๋ณด์ฌ์ฃผ๋ ๋จ๊ณ๊ฐ ์ฐธ ์ฌ๋ฐ๋ค.
... ์ด๋ฒ ํธ์๋ ๋ณ๋ก ๊ด์ฌ ๊ฐ๋ ํ ํฝ์ด ์๋ค
170
Google Play Services: Using the Nearby Connections API
nearyby api๋ก ํต์ ํ๋ ์ํ์ฝ๋์ด๋ค. ๋์ค์ nearby api๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ํ๋ฒ ์ดํด๋ด์ผ๊ฒ ๋ค!
Flowchart for background work, alarms, and your app
ํ์ฅ์ผ๋ก ์ ๋ฆฌํ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ํ ํ๋ฆ๋!
HomeMirror
ํ, ์ค๋งํธ ๊ฑฐ์ธ ํ๋ก์ ํธ์ ๋ ํ์งํ ๋ฆฌ๋ ์์๋ค! ์์ฒญ ํ๋๋ค.
LayerVisualizer
์๋๋ก์ด๋ ui์ ๋ ์ด์ด๋ฅผ 3d๋ก ์ดํด๋ณผ ์ ์๊ฒ ํด ์ค๋ค. ์์ ์ ์น ํ์ด์ง๋ ์ด๋ ๊ฒ ๋ณด์ฌ์ฃผ๋๊ฒ ์์๋๋ฐ.
RxMarbles
Rx* ๊ณ์ด์ ๋ฉ์๋์ ๋์์ ๋น์ฃผ์ผํ๊ฒ ๋ณด์ฌ์ค๋ค. ๋ฉ์ง๋ค!
Android Weekly 151~160 ๋ฆฌ๋ทฐ
๋ฐ๋ฆฐ Android Weekly ๋ชฐ์๋ณด๊ธฐ! ๊ฒ์ผ๋ฆํผ์ฐ๋ค ๋ ํ์ฐธ ๋ฐ๋ ค๋ฒ๋ ธ๋ค.
151
How to add a Native Facebook Like Button to your Android app using Facebook SDK for Android v4
์ ๋ชฉ์ด ๋งค์ฐ ๊ธด ํฌ์คํ ์ด๋ค. ์ ๋ชฉ ๊ทธ๋๋ก ํ๋ถ SDK๋ฅผ ์ด์ฉํด ์ฑ์ like ๋ฒํผ์ ๋ถ์ด๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋๋ฐ, ๋ณธ๋ก ์ธ like ๋ฒํผ ๋ถ์ด๊ธฐ๋ ์ ์ฉํ์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ํ๋ถ SDK ์ฐ๋์ ๊ต์ฅํ ์์ธํ ์ค๋ช ํ๊ธฐ ๋๋ฌธ์ ํ๋ถ์ ์ฐ๋ํ ์๊ฐ์ด๋ผ๋ฉด ์ฐธ๊ณ ํ๋ฉด ์ข๊ฒ ๋ค.
๋ณธ๋ก ์ผ๋ก ๋์๊ฐ, ํ๋ถ SDK๋ like ๋ฒํผ์ ์ ๊ณตํ๊ธด ํ๋๋ฐ, 1. like ํ๊ธฐ ์ ์ like ์๋ฅผ ์ ์ ์๊ณ , 2. ํ๋ถ ์ฑ์ด ๊น๋ฆฌ์ง ์์๋ค๋ฉด like ์์ฒด๋ฅผ ํ ์ ์๋ค. ๊ทธ๋์ ์ด ๊ธ์์ ์ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ui์์ ์ ์ค๋ช ํ๋ค. ์ด๊ฑธ ๋ณ๋์ library๋ก ์ ๊ณตํ๊ธฐ๋ ํ๋ like๋ฅผ ๋ถ์ผ ๊ณํ์ด๋ผ๋ฉด ์ฐธ๊ณ ํ๋ฉด ์ข์ ๋ฏ.
Dagger 1 to 2 migration process
Dagger 1 -> 2 ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์ ์์ ๋ฅผ ์ด์ฉํด ์ ์ค๋ช ํ ๊ธ์ด๋ค. Dagger 1๊ณผ 2์ ์ฐจ์ด๋ฅผ ์ดํดํ๋๋ฐ ๋์์ด ๋ง์ด ๋๋ค. ํ๋ก์ ํธ์๋ ์จ๋จน์ด๋ด์ผ ํ ํ ๋ฐ...
MaterialViewPager
๋จธํฐ๋ฆฌ์ผ ๋์์ธ์ view pager ๊ตฌํ์ด๋ค. ๋ฉ์ง๋ค. ์์ ์ ์ค์์ดํ + ์๋จ ์คํฌ๋กค ๊ตฌํ์ ํ๋ ค๋ค ํฌ๊ธฐํ๋ ๊ธฐ์ต์ด ๋์, ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฝ๋๋ ํ๋ฒ ๊ผญ ๋ค์ฌ๋ค๋ด์ผ๊ฒ ๋ค.
androidtool-mac
๋งฅ์ฉ ์๋๋ก์ด๋ ๊ฐ๋ฐ ๋ณด์กฐ๋๊ตฌ์ด๋ค. ์คํฌ๋ฆฐ์ท, ๋น๋์ค ๋ นํ, apk ์ธ์คํจ ๋ฑ ๊ธฐ๋ฅ์ด ์๋ค. ์ฐ์, ๋น์ฅ ์จ๋ด์ผ๊ฒ ๋ค!
152
LeakCanary: Detect all memory leaks!
๋ฉ๋ชจ๋ฆฌ ๋ฆญ์ ์ฐพ์์ฃผ๋ ์ ์ฉํ ๋๊ตฌ์ด๋ค. ์กํฐ๋นํฐ๋ฅผ ์ข ๋ฃํ ๋ gc๋ฅผ ํธ์ถํด์ ์กํฐ๋นํฐ ์ง์ ์ /ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น๊ตํ๋ค. ๊ทธ๋ฐ๋ฐ ํญ์ ๋๋ฆฌ๊ธฐ์ ์ฑ ์ฌ์ฉ์ฑ์ด ๋ง์ด ๋จ์ด์ ธ์ ๊ฐ๊ฐํ ์ฌ์ฉํ๋ ์ ๋๋ก ํ์ฉํด์ผ ํ๊ณ , singleton ๋ฑ์ด ๋๋ฌด ๋ง์ด detect๋๋ ๋ถ๋ถ๋ ์กฐ๊ธ์ ์์ฝ๋ค. ๋ฌผ๋ก ์ถ๊ฐ์ ์ธ ์ปค์คํฐ๋ง์ด์ง์ผ๋ก ์ด๋ฐ ๋ถ๋ถ์ ๊ทน๋ณต์ด ๊ฐ๋ฅํ ๋ฏ. ๊ทธ๋๋ ๋์์ด ๋ง์ด ๋๋ค.
Custom ViewGroups
์ปค์คํ ๋ทฐ ๊ทธ๋ฃน์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ, ํ์ง๋ง ํจ๊ณผ์ ์ผ๋ก ์ค๋ช ํ๋ค. ๋น์ทํ ์ฃผ์ ๋ก ๋๋ ๊ฐ๋จํ ๊ธ์ ๋จ๊ฒผ์ผ๋ ์๊ฒ๋ ์ฐธ๊ณ ํ์๊ธธ.
์ด๋ฒ ํธ์ ๋ณ๋ก ๋์ ๋๋ ๋ด์ฉ์ด ์๋ค...
153
Google Play Services: Using the Places API
ํ๋ ์ด ์๋น์ค์ ์ถ๊ฐ๋ place API๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. ์์ POI ๊ด๋ จ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ๋ ์ง๋๋ ๊ตฌ๊ธ๋งต์ ์จ๋ ์ฃผ๋ณ POI ์ ๋ณด๋ ๊ด๋ จ api๊ฐ ์์ด์ ์ด์ฉ ์ ์์ด foursquare์ api๋ฅผ ์ผ๋ ๊ธฐ์ต์ด ๋๋๋ฐ ์ด์ ๊ตฌ๊ธ์ด POI ๊ด๋ จ api๊น์ง ์ ๊ณตํ๋ ๋์ค์ ์์น ๊ธฐ๋ฐ ์๋น์ค๋ฅผ ํ๋ค๊ฑฐ๋ ํ ๋ ํ์ฉํ๋ฉด ํธํ ๊ฒ ๊ฐ๋ค. ๋ฌผ๋ก ํ๊ตญ ๋ด ์ ๋ณด๋ ๋ค์์ด๋ ๋ค์ด๋ฒ์ ๋นํด ๋ง์กฑ์ค๋ฝ์ง ์๊ธด ํ์ง๋ง.
Boosting the performance for Gradle in your Android projects
๊ฝค ๋๋ฆฌ ์๋ ค์ง gradle ๋น๋ ์๋ ์ฌ๋ฆฌ๊ธฐ ํ์ ์๊ฐํ๋ค.
build.gradle
task wrapper(type: Wrapper) { gradleVersion = '2.4' }
.gradle/gradle.properties
org.gradle.daemon=true org.gradle.parallel=true
The Ins and Outs of Gradle
์๋๋ก์ด๋ gradle์ ์ ๋ฌธํ๋ ๋ถ๋ค์๊ฒ ๋์์ด ๋ ์๊ฐ๊ธ์ด๋ค.
Hardware-accelerated disk encryption in Android 5.1
์๋๋ก์ด๋ 5.1์ ๋์คํฌ ์ํธํ์ ํ๋์จ์ด ๊ฐ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์๋ค๊ณ ํ๋ค. ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ํํธ์จ์ด ์ฒ๋ฆฌํ ๊ฒฝ์ฐ๋ณด๋จ 2๋ฐฐ ๋ ๋น ๋ฅด์ง๋ง, ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ํธํ ํ์ง ์์ ๊ฒฝ์ฐ๋ณด๋จ 40% ๋๋ฆฌ๋ค๊ณ ํ๋ค. ๋ฅ6 ๋ฑ์ ๋๋ฐ์ด์ค๋ ์ด๋ฏธ ์ง์์ ํ ์ ์์ง๋ง ์์ ์ฑ์ ๋ฌธ์ ๋ก ์ค์ ํ์ฑํ๋์ด ์์ง ์๋ค๊ณ ํ๋ค.
์์ง ์๋๋ก์ด๋์ OS ์์ค์ ์ํธํ๋ ์ํ์จ์ด์ด์ ์ฒ๋ฆฌ๋ง ์ง์ํ๊ณ , ์ด๊ฑธ ์ผ๋ฉด ๋์คํฌ I/O๊ฐ ๋๋ฐฐ ์ ๋ ๋๋ ค์งํ ๋ ํ์ฑํ๋๊ธฐ ์ด๋ ค์ด ์ํ๋ก ๋ณด์ด๋ค.
Espresso UI testing with RxJava
RxJava๋ฅผ Espresso์ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ RxPresso ์๊ฐ๊ธ์ด๋ค.
๊ฐ๋ ฅํ ์ธ์ด๊ฐ ํ์ํ ๊ณณ์ด ์ด์ฉ๋ฉด ํ ์คํธ๊ฐ ์๋๊น ์ถ์๋ฐ, ๊ทธ๋ฐ ์ ์์ ๊ฝค ๊ด์ฐฎ์ ์๋๋ก ๋ณด์ธ๋ค. ๋ฉ์ง๋ค!
rxPresso.given(mockedRepo.getUser("id")) .withEventsFrom(Observable.just(new User("some name"))) .expect(any(User.class)) .thenOnView(withText("some name")) .perform(click());
Frame Animations in Android
์๋๋ก์ด๋์์ frame animation์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. ์ ํต์ ์ผ๋ก animation-list๋ฅผ ์ฌ์ฉํ๋ฉด ๋์๋๋ฐ, animated-selector๋ ์ฒ์ ๊ตฌ๊ฒฝํ๋ค. lollipop ์ด์๋ง ์ง์ํ ๊ฑฐ๋ผ๋ฉด ์์ฃผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๊ฒ ๋์๋ค!
154
Using Transitions API to Create Android App Animations
Activity ์ ๋์ transition์ ์ฌ์ฉํ๋๋ฐ kitkat์์ transition framework๋๊ฒ ์ถ๊ฐ๋์์๋ค. scene์ ์ ์ํ๊ณ , scene ๊ฐ ์ ๋๋ฉ์ด์ ์ ์ค ์ ์์ด์ ๋ญ๊ฐ ์ ์ฉํ๊ฒ ์ฐ์ผ ์ ์์ ๋ฏ ํ๋ค. ์๋๋ก์ด๋ training์๋ ๊ด๋ จ ๋ฌธ์๊ฐ ์์ผ๋ ์ด์ชฝ ๋จผ์ ๋ค์ฌ๋ค๋ด์ผ๊ฒ ๋ค.
์, 154๋ ๊ทธ๋ฅ ๋ณผ ๊ฑฐ๋ฆฌ๊ฐ ๋ง์ง ์์๋ค.
155
Only on Android
์ ๋ช ํ roman nurik ์์ ์จ์ ํฌ์คํ ์ด๋ค. 5๊ฐ์ ์ฑ๋ค์ด ์ํธ์์ฉํ์ฌ ํธ๋ํฐ์ ๋ฐฐ๊ฒฝ์ฌ์ง์ ์์น์ ๋ฐฐ๊ฒฝ์ผ๋ก ์ค์ ํ๋ ๊ณผ์ ์ ์ค๋ช ํ๋ค. ์๋๋ก์ด๋๋ก๋ ์ด๋ฐ ๊ฒ๋ ๊ฐ๋ฅํด! ๋ผ๋ ํ๋ซํผ ์๋. 5๊ฐ์ ์ฑ๋ค์ ์ฎ๋ ๊ณผ์ ์ด ์ฌ๋ฐ๋ค.
cheesesquare
๊ตฌ๊ธ์์ support library๋ฅผ ๋ง๋๋ chris banes๊ฐ ๋ง๋ android design library ๋ฐ๋ชจ. ์คํธ!
156
Android Design Support Library
๊ตฌ๊ธ I/O ์์ ์๊ฐ๋ design support library์ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํ๋ค.
157
Gradle tip #1: tasks
์ด์ gradle ๋ชจ๋ฅด๊ณค android ๊ฐ๋ฐ์ ํ๊ธฐ ์ด๋ ค์ด ์๊ธฐ๊ฐ ๋์๋๋ฐ๋ gradle ๋ฌธ๋ฒ์ ๋ณผ ๋ ๋ง๋ค ํท๊ฐ๋ฆฐ๋ค. 3๊ฐ ํํธ๋ก ๋๋ ๊ธ์ธ๋ฐ, ์ฝ์ผ๋ฉด ๋์์ด ๋ง์ด ๋ ๋ฏ?
Developing for Android, III: The Rules: Performance
์ ๋ช ํ chet haase ์์ ์จ์ ๊ธ์ด๋ค. ์ฌ๋ฌ ์ข์ ๋ง์๋ค์ด ์ ํ์๋๋ฐ, ๊ทธ ์ค levelDB ์๊ฐ ๊ธ์ด ๋์ ๋์ธ๋ค.
์๋น์ค์ ๋ํ ์ธ๊ธ์์ Services Should Be Bound or Started, Not Both๋ผ๋ ๋ถ๋ถ์ด ๋์ ๋๊ณ , Avoid View-Related References in Asynchronous Callbacks ๋ฑ๋ ๋์ ๋๋ค.
Part I ๋ถํฐ ์๋ฆฌ์ฆ ์ ์ฒด๋ฅผ ํ๋ฒ์ฉ ์ญ ์ฝ์ด๋ณด๋ฉด ์ข์ ๋ฏ.
Open-sourcing Facebook Infer: Identify bugs before you ship
์๋๋ก์ด๋ ๊ฐ๋ฐ์ ์ฌ์ฉํ ์ ์๋ ์ ์ ๋ถ์๋๊ตฌ๊ฐ ์ด๋ฏธ ๊ฝค ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ, ํ์ด์ค๋ถ์ด ๋ง๋ค์๋ค๊ณ ํ๋ ๋ค์ํ๋ฒ ๋๊ธธ์ด ๊ฐ๋ค. github ํ์ด์ง๋ฅผ ๋ณด๋ ์ฌ์ ํ ์ด์ฌํ ๊ฐ๋ฐ์ค์ด๋ค. ์คํธ!
Droidcon Montreal - Dave Smith - Mastering Recycler View
Recycler view ๋ด๋ถ ๋์์ ๋ค๋ฃฌ ๋ฐํ๋ผ์ ํ๋ฒ ๋ด ๋ฌ์ผ๊ฒ ๋ค.
158
Exploring the new Android Design Support Library
design support library์ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํ๋๋ฐ, ์ด๋ฐ ์ ๋ฐ ์ต์ ์ฉ๋๋ฅผ ์ ๋ณด์ฌ์ค๋ค. ๊ตณ๊ตณ
Why you should avoid using an event bus
๋๋ eventbus๋ฅผ ๊ฝค ์ค๋ซ๋์ ์ฌ์ฉํด์ค๊ณ ์๋๋ฐ, ๋ง๊ตฌ ์ฐ๋ฉด ์ํํ ์ ์๋ ๋๊ตฌ๋ผ๋ ๋ฐ ๋์ํ๋ค. ์ด ๊ธ์ ๋ช ๊ฐ์ง ์ฃผ์ํด์ผ ํ ์ ์ ์๊ธฐํ๊ณ ์๋ค
์ด๋ฒคํธ ์ฒ๋ฆฌ ๋์ค์ ๋ ์ด๋ฒคํธ๋ฅผ ๋ง๋ค์ด์ eventbus๋ก ๋์ง์ง ๋ง์๋ผ.
์ด๋ฒคํธ๊ฐ ์๊ธฐ๋ฉด ๋ฐ๋ก subscriber๋ค์๊ฒ ์ ๋ฌ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ์ง ๋ง์๋ผ.
๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ์ ๋ฐ ๋์์ผ๋ก ์ญ์๋ RxJava๋ฅผ ์๊ฐ... ์ญ์๋ ๋์ธ๋ RxJava์ธ๊ฑด๊ฐ!
Level-up with Android Studio Shortcuts and Live Templates
์ฌ๋ฌ ์๋๋ก์ด๋ ์คํ๋์ค ๋จ์ถํค ํ๋ค์ ์ ์ด๋๋ค. ๋ค ์์กฑ๊ฐ์ด ๋ถ๋ฆฌ๋ฉด ์ข๊ฒ ์ง๋ง, ๊ทธ๋ ์ง ๋ชปํด๋ ๋ช ๊ฐ๋ ์ตํ๋ก์๋ค.
Hidden Cost of Transparency (100 Days of Google Dev)
ํฌ๋ช ์ ๋น์ธ๋ค! ๊ฐ์์์์๊ธ์ ํผํ์!
159
Codelab for Android Design Support Library used in I/O Rewind Bangkok session
์๊ฒ๋ design support library ๊ด๋ จ ๊ธ์ธ๋ฐ, ์ค์ ์ ์ฉํ๋ code lab ๋ถ๋ถ์ ๊ธฐ๋กํด ๋ ๊ธ์ด๋ผ ๋์์ด ๋ง์ด ๋ ๋ฏ ํ๋ค.
Boom! Screenshot! Level up your test debugging with RunListener
ui automator ํ ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ์์ฝ๊ฒ ์ค์ท์ ์ฐ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋ค.
Android TextView-LinkBuilder
ํ ์คํธ๋ทฐ์ ๋งํฌ๋ฅผ ๋ฃ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก fromHtml ์ ๋๊ฐ ์์ํ ๋ฐ, ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํธํ๊ฒ ์ธ ์ ์์ ๋ฏ ํ๋ค. ํ์ง๋ง ์ธ ์ผ์ด ์์๊น?
160
Use colorPrimary to colorize your App Bar
ํ ๋ง๋ฅผ ์ด์ฉํด ํด๋ฐ ์์์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃฌ๋ค. ์ด์ ์ก์ ๋ฐ๊ฐ ์๋ ์ฑ๋ฐ๊ฐ ์ ์ ๋ช ์นญ์ด๊ตฐ.
Introducing DeepLinkDispatch: Easy Declaration and Routing of Your Deep Links
๋ฅ๋งํฌ๋ฅผ ์ฝ๊ฒ ํ์ฉํ๊ธฐ ์ํด airbnb๊ฐ ๋ง๋ DeepLinkDispatch ์๊ฐ ๊ธ์ด๋ค. ์น์ด๋ ์ฑ์ด๋ ๊ฐ์ด ์ด์ํ๋ ์๋น์ค๋ผ๋ฉด ๊ณ ๋ฏผํด๋ณผ ๋ด์ฉ์ด๊ฒ ๋ค.
Part 2 โ Welcome Snackbar, Goodbye Toast!
์ฌ๋ฌ ํํธ๋ก ๋๋ snackbar๋ฅผ ๋ค๋ฃจ๊ณ ์๋ค. design support library์์ ๊ฐ์ฅ ๋์ ๋๋ ๋ถ๋ถ ์ค ํ๋๊ฐ snackbar์ธ๋ฐ, toast๋ฅผ ์์ ํ ๋์ฒดํ๊ธด ์ด๋ ต๊ฒ ์ง๋ง undo ๋ฑ๋ฑ ์ฌ์ฉ์ ๊ฒฝํ์ ๋์ด๋ ๋ฐ ์ ์ฉํ ๋ฏ ํ๋ค.
CatKit
๊ณ ์์ด placeholder. ์ด๊ฒ ๋ญ์ผ ใ ใ ใ
LAYOUT TRAVERSALS ON ANDROID
๋ ์ด์์ ํจ์ค ๋ฑ์ ๋ค๋ฃฌ ์ข์ ์๋ฃ์ธ๋ฐ, ์์ด๊ณ ์ด๋ ต๋ค. ์์์ด๋ ๊ฐ์ด ์ฐฌ์ฐฌํ ๋ด์ผ๊ฒ ๋ค.