LectureNotes on G Pad (Android App Review)

강의 노트 여보세요! 이것은 LectureNotes 앱입니다 나는이 스타일러스를 DAISO에서 1,000 원 (약 1 달러)에 샀다

PDF 문서 내의 텍스트를 강조 표시합니다 PDF 파일을 가져 오려면, Google Play에서 'PDFView'를 다운로드해야합니다 줌 인 – 축소! 자세한 내용은 http://dipsyleecom을 참조하십시오

Yooic 사용 가이드 – 1. 앱 생성하기

http://yooiccom 서비스를 사용해서 모바일 홈페이지를 안드로이드 앱으로 만들어 보겠습니다

오른쪽에 보이는 폰화면은 On Screen Phone을 사용해 실제 폰과 연결되어 있습니다 샘플에 사용할 홈페이지를 살펴 보겠습니다 폰으로도 한 번 확인해 보겠습니다 모바일 주소는 앞에 m 이 붙는군요

PC브라우저에서 주소를 수정하고 다시 확인해보겠습니다 자 그럼 이제부터 이 홈페이지를 앱으로 만들어 보겠습니다 주소창에 yooiccom 을 입력하여 사이트에 접속한 후 SIGN IN 버튼을 눌러 로그인합니다 그 다음 적절한 템플릿을 고릅니다

b002 하단 슬라이드 메뉴로 한번 만들어 보겠습니다 패키지명을 적절하게 수정하고 다음 버튼을 누릅니다 앱 이름도 수정하고, 웹 사이트 URL은 브라우저에서 복사하겠습니다 전화번호도 마찬가지로 복사합니다 이런 그림이라 복사가 안되네요

^^; 아래쪽에 있는 텍스트를 다시 복사하겠습니다 이제 완료를 누르면 프로젝트가 생성 됩니다 프로젝트 목록을 확인해 보면 방금 만든 프로젝트가 추가되있습니다 생성을 누르면 APK를 빌드할 수 있습니다 스토어에 등록하려면 키로 사인을 해야합니다

키이름과 키 패스워드를 써주면 간단하게 키스토어를 생성할 수 있습니다 완료를 누르면 APK 빌드를 시작합니다 앱을 빌드할 때는 시간이 좀 걸립니다 APK 빌드가 끝나면 실제 폰에 설치해서 테스트해 보겠습니다 APK를 폰에 설치하는 방법은 여러가지가 있지만, 간단하게 폰의 인터넷앱으로 APK를 다운로드 받아 설치해 보겠습니다

yooiccom 사이트 주소를 다시 입력해서 접속하고, SIGN IN 버튼을 눌러 로그인 하고, 내 프로젝트 관리 메뉴를 클릭하면 추가한 프로젝트를 보실 수 있습니다 설명하는 동안 빌드가 끝났네요 다운 버튼을 눌러 APK 파일을 다운로드합니다 위쪽 상황선을 끌어 내려서 다운로드 받은 파일을 클릭하면 폰에 설치할 수 있습니다

홈 화면에서 앱이 설치 되었나 확인해 보겠습니다 설치된 앱을 실행해 보겠습니다 하단 메뉴 버튼을 터치하면 메뉴가 나옵니다 화면 캡처도 할 수 있고, 고객센터를 터치하면 입력했던 전화번호로 전화를 겁니다 이렇게 Yooic

com을 사용해 앱을 만들어 보았습니다 참 쉽죠?

Yooic 사용 가이드 – 4 – a. Google Play 스토어에 앱 등록하기

http://yooiccom으로 만든 앱을 Google Play 스토어에 등록해 보겠습니다

yooiccom에 접속해서 프로젝트 목록에서 앱의 상세 정보를 볼 수 있는데, 아래쪽을 보면, 스토어 등록 상태가 표시 됩니다 등록하기 위해서 APK를 다운로드 받아 보겠습니다 작업하기 편하게 바탕화면에 복사하겠습니다 다시 사이트로 돌아와서, Google Play 개발자 콘솔을 엽니다

새 어플리케이션 추가 버튼을 누르고 앱 이름을 입력합니다 APK를 업로드 버튼을 누르면 업로드할 수 있는 화면이 나옵니다 바탕화면에 복사한 APK를 업로드해 보겠습니다 단계를 하나 완료하면 이렇게 녹색 체크가 표시 됩니다 아래 3가지도 계속 진행해 보겠습니다

필수로 입력해야할 부분은 *표로 표시가 됩니다 간단한 설명은 따로 준비한 내용이 없어 적당히 쓰겠습니다 ^^; 자세한 설명은 홈페이지에서 일부 내용을 복사해서 사용하겠습니다 회사 소개 부분의 내용을 사용하겠습니다 실제로 작성하실 때에는 앱의 기능에 대한 설명이 반드시 들어가야 합니다 다음 필수 항목은 앱의 캡처 화면입니다

앱을 실행해서 최소 2장 이상을 캡처해야 합니다 캡처하는 법은 폰마다 다릅니다 이 폰은 전원과 소리 줄임 버튼을 동시에 오래 누르면 캡처됩니다 최소 2장을 해야하므로 하나 더 하겠습니다 이 폰은 현재 USB로 연결되어 있어서 내 컴퓨터에서 파일을 복사해올 수 있습니다

이 폰은 Pictures/Screenshots 폴더에 캡처 이미지가 들어가 있습니다 작업하기 편하도록 바탕화면에 복사해두겠습니다 다시 등록화면으로 돌아와서, 복사한 이미지들을 추가해줍니다 다음 필수 항목은 고해상도 아이콘입니다 시간 관계상 임시로 만든 앱 아이콘을 늘려서 사용하겠습니다

고해상도 아이콘 크기는 512 x 512 입니다 바탕화면에 다른이름으로 저장하고, 웹페이지로 돌아와서 업로드합니다 다음은 그래픽 이미지입니다 그래픽 이미지는 크기가 좀 큰데, 홈페이지의 이미지를 적당히 사용하겠습니다 이 화면을 일단 Print Screen 키를 눌러서 화면 전체를 캡처하고, 그림판에서 크기를 조절하겠습니다

그래픽 이미지의 크기는 1024 x 500 입니다 다른 이름으로 바탕화면에 저장하고, 웹사이트에 업로드합니다 다음 필수 항목들을 계속 작성하겠습니다 어플리케이션 유형을 선택하고, 카테고리를 선택하고, 콘텐츠 등급을 선택하고, 웹사이트 주소는 복사해서 넣겠습니다 전화도 마찬가지로 복사하겠습니다

