SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
안드로이드의
Seamless UX를 위한
Activity 활용전략
Android앱팀 I 오종인
이런 얘기를 하려고 합니다




    01 Android vs. iOS

    02 Application, Activity, Task

    03 기본 동작 Review

    04 Case Study

2
무엇이 무엇이 똑같을까?




3
진정 이런 것을 원하세요?




4
02 Application, Activity, Task
Application 구조부터 달라요!




        Application            Application

                                 Process

    기능&화면       기능&화면
                          Activity             Activity



            기능&화면
                             Content Provider



                                     Service
    기능&화면       기능&화면




6
Application 구조부터 달라요!




                             Application

                               Process


                 화면     Activity             Activity


    화면과 기능의 분리
                           Content Provider

                 기능
                                   Service




7
Activity는?




    public class Calculator extends Activity




8
잠시 다른 얘기…




9
Application을 종료하고 싶어요~




10
이렇게 하면 된대요!




     Process.killProcess(Process.myPid());



     System.exit(0);



     ((ActivityManager)getSystemService(ACTIVITY_SERVICE))
        .restartPackage(getPackageName());


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




     안드로이드가 알아서 !



     Low Memory Killer !

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




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


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


13
찾아보세요!



            Phone
          Application


     Message    Browser   Settings



            E-mail

14
동작을 이해해 보아요~

     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
남의 어플에 숟가락 얹기



           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
복잡해요, Launch Mode


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




     ☞ standard, singleTask, singleTop, singleInstance
17
그런데, 이럴 때 필요합니다.




               1
                   Notification에서
                   Activity 실행 시 고려 필수

     페북 메신저!   2
                   새로운 Activity 생성
                   또는
                   실행 중인 Activity를 사용


18
facebook 메신저를 살펴 보아요~



     1
         대화 상대 목록은 재사용


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

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

19
03 기본 동작 Review
벌써 잊으셨어요? 원래 있던 건데..


          MENU




           BACK




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


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


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

22
문맥(=Context) 이라 굽쇼?


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




23
빠른 접촉? 교제?


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

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

24
04 Case Study
브라우저를 비교해 볼까요?




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




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




28
Seesmic을 아시나요?



     1
         재 실행 시 이전 상태로
         빠르게 복원
     2
         Menu, Context Menu 등
         기본 동작에 충실

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

29
많이 쓰고 계시죠? handcent SMS app




     임시보관함   1
                 사용자 데이터 유실 없음




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

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




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




     <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
검색 동작을 자세히 살펴보면…


         Android Search                    KTH 직원검색 App




                                                          Activity 4
                                 Task
     Activity 3     Activity 1          Activity 2       Activity 4




         Task
                                             Content Provider
      Activity 2

      Activity 1

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




     <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
facebook 거저먹기 : Single Sign On




35
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
접속해 보세요~ : OpenIntents.org




37
참고 하세요~


     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
바코드 스캔




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


39
저희부터 할께요!




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




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




42
밑줄 쫙~




     1


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

43
똥글뱅이!




     2


     Android 기본 동작 준수
      [MENU], [BACK]키 동작
      Option Menu, Context Menu, Quick Contact 등
       적절하게 사용
      Low Memory Killer에 의한 종료 시나리오에 대비




44
형광펜!




     3


     사용자 알림은 용도에 맞게
        POP-UP은 불가피한 경우만
        중요한 이벤트에 사용자 대응이 꼭 필요한 경우
        사용자 입력 데이터 유실 문제가 있을 때
        Toast는 focus를 뺏지는 않지만
         어떤 동작에 대한 안내인지 명시적으로 표시



45
이것도!




     4


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


46
One more thing!




     5


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


47
감사합니다.
모바일개발실 / Android앱팀 팀장 / 오종인
      ohjongin@kthcorp.com
              @ji5

Weitere ähnliche Inhalte

Ähnlich wie H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략

유저해빗(UserHabit) 서비스 소개서 요약본
유저해빗(UserHabit) 서비스 소개서 요약본유저해빗(UserHabit) 서비스 소개서 요약본
유저해빗(UserHabit) 서비스 소개서 요약본Ha ji Yoon
 
