h3 2011 안드로이드의 seamless ux를 위한 activity 활용전략

48
안드로이드 Seamless UX를 위한 Activity 활용전략 Android앱팀 I 오종인

Upload: kth

Post on 27-Dec-2014

3.115 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

안드로이드의 Seamless UX를 위한 Activity 활용전략 Android앱팀 I 오종인

Page 2: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

2

이런 얘기를 하려고 합니다

Android vs. iOS 01

Application, Activity, Task 02

기본 동작 Review 03

Case Study 04

Page 3: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

3

무엇이 무엇이 똑같을까?

Page 4: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

4

진정 이런 것을 원하세요?

Page 5: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

Application, Activity, Task 02

Page 6: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

6

Application

Application 구조부터 달라요!

Process

Application

기능&화면

기능&화면 기능&화면

기능&화면 기능&화면

Activity Activity

Content Provider

Service

Page 7: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

7

Application

Application 구조부터 달라요!

Process

화면과 기능의 분리

Activity Activity 화면

Content Provider

Service

기능

Page 8: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

8

Activity는?

public class Calculator extends Activity

Page 9: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

9

잠시 다른 얘기…

Page 10: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

10

Application을 종료하고 싶어요~

Page 11: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

11

이렇게 하면 된대요!

((ActivityManager)getSystemService(ACTIVITY_SERVICE))

.restartPackage(getPackageName());

System.exit(0);

Process.killProcess(Process.myPid());

Page 12: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

12

그런데, 왜 종료해야 하나요?

안드로이드가 알아서 !

Low Memory Killer !

Page 13: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

13

종료에 대해서 신경 끄세요!

Application은 항상 실행 중인 상태라는 경험을 제공

2

1

모바일 앱 사용 패턴은 소수의 앱을 반복적으로

최근 사용한 앱

Page 14: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

14

찾아보세요!

Phone Application

Message Browser

E-mail

Settings

Page 15: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

15

동작을 이해해 보아요~

Activity는 Stack에 쌓임

Activity 1

Start Activity 2

Activity 1

Activity Test

Activity 2

Start Activity 3

Activity 2

Activity Test

Activity 1

Activity 3

Start Activity 4

Activity 3

Activity Test

Activity 2

Activity 1

Activity 2

Start Activity 3

Activity 3

Activity Test

Activity 2

Activity 1

TASK

Page 16: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

16

Application

Process

Content Provider

Service

남의 어플에 숟가락 얹기

Application

Process

Activity 1 Task

Content Provider

Service

Activity 3 Activity 2 Activity 4

Activity 3

Activity 2

Activity 1

Page 17: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

17

복잡해요, Launch Mode

Launch mode에 의해서 다양한 동작으로 구성 가능

☞ standard, singleTask, singleTop, singleInstance

Page 18: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

18

그런데, 이럴 때 필요합니다.

1

Notification에서 Activity 실행 시 고려 필수

2

새로운 Activity 생성 또는 실행 중인 Activity를 사용

페북 메신저!

Page 19: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

19

facebook 메신저를 살펴 보아요~

1

대화 상대 목록은 재사용

2

채팅 진행 중인 화면은 재사용

3

신규 채팅 화면은 새로운 Activity 생성

Page 20: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

기본 동작 Review 03

Page 21: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

21

벌써 잊으셨어요? 원래 있던 건데..

MENU

BACK

Page 22: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

22

보이는 모양이 바뀐 것일 뿐...

1

화면에서 실행할 수 있는 추가 기능 목록

Option Menu

2

사용자가 기대하는 기능을 메뉴 키를 눌렀을 때 찾을 수 있도록 배치

Page 23: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

23

문맥(=Context) 이라 굽쇼?

1

목록에서 상세 화면 진입 없이 선택 항목의 관련기능 수행

Context Menu

Page 24: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

24

빠른 접촉? 교제?

프로필 이미지 선택 시, 연락처 관련 기능의 빠른 수행

1

2

연락처 기능 외에 Quick Action으로 부가 기능 수행도 가능

Quick Contact

Page 25: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

Case Study 04

Page 26: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

26

브라우저를 비교해 볼까요?

Page 27: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

27