개인정보 취급 방침 URL이 있다면 넣어주시고 없다면 체출하지 않음을 선택합니다 임시 저장을 하면 잘못 작성한 것이 없는지 확인해볼 수 있습니다 이런, 문제가 있군요 전화번호가 잘못되었네요 지역번호를 써줘야 하나? 국가 번호를 써줘야 하나? 저장이 되었습니다

다음 단계로 콘텐츠 등급을 지정해 보겠습니다 이메일을 적어주고, 콘텐츠 종류를 선택합니다 설문지를 작성합니다 저장을 하고 등급계산을 한 후, 등급 적용 버튼을 눌러줍니다 마지막으로 가격을 지정하겠습니다

무료로 모든 국가에서 판매 가능하도록 설정하겠습니다 임시 저장을 눌렀는데, 가격 및 배포가 녹색 체크가 아직 안되는군요 아래 내려가서 필수 항목을 마저 체크해줍니다 임시 저장을 누르면 모든 항목이 녹색 체크됩니다 이제 앱게시 버튼을 누르면, 심사 후 앱이 출시 됩니다

게시 보류 중으로 표시가 되는데, 출시가 되려면 3~4 시간 정도 걸립니다 이제 기다리기만 하면 스토어에 등록이 됩니다 3시간을 기다리기엔 너무 지루하니 기존에 등록된 앱을 예로 설명하겠습니다 스토어에 등록이 되면 등록된 앱으로 표시가 됩니다 스토어에서 확인해 보겠습니다

Google Play 개발자 콘솔을 열어서 등록 정보를 수정할 수 있습니다 메뉴의 통계를 누르면 판매된 총 개수, 설치 기기, 국가 등에 대한 정보를 볼 수도 있습니다 지금까지 앱을 등록하는 방법을 알아보았습니다 빠른 진행을 위해 저는 필수 정보 위주로 대충 작성했지만, 실제로 등록하실 때는 모든 정보를 꼼꼼하게 작성하시기 바랍니다

Toolbars for a flexible Action Bar & more (Android Development Patterns Ep 5)

안드로이드 롤리팝에서 머티리얼 디자인은 더욱 마법과도 같은 순간을 생성하여 앱의 모습과 느낌을 바꿨습니다 하지만 이전 버전의 안드로이드로 작동되는 장치는 같은 옵션을 가지고 있지 않습니다 저는 조애나 스미스입니다 머티리얼 디자인에서 제공하는 가장 멋진 기능 중에 하나는 툴바입니다 이제는 더욱 마법과도 같아졌습니다 이전의 기종과도 이제는 호환이 되기 때문입니다 툴바는 기존의 액션바 보다 더욱 다채롭고 유연한 뷰입니다 사실, 툴바는 뷰 하이어아키의 한 부분입니다 그래서 움직이게 할 수 있고 스크롤 이벤트에 반응 할 수 있는 것입니다 이건 뷰이기 때문에 툴바를 독립형 요소로 앱의 어디에서나 사용할 수 있습니다 화면의 상단에서 전체 레이아웃 넓이를 차지하지 않고도 사용자들에게 옵션과 제어를 제공할 수 있습니다 여러 툴바를 가질 수도 있습니다 구조가 레이아웃의 콘텐츠에 의존하고 있거나 사용자에게 많은 다양한 제어를 제공하고 있다면 말입니다 액션과 옵션이 있는 툴바를 덧붙이기 위해서는 사용자에게 여러분이 원하는 액션을 표시하기 위한 메뉴를 툴바에 추가 할 수 있습니다 부모 액티비티로 이동하게 만드는 네비게이션 버튼과 같은 고유의 제어를 생성할 수도 있습니다 툴바는 레이아웃의 모든 부분에서 사용할 수 있을 뿐만 아니라 그저 액션바의 모습과 기능에 더 많은 제어를 원한다면 액션바 대신에 툴바를 사용하는 것을 선택할 수도 있습니다 표준 액션바에 위치한 툴바를 사용하기 위해서 먼저 액션바를 비활성화해야 합니다 이렇게 할 수 있는 가장 쉬운 방법은 AppCombatNoActionBar테마에서 테마를 확장하거나 가벼운 변화를 주는 것입니다 그 다음에 여러분이 앱에서 만들고 싶은 레이아웃에 원하는 방식으로 툴바를 만들고, set action bar를 호출 해서 액션바를 액티비티나 프래그먼트로 지정하면 됩니다 이러한 메소드를 호출로 하면 시스템은 표준 액션바 옵션을 자동으로 추가할 것입니다 그러므로 여러분이 메뉴를 추가할 필요가 없습니다 이제 툴바가 얼마나 멋진지 알게 되셨을 건데요 그러면 어떻게 더 오래된 SDK에 맞춰진 여러분의 앱 버전에서 사용할 수 있을까요? 툴바는 AppCompat V21를 위한 지원 라이브러리에 추가되어 있습니다 오래된 장치에 있는 액션바를 교체하기 위해서 설정 액션바 대신에 설정 지원 액션바를 호출하는 것만큼 쉽습니다 그러니 이용 가능한 모든 지원 옵션에 관한 문서를 확인해보시고 사용자들에게 더 많은 마법과도 같은 순간을 제공하시길 바랍니다 그리고 더 많은 팁들과 앱을 최고로 만들기 위해서 안드로이드 개발 패턴 콘텐츠를 계속해서 보시고 G+커뮤니티에도 참여하시길 바랍니다 가장 중요한 것은 계속해서 더 나은 앱을 만드는 것입니다

Providing Search with SearchView (Android Development Patterns Ep 7)