모바일시대의프로토타이핑 (@웹월드컨퍼런스, 2014.11.19)
모바일시대의프로토타이핑 (@웹월드컨퍼런스, 2014.11.19)모바일시대의프로토타이핑 (@웹월드컨퍼런스, 2014.11.19)
모바일시대의프로토타이핑 (@웹월드컨퍼런스, 2014.11.19)keesung kim
 
모바일 앱 프로그래밍 2015-2019년 기말시험
모바일 앱 프로그래밍 2015-2019년 기말시험모바일 앱 프로그래밍 2015-2019년 기말시험
모바일 앱 프로그래밍 2015-2019년 기말시험Lee Sang-Ho
 
서비스소개서Ver4
서비스소개서Ver4서비스소개서Ver4
서비스소개서Ver4Joo Hyung Yaw
 
유저해빗 서비스 소개서
유저해빗 서비스 소개서유저해빗 서비스 소개서
유저해빗 서비스 소개서Joo Hyung Yaw
 
iOS Human Interface Guidelines 한글 정리 문서입니다.
iOS Human Interface Guidelines 한글 정리 문서입니다.iOS Human Interface Guidelines 한글 정리 문서입니다.
iOS Human Interface Guidelines 한글 정리 문서입니다.Dong Jin Lee
 

Ähnlich wie H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략 (6)

유저해빗(UserHabit) 서비스 소개서 요약본
유저해빗(UserHabit) 서비스 소개서 요약본유저해빗(UserHabit) 서비스 소개서 요약본
유저해빗(UserHabit) 서비스 소개서 요약본
 
모바일시대의프로토타이핑 (@웹월드컨퍼런스, 2014.11.19)
모바일시대의프로토타이핑 (@웹월드컨퍼런스, 2014.11.19)모바일시대의프로토타이핑 (@웹월드컨퍼런스, 2014.11.19)
모바일시대의프로토타이핑 (@웹월드컨퍼런스, 2014.11.19)
 
모바일 앱 프로그래밍 2015-2019년 기말시험
모바일 앱 프로그래밍 2015-2019년 기말시험모바일 앱 프로그래밍 2015-2019년 기말시험
모바일 앱 프로그래밍 2015-2019년 기말시험
 
서비스소개서Ver4
서비스소개서Ver4서비스소개서Ver4
서비스소개서Ver4
 
유저해빗 서비스 소개서
유저해빗 서비스 소개서유저해빗 서비스 소개서
유저해빗 서비스 소개서
 
iOS Human Interface Guidelines 한글 정리 문서입니다.
iOS Human Interface Guidelines 한글 정리 문서입니다.iOS Human Interface Guidelines 한글 정리 문서입니다.
iOS Human Interface Guidelines 한글 정리 문서입니다.
 

Mehr von KTH

H3 2011 모바일에서의 Location API 완전정복
H3 2011 모바일에서의 Location API 완전정복H3 2011 모바일에서의 Location API 완전정복
H3 2011 모바일에서의 Location API 완전정복KTH
 
H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요KTH
 
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법KTH
 
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례KTH
 
H3 2011 하이브리드 클라우드 활용방안 및 도입전략
H3 2011 하이브리드 클라우드 활용방안 및 도입전략H3 2011 하이브리드 클라우드 활용방안 및 도입전략
H3 2011 하이브리드 클라우드 활용방안 및 도입전략KTH
 
H3 2011 흰머리 성성하게 개발하기 위해
H3 2011 흰머리 성성하게 개발하기 위해H3 2011 흰머리 성성하게 개발하기 위해
H3 2011 흰머리 성성하게 개발하기 위해KTH
 
H3 2011 UX에 대한 7가지 오해와 진실
H3 2011 UX에 대한 7가지 오해와 진실H3 2011 UX에 대한 7가지 오해와 진실
H3 2011 UX에 대한 7가지 오해와 진실KTH
 
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택KTH
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략KTH
 
H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래
H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래
H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래KTH
 
H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!
H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!
H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!KTH
 
