More Related Content Similar to H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략_Android팀_오종인 Similar to H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략_Android팀_오종인 (11) More from KTH, 케이티하이텔 (20) H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략_Android팀_오종인2. 이런 얘기를 하려고 합니다
01 Android vs. iOS
02 Application, Activity, Task
03 기본 동작 Review
04 Case Study
2
6. Application 구조부터 달라요!
Application Application
Process
기능&화면 기능&화면
Activity Activity
기능&화면
Content Provider
Service
기능&화면 기능&화면
6
7. Application 구조부터 달라요!
Application
Process
화면 Activity Activity
화면과 기능의 분리
Content Provider
기능
Service
7
8. Activity는?
public class Calculator extends Activity
8
11. 이렇게 하면 된대요!
Process.killProcess(Process.myPid());
System.exit(0);
((ActivityManager)getSystemService(ACTIVITY_SERVICE))
.restartPackage(getPackageName());
11
12. 그런데, 왜 종료해야 하나요?
안드로이드가 알아서 !
Low Memory Killer !
12
13. 종료에 대해서 신경 끄세요!
1
모바일 앱 사용 패턴은
최근 사용한 앱
소수의 앱을 반복적으로
2
Application은
항상 실행 중인 상태라는
경험을 제공
13
14. 찾아보세요!
Phone
Application
Message Browser Settings
E-mail
14
15. 동작을 이해해 보아요~
Activity Test Activity Test Activity Test Activity Test
Activity 1 Activity 2 Activity 3 Activity 2
Start Activity 2 Start Activity 3 Start Activity 4 Start Activity 3
Activity 1 Activity 2 Activity 3 Activity 3
Activity 1 Activity 2 Activity 2
Activity 1 Activity 1
Activity는 Stack에 쌓임 TASK
15
16. 남의 어플에 숟가락 얹기
Application Application
Process Process
Activity 1 Activity 3 Task Activity 2 Activity 4
Content Provider Content Provider
Activity 3
Service Service
Activity 2
Activity 1
16
17. 복잡해요, Launch Mode
Launch mode에 의해서 다양한 동작으로 구성 가능
☞ standard, singleTask, singleTop, singleInstance
17
18. 그런데, 이럴 때 필요합니다.
1
Notification에서
Activity 실행 시 고려 필수
페북 메신저! 2
새로운 Activity 생성
또는
실행 중인 Activity를 사용
18
19. facebook 메신저를 살펴 보아요~
1
대화 상대 목록은 재사용
2
채팅 진행 중인 화면은
재사용
3
신규 채팅 화면은
새로운 Activity 생성
19
22. 보이는 모양이 바뀐 것일 뿐...
Option Menu
1
화면에서 실행할 수 있는
추가 기능 목록
2
사용자가 기대하는 기능을
메뉴 키를 눌렀을 때
찾을 수 있도록 배치
22
24. 빠른 접촉? 교제?
Quick Contact
1
프로필 이미지 선택 시,
연락처 관련 기능의
빠른 수행
2
연락처 기능 외에
Quick Action으로
부가 기능 수행도 가능
24
29. Seesmic을 아시나요?
1
재 실행 시 이전 상태로
빠르게 복원
2
Menu, Context Menu 등
기본 동작에 충실
3
탄탄한 시나리오,
이미지 대신 색을 이용
29
30. 많이 쓰고 계시죠? handcent SMS app
임시보관함 1
사용자 데이터 유실 없음
2
위젯의 효과적 사용,
정보 제공 및
단축 아이콘 기능 수행
30
32. 기억나시나요? “네이버-다음 구글 공정위 제소…”
<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>
<provider android:name="MruNameProvider"
android:authorities="kth_employee_name_mru"/>
32
33. 검색 동작을 자세히 살펴보면…
Android Search KTH 직원검색 App
Activity 4
Task
Activity 3 Activity 1 Activity 2 Activity 4
Task
Content Provider
Activity 2
Activity 1
33
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>
34
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);
}
36
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
38
43. 밑줄 쫙~
1
Application은
항상 실행 중인 상태라는
경험을 제공
사용자에게는 기능의 연속성이 중요함
Activity 재 실행 시 마지막 상태를 최대한 복원
Low Memory Killer에 의한 종료 시나리오에 대비
43
44. 똥글뱅이!
2
Android 기본 동작 준수
[MENU], [BACK]키 동작
Option Menu, Context Menu, Quick Contact 등
적절하게 사용
Low Memory Killer에 의한 종료 시나리오에 대비
44
45. 형광펜!
3
사용자 알림은 용도에 맞게
POP-UP은 불가피한 경우만
중요한 이벤트에 사용자 대응이 꼭 필요한 경우
사용자 입력 데이터 유실 문제가 있을 때
Toast는 focus를 뺏지는 않지만
어떤 동작에 대한 안내인지 명시적으로 표시
45
46. 이것도!
4
Search, Share 등
사용자가 예상하는 경로에
기능 배치
46