많은 사람들이 여러분의 앱을 사용하고 찾으려면 두 가지 중 하나의 방법으로 분류해야 하는데요 사람들이 콘텐츠를 둘러보면서 찾던지 특정한 콘텐츠를 직접 검색해야 합니다 여러분의 앱이 좋은 인앱 검색을 제공하지 않는다면 사용자 기반의 일부에게만 서비스를 제공하고 있는 것입니다 안녕하세요 저는 이안 레이크입니다 오늘 저는 여러분에게 사용자들이 원하는 콘텐츠를 최대한 쉽고 정확하게 찾을 수 있도록 하는 서치뷰를 사용하여 훌륭한 인앱 검색을 만드는 법을 알려드릴 것입니다 좋은 검색을 제공하는 구성 요소는 가장 힘들 수도 있지만 좋은 콘텐츠에서 시작됩니다 하나의 검색 문자열을 사용하여 검색하는 것입니다 그러한 지도를 사용자의 목록이나 게시물의 전 텍스트 검색을 여러분의 데이터에 두고 데이터를 저장하는 방법은 모두 여러분에게 달려 있습니다 특별한 전 텍스트 검색(FTS)을 장치에 있는 테이블에 부분적으로 사용하는 게 도움이 될 수 있습니다 여러분의 데이터 세트가 충분히 작다면 검색 속도가 굉장히 중요합니다 지금은 검색 과정에만 집중하도록 하겠습니다 검색이 핵심적인 패턴이면 검색을 제공하기 위한 하나의 패턴을 표준화하는 게 좋겠죠 안드로이드에서는 서치뷰라고 적절한 이름을 가진 기능이 있습니다 일반적으로 서치뷰는 메인 앱, 바 또는 적절한 툴바에서 액션으로 여겨집니다 서치뷰 아이콘을 클릭하면 서치뷰는 인 라인으로 확장하여 사용자들이 즉시 검색할 수 있습니다 안드로이드 지원 라이브러리에 속한 AppCompat을 통하여 서치뷰를 모든 안드로이드 21과 더 높은 장치에서 사용할 수 있습니다 여러분의 앱 바로 안드로이드를 설치하는 것은 여러분이 추가하는 메뉴에 또 다른 항목을 추가하는 것입니다 눈에 띄는 제목과 아이콘 외에도 showAsAction에 collapseActionView가 있는 게 보이실 겁니다 이 항목은 메뉴가 기본값으로 정리되어야 하지만 정의된 showAsAction로 확장될 수 있다는 것을 나타냅니다 또한 showAsAction을 위해서 ifRoom이나 다른 대안이 필요합니다 그게 없다면 아이콘은 오버플로우 메뉴에서만 나타날 것입니다 그리고 이걸 완전한 서치뷰로 확장할 수도 없습니다 우리가 원하던 바가 아니죠 이걸 추가하여 우리는 서치뷰로 확장할 수 있는 멋진 검색 아이콘을 만들 수 있습니다 하지만 검색이 이동하거나 무언가를 하는 것은 아니에요 우리의 메뉴에 추가가 되었을 때 참조를 얻을 수 있지만 그 다음은 어떻게 해야 할까요? 먼저, setOnQueryTextListener를 사용하는 완전 수동 모드가 있어요 검색 텍스트가 변경되거나 사용자가 검색할 것을 입력하면 진행되는 것들과 시기를 정확하게 제어할 수 있도록 하는 콜백을 사용할 수 있습니다 검색이 가능한 구성을 제공하는 것보다 더 많은 기능을 이용할 수 있습니다 이것은 XML파일입니다 검색에 관련된 모든 다양한 옵션을 위한 것이죠 완전한 문서 페이지를 위한 많은 옵션들이 있습니다 상세한 설명이 있으며 전체적으로 9페이지나 되는 다양한 옵션이 있죠 다행히도, 이걸 정말로 짧고 쉽게 만들 수도 있습니다 일반적으로 여러분의 앱 이름이 되는 라벨과 검색 포스트의 형태의 힌트나 여러분의 앱 이름의 검색만 있어도 됩니다 여러분의 서치뷰에 음성검색을 추가하려면 어떻게 해야 할까요? 여러분의 검색 가능한 설정에 하나의 라인만 추가하면 됩니다 꽤 강력한 라인이지만 음성검색은 들리는 것을 바로 검색한다는 것을 기억하시길 바랍니다 검색할 때 변경할 수 없는 것입니다 그래서 음성검색을 활성화 하기 전에 검색할 것을 확인해야 합니다 그러면 검색 가능한 설정을 액티비티와 연결시킬 것입니다 사용자가 검색을 입력할 때 이러한 액티비티를 이용할 수 있겠죠 여기에서 우리는 singleTop 런치 모드를 사용했는데요 두 번째 검색과 같이 검색 가능한 액티비티에서 서치뷰를 사용하는 것이 중요하기 때문입니다 이러한 런치모드는 검색 결과 화면에서 잠재적으로 큰 백 스택을 막을 수 있으니까요 SearchManager를 사용하는 검색 가능한 설정에 서치뷰를 연결시키면 여러분의 액티비티에 추가된 메타데이터요소를 분석하는 시스템 서비스가 여러분의 서치뷰로 통과할 수 있는 검색 가능한 정보를 생성합니다 이로 인하여 우리의 검색 가능한 액티비티가 작동될 것입니다 실제 검색 텍스트를 가져올 때 우리는 액션을 검색하고 인텐트에서 추가적인 검색을 가져올 수 있습니다 이것은 onCreate로 불리며 singleTop 런치 모드를 사용하신다면 onNewIntent에서도 호출할 수 있습니다 이제 여러분에게는 훌륭한 서치뷰가 생겼습니다 우리가 선택한 액티비티를 곧바로 선택할 수 있습니다 최근의 검색 제안이나 사용자들이 원하는 것을 더욱 쉽게 찾을 수 있는 커스텀 제안에 대해서 말씀 드리지 않았는데요 개발자 사이트에서 더 많은 정보를 보시길 바랍니다 더 나은 앱을 만들기 위해 여러분이 생각해내는 훌륭한 서비스들이 정말로 기대됩니다

남성패션앱 1위 MAPSSI – 디자이너 인터뷰 와일드 브릭스

우리는 패션 백화점과 패션 라이프 스타일 제품을 디자인하고 생산하며 국내외 브랜드의 콜렉션 매장에 전시합니다 2013 년 WILDBRICKS는 문화 예술 단체로 시작하여 현재는 현대 고전에 의해 인도되는 브랜드로 알려져 있습니다

우리는 패션 백화점과 패션 라이프 스타일 제품을 디자인하고 생산하며 국내외 브랜드의 콜렉션 매장에 전시합니다 <리스팅 기회> 내가 한국으로 돌아 일본 문화의 의류 제조 설계 프로그램을 학습 완료 후, 나는 흥미있는 일을, 그래서 브랜드를 시작합니다 그래서 무의식적으로 생계를 점차 브랜드로 진화 생산을 시작하는 팀을 설정 중에서는 4 명의 개발을 담당 WILDBRICKS <주요 제품> 이 제품은 서류 가방입니다 그것은 종이처럼 보일지라도 종이가 아니고 셀룰로스식이 섬유를 사용합니다

