안드로이드의Seamless UX를 위한Activity 활용전략Android앱팀 I 오종인
이런 얘기를 하려고 합니다    01 Android vs. iOS    02 Application, Activity, Task    03 기본 동작 Review    04 Case Study2
무엇이 무엇이 똑같을까?3
진정 이런 것을 원하세요?4
02 Application, Activity, Task
Application 구조부터 달라요!        Application            Application                                 Process    기능&화면       기능&...
Application 구조부터 달라요!                             Application                               Process                 화면    ...
Activity는?    public class Calculator extends Activity8
잠시 다른 얘기…9
Application을 종료하고 싶어요~10
이렇게 하면 된대요!     Process.killProcess(Process.myPid());     System.exit(0);     ((ActivityManager)getSystemService(ACTIVITY_...
그런데, 왜 종료해야 하나요?     안드로이드가 알아서 !     Low Memory Killer !12
종료에 대해서 신경 끄세요!                1                    모바일 앱 사용 패턴은     최근 사용한 앱                    소수의 앱을 반복적으로             ...
찾아보세요!            Phone          Application     Message    Browser   Settings            E-mail14
동작을 이해해 보아요~     Activity Test        Activity Test        Activity Test            Activity Test         Activity 1      ...
남의 어플에 숟가락 얹기           Application                        Application             Process                            Proc...
복잡해요, Launch Mode     Launch mode에 의해서 다양한 동작으로 구성 가능     ☞ standard, singleTask, singleTop, singleInstance17
그런데, 이럴 때 필요합니다.               1                   Notification에서                   Activity 실행 시 고려 필수     페북 메신저!   2   ...
facebook 메신저를 살펴 보아요~     1         대화 상대 목록은 재사용     2         채팅 진행 중인 화면은         재사용     3         신규 채팅 화면은         새...
03 기본 동작 Review
벌써 잊으셨어요? 원래 있던 건데..          MENU           BACK21
보이는 모양이 바뀐 것일 뿐...     Option Menu                   1                       화면에서 실행할 수 있는                       추가 기능 목록 ...
문맥(=Context) 이라 굽쇼?     Context Menu                    1                        목록에서                        상세 화면 진입 없이  ...
빠른 접촉? 교제?     Quick Contact                     1                         프로필 이미지 선택 시,                         연락처 관련 기능...
04 Case Study
브라우저를 비교해 볼까요?26
종료는 앞서 말씀 드렸죠? 정말 쓸데없는 짓!27
팝업의 감동을 알려드립니다~28
Seesmic을 아시나요?     1         재 실행 시 이전 상태로         빠르게 복원     2         Menu, Context Menu 등         기본 동작에 충실     3      ...
많이 쓰고 계시죠? handcent SMS app     임시보관함   1                 사용자 데이터 유실 없음             2                 위젯의 효과적 사용,         ...
기억나시나요? “네이버-다음 구글 공정위 제소…”31
기억나시나요? “네이버-다음 구글 공정위 제소…”     <activity android:name=".EmployeeSearch“>         <!-- Receives the search request. -->   ...
검색 동작을 자세히 살펴보면…         Android Search                    KTH 직원검색 App                                                   ...
나는 꼽사리다! “공유” 기능!     <activity android:name=".MyShare">         <intent-filter>             <action android:name="android...
facebook 거저먹기 : Single Sign On35
facebook 거저먹기 II     String uri = "fb://page/" + yourFBpageId;     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.pars...
접속해 보세요~ : OpenIntents.org37
참고 하세요~     Title           Action     프린트             com.rcreations.send2printer.print     소리 크기 조절        org.openinten...
바코드 스캔http://www.openintents.org/en/node/67939
저희부터 할께요!40
무찌르자 애플!!!! 타도 애플!!!41
각자의 길로 가는 게 좋겠죠?42
밑줄 쫙~     1     Application은     항상 실행 중인 상태라는     경험을 제공      사용자에게는 기능의 연속성이 중요함      Activity 재 실행 시 마지막 상태를 최대한 복원  ...
똥글뱅이!     2     Android 기본 동작 준수      [MENU], [BACK]키 동작      Option Menu, Context Menu, Quick Contact 등       적절하게 사용  ...
형광펜!     3     사용자 알림은 용도에 맞게        POP-UP은 불가피한 경우만        중요한 이벤트에 사용자 대응이 꼭 필요한 경우        사용자 입력 데이터 유실 문제가 있을 때   ...
이것도!     4     Search, Share 등     사용자가 예상하는 경로에     기능 배치46
One more thing!     5     동일 서비스일 지라도     iOS와 Android의 UX는     별도로 접근47
감사합니다.모바일개발실 / Android앱팀 팀장 / 오종인      ohjongin@kthcorp.com              @ji5
Upcoming SlideShare
Loading in …5
×

H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략_Android팀_오종인

974 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
974
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략_Android팀_오종인

  1. 1. 안드로이드의Seamless UX를 위한Activity 활용전략Android앱팀 I 오종인
  2. 2. 이런 얘기를 하려고 합니다 01 Android vs. iOS 02 Application, Activity, Task 03 기본 동작 Review 04 Case Study2
  3. 3. 무엇이 무엇이 똑같을까?3
  4. 4. 진정 이런 것을 원하세요?4
  5. 5. 02 Application, Activity, Task
  6. 6. Application 구조부터 달라요! Application Application Process 기능&화면 기능&화면 Activity Activity 기능&화면 Content Provider Service 기능&화면 기능&화면6
  7. 7. Application 구조부터 달라요! Application Process 화면 Activity Activity 화면과 기능의 분리 Content Provider 기능 Service7
  8. 8. Activity는? public class Calculator extends Activity8
  9. 9. 잠시 다른 얘기…9
  10. 10. Application을 종료하고 싶어요~10
  11. 11. 이렇게 하면 된대요! Process.killProcess(Process.myPid()); System.exit(0); ((ActivityManager)getSystemService(ACTIVITY_SERVICE)) .restartPackage(getPackageName());11
  12. 12. 그런데, 왜 종료해야 하나요? 안드로이드가 알아서 ! Low Memory Killer !12
  13. 13. 종료에 대해서 신경 끄세요! 1 모바일 앱 사용 패턴은 최근 사용한 앱 소수의 앱을 반복적으로 2 Application은 항상 실행 중인 상태라는 경험을 제공13
  14. 14. 찾아보세요! Phone Application Message Browser Settings E-mail14
  15. 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에 쌓임 TASK15
  16. 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 116
  17. 17. 복잡해요, Launch Mode Launch mode에 의해서 다양한 동작으로 구성 가능 ☞ standard, singleTask, singleTop, singleInstance17
  18. 18. 그런데, 이럴 때 필요합니다. 1 Notification에서 Activity 실행 시 고려 필수 페북 메신저! 2 새로운 Activity 생성 또는 실행 중인 Activity를 사용18
  19. 19. facebook 메신저를 살펴 보아요~ 1 대화 상대 목록은 재사용 2 채팅 진행 중인 화면은 재사용 3 신규 채팅 화면은 새로운 Activity 생성19
  20. 20. 03 기본 동작 Review
  21. 21. 벌써 잊으셨어요? 원래 있던 건데.. MENU BACK21
  22. 22. 보이는 모양이 바뀐 것일 뿐... Option Menu 1 화면에서 실행할 수 있는 추가 기능 목록 2 사용자가 기대하는 기능을 메뉴 키를 눌렀을 때 찾을 수 있도록 배치22
  23. 23. 문맥(=Context) 이라 굽쇼? Context Menu 1 목록에서 상세 화면 진입 없이 선택 항목의 관련기능 수행23
  24. 24. 빠른 접촉? 교제? Quick Contact 1 프로필 이미지 선택 시, 연락처 관련 기능의 빠른 수행 2 연락처 기능 외에 Quick Action으로 부가 기능 수행도 가능24
  25. 25. 04 Case Study
  26. 26. 브라우저를 비교해 볼까요?26
  27. 27. 종료는 앞서 말씀 드렸죠? 정말 쓸데없는 짓!27
  28. 28. 팝업의 감동을 알려드립니다~28
  29. 29. Seesmic을 아시나요? 1 재 실행 시 이전 상태로 빠르게 복원 2 Menu, Context Menu 등 기본 동작에 충실 3 탄탄한 시나리오, 이미지 대신 색을 이용29
  30. 30. 많이 쓰고 계시죠? handcent SMS app 임시보관함 1 사용자 데이터 유실 없음 2 위젯의 효과적 사용, 정보 제공 및 단축 아이콘 기능 수행30
  31. 31. 기억나시나요? “네이버-다음 구글 공정위 제소…”31
  32. 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. 33. 검색 동작을 자세히 살펴보면… Android Search KTH 직원검색 App Activity 4 Task Activity 3 Activity 1 Activity 2 Activity 4 Task Content Provider Activity 2 Activity 133
  34. 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
  35. 35. facebook 거저먹기 : Single Sign On35
  36. 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
  37. 37. 접속해 보세요~ : OpenIntents.org37
  38. 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_STREAM38
  39. 39. 바코드 스캔http://www.openintents.org/en/node/67939
  40. 40. 저희부터 할께요!40
  41. 41. 무찌르자 애플!!!! 타도 애플!!!41
  42. 42. 각자의 길로 가는 게 좋겠죠?42
  43. 43. 밑줄 쫙~ 1 Application은 항상 실행 중인 상태라는 경험을 제공  사용자에게는 기능의 연속성이 중요함  Activity 재 실행 시 마지막 상태를 최대한 복원  Low Memory Killer에 의한 종료 시나리오에 대비43
  44. 44. 똥글뱅이! 2 Android 기본 동작 준수  [MENU], [BACK]키 동작  Option Menu, Context Menu, Quick Contact 등 적절하게 사용  Low Memory Killer에 의한 종료 시나리오에 대비44
  45. 45. 형광펜! 3 사용자 알림은 용도에 맞게  POP-UP은 불가피한 경우만  중요한 이벤트에 사용자 대응이 꼭 필요한 경우  사용자 입력 데이터 유실 문제가 있을 때  Toast는 focus를 뺏지는 않지만 어떤 동작에 대한 안내인지 명시적으로 표시45
  46. 46. 이것도! 4 Search, Share 등 사용자가 예상하는 경로에 기능 배치46
  47. 47. One more thing! 5 동일 서비스일 지라도 iOS와 Android의 UX는 별도로 접근47
  48. 48. 감사합니다.모바일개발실 / Android앱팀 팀장 / 오종인 ohjongin@kthcorp.com @ji5

×