Contenu connexe Similaire à H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략 Similaire à H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략 (6) H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략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