인쇄는 실크 스크린 인쇄를 직접 사용합니다 이 제품은 핸드백이며 셀룰로오스 제품의 강화 버전입니다 고급 가죽으로 만들어진 하드 트위스트 및 폴드의 이전 문제를 해결하십시오 카멜, 브라운, 카키, 인디고, 그레이 및 블랙의 총 6 가지 색상이 소개되었습니다 기분에 따라 매일 자연스럽게 매치시킬 수 있습니다

<MAPXI 사용자 권장 사항> 특히 60 세부터 70 세까지의 클래식 디자인이나 산업 디자인, 레트로 등에 관심이있는 친구들에게 추천하고 싶습니다 <향후 계획> S / S 시즌은 기존 제품 라인을 계획하는 것 외에도 의류 라인을 계획하고 있습니다 우리는 기존의 현대 고전 스타일에 어울리는 의상 디자인을 시작할 예정입니다

마인드온 심리연구소 : 마인드온 앱 소개 동영상

앱 스토어에서 '마인드온'을 검색합니다 심리극, 역할극, 심리상담 등으로도 검색이 됩니다

설치가 완료되면 화면에 아이콘이 보입니다 로딩 페이지가 보입니다 앱에서 사용되는 기능이 보입니다 Hello Mind-ON~!! 메인 화면입니다

우측 하단에 있는 버튼을 누르면 다양한 메뉴를 볼 수 있습니다 Hello Mind-ON!을 클릭합니다 잠시 후 마인드온 앱의 6가지 메뉴버튼이 보입니다 심리극장 버튼을 누르면 한국심리극역할극상담학회 심리극전문가를 만날 수 있습니다

예약 버튼을 누르면 예약 또는 문의 정보를 볼 수 있습니다 마인드온 심리극장의 경우 네이버 스토어와 연동됩니다 프로그램 버튼을 누르면 잠시후 다양한 주제의 심리극, 역할극 프로그램을 볼 수 있습니다 해당 이미지를 클릭하면 프로그램의 설명설명서 다운, 실시간 예약하기가 가능합니다 심리상담 버튼을 클릭하면 상담과 심리치료 프로그램의 예약, 결제, 문의를 할 수 있습니다

공개교육의 버튼을 누르면 다양한 공개교육의 정보 확인과 예약을 할 수 있습니다 온라인 콘텐츠 버튼을 누르면 마인드온 온라인 콘텐츠 사이트가 연결되고 앞으로 개설 될 무료, 유료 교육 콘텐츠 사이트가 보여집니다 Mind-ON? 버튼을 누르면 마인드온의 소개 페이지가 보입니다 하단에 뒤로가기 아이콘을 클릭하면 전 화면으로 연결되고 하단에 집 모양의 아이콘을 클릭하면 메인화면으로 이동합니다 마인드온 앱, 많이 사랑해주세요 : ) 끝!

Making Apps Accessible (Android Development Patterns Ep 10)

많은 안드로이드 사용자들은 터치 화면을 완전히 보거나 사용할 수 없거나 귀에 들리는 알림을 인식하기 힘든 난청과 같은 시각적, 물리적 또는 나이에 관련된 제한을 가지고 있습니다 저는 조애나 스미스입니다 오늘 저는 세가지 기본적인 접근 고려사항에 대해서 설명 드리겠습니다 여러분의 앱의 몇 가지 작은 변경사항이 대다수의 사용자들이 접근할 수 있도록 만들지만 모든 안드로이드 사용자가 같은 방식으로 장치를 이용하여 소통할 수 있는 것은 아닙니다 하지만 여러분의 앱이 모두가 사용할 수 있도록 만드는 것은 중요합니다 여러분의 앱 접근성은 설치 횟수와 여러분의 앱 평가 품질 그리고 사용자가 여러분의 앱을 사용하는 기간에 영향을 끼칠 수 있습니다 안드로이드에서 접근할 수 있는 앱을 생성하는 것은 간단합니다 TextToSpeech, 촉감 피드백과 제스쳐 내비게이션, 트랙볼 그리고 방향 패드 내비게이션을 위한 API를 제공하기 때문입니다 대다수의 접근성 시나리오를 가지고 있도록 하기 위해서 앱을 배포하기 전에 여러분이 확인해야 하는 세가지 기본 체크 사항들이 있습니다 여러분이 할 수 있는 수 많은 개선점들이 있지만 이러한 세 가지에 중점을 두는 것이 가장 유용할 것입니다 먼저, 보이는 음성을 가지고 있지 않은 사용자 인터페이스 구성요소를 위한 콘텐츠 설명을 제공합니다 이는 특히 이미지 버튼, 이미지 뷰 그리고 체크박스 구성요소에 중요합니다 이러한 요소들이 종종 앱의 흐름에 영향을 끼치기 때문입니다 android:contentDescription 레이아웃 속성 또는 setContentDescription 방법을 사용하여 장치의 접근성 서비스를 위한 정보를 제공하여 사용자가 사용할 수 있도록 나타납니다 여러분의 아웃플로에서 혼란을 제한하기 위해서 장식적인 그래픽의 콘텐츠 설명을 널로 설정합니다 저는 이를 위해서 토크백 앱을 사용하는 것을 권장하는데요 논리적인 콘텐츠 설명을 위한 개별적인 구성요소를 테스트하고 여러분의 앱에서 예상치 못한 것들이 없다는 것을 확신할 수 있습니다 두 번째로 사용자들이 하드웨어를 기반으로 하거나 디지털 패드, 트랙볼, 키보드 그리고 내비게이션 제스처와 같은 소프트웨어 방향 제어를 사용하여 여러분의 스크린 레이아웃을 사용할 수 있도록 합니다 여러분의 앱이 이러한 모든 것들을 지원한다는 것을 확신해야 합니다 여러분의 앱을 꼭 테스트하시길 바랍니다 모든 중요한 UI 요소에 접근할 수 있고 집중할 수 있다는 것을 확신할 수 있도록 아이즈 프리 키보드와 같이 여러분을 위해 이러한 하드웨어 제어를 시뮬레이트할 수 있도록 도와주는 몇 가지 앱들이 있습니다 사용자가 원하는 요소를 간단하게 선택할 수 없을 때 모든 요소의 순서가 중요하다는 것이 더욱 명백히 드러납니다 논리적인 전환과 필요한 포커스 순서를 조정하기 위해 여러분의 앱을 확인해보시길 바랍니다 방향에 따라서 명백하게 나타나는 요소를 집중할 수 있거나 그렇지 않도록 설정하면서 포커스 순서를 제어할 수 있습니다 마지막으로, 하나 이상의 매카니즘을 이용하여 항상 피드백을 제공해야 합니다 부차적인 피드백 매카니즘이 있는 오디오 피드백을 결합하여 청력장애인이나 청력에 문제가 있는 사용자들을 지원합니다 예를 들어, 메시지의 도착을 알리는 소리 알림은 가능하다면 촉감 피드백이나 다른 시각적인 신호를 나타내는 시스템 알림을 동반해야 합니다 제가 이전에 말씀 드렸다시피 이러한 세가지 확인 사항들은 여러분의 앱의 접근성을 굉장히 좋게 만들어줄 것입니다 체크사항에 대해서 더 많이 알고 싶으시다면 저희가 제공하는 문서를 확인해보시길 바랍니다 고려해야 하는 다른 사항들도 많은데요 여러분만의 커스텀 뷰 제어와 접근성 서비스를 생성할 수도 있습니다 이러한 변경사항으로 인해서 여러분의 앱이 더욱 좋아지기를 바랍니다 여러분이 할 수 있는 다른 개선사항을 보고 싶으시면 다른 안드로이드 개발 패턴 콘텐츠를 확인하시고 G+커뮤니티에서 팁과 트릭 그리고 도움을 받아보시길 바랍니다 하지만 가장 중요한 것은 더 좋은 앱을 계속해서 만드는 것입니다