H3 2011 모바일 시대의 Search Engine Optimization 전략
H3 2011 모바일 시대의 Search Engine Optimization 전략H3 2011 모바일 시대의 Search Engine Optimization 전략
H3 2011 모바일 시대의 Search Engine Optimization 전략KTH
 
H3 2011 반응형 웹디자인, 진짜 할 만 한가?
H3 2011 반응형 웹디자인, 진짜 할 만 한가?H3 2011 반응형 웹디자인, 진짜 할 만 한가?
H3 2011 반응형 웹디자인, 진짜 할 만 한가?KTH
 
H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래
H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래
H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래KTH
 
H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0
H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0
H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0KTH
 

Mehr von KTH (15)

H3 2011 모바일에서의 Location API 완전정복
H3 2011 모바일에서의 Location API 완전정복H3 2011 모바일에서의 Location API 완전정복
H3 2011 모바일에서의 Location API 완전정복
 
H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요
 
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
 
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례
 
H3 2011 하이브리드 클라우드 활용방안 및 도입전략
H3 2011 하이브리드 클라우드 활용방안 및 도입전략H3 2011 하이브리드 클라우드 활용방안 및 도입전략
H3 2011 하이브리드 클라우드 활용방안 및 도입전략
 
H3 2011 흰머리 성성하게 개발하기 위해
H3 2011 흰머리 성성하게 개발하기 위해H3 2011 흰머리 성성하게 개발하기 위해
H3 2011 흰머리 성성하게 개발하기 위해
 
H3 2011 UX에 대한 7가지 오해와 진실
H3 2011 UX에 대한 7가지 오해와 진실H3 2011 UX에 대한 7가지 오해와 진실
H3 2011 UX에 대한 7가지 오해와 진실
 
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
 
H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래
H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래
H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래
 
H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!
H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!
H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!
 
H3 2011 모바일 시대의 Search Engine Optimization 전략
H3 2011 모바일 시대의 Search Engine Optimization 전략H3 2011 모바일 시대의 Search Engine Optimization 전략
H3 2011 모바일 시대의 Search Engine Optimization 전략
 
H3 2011 반응형 웹디자인, 진짜 할 만 한가?
H3 2011 반응형 웹디자인, 진짜 할 만 한가?H3 2011 반응형 웹디자인, 진짜 할 만 한가?
H3 2011 반응형 웹디자인, 진짜 할 만 한가?
 
H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래
H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래
H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래
 
H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0
H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0
H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0
 

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

  • 1. 안드로이드의 Seamless UX를 위한 Activity 활용전략 Android앱팀 I 오종인
  • 2. 이런 얘기를 하려고 합니다 01 Android vs. iOS 02 Application, Activity, Task 03 기본 동작 Review 04 Case Study 2
  • 4. 진정 이런 것을 원하세요? 4
  • 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
  • 21. 벌써 잊으셨어요? 원래 있던 건데.. MENU BACK 21
  • 22. 보이는 모양이 바뀐 것일 뿐... Option Menu 1 화면에서 실행할 수 있는 추가 기능 목록 2 사용자가 기대하는 기능을 메뉴 키를 눌렀을 때 찾을 수 있도록 배치 22
  • 23. 문맥(=Context) 이라 굽쇼? Context Menu 1 목록에서 상세 화면 진입 없이 선택 항목의 관련기능 수행 23
  • 24. 빠른 접촉? 교제? Quick Contact 1 프로필 이미지 선택 시, 연락처 관련 기능의 빠른 수행 2 연락처 기능 외에 Quick Action으로 부가 기능 수행도 가능 24
  • 27. 종료는 앞서 말씀 드렸죠? 정말 쓸데없는 짓! 27
  • 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
  • 35. facebook 거저먹기 : Single Sign On 35
  • 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. 접속해 보세요~ : OpenIntents.org 37
  • 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
  • 42. 각자의 길로 가는 게 좋겠죠? 42
  • 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
  • 47. One more thing! 5 동일 서비스일 지라도 iOS와 Android의 UX는 별도로 접근 47
  • 48. 감사합니다. 모바일개발실 / Android앱팀 팀장 / 오종인 ohjongin@kthcorp.com @ji5