종료는 앞서 말씀 드렸죠? 정말 쓸데없는 짓!

Page 28: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

28

팝업의 감동을 알려드립니다~

Page 29: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

29

Seesmic을 아시나요?

1

재 실행 시 이전 상태로 빠르게 복원

2

Menu, Context Menu 등 기본 동작에 충실

3

탄탄한 시나리오, 이미지 대신 색을 이용

Page 30: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

30

많이 쓰고 계시죠? handcent SMS app

1

사용자 데이터 유실 없음

2

위젯의 효과적 사용, 정보 제공 및 단축 아이콘 기능 수행

임시보관함

Page 31: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

31

기억나시나요? “네이버-다음 구글 공정위 제소…”

Page 32: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

32

기억나시나요? “네이버-다음 구글 공정위 제소…”

<provider android:name="MruNameProvider" android:authorities="kth_employee_name_mru"/>

<activity android:name=".EmployeeSearch“> <!-- Receives the search request. --> <intent-filter> <action android:name="android.intent.action.SEARCH" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <!-- Points to searchable meta data. --> <meta-data android:name="android.app.searchable“ android:resource="@xml/searchable"/> </activity>

Page 33: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

33

검색 동작을 자세히 살펴보면…

KTH 직원검색 App

Task Activity 1 Activity 2

Android Search

Activity 3

Activity 4

Activity 4

Content Provider Activity 2

Activity 1

Task

Page 34: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

34

나는 꼽사리다! “공유” 기능!

<activity android:name=".MyShare"> <intent-filter> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="image/*"/> <data android:mimeType="video/*"/> <data android:mimeType="text/plain" /> </intent-filter> </activity>

Page 35: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

35

facebook 거저먹기 : Single Sign On

Page 36: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

36

facebook 거저먹기 II

String uri = "fb://page/" + yourFBpageId; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); try { startActivity(intent); } catch (ActivityNotFoundException ex) { // facebook 공식 앱이 존재하지 않을 경우에는 // Web browser로 동일 화면을 보여준다. String uri = "http://touch.facebook.com/pages/x/" + yourFBpageId; Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); startActivity(i); }

Page 37: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

37

접속해 보세요~ : OpenIntents.org

Page 38: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

38

참고 하세요~

Title Action

프린트 com.rcreations.send2printer.print

소리 크기 조절 org.openintents.audio.action_volume_update

색깔 선택 org.openintents.action.PICK_COLOR

바코드 스캔 com.google.zxing.client.android.SCAN

Flickr photo com.google.android.photostream.FLICKR_PHOTO

Flickr stream com.google.android.photostream.FLICKR_STREAM

Page 39: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

39

바코드 스캔

http://www.openintents.org/en/node/679

Page 40: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

40

저희부터 할께요!

Page 41: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

41

무찌르자 애플!!!! 타도 애플!!!

Page 42: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

42

각자의 길로 가는 게 좋겠죠?

Page 43: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

43

밑줄 쫙~

Application은 항상 실행 중인 상태라는 경험을 제공 사용자에게는 기능의 연속성이 중요함 Activity 재 실행 시 마지막 상태를 최대한 복원 Low Memory Killer에 의한 종료 시나리오에 대비

1

Page 44: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

44

똥글뱅이!

Android 기본 동작 준수

[MENU], [BACK]키 동작 Option Menu, Context Menu, Quick Contact 등

적절하게 사용 Low Memory Killer에 의한 종료 시나리오에 대비

2

Page 45: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

45

형광펜!

사용자 알림은 용도에 맞게

POP-UP은 불가피한 경우만

중요한 이벤트에 사용자 대응이 꼭 필요한 경우 사용자 입력 데이터 유실 문제가 있을 때

Toast는 focus를 뺏지는 않지만

어떤 동작에 대한 안내인지 명시적으로 표시

3

Page 46: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

46

이것도!

4

Search, Share 등 사용자가 예상하는 경로에 기능 배치

Page 47: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

47

One more thing!

5

동일 서비스일 지라도 iOS와 Android의 UX는 별도로 접근

Page 48: H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

감사합니다. 모바일개발실 / Android앱팀 팀장 / 오종인

[email protected]

@ji5