Bring Your Android App to Chrome OS – Google I/O 2016

모두들 안녕하세요 구글 I/O에 환영합니다

저는 루이스 헥터 차베즈고 크롬 OS 팀 엔지니어 일원입니다 오늘 발표를 보셨다면 아실텐데요 이젠 크롬북에서 안드로이드 앱을 즐기실 수 있습니다 너무 흥분되네요 드디어 지난 몇 달간 저희가 뭘 하고 있었는지 알려드리게 되어서요 더 이상 비밀이 아닙니다 그럼 먼저 이걸 한 목적이 뭔지 왜 좋은건지 알아볼까요 첫째 크롬 OS는 성장하는 플랫폼이죠 전체 PC 시장은 줄어들고 있지만 크롬 OS는 아직 성장중입니다 작년 성장치가 32%였습니다 부분적으로는 그것보다 더 좋은데요 예를 들면 크롬북은 미국 K-12 교육마켓에서 1위입니다 전세계 44개국 13 OEM에서 50 개 이상의 기기를 내놓아 유저층은 수백만이 넘고요 앞으로 출시될 크롬북도 많습니다 이건 아직 성장중인 거대한 플랫폼이고 잠재적인 새 유저층도 어마어마하죠 여기서 안드로이드 개발자분들이 활약하실 때입니다 안드로이드 개발자는 더 많은 유저를 원하고 크롬북 유저는 더 많은 앱을 원하고 하지만 앱이면 다 좋은 건 아니죠 이미 알고 좋아하는 앱을 원합니다 바로 그래서! 안드로이드 앱을 크롬북에 가져오는 게 양측 다 만족할 수 있는 길입니다 그래서 개발자가 크롬북에 앱을 가져오려면 어떤 옵션이 있나요? 처음엔 오답부터 크롬 OS 앱을 만드시는겁니다 그럼 결국 일을 두 번 하는 거지요 플랫폼도 새로 배우셔야 하고 앱이 조금 더 네이티브하게 보일 수는 있겠습니다만 일이 너무 많아요 해야할 것도 많고 코드 베이스가 전혀 다를 수도 있거든요 그래서 이건 좀 아니고요 다른 옵션은 HTML5 앱 작성이었습니다 이럼 크롬 OS 네이티브 느낌이 날 수도 있지만 안드로이드 HTML wrapper가 필요하죠 전혀 네이티브해 보이지 않게요 안드로이드 플랫폼의 이점을 못 살리기도 하고 그런고로 좋은 옵션은 아닙니다 다른 옵션으로는 크롬을 위한 안드로이드 앱 런타임이 있습니다 저희 크롬 OS 팀이 발표한 거지요 2년 전 2014년에 크롬북에서 안드로이드 앱을 돌리게요 네이티브 클라이언트 샌드박스에서 안드로이드 인스턴스를 완벽히 구동중입니다 유감스럽게도 문제는 좀 있었죠 시스템 리소스에 접근하는 건 네이티브 클라이언트 샌드박스 성질 상 제한되었었죠 그래서 전체 파일 시스템 에뮬레이션을 했어야 했습니다 이거에 안 맞는 앱도 있었고요 네이티브 클라이언트가 싱글 프로세스 실행 모델이어서 작동이 별로였던 앱도 몇 있었고 특히 플레이 스토어요 그리고 개발자에게 아주 중요한 기능 인앱 결제같은거요 그런 건 노력이 추가로 요구됐어요 뭐 이렇게 말은 했지만 안드로이드 앱이 완벽하게 통합된 네이티브 크롬 OS 앱으로 작동하게 접근한 건 맞았다고 봅니다 그래서 이것저것 손보고 플랫폼을 새로 만드는 중입니다 크롬북에서 안드로이드 앱 실행하는 용도로요 네 아까 데모 못 보신 분들이 많으실 것 같은데 지금 짧게 다시 하죠 표준 크롬 OS 데스크톱입니다 하지만 이젠 플레이 스토어가 있죠? 물론 인터넷 안되니까 지금은 안 들어가고요 다행히 미리 지메일같은 걸 인스톨해놨습니다 짜잔 멀티윈도우 지원이 되지요 그것만이 아니라 리사이즈도 되고 최대화 되고 뭐 그런거요 좋지요? 일부 크롬 OS 네이티브 알림창과의 통합도 지원합니다 예를 들면 헬로, 월드! 물론 아까 말했듯이 인터넷 안되니까 건너뛰고 아, 됐네요 안드로이드 앱에 오프라인 접근이 됩니다 그럼 다시 슬라이드로 음, 이미 어떻게 생겼는지는 봤으니 어떻게 구현된 건지 알아볼건데요 이젠 네이티브 클라이언트 안 씁니다 완전히 새로운 샌드박스 메커니즘이에요 안드로이드와 크롬 OS를 따로 관리하기 위해 리눅스 네임스페이스를 씁니다 이미 크롬 OS에 쓰였고 일부 클라우드 서비스에도 있어요 마운트, 프로세스, 유저, 네트워크 그리고 IPC 네임스페이스를 씁니다 크롬 OS 보안팀이 새 기능을 만들었는데요 안드로이드가 리눅스커널 위에서 바로 실행되니까 공격에 취약한 영역이 좀 너무 많아진 것 같아서 크롬 OS 보안팀이 대체 시스템호출 테이블을 추가할 방법을 만들었습니다 지금 있는 시스템 호출 필터링보다 훨씬 더 효율적이고 설정도 쉽습니다 seccomp-bpf 같은거요 그것도 크롬 OS 팀 작품이었죠 안드로이드하고 크롬 OS가 각기 따로 콤포스팅을 하면 다 느려지니까 공유되는 합성모드 모델을 만들었습니다 전체 컴포지터가 한 개에요 그러니까 더 빠르고 응답도 즉각적입니다 그리고, 안드로이드 개발자분들의 주 타겟이 ARM이니까요 적시 생산 바이너리 변형을 준비했습니다 그래서 현재 있는 ARM 앱이 x86 기기에서도 실행될 수 있게요 구글 크롬북 픽셀 같은 거요 추가로 일하시지 않게요 이러한 새로운 접근은 양쪽 OS의 보안을 높은 상태로 유지합니다 크롬 OS의 보안 기능은 다 있으면서 루트 인증, 유저 데이터 암호화, 항상 업데이트 같은 거죠 안드로이드는 그대로 SUSE 리눅스를 쓰고요 에뮬레이션이나 가상 머신은 안 쓰고 다 네이티브 퍼포먼스입니다 그리고 안드로이드 시스템 전체를 실행중이니 안드로이드 마쉬멜로우를 크롬 OS에서 실행하실 수 있습니다 구글 플레이 스토어를 포함해서요 크롬을 위한 앱 런타임에서 배운 건데요 통합이란 거 중요합니다 앱이 OS이 다른 부분들과 통합이 잘되면 잘될수록 모습과 느낌이 좋아집니다 안드로이드에 직접 하드웨어 액세스는 힘들게 해놨습니다 보통은 크롬 OS가 하드웨어를 제어합니다 그래도 통합할 부분은 많아요 그래서 안드로이드 개발자들이 같은 API를 쓸 수 있고 그 API들은 밑에서 크롬 OS를 호출합니다 이러면 양 OS가 동일한 시스템 뷰를 가집니다 분할 뷰가 아니라요 그래서 결론은? 그리고 앱에 미치는 영향은? 완전한 안드로이드 시스템이 구동되니까 대부분의 앱은 코드 변경을 전혀 하지 않고도 크롬 OS에서 실행됩니다 물론 이건 새 플랫폼이니까 최적화 좀 하시고 한두 군데 손보시겠지만 크롬 OS 앱이었던 거나 마찬가지입니다 안드로이드 시스템에서의 실행 기대치가 크롬 OS에서도 똑같이 나옵니다 창 크기는 커져서요 각 작업은 각자 다른 창에서 열립니다 크롬 OS하고 같이 안드로이드의 알림도 뜹니다 앱 런처 자체는 하나고요 로그인 정보는 양 OS에 공유됩니다 그래서 로그인 두 번하실 필요 없고요 다운로드 폴더의 파일도 공유됩니다 하드웨어도 통합되었으니 와이파이하고 블루투스 다 되고요 카메라, 마이크, 오디오, 비디오 다 되고 크롬 OS 입력 메커니즘은 앱별로 관리되고요 그래서 앱이 키보드하고 터치패드 이벤트를 전달받고 크롬북이 지원하면 터치 이벤트도 전달됩니다 이 와중에도 앱은 안드로이드 앱처럼 실행됩니다 안드로이드 스택 그대로이므로 마쉬멜로우의 API도 그대로 쓰실 수 있습니다 구글 플레이 서비스 포함이라 크롬북에서도 인앱 결제 등이 가능합니다 API를 추가하지는 않습니다 그러니까 새로 배울 건 없고요 시스템 서비스도 그대로 그래서 앱하고 시스템 서비스 간의 상호작용도 전하고 똑같습니다 앱 라이프사이클 이벤트 같은 거요 그리고 하드웨어는 추상화되었으므로 그것 관련 신경 쓰실 건 없습니다 확실히 하고 넘어갈 게 크롬 OS에서 앱을 실행할 수는 있지만 이 기능을 쓰시려면 사전 동의가 필요합니다 이 기능을 아직은 쓰고 싶지 않아하실 그런 시나리오도 뭐 충분히 상상이 가거든요 기업과 교육 쪽 유저층을 위해서 추가적인 방책도 만들어 놨습니다 어떤 경우에 어느 앱이 실행될 수 있나 하는 거요 그럼, 이걸 사용 가능한 건 언제일까요 개발자 전용으로는 크롬 OS 53이 있고요 DEV 채널에서 6월에 나올 겁니다 전체 유저용으로는 안정판 채널에서 9월이고요 준비할 여유가 좀 있는 거죠 처음 지원 기기는 셋입니다 에수스 10인치 플립, 에이서 크롬북 R11, 그리고 크롬북 픽셀 2015 다른 기기도 점차 지원을 확대할 예정이므로 기대해주시기 바랍니다 이건 배포판 별 지원 모델을 확인하실 수 있는 URL이고요 기대하세요 뭐 그래서 대부분의 앱이 지금 상태 거의 그대로 작동한다니 좋은 소식인데 그래도 크롬북에서 더 잘 작동할 수 있게 모범 양식을 좀 알아보죠 크롬북 폼 팩터가 다양한데요 어느 것이든 물리적인 키보드와 터치패드는 있습니다 저희가 출시할 기기는 대부분이 터치스크린 지원도 됩니다 일부는 전환이 가능합니다 그러니까 노트북하고 타블렛 둘 다 되는 거죠 앱을 테스트하는 중애 대부분이 키보드하고 마우스 환경에서도 잘 되더라고요 전부 다 그런 건 아니었지만요 그러니까 개발자분들 키보드하고 마우스로 테스트하는 거 잊지 마세요 그리고 이게 결국 새 하드웨어가 나온 셈이니 그 이점을 챙겨볼까요 생산성이 필요한 앱은 핫키를 쓸 수 있습니다 유저 생산성이 높아지겠지요 게임 중에는 키보드하고 마우스로 컨트롤할 수 있는 것도 있습니다 그럼 중요한 코딩 쪽을 한번 볼까요 디폴트로 모든 안드로이드 앱은 터치스크린 하드웨어가 요구됩니다 아까 모든 크롬북이 터치스크린을 탑재한 건 아니라고 말씀 드렸는데 그래서 AndroidManifestxml에서 android

