Google I/O Extended 2019 Busanπ νκΈ°
Note : μ΄ κΈμ μ§κ·Ήν μ£Όκ΄μ μΈ μκ°μ ν λλ‘ μμ±λ κΈμ λλ€. νΉμλ μλͺ»λ λΆλΆμ΄ μλ€λ©΄ λ©μΌ λλ μ½λ©νΈλ₯Ό ν΅ν΄ μλ €μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€. π μ λ©μΌμ About νμμ νμΈνμ€ μ μμ΅λλ€. π§
κ°μΈμ μΈ μκ°β¦
λ€μν μΈλ―Έλλ μΈμ μ λ€μΌλ¬ λ€λλ©΄μ λλΌλ κ±°μ§λ§, λ λν λ§μ΄ λͺ¨μλ₯Έ νμμ΄λ―λ‘, λͺ¨λ λ΄μ©λ€μ λ€ μ΄ν΄ν μ μλ€. νμ§λ§ κ·Έλλ λ€μΌλ¬ κ°λ€. μμ μ λ§μ μ‘°μΈμ ν΄μ£Όλ μ λ°°λ κ°μ μκΈ°λ₯Ό ν΄μ£Όμ ¨λλ°, μΈλ―Έλλ 컨νΌλ°μ€μμ μκΈ°νλ λ΄μ©μ΄ μ΄ν΄κ°μ§ μκ³ μ΄λ ΅λλΌλ κ°μ μΌλ¨ κ°μ λ£κ³ λ΄μ©μ΄ μ λ°μ μΌλ‘ μ΄ν΄κ° κ°μ§ μλλΌλ κ·Έλ°κ² μλ보λ€. μ λλ‘ μΉλΆνλΌκ³ μκΈ°ν΄μ£Όμ ¨λ€.
κ·Έ μ λ°°μ μκΈ°μ λλ λμνμλ€. μ΄μ μΈ μ¦μ¨, κ·Έ λΉμμλ μ΄ν΄κ° κ°μ§ μλλΌλ, κ·Έλ° κ²½νλ€μ΄ μμ΄λ©΄ λμ€μ μΆ©λΆν μ’μ κ²½νμΌλ‘ λ¨μ μ μκ³ , νμ μ λΆ(?)μΌλ‘ μμ λ, λ§μ κ²λ€μ λ£κ³ κ²½ννλ€λ κ² μμ²΄κ° μ€μνλ€κ³ μκ°νλ€. λ, κ·Έ λΉμμ λ€μλ λ΄μ©μ΄ μ΄μ μμΌ λμμ΄ λ μλ μκ³ μλλ©΄ λ μ΄νμ μΆ©λΆν λμμ΄ λ κ²μ΄λΌκ³ μκ°νλ€. κ·Έλμ λ΄μ©μ΄ μ΄λ €μ 보μ΄κ³ λ΄μ©μ μ΄ν΄νμ§ λͺ»ν κΉλ΄, μ΄μ§ λλ €μμ΄ μμλλΌλ λ΄κ° ν₯λ―Έκ° μμλ§ν μ£Όμ μ μΈμ μ΄λ μΈλ―Έλκ° μλ€λ©΄, λ€μΌλ¬ κ°λ νΈμ΄λ€.
λ΄κ° κ°λ μΈμ μ΄λ μΈλ―Έλλ€μ μ£Όλ‘ λ¬΄λ£μ΄κ±°λ, κ³΅κ° λμ¬λΉλ‘ μ°μ΄λ μ»€νΌ νμ κ° μ λμ λΉμ©λ§ μ§λΆνλ©΄ λ€μ μ μλ μΈμ λ€μ΄λ€. 무λ£ν μ£Όλ§μ μμ°μ μ΄κ³ μΆμ λ κ° λλλ μκ³ , μ£Όμ κ° μ λ§ μ¬λ°μ΄ 보μ¬μ κ° λλ μλ€. λ¬Όλ‘ κ°μλ λ© λλ¦¬κ³ μκ±°λ, νΈμ¦ μ¨ μΈμ μ κ²½μ° μ§ν μλλ₯Ό λͺ» λ°λΌκ°λ λκ° λ§λ€. νμ§λ§, λλΆλΆ μΈμ μ μ§νν΄μ£Όμλ λΆμ΄ κ·Έλ° μ¬λλ€μ΄ λ§λ€λ κ±Έ μκ³ κΈ°λ€λ €μ£Όκ±°λ μ½κ² μ€λͺ ν΄μ£Όμλ €κ³ λ Έλ ₯νμλ κ² κ°λ€.
λλΆλΆμ μΈμ μ΄λ μΈλ―Έλ λ±μ νμ¬μ κ΄ν μ 보λ Festa! λΌλ μΉ νμ΄μ§μμ μ£Όλ‘ νμΈνλ€. URLμ΄ κΆκΈν μλ μλ μ¬λμ΄ νΉμλ μμ κΉλ΄, URLμ λ¨κ²¨ λλλ€. μ΄κ³³μ ν΄λ¦νλ©΄ μΉ νμ΄μ§λ‘ μ΄λν μ μλ€.
REVIEW
λ€λ μ¨μ§λ μ‘°κΈ(?) μ§λ¬μ§λ§, Google I/O Extended μΈλ―Έλμμ λκΌλ λΆλΆλ€κ³Ό λ€μλ λ΄μ©λ€μ λν΄ μ‘°κΈ μ 리νκ³ μ νλ€. λ¨Όμ ν΄λΉ μΈμ μ GDG Busanμμ μ΄μ΄μ€ μΈμ μΌλ‘ μΈμ λͺ μ 보μλ©΄ μμκ² μ§λ§, μ§λ¦¬μ μΌλ‘ λ©λ¦¬μλ μμΈμμ μ΄λ¦¬λ Google I/Oμ μ°Έμνμ§ λͺ»ν λΆμ°μ μλ κ°λ°μλ€μ μν΄μ Google I/Oμμ λ°νλμλ λ΄μ©λ€ μ€μμ ν΅μ¬μ μΈ λ΄μ©λ€μ κΈ°λ°μΌλ‘ Google I/Oμ νμ₯ κ²½νκ³Ό λ΄μ©λ€μ 곡μ νλ μΈμ μ΄λ€.
Googleμμ μ§ννλ νμ¬μ ν΅μ¬ λ΄μ©μ΄λ€λ³΄λκΉ, μ£Όλ λ΄μ©μ΄ μλλ‘μ΄λ λλ νλ£¨ν° κ·Έλ¦¬κ³ μ½νλ¦° κ΄λ ¨ μΈμ μ΄ λ§μλ€. κ·Έλ¬λ, κ·Έ μ΄μΈμ λ€μν μΈμ λ€μ΄ μμ΄μ μ μ νμΌλ, μμλ λ΄μ©λ€μ λν΄μ λ§μ μ΄ν΄λ₯Ό νμ§λ λͺ»νλ€. λΆμ°μμλ μΈμ μ΄ κ·Έλ κ² μμ£Ό μ΄λ¦¬μ§ μκ³ , κ·Έ λ§μ λ μ΄ μΈμ μ κ½€ ν° νμ¬μ μνλ€. κ·Έλμ κ·Έλ°μ§ μ¬λλ€μ΄ κ½€ μμκ³ , μλ μ¬λλ€λ κ½€ λ³Ό μ μμ΄μ μΈμ¬λ₯Ό νλ©΄μ μκΈ°λ₯Ό λλ μ μμ΄μ μ’μλ€. λνν μμ΄μλ μΈμ μ₯μκ° μ§μμ λ©μ§ μμμ λ μ’μλ€(?).
μ£Όλ λ΄μ©λ€μ λ°μμ μ 리νλ κ±Έλ‘ νκ³ λ¦¬λ·°λ μ¬κΈ°κΉμ§ μ λλ€. μ¬μ€ μ΄ λ μ μΌ κΈ°μ΅μ λλ건 μΈμ μμ λ€μλ λ΄μ©λ³΄λ€ μΈμ μ μ λΆ λ€ λ£κ³ λ μ΄νμ λΆμ°λμμ μ§μΈλ€κ³Ό λ¨Ήμλ μκΌ¬μΉ μ§μ΄ μ μΌ μκ°λλ€. λ€μμ λ λΆμ°λμͺ½μ μΈμ μ λ€μΌλ¬ κ°λ€λ©΄, λ€μ λ€λ¬λ³΄κ³ μΆμ μ λμ λ§μ§μ΄μλ€.(?)
첫λ²μ§Έ μΈμ , SEO: Brand new Google Search - μ‘°μ(λ€μ΄λ² νλ‘ νΈμ€λ κ°λ°μ)
-
μΉ νμ΄μ§κ° κ²μμ λ ΈμΆ λμ§ μμμΌ νλ€λ©΄
-
λλ©μΈμ μμ λΆλ¦¬ν ν ν΄λΉ λλ©μΈμ ν΅μ§Έλ‘ μ°¨λ¨.
-
κ²μλμ§ μμμΌ νλ λ΄λΆ νμ΄μ§ λ±μ μΈμ¦μ κ±°μ³μΌμ§λ§ λ³Ό μ μλλ‘ νλ€.
-
-
μΉ νμ΄μ§λ₯Ό κ΅¬κΈ κ²μμ μ λ ΈμΆμν€κΈ° μν΄μ
-
μ¬λ°λ₯Έ
<title>
μ¬μ© -
μ¬λ°λ₯Έ
description
μ¬μ© ->meta
νκ·Έ -
μ¬λ°λ₯Έ HTML μ¬μ©
-
μ μ ν μν©μμ μ μ ν HTML νκ·Έλ₯Ό μ¬μ©ν΄μΌ νλ€.
-
λ§ν¬ μ΄λμ μ¬μ©ν μ μλ HTML νκ·Έλ€
-
<a>
νκ·Έλ₯Ό μ¬μ©νλ κ²½μ° -
<button>
νκ·Έμonclick
μ΅μ μ μ£Όλ κ²½μ°. -
<div>
νκ·Έμonclick
μ΅μ μ μ£Όλ κ²½μ°.
-
-
μν©μ λ°λΌ μ μ ν νκ·Έλ₯Ό μ¬μ©ν΄μΌ νλ€.
- μμ κ²½μ°μλ
<a>
νκ·Έλ₯Ό μ¬μ©νλ κ±Έ κΆμ₯.
- μμ κ²½μ°μλ
-
-
μ λͺ©μ μ¬μ©ν΄μΌ νλ κ²½μ°,
<h1>
νκ·Έ κ°μ κ²μ μ¬μ©ν΄μ λνλ΄λ κ²μ΄ μ’λ€. κ²μ κ²°κ³Όμ μ λ ΈμΆλλ€.<div>
μμμ λ€λ₯Έ μ΅μ μ μ£Όλ κ²λ³΄λ€<h1>
νκ·Έλ₯Ό μ¬μ©νλ κ²μ΄ μ’λ€.
-
-
λ°μν μΉ λμμΈ
- HTML μ€κ³μ λ°μνμΌλ‘ λ§λ€μ΄μ νλ©΄ ν¬κΈ°μ λ°λ₯Έ λ€λ₯Έ μΈν°νμ΄μ€λ₯Ό μ 곡νλ κ²μ΄ κ²μ κ²°κ³Όμ μ λ ΈμΆλλλ‘ λ°μλλ€.
-
Structured Data
-
HTMLμ λμ΄μ μ΄ μ½ν μΈ κ° μ΄λ€ λ°μ΄ν°λ₯Ό λνλμ§ μ€λͺ νλ μμ.
-
schema.org
-
-
Google Searchκ° μ§μνλ λ²μλ₯Ό νμΈνμ¬ μ€μ μΉ λμμΈμμ μ°Έκ³ νλ κ²μ΄ κ²μ κ²°κ³Ό μλ¨μ λ ΈμΆ μν€κΈ° μν΄ λ°μν μ μμ.
-
Lighthouse
-
ν¬λ‘¬μ κΈ°λ³Έμ μΌλ‘ μ€μΉλμ΄ μλ μΉ νμ΄μ§ μ’ ν© κ²μ¬ λꡬ.
-
μ΄λ₯Ό μ΄μ©ν κ²°κ³Όμ λν κ²μ κ°λ°μμ λ°μνλ©΄ κ²μ κ²°κ³Ό λ ΈμΆμμ μλ¨μΌλ‘ κ° μ μλλ‘ λ³νλ₯Ό μ€ μ μλ€.
-
-
κ·Έ μΈμλ
-
μλ§μ μꡬμ¬νλ€μ΄ μ½νκ³ μ½νμ νμ¬μ κ²μμ λ§λ€κ³ μμ΅λλ€.
-
μλκ° λΉ¨λΌμΌ ν©λλ€.
-
λͺ¨λ°μΌμ μ§μν΄μΌ ν©λλ€.
-
κΈ°ν λ±λ±
-
-
μ 리νλ©΄
- Single Page Applicationμ΄ κ²μμ΄ μλλ€λ μ€ν΄λ₯Ό νμ΄κ°μ ¨μΌλ©΄ μ’κ² μ΅λλ€.
-
λλ²μ§Έ μΈμ , Design at Google I/O x Design Sprint - κΉμμ (Designer, GDG Guro Organizer)
-
Dark Theme, ML, sound
-
μ κ·Όμ±.
-
design sprint
-
voice action sprint framework
-
short runtime
-
-
material design - dark theme
-
darken with grey
-
color with accents
-
conserve energy
-
-
material design + ML kit
-
λ°μ½λ μΈμ, 물체 κ°μ§.
-
live camera
-
μΈλ²μ§Έ μΈμ , Flutter π ML Kit - μ‘°μ±μ€
-
Flutter
-
ꡬκΈμμ λ§λ μ€ν μμ€ SDK
-
material design λ±κ³Ό κ°μ ꡬκΈμ κΈ°λ³Έμ μΈ κ²λ€μ μ§μ.
-
ν¬λ‘μ€ νλ«νΌ
-
ν루ν°λ Dartλ₯Ό μ΄μ©ν΄μ κ°λ°.
-
λͺ¨λ κ²μ΄ μμ ―μΌλ‘ ꡬμ±λμ΄ μλ€.
-
Declarative UI
-
Platform Channel
-
-
ML kit
-
FireBaseλ₯Ό μ΄μ©ν΄μ λͺ¨λΈλ§ λ ML κΈ°λ₯λ€μ API ννλ‘ μ¬μ© κ°λ₯.
-
FireBase ML Vision
- Camera Module
-
Natural Language
- Platform Channel
-
-
λ€λ²μ§Έ μΈμ , Whatβs New in Android Studio - λ Ένμ
-
μλ κΈ°μ€μΌλ‘ μλλ‘μ΄λ μ€νλμ€ 3.2κ° λμμ.
-
Navigation Editor
-
App Bundle
-
Emulator Snapshots
-
Energy Profiler
-
-
κ·Έλ κ² 3.3, 3.4, 3.5, 3.6 κΉμ§ λ§μ λΆλΆμ΄ μ λ°μ΄νΈ λμμ.
-
Android Studio 3.4
-
Resource Manager
-
μ 체 리μμ€λ₯Ό νλμ νμ κ°λ₯
-
Drawable, Color, Layout μ μκ°ν
-
Module μ ν μ§μ.
-
-
Qualifier Type
-
Density
-
Layoyt Direction
-
-
Preview all layouts
-
λͺ¨λ λ μ΄μμμ 미리 νμΈ κ°λ₯.
-
μνλ λ μ΄μμμ κ²μ.
-
λ μ΄μμλ λλκ·Έ μ€ λλ‘μ΄ κ°λ₯.
-
-
Color Picker
-
Resource XMLμ Color Double Click
-
RGB, HSB λͺ¨λ μ§μ.
-
-
Project Structure Dialog
-
Unresolved reference
-
Import Intentions
-
λΌμ΄λΈλ¬λ¦¬ μΆκ° μ μ
-
Jetpack, Firebase μ§μ.
-
-
-
Android Studio 3.5
-
Memory Settings
-
Project Marble
-
λκ·λͺ¨ νλ‘μ νΈμ λ©λͺ¨λ¦¬ κ΄λ¦¬
-
UI Hang
-
Lint κΈ°λ₯ κ°ν.
-
CPU μ¬μ©μ¨ μ΅μ ν
-
κΈ°ν λ±λ±
-
-
Build Speed
-
Kotlin Incremental Annotation Processing
-
Light R class generation
-
Benchmarking
-
-
I/O File Access for Windows
-
Emulator
-
Emulator CPU Usage
-
Google Play Service
- μΆ©μ μ€ > λ°°ν°λ¦¬ λ°©μ : λ°±κ·ΈλΌμ΄λ CPU μ¬μ© 3x μ΄μ κ°μ
-
Google Assistant
- κΈ°λ³Έ λ§μ΄ν¬ OFFλ‘ λ³κ²½.
-
-
Foldable Support
-
App Deployment Flow
-
Android Studio Usage
-
Memory Leak
- μκ°μ΄ μ§λ¨μ λ°λΌ λλ €μ§λ μμΈ μ€ νλ
-
Fixed memory leak
- μν₯μ΄ λμ 33κ°μ λ²κ·Έ μμ
-
-
Memory Settings
-
Instant Run
-
hot-swapμ μν μΆκ° μμ μΌλ‘ λ λλ €μ§.
-
64K μ΄μμ κ²½μ° λΉλ μ€λ₯.
-
λ΄λΆ νμ§ κΈ°μ€ λ―Έλ¬.
-
-
Apply Changes
-
λΉλ μ€ APK μμ μ΄ μμ
- Dalvik λ° νμ λ²μ μμ Instant Run κ΄λ ¨ κΈ°λ₯ μ κ±°
-
Platform APIλ‘ λΉ λ₯΄κ² μ± μ€ν.
-
Runtime Instrumentationμ νμ©νμ¬ ν΄λμ€λ₯Ό μ¦μ μ¬μ μ.
-
Android 8.0 μ΄μ μ§μ.
-
-
No Change Code
-
-
Layout Editor
-
λ€μ― λ²μ§Έ μΈμ , μ½νλ¦°μ΄ μλλ‘μ΄λ κ°λ°μ λ―ΈμΉ μν₯ - κΆνν(μΉ΄μΉ΄μ€νμ΄)
-
μ½νλ¦°μ λν΄μ 곡λΆνκΈ° μ , μ΄νν°λΈ μλ° μ± μ 보기λ₯Ό κΆμ₯.
-
μ½νλ¦° λ² μ΄μ§ λ¬Έλ²
- κΈ°λ³Έ λ¬Έλ²
class Step1 {
// final String name = "";
// String name = "";
var firstName: String? = "donghun";
val lastName: String = "Lim";
@Test
fun testStepOne() {
println("$firstName $lastName");
firstName = null;
}
}
-
Null μ΄ λ€μ΄μ¬μλ μλ λ³μμ κ²½μ°μλ Nullable νλ€λ ?λ₯Ό νμ λ€μ λΆμ¬μ€μΌ νλ€.
var firstName: String? = "donghun";
-
μμ
open class Step2 {
open fun test() {
}
}
class Temp : Step2() {
}
-
μμμ λ°κΈ° μν΄μλ λΆλͺ¨ ν΄λμ€λΌκ³ λͺ μμ μΌλ‘ νμλ₯Ό ν΄μ£Όλ©΄ λλ€.
open
μ΄λΌλ ν€μλλ₯Ό μ΄μ©ν μ μλ€.- μ½νλ¦°μμλ
open
ν€μλλ₯Ό λΆμ¬μ£Όμ§ μμΌλ©΄ final μ΄ λΆμ ν΄λμ€λΌκ³ μΈμνκ² λλ€.
- μ½νλ¦°μμλ
-
Okhttp
-
RxBinding
-
μ½νλ¦° μ μ© λΌμ΄λΈλ¬λ¦¬
-
RxKotlin
-
RxKotlinμ RxJava λ체μ©μ΄ μλ νμ₯μ μ§μ.
-
μμ ν RxKotlinμ μμ§ μ‘΄μ¬νμ§ μμ.
-
-
-
Feature
-
μ½νλ¦°μ λͺ¨λ₯΄κ³ μλλ‘μ΄λ κ°λ°μ μ΄λ ΅λ€.
-
Javaλ μμ§μ μμμΌ νλ€.(λͺ¨λ νμ¬μμ μμ§ μ½νλ¦°μ μ°λ κ²μ μλλ€.)
-
Kotlin + coroutinesμ μμλλ©΄ μ’λ€.
-
Flutteerλ μμλλ©΄β¦
-
-
-
μΉ΄μΉ΄μ€νμ΄μμλ
-
μλ‘ μΆκ°νλ ν΄λμ€λ μ½νλ¦°λ§ μ¬μ©
-
Baseλ μ΄λ―Έ μ½νλ¦°
-
RxJava λμ Coroutines μ¬μ©μ€
-
RxJavaλ₯Ό μ¬μ©νμ§ μλ μ΄μ
-
μ²μ μ¬μ©νκΈ° μ΄λ ΅κ³ , μ€μΌμ€λ¬ μ μκ° λͺ ννμ§ μλ€.
-
μ€λ₯ μ‘κΈ°κ° λ무 μ΄λ ΅λ€.
- μ¬λΌμ€λ μ€λ₯λ RxJava λ‘κ·Έλ‘ λ³΄μΈλ€.
-
-
-
-
MVVM ννμ ν¨ν΄μ μ¬μ©.