47
Android Development 과거와 현재와 미래 노현석 (pluulove) Android / Yanolja Extended Incheon

Android Development

Embed Size (px)

Citation preview

Android Development과거와 현재와 미래

노현석 (pluulove)Android / Yanolja

ExtendedIncheon

Agenda

1. Google I/O 2016 Android 주요 세션

2. Android Development

ExtendedIncheon

ExtendedIncheon

Sessions

ExtendedIncheon

65 34180

Android N

ExtendedIncheon

What's new in Android

Multi-Window

Drag and Drop

Notifications

Display Size

Multi Locale

Doze

Java8 / Lambdas

Vulkan

VR

ConstraintLayout

ExtendedIncheon

Android Layouts: a new world

Why not RelativeLayout?

ConstraintLayout is a

superset

More expressive, less nesting

Unbundled library

Extensible

...it comes with a great UI

builder!

Android Studio

ExtendedIncheon

What's new in Android development tools

The experts' guide to Android development tools

Image

Image compression for Android developers

Android Performance

Patterns

How PNG Works

Smallker PNGs

PNG Optimizer

Vector Drawable

ExtendedIncheon

Image

Image compression for Android developers

● Android Performance

Patterns

● How PNG Works

● Smallker PNGs

● PNG Optimizer

● Vector Drawable

ExtendedIncheon

Support Library

ExtendedIncheon

What's new in the support library

Fragments

Notifications

ColorStateLists

Custom Tabs

VectorDrawable &

AnimatedVectorDrawa

ble

Night Mode

Bottom sheets

Added:24.0

Support Library

ExtendedIncheon

Dropping for APIs bleow 9

Material

ExtendedIncheon

Android themes & styles demystified

Material improvements

ExtendedIncheon

Google I/O 2016Extended Seoul

2016.06.19

Google I/O 2016 Extended Seoul

ExtendedIncheon

http://www.slideshare.net/jyte/android-studio-22-whats-new-in-android-development-tools

Google I/O 2016 Extended Seoul

ExtendedIncheon

http://www.slideshare.net/ssuser70b5b8/advanced-espresso-io16-extend-seoul

ExtendedIncheon

What the Fragment?

ExtendedIncheon

Why Fragments?복잡하지않나요?

ExtendedIncheon

ExtendedIncheon

ExtendedIncheon

ExtendedIncheon

(╯°□°)╯︵ ┻━┻

ExtendedIncheon

Why Fragments?일부 이야기

Activity

ExtendedIncheon

Lifecycle 상태 복원

다른 앱 호출

Activity

ExtendedIncheon

N개의 컴포넌트

TabHost

LocalActivityManager

ExtendedIncheon

Honeycomb

더 큰

ExtendedIncheon

큰 화면 큰 문제

ExtendedIncheon

Fragments!Composable bits of Activities

분해

ExtendedIncheon

분해

ExtendedIncheon

커진 Activity 클래스

ExtendedIncheon

분리 재사용

LocalActivityManager 문제 해결

ExtendedIncheon

Not Activity Level

탐색 상태를 캡슐화

ExtendedIncheon

Activity-local

back stackDialog 관리

ExtendedIncheon

이론과 현실어떻게 해결했습니까?

일반적인 함정

ExtendedIncheon

Fragment가 무엇인가?많은 부분에 대해서 설명하는 것은 무척

어렵다

일반적인 함정

ExtendedIncheon

더 많은 lifecycle를 관리가능… 버그 해결 문제

일반적인 함정

ExtendedIncheon

View 같은데요?<fragment> tag

ExtendedIncheon

Effective Fragments

Fragment ≡ Activity

ExtendedIncheon

Fragment는 구성가능한 Entry Points

Lifecycle과 주위의 입력들로부터 제어

UI presentation을 관리, 필요에의해 대응

모듈?

Fragment != fancy ViewGroups

ExtendedIncheon

Fragment는

단순히 View를 사용해서 UI를 구현

Android abstraction

ExtendedIncheon

android.app

android.widget

android.view

android.content

Higher level

Lower level

Depends on

(can import)

Android abstraction

ExtendedIncheon

Higher level

Lower level

Depends onMyFragment

View.OnClickListener

Views vs. Fragments

ExtendedIncheon

매커니즘 or 정책?

단독 위젯 or 앱 로직과의 연결?

ExtendedIncheon

Development Pattern

Pattern

ExtendedIncheon

Architecture MVC / MVP / MVVM

Reactive RxJava / RxAndroid / RxLifecycle

Data Bind Data Binding

View Bind ViewHolder / ButterKnife

Crash Fabric

Test Espresso / Mockito / JUnit4

ExtendedIncheon

Apps aren’t getting smaller

Scaling development

ExtendedIncheonSee you next year