hardwaretouchscreen을 요구하지 않도록 하시는 게 아주 중요합니다 이렇게 해야 앱이 플레이 스토어에서 크롬북 전 기종에 뜹니다 터치 되는 기종만이 아니라요 이 프레젠테이션에서 꼭 기억하셔야할 점입니다 그럼 이젠 멀티윈도우에서 모범 양식 노트북에서는 화면도 크겠다 생산성을 위해 다들 멀티 윈도우를 씁니다 전에 말씀드렸다시피 저희는 마쉬멜로우 API를 지원합니다 마쉬멜로우에는 멀티 윈도우용 API가 없지요 API를 새로 추가하는 것도 없다고 말씀 드렸는데 그럼 어떻게 하지요? 모든 사람의 일거리를 줄이기 위해 레이아웃을 소수만 지원할겁니다 아마 이미 앱이 지원하는 레이아웃일 겁니다 첫째로는 랜드스케이프 디폴트 레이아웃이지요 넥서스 9 비율과 스펙입니다 다음은 인물 넥서스 5 같은 겁니다 최대화된 윈도우도 있지요 화면 픽셀을 다 차지합니다 마지막으로 컨버터블 용으로는 터치 미 모드가 있습니다 최대화하고 비슷한 건데 위아래 상태표시줄 등을 가려주죠 안드로이드 전체화면 모드 같게요 가능한 레이아웃 중에서 고를 수 있도록 윈도우 컨트롤을 달았습니다 이러면 유저나 개발자가 사이즈하고 레이아웃을 조절해 화면의 정보 밀도를 적당하게 앱 의도에도 맞도록 맞출 수 있지요 알아두셔야 할 게 좀 있는데 N의 멀티 윈도우 구현처럼 앱 라이프사이클 모델은 바뀌지 않습니다 onResume 상태의 앱은 언제나 하나고 이게 현재 활성화된 윈도우입니다 나머지 윈도우하고 앱은 onPause 상태에 있게 되는 거지요 그리고 메모리 부족 시 종료시키는 건 이제 OS에 통합되었습니다 최종적으로 결정할 때는 각 창의 순서를 보고 결정합니다 쓴지 가장 오래된 앱부터 종료되는 거지요 그래서 화면 오리엔테이션을 바꾸면 창 크기나 기기의 크기도 바뀌는 겁니다 정확한 안드로이드 화면 오리엔테이션을 설정해줘야 합니다 지원되는 사이즈만 쓰게요 읽으셔야 할 문서가 있는데 공식 안드로이드 문서 중에 런타임 변경 다루기입니다 오리엔테이션을 바꾸는 중에 바뀔 거라 생각하지 않으시는 게 있죠 예를 들어 화면 너비나 높이 보통은 안 바뀝니다만 그냥 숫자가 바뀔 뿐이지 하지만 여기서는 전혀 다른 값이 나옵니다 그리고 오리엔테이션을 바꾸면 화면 밀도 DPI도 바뀔 수 있습니다 그리고, 아주 중요한 건데 캐시 저장소 무효하세요 오리엔테이션을 바꾸면 결과적으로 기기를 바꾸는 겁니다 오리엔테이션이 바뀔 때 적확한 리소스가 로드된 건지 확인하세요 이 두 가지는 안드로이드 N에도 중요한 거니까 그냥 지금 하시고 그리고 작업 용도에 맞는 걸 사용하세요 데모에서 보여드린 것처럼 새 작업을 열 때 다른 작업 안에서 여는 게 가능합니다 이러면 새 창에서 열리지요 하지만 모달 윈도우를 쓰실 거였다면 같은 작업 내에서 여셔야 합니다 아니면 예상치 않았던 문제가 발생할 수 있습니다 그리고 onPaused 상태 관련해서 말인데요 앱이 일시정지되어도 여전히 보이는 상태입니다 그러니까 그 때는 렌더링하지 마세요 유저에게 이상하게 보일 겁니다 배터리도 빨리 닳고요 백업과 복구도 신경 쓰셔야 합니다 크롬북의 장점 중 하나가 유저가 쓰던 기기를 버리고 새 걸 사도 로그인하고 앱하고 설정 정보가 그대로 있다는 건데 백업과 복구는 상대적으로 덜 중요합니다만 그래도 좋은 아이디어고 유저가 좋아할 겁니다 백업& 저장의 문서를 읽어주세요 크롬북이 다수의 유저들 사이에 공유되는 시나리오도 생각해봤는데 교육현장같은 데에서요 학생들이 각자의 크롬북을 가지지 않고 대신 공유하는 겁니다 그래서 혹시 교육 목적의 앱을 만드신다면 이 시나리오도 고려해보세요 로컬 스토리지 쓰실 때 주의하시고요 전체적으로 크롬북은 모바일 기기보다 센서의 수가 적습니다 예를 들어 대부분의 개발자는 GPS로 정확한 위치 정보를 받는 것에 익숙해져 있는데요 크롬북에는 GPS가 없습니다 하지만 여전히 정확한 위치 정보를 와이파이를 통해 알 수 있지요 맛집 정보를 찾기에는 충분할 지도 모르겠지만 크롬북 집어들고 차에 끼웠다고 친절한 내비게이션으로는 쓸 수 없습니다 그러니까 요점은 유/무 여부를 모르면 그 하드웨어를 요구하지 않게 하시라는 겁니다 물론 앱이 크롬북에 없는 특정 하드웨어를 요구한다면 뭐 선택은 존중해드려야죠 크롬북의 플레이 스토어에 안 뜨는 것 뿐입니다 다른 소프트웨어 기능 중에도 크롬 OS에서는 지원이 안되는 게 있는데 그건 유저들이 크롬 OS를 최대한 즐기시도록 UI의 일부를 커스터마이즈하는 앱은 지원되지 않을 것입니다 커스텀 입력 방식, 앱 위젯, 라이브 월페이퍼나 홈스크린을 제공하는 앱도 지원되지 않을 것입니다 또 크롬 OS가 안드로이드의 장치 관리자가 될 것이므로 자기가 장치 관리자라던가 유저를 관리한다고 선언하는 앱 역시 지원되지 않을 것입니다 처음엔 안드로이드 마쉬멜로우로 출시되지만 N으로 업그레이드할 준비를 해놓으시는 게 좋습니다 데스크탑의 생산성을 향상시킬 수 있는 기능이 많거든요 예를 들어, 지금 지원하는 4개의 레이아웃뿐만이 아니라 작업 창 크기를 마음대로 조절하실 수 있게 됩니다 앱 간에 드래그&드롭도 쓰실 수 있고요 새 마우스 커서 API도 나올 겁니다 N에 관해 더 자세히 아시려면 이 두 프레젠테이션을 보시고 어제하고 아까 여기 I/O에서 한 건데 안드로이드의 새루운 점과 하고 멀티윈도 모드죠 안드로이드 개발자 프리뷰 문서도 보시면 되고요 이거 관해 더 질문이 있으시다면 크롬북을 위한 안드로이드 앱 문서를 참고해주세요 스택 오버플로우에서 질문하셔도 되고 아니면 안드로이드 G+에서도요 그럼 가기 전에 많은 분이 아까 발표를 보시려다가 못 오셨는데요 그래서 아까 한 데모를 다시 보여 드립니다 케이티가 보여드릴 겁니다 네 루이스 수고하셨어요 데모 화면으로 갈 수 있나요? 네, 좋습니다 아침 일은 죄송합니다 저희가 여유가 별로 없어서요 그래서 잠깐 이렇게 남는 시간에 데모를 다시 할 계획입니다 유감스럽게도 아까랑 아주 똑같지는 않겠지만 조금 더 나았으면 좋겠네요 여기 픽셀 2입니다 보통 크롬북하고 비슷하게 생겼죠 크롬 브라우저가 있고 하지만 여기 플레이 스토어가 있습니다 실행시켜 보면은 앱 목록을 둘러볼 수 있는데 일반 플레이 스토어하고 똑같습니다 그러면 아무거나 인스톨해보죠 비쥬얼드, 꽤 좋은 게임이죠 검색하고 인스톨할겁니다 어라 우연이군요 칸의 아내 분이 딸 생일파티에 쓸 포스터를 만들어달라고 하시네요 전 착한 피고용인이니까 아내분께 답장하겠습니다 기꺼이요 안드로이드를 통합한 방법의 장점은 타블렛이나 폰에서 하던 대로 인라인 답장이 가능하다는 겁니다 바로 보내죠 완료 그럼 작업을 해볼까요 이미 플레이 스토어에서 포토샵 믹스를 받아서 설치해놨습니다 그럼 실행을 해서 칸 따님 사진입니다 피글렛한테 펜을 먹이는 건가? 어, 응 어쨌거나 저기에 아이스크림을 끼워달라고 들었으니까요 아이스크림 사진을 찾아보죠 다행히 어도비 자체 제공 사진에 아이스크림도 있습니다 이상하게 생겼네요 절반은 네오폴리탄에 피스타치오? 좀 커보이니까 그럼 터치스크린을 써 볼까요 아이스크림 크기를 줄일 수 있습니다 펜보다는 좀 나아보이는 것 같군요 하지만 여기서 문제 아이스크림 콘이 손 위에 떠있군요 그래서 이제 그 부분을 지워줄 겁니다 확대하고, 조금 더 이제 터치스크린으로 아 잘못지웠군요 되살리기 하고 완성입니다 라이브로 포토샵한 것은 제 베스트는 확실히 아니고 이번 성능 리뷰에서 말 나올 것 같아요 어쨌거나 저장하고 네, 저장 중입니다 보기 좋잖아요 그래서 원하시는 게 포스터니까 워드를 실행합니다 이게 좋은게 이제는 그냥 그냥 일반 워드인데요, 사진 넣고 린의 생일 파티 다됐습니다! 꽤 보기 좋네요 이제 이걸 칸의 아내 분께 보내고 그럼 여길 클릭하고 이거 첨부파일로 공유할거니까 지메일을 엽니다 꽤 좋은 상품이라고 들었으니까요 그럼 이걸 난에게 보냅니다 잘 됐군요 그럼 보내기 어 뭐가 왔네요 우연히도 클래시 오브 클랜에서 누가 저를 공격 중이군요 안드로이드 프레임워크가 통합되었으니 채팅도 그냥 됩니다 샤히드인데요 마을을 살펴보기로 할까요 그럼 클래시 오브 클랜 포토샵은 종료하고요 더 쓸일 없으니 클래시 오브 클랜을 실행시켜줘 어머나 네 스테이지에서 데모가 작동 안하는 건 본 적 없습니다 그냥 다시 돌아가서 이 부분에 작은 버그가 있어요 어쨌거나 여기서 계속할까요 죄송합니다 클래시 오브 클랜말고 다른 좋은 게임이 있는데요 이것도 제가 좋아하는 건데 갤럭시 온 파이어입니다 데스크탑 GPU를 사용할 수 있고요 화면이 매끄럽군요 객석에서 보시는 분들께는 구역질이 나올 정도로 어지러울지도 모르지만 하여간 고성능입니다 인앱 결제도 할 수 있습니다 애드온을 하나 사러 가 보죠 구매를 누릅니다 그럼 이제 이게 제 폰에도 갑니다 결제 제대로 됐네요 물론 타블렛에도 있고요 그러니까 오늘 아침에 한 데모를 다시 보여드렸는데요 이렇게 다같이 크롬북에 여러분의 앱을 추가하는 작업을 하게 되어 정말로 기쁩니다 정말로 감사합니다 그럼 이걸로 저희가 할 건 끝났고요 나머지도 즐겨주세요 질문 있으시면 스페이스 앱에 해주시고 아니면 저희 스테이지 아래에 있을겁니다 감사합니다 그럼 이만