Building Apps For Android TV

팀 킬번: 안녕하세요, 저는 팀 킬번이며 Android 프레임워크 팀에서 일하고 있습니다 지금부터 멋진 Android TV 앱을 구축하는 방법에 대해 설명드리겠습니다

Android TV 앱은 Android 프레임워크의 익숙한 컴포넌트와 툴을 모두 이용하여 개발되었습니다 좋은 폰이나 태블릿 앱을 이미 갖고 있다면 그러한 경험을 대형 스크린으로 옮기는 일만 남았습니다 하지만, 폰 또는 태블릿과 TV 사이에는 몇 가지 큰 차이점이 있습니다 특히 TV는 폰이나 태블릿보다 정보 밀도가 훨씬 낮습니다 긴 텍스트 단락을 TV에서 읽고 싶어하는 사람은 아무도 없습니다

또한, TV와의 상호작용은 터치 방식보다는 리모컨이나 게임 컨트롤러 같은 D-패드를 통해 이루어집니다 따라서 앱의 모든 중요한 요소는 초점을 맞출 수 있어야 합니다 Android TV용으로 작성된 앱의 사례를 하나 살펴보겠습니다 이 앱은 최소량의 텍스트를 사용하며 D-패드로 모든 것에 도달할 수 있습니다 이런 레이아웃에서는 시청할 무엇인가를 찾기 위해 탐색하는 것이 쉽습니다

사실, 이 브라우징 개념은 TV 앱에서 매우 흔한 개념이라서 대형 스크린에 어울리는 아름답고 사용하기 쉬운 앱을 생성하는 데 도움을 주기 위해 새로운 서포트 라이브러리를 구축했습니다 이 Leanback 서포트 라이브러리의 위젯과 프래그먼트를 이용하면 TV에서 잘 작동하는 앱을 신속하게 생성할 수 있을 것입니다 Leanback 서포트 라이브러리는 모델, 뷰, 프레젠터 패턴에 기초합니다 콘텐츠 디스플레이 방식과 데이터를 보관하기 위해 사용한 모델 개체를 분리하는 것이 한결 간편해졌습니다 모델 개체는 앱을 기반으로 합니다

저희는 모델 개체에 아무런 요구사항도 내걸지 않았습니다 따라서 모델을 변경하지 않고도 TV에서 실행하려면 기존의 앱을 업데이트할 수 있어야 합니다 뷰는 텍스트 뷰와 이미지 뷰 등 여러분이 알고 있고 좋아하는 표준 Android 뷰입니다 이 라이브러리에서 Android에게 새로운 것은 프레젠터입니다 모델 개체가 주어지면 프레젠터는 그 개체의 데이터를 뷰에 바인딩합니다

여기서 뷰는 앱의 모든 스크린에 아이템을 표시하기 위해 라이브러리 코드가 사용할 수 있는 뷰입니다 특히, 이것과 같은 아이템을 여러 방식으로 앱의 다른 부분에 렌더링할 수 있습니다 그러기 위해서는 프레젠터를 교체하기만 하면 됩니다 몇 가지 예를 살펴보겠습니다 지금 보시는 것이 사용자가 콘텐츠 카탈로그를 브라우징할 수 있는 스크린입니다

이는 Leanback 서포트 라이브러리의 브라우징 프래그먼트를 이용하여 구축되었습니다 프래그먼트가 인스턴스화되고 모델 개체, 그리고 그 개체를 렌더링하기 위해 사용된 프레젠터가 포함된 개체 어댑터가 제공되었습니다 프래그먼트에 포함된 라이브러리 코드가 나머지 일을 처리합니다 뷰를 행에 표시하기 위해 각 아이템의 메서드와 프레젠터를 호출합니다 이제, 세부 정보 스크린을 살펴봅니다

작은 카드 뷰를 이용해 이전에 렌더링되었던 똑같은 모델 개체를 렌더링하여 이제는 더 자세한 디테일을 표시할 수 있습니다 그러기 위해 다른 프레젠터를 사용하기만 하면 됩니다 세부 정보 개요 아래에 관련 콘텐츠의 행도 보입니다 이때 프레젠터가 각 뷰를 생성합니다 앱 내부 검색의 작동 방식도 같습니다

사용자가 쿼리 텍스트를 입력할 때 앱이 그 텍스트를 받고 검색 프래그먼트가 결과를 보여주기 위해 여러분이 제공하는 프레젠터와 개체 어댑터를 사용합니다 TV에서 앱을 멋있어 보이게 하고 싶을 때 할 수 있는 몇 가지 다른 일들이 있습니다 최대한 빨리 보고 싶은 콘텐츠에 접근할 수 있도록 최적화되었고 컨텐츠 추천사항으로 시작되는 새로운 런처를 설계했습니다 기존의 Android 알림 API를 이용해서 뷰어가 다음 번에 보고 싶어할 비디오나 다른 콘텐츠에 대한 추천사항을 앱에서 게시할 수 있습니다 텍스트에 있는 카드 이미지를 포함하여 데이터를 지정하십시오

그러면 런처가 홈 스크린에 추천사항을 눈에 잘 띄게 표시할 것입니다 이 모든 추천사항의 순서는 사용자와 그 추천사항의 상호작용 방식에 의해 결정됩니다 따라서 앱으로 되돌아가고 싶게 만드는 고품질의 추천사항을 생성하십시오 프레젠터, 프래그먼트 및 콘텐츠 추천사항에 대한 자세한 내용과 샘플 코드는 Android TV용 새 개발자 사이트에서 확인하실 수 있습니다 시청해주셔서 감사합니다

이제 가셔서 멋진 TV 앱을 만들어보세요

ScrollViews vs ListViews – Developing Android Apps

항목 목록을 생성하는 것은 표면적으로는 단순합니다 안드로이드에는 포함된 ScrollView에는 어떤 선형 레이아웃(LinearLayout)이라도 넣을 수 있어서 그 안의 각 항목을 수직 리스트로 배열해 줍니다 선형 레이아웃 밑으로 떨어져 현재 UI에 보여지지 않는 항목에 주의하세요 ScrollView는 이름대로 사용자들이 레이아웃의 내용을 스크롤해 볼 수 있게 해 줍니다 그러나 메모리가 제한되어 있으며 터치 반응이 정말 중요한 기기에서는 이용하는 데 어려움이 있습니다 만약 리스트에 50개의 항목이 있고 화면에는 언제나 10개 항목까지 출력할 수 있다면 리스트에 있는 모든 항목을 스크롤하기 위해 생성해야 할 뷰는 최소 몇 개일까요? 정답은, 바로 확실하게 나오지는 않겠지만 전체 리스트를 보여주기 위해 사용된 ListView의 사용을 더 효과적으로 할 수 있는 방법에 대해 생각해 보세요

How to use android or iphone camera as virtual webcam for OBS | 3 best apps

안녕하세요 친구, Technofare

com의 호스트 Harish Bali입니다 이것을보기 전에 비디오, OBS에 대한 훌륭한 실무 지식을 갖기를 제안합니다 몇 달 전에 내가 간행했다 YouTube에 대한 최적의 OBS 설정에 대한 자습서 당신은 그것을 밖으로 확인할 수 있습니다, 거기에 링크가 이 비디오에 대한 설명 스마트 폰 카메라 연결에 도움이되는 앱이 많이 있습니다

OBS 용 가상 웹캠으로 만들 수 있습니다 나는 너를 위해 3 가지를 골랐어 하자 이 모든 것을 확인하십시오 3 내 목록의 첫 번째 응용 프로그램은 Visicom 미디어의 Manycam 응용 프로그램입니다 이것은 Windows 및 Mac뿐 아니라 iOS 및 Android 디바이스 모두

모바일 버전 다운로드 Playstore 및 데스크톱 버전의 웹 사이트에서 다운로드 할 수 있습니다 그들이있는 링크에 대해 걱정하지 마십시오 이 비디오에 대한 설명에 모두 나와 있습니다 내 안드로이드 폰에 설치 했어 이 톱니 바퀴 아이콘에서 열어서 해상도를 설정하면 720p가 최대 해상도입니다

나는 설정할 수있다 처음으로 해보면 가입하라는 메시지가 표시 될 수 있습니다 사용 프로 버전 당신은 다른 각도를 표시하는 여러 휴대폰을 사용할 수 있습니다 특수 기능 이 응용 프로그램의 뒤쪽 카메라와 플래시, 핀치에 카메라 줌을 포함합니다 나에게 먼저 다른 것을 나눠 보자

당신과 함께 애플 리케이션을 작성한 다음 OBS와 각각 하나씩 연결하는 것에 대해 이야기 할 것입니다 두 번째 앱 내 목록에 IP 웹캠입니다 이 개발자는 Android 기기 전용 앱을 보유하고 있습니다 당신은 갈 수 있습니다 비디오 환경 설정으로 이동하고 거기에서 해상도를 선택하십시오 우리가 이야기 할 다음 앱 Droidcam입니다

이것은 안드로이드 장치 및 Windows PC에서 작동합니다,이 응용 프로그램의 무료 버전이 작동합니다 낮은 해상도에서 프로 버전의 일부로 720p를 사용할 수 있습니다 이제 시간이되었습니다 OBS를 통해 이러한 응용 프로그램을 하나씩 연결합니다 에 대한 소프트웨어 버전을 다운로드하려면 Windows 또는 Mac은이 링크 (download

manycamcom)로 이동합니다 처음에는이 무료 버전을 다운로드 할 수 있습니다 나는 이미 해냈다 여기있다

여기에 내 안드로이드 장치에서 응용 프로그램을 열 것입니다, 그 후에는 내 장치, 안드로이드 및 창문을 모두 확보해야합니다 PC는 동일한 Wi-Fi에 연결되어야합니다 그리고 여기 나는 많은 cam mobile을 쳤다 장치 – 자사의 삼성과 연결합니다 들어오는 요청 – Technofare는 당신과 연락하고 싶습니다

받아 들인다 세로 모드로 표시됩니다 나는 지금 그것을 잡을 필요가있을 것이다 예, 찾고있다 보다 나은

해상도를 변경할 수도 있습니다 현재 768p로 설정되어 있습니다 여기에 있습니다 OBS를 만들고 장면을 만듭니다 이것은 장면 1 소스가되어 비디오 캡처를 선택해야합니다

장치, 뭔가 이름, 많은 캠 그럼 좋아 네, 자동으로 선택됩니다 마니 캄 가상 웹캠과 나는 확인을 누릅니다

이제는 이러한 항목을 드래그하여 조정 작업을 수행해야합니다 빨간색 선, 그래,이게 좋은 것 같아 여기에서 나는 당신의 웹캠을 웹캠으로 사용할 수 있다는 것을 알 수있다 OBS에 대해서는 꽤 잘 작동합니다 이제 다른 응용 프로그램을 살펴 보겠습니다

이리 IP 웹캠을 여는 중입니다 해상도를 선택한 후, 내가해야 할 일은 마지막 옵션과 서버 시작 웹 브라우저에 1921680

103:8080을 입력하라고 요청합니다 브라우저를 클릭하십시오 예 화면이 표시됩니다 이제 전체 화면을 클릭해야합니다 이제하자

OBS에 가서, 이번에는 비디오 캡처를 선택하는 대신 우리는 창을 선택해야합니다 그것을 잡아서 적당한 이름을 지어 라 네, 여기 창문이 있습니다 괜찮아 이걸로 나는 내 안드로이드 장치 카메라를 OBS 용 웹캠으로 사용할 수 있습니다

그것은 아주 원활하게 작동합니다 브라우저에서 전체 화면을 수행해야하는 경우 키보드에서 F11을 수행 할 수 있으며 여기에 해당됩니다 그것을 줄이려면 F11을 다시 누르십시오 OBS로 돌아 가면 모든 것이 준비되어 있습니다 이제 드로이드 캠을 열자

이제 PC에서 응용 프로그램을 열어야합니다 이것이 보이는 방법입니다 지금 내가 필요하다면 내 안드로이드 장치에서 오디오뿐만 아니라 비디오를 녹화하려면 두 가지를 모두 선택하거나 그냥 선택하십시오 하나

스타트 이것이 반영되는 방법입니다 이 응용 프로그램에는 셀카보기가 없다고 생각합니다 그 유일한 희귀 카메라가 작동합니다 신중하게 보면 팝업보기가 있습니다

한 번 더 큰 창이 나타납니다 우리가 그것을 보여줄 때 우리는 이것을 찾게 될 것입니다 OBS OBS를 열고, 소스를 만들고, 이번에는 창 캡처로 가서, 적절한 이름, 창 캡처로만 유지합니다 알았습니다

예 창이 있습니다 제대로 캡쳐하는 중이다 우리는 무엇이 필요한지에 따라 크기를 늘릴 수 있습니다 그래, 좋아 보인다 이 응용 프로그램은 완벽하게 잘 작동합니다

그럼 어땠어? 당신이 올 경우 똑같이 좋은 응용 프로그램을 통해, 아래 의견에 우리와 공유하시기 바랍니다, 나는 너에게 듣지 않을 것이다 너가 구독하지 않았다면, 지금 당장 그 말이야 Technofare 지금까지 빨간 버튼을 치고 시간을내어 주셔서 감사합니다

Google I/O 2012 – Making Android Apps Accessible

TV RAMAN : 안녕하세요 Android에서이 세션에 참석해 주셔서 감사합니다

접근성 나는 나와 함께 세 명의 동료가있다 나는 TV 라만이다 나는 안드로이드 액세스에 대한 우리의 작업을 이끌고 있습니다 나와 함께, 나는 Alan Viverette, Charles Chen, 그리고 피터 룬드 블라드

그리고 우리가 당신과 이야기하고있는 것은 안드로이드가 당신을 위해 무엇을하는지에 대한 안드로이드 플랫폼 할 수있는 사용자의 폭을 늘리는 것과 관련하여 귀하의 응용 프로그램 커버 오늘 안드로이드가 어떻게 사용되는지에 관해 당신은 오늘 하루 종일 이야기를 들었습니다 너에게 무거운 짐을 많이 싣기 때문에 너는 애플리케이션 개발자는 로직 및 기능을 제공합니다 오늘은 걱정할 필요가 없습니다 작은 전화, 큰 전화, 태블릿? Android가 모든 작업을 수행합니다

이 이야기가하는 것은 당신에게 또 다른 다양한 기기 및 사용자에 대한 관점 Android 애플리케이션을 개발할 때 다루는 나는 모든 일에 연설을 사용한다 난 볼수 없어 동료 Peter는 모든 작업에 점자를 사용합니다 그리고 우리가 보여주는 것은 플랫폼의 API입니다 실제로 우리가 접근성 서비스를 우리가 사용하는 모든 응용 프로그램을 사용합시다

당신이 결코 생각하지 못했을 매너를 만들어라 그것을 사용할 것입니다 Android에서이 점이 실제로 우리의 동기입니다 접근성을 높이기 위해 다양한 요구 사항을 가진 사용자에게 애플리케이션 제공, 특별한 필요가있다 안드로이드에 대한 우리의 접근 작업 이후 우리는 먼 길을왔다

2008 년에 시작되었습니다 우리가 진화 한 방식의 측면에서 당신을 제공하는 빠른 역사 그리고 플랫폼이하는 일 따라서 우리의 액세스 작업은 실제로 Android 16에서 시작되었습니다 1

5, 우리는 음성 API를 발표했다 그리고 16은 기본적으로 사용자가 시스템 포커스 사용 네가 항해 한 어떤 것도 말할 수있다 그리고 당신은 그렇게 간단한 응용 프로그램을 많이 사용할 수 있습니다

우리는 그 이후로 먼 길을왔다 아이스크림 샌드위치에서는 작년 말에 터치 탐색이라고 불리는 기능을 출시했습니다 시각 장애인으로서 나를 다른 곳으로 손가락으로 무엇이 들리는 지 들어보십시오 이것은 기본적으로 다음과 같은 모든 측면을 완전히 열어줍니다 시각 장애인 사용자를위한 Android 사용자 인터페이스

이제 터치 탐사를 통해 실제로 물건 만이 아닌 화면의 모든 것을 읽습니다 집중력이있었습니다 그리고 그것은 우리에게 커다란 발걸음이었습니다 그러나 우리가 지금 다루고있는 ICS의 격차로 보았던 것 오늘, 우리는 더 큰 세부 사항은 다음 단계입니다 그래서 그것은 짧은 역사 수업이었습니다

Jelly Bean에 대해 이야기 해 봅시다 따라서 중요한 액세스 API 개선 사항이 있습니다 젤리 빈 Romain 동안이 중 일부에 대한 빠른 개요를 들었습니다 오늘 아침에 남자 얘기가있어

실제로 두 가지를 모두 가능하게하는 일련의 작업을 수행했습니다 시각 장애인을위한 음성 피드백 액세스는 물론 점자 베드로가 너에게 약간의 설명을 할 것이다 그러나 높은 수준에서 우리는 다음 세 가지가 있습니다 오늘 소개

접근성 초점 개념을 피터가 자세히 이야기 할 안드로이드는 블라인드 사용자가 인터페이스를 통해 안정적으로 단계를 밟을 수 있습니다 따라서 접근성에 중점을 둘 수 있습니다 결과적으로 사용자 인터페이스의 일부 또는 말할 것이다 우리는 또한 우리가 접근성이라고 부르는이 개념을 도입했다 그런 다음 접근성에서 트리거 할 수있는 작업 음성 안내 지원 및 점자 지원과 같은 피터가 보여줄거야

이러한 행동을 통해 우리는 클릭 수를 얻을 수 있습니다 선택과 그와 같은 것들을 프로그래밍 방식으로 그런 다음 점자와 같은 비전 장치를 연결할 수 있습니다 디스플레이 및 기타 키보드와 무엇이든 상상할 수 있습니다 그리고 마지막으로 일련의 제스처를 도입했습니다 오늘 기조 연설에서 언급되지 않았습니다

그런 다음 접근성에 중점을 둘 수 있습니다 시각 장애가있는 사용자가 매우 효과적으로 Android 사용자 인터페이스를 사용하십시오 마지막으로 중요한 개선점은 Jelly Bean은 Chrome의 시대입니다 그리고 Chrome 브라우저는 완전히 Jelly Bean에서 접근 가능 그리고 모든 것이 원활하게 작동합니다

우리가 당신을 위해 가지고있는 다양한 데모들 그래서 그걸로 저는 리드 엔지니어 인 피터에게 물어 봅니다 점자 뒤에 점자 지원 플랫폼의 사용 가능 따라서 점자 지원 서비스는 내가 이야기 해 왔던 것과 동일한 API를 사용합니다 기본적으로 Android에 점자 인터페이스를 제공합니다

그래서 피터, 가서해라 고마워, 라만 안녕, 모두들 나는 Peter Lundblad이다 라만이 말했듯이 저는 몇 가지 이야기를 할 것입니다

나는 그 중 하나에 대해 이야기하기 시작할 것입니다 우리는 Jelly Bean을 추가했습니다 점자 지원 및 기타 사용자를위한 것 그리고 이것을 접근성 초점이라고합니다 그것은 사용자가 화면상의 어떤 것과도 상호 작용할 수있게하며, 어떤보기처럼

커서와 비슷한 동작을합니다 그것을 화면에서 움직일 수 있습니다 또한 입력 포커스와 비슷합니다 그러나 차이점은 내가 말했듯이, 그것이 상호 작용할 수 있다는 것이다 모든 견해와 함께, 그것은 위대합니다

입력 포커스는 의도 된보기 만 읽을 수 있기 때문에, 예를 들어, 입력 받아 그래서 그 좋은 예가 편집 텍스트 또는 푸시 백입니다 Enter를 누를 수 있습니다 그런 다음 버튼을 활성화합니다 그러나 시각 장애인 사용자를 위해 무엇이든 읽을 수 있기를 원합니다

정적 텍스트 및 이와 유사한 것을 포함하는 화면 일반적으로 입력 포커스로 포커스를 맞추지 않습니다 그래서 우리는이 접근성에 중점을 두었습니다 화면에 노란색 사각형으로 표시됩니다 내게 필요한 옵션 포커스는 접근성 서비스 그리고 이것은 여러 상호 작용 모드를 허용합니다

시스템에서 처리합니다 즉, 진실의 세계적 출처 그러나 다시 한번, 접근성 서비스는 그것이 움직일 때 알려 주었다 그리고 그들도 그것을 통제 할 수 있습니다 그렇다면 이러한 운영 모드의 예가 무엇입니까? 및 사용자 상호 작용? 접근성 초점을 어떻게 이동할 수 있습니까? Alan이 보여주는 것처럼 한 가지 예가 화면에서 스 와이프

Alan은 실제로 이것들에 대해 나중에 당신에게 보여줄 것입니다 우리가 추가 한 제스처를 스 와이프합니다 또 다른 예는 터치 탐색이 아이스크림 샌드위치에 이미 추가되었습니다 접근성 초점 우리는 또한 접근성 초점을 다음과 같이 이동할 수 있습니다

예를 들어 점자를 이용한 접근성 서비스 디스플레이, 나는 너에게 조금을 보여줄 것이다 가장 좋은 점은, 하나의 접근성 서비스 그것을 이동, 접근성 초점, 그것은에 방송을 얻을 모든 접근성 서비스 예를 들어 TalkBack 및 점자 지원을 사용하는 경우 동시에 시스템에서 실행되면 동기화 그리고 사용자는 그가 점자와 스피치 모두에 의해 어디에 있는지 알고 있습니다 이제 무엇이 켜져 있는지 읽을 수 있습니다

화면은 훌륭합니다 그러나 인생은 꽤 지루합니다 어떤 것과도 상호 작용한다 그래서 우리를 다음 부분으로 이동시킵니다 접근성 동작

액세스 가능성 동작을 통해 사용자는 다음과 같은 노드와 상호 작용할 수 있습니다 다른 방법들 그리고 그것은 매우 중요합니다 왜냐하면, 우리가 지금 움직이는 방법이 다르면 초점을 맞춘 다음에는 화면에는 다양한보기가 있습니다 그래서 그러므로 실제로 그들과 함께 할 필요가 있습니다

그렇다면 우리는 어떤 접근성 행동을지지합니까? 명백한 것은 접근성 초점을 이동하는 것입니다 이미 몇 번 언급했다 또한 유용한 입력 포커스를 이동할 수 있습니다 왜냐하면 우리는 의지에 따라 접근성 서비스로서, 사용자에게 도움이 될 때 두 가지 초점을 동기화하십시오 물론 가장 많이 사용되는 뷰를 클릭 할 수 있습니다

버튼을 활성화하고 입력을 활성화 할 수있는 액션 필드 등이 있습니다 또 다른 중요한 점은 화면에서 스크롤하십시오 따라서보기에 둘 이상의 페이지가있는 경우 그들 사이를 이동하십시오 이미 화면에서 스 와이프 제스처를 사용하여 가능합니다 그러나 시각 장애인 사용자의 문제는 스크롤하는 것이 어렵다는 것입니다

정확히 한 페이지 씩 그리고 올바르게하지 않는다면, 당신은 어디에서 잃을까요? 당신은 예를 들어 목록 책에 있습니다 그래서 새로운 행동으로 우리는 신중하게 스크롤 할 수 있습니다 텍스트 내부를 이동하는 동작도 있습니다 그래서 텍스트가 많은 텍스트 필드가있는 경우 사용자로서, 문자, 단어 또는 단락으로

또는 취급을위한 조치가 있습니다 웹보기 내부를 이동합니다 그리고이 모든 것들을 다른 운동 세분성 우리는 또한 뭔가를 추가했습니다 많이 이야기 해

이를 글로벌 행동이라고합니다 홈 화면을 활성화하는 것과 뒤로 버튼을 눌러서 알림 등이 포함됩니다 이것은 순수하게 시스템에 의해 처리되는 것입니다 및 응용 프로그램 개발자는 전혀 걱정하지 마라 접근성에 중점을두고 행동은 대부분의 경우, 그들은 시스템도 마찬가지입니다

그러나 응용 프로그램은 걱정할 필요가 있습니다 우리가하기 전에 몇 가지 코드 예제를 보여 드리겠습니다 어떻게 보일 수 있는지 데모에 들어갑니다 첫 번째 코드와 같이 매우 간단한보기가있는 경우 예를 들어, OnClickListener를 추가하기 만하면됩니다 어떤 Android 앱을 사용해 본 사람이라면 누구나 잘 알고 있어야합니다

개발 이런 종류의 견해를 가지고 있다면 그것은 이미 완전히 시스템에서 처리합니다 왜냐하면 우리는 기본적으로 액션 인 OnClick을 사용할 수 있기 때문입니다 점자 디스플레이에서 클릭을 수행합니다 (예 : OnClickListener를 호출하면됩니다 이제 두 번째 코드 예제를 살펴 보겠습니다

그리고 거기에는 다른 종류의 견해가 있습니다 이보기는 조금 더 낮은 수준입니다 터치 이벤트를 직접 처리하는 맞춤보기입니다 그래서 우리는 OnTouchEvent 핸들러를 가지고 있습니다 그리고 언제든지 호출됩니다

터치 이벤트가 있습니다 그리고이 견해는 터치 이벤트에 직접 응답하고 자체 내부 기능을 호출하십시오 따라서 OnClickListener를 통해 진행되지 않습니다 이것은 시스템이 알 수 없기 때문에 분명히 작동하지 않습니다 액세스 가능성 서버가 호출 할 때 호출 할 함수 OnClick 액션

그래서 우리는 그 문제를 해결해야합니다 그렇지 않으면 사용자가 이보기를 클릭하십시오 한 가지 방법은 물론 뷰를 리팩터링하는 것입니다 OnClickListener를 호출 한 다음 기본 동작을 보냅니다 처리 상황을 처리합니다

그러나 이것이 가능하지 않은 경우가 있습니다 보기에 대한 액세스 또는 쉽게 변경할 수 없습니다 코드를 사용하면 [INAUDIBLE] 할 수 있습니다 액세스 가능성 대리자를 호출하십시오 이렇게하면 외부에서 볼 수 있으므로 내게 필요한 옵션 작업 및 관련된 다른 호출 접근성에

이 마지막 코드 예제에서 우리는주의를 기울이고 있습니다 OnClick 통화에 대해 내부 기능 그리고 그것은 이전 슬라이드에서 우리가 가진 문제를 해결할 것입니다 이제 어떤 종류의보기를 만들지에 따라 다른 작업에 대한 처리를 추가해야 할 수도 있습니다 예를 들어, 스크롤 액션을 처리해야 할 수도 있습니다

다시 기억해야 할 중요한 점은 당신이 직접 행동을 처리하지 않으면 슈퍼 클래스 그렇다면이 모든 추가 기능은 무엇을 위해 사용될 수 있습니까? 우리는 새로운 것을 추가하고 있습니다 플랫폼의 새로운 기능은 우리가 점자 지원 때로 시각 장애인 사용자는 새로 고침 가능한 점자 디스플레이 그리고 이것은 대안의 방법입니다

시스템과 상호 작용합니다 우리는 다양한 블루투스 사용 가능 Android 휴대 전화에 연결하는 점자 디스플레이 점자 디스플레이에는 점자 셀이라는 라인이 있습니다 그것들은 제기 될 수있는 점들이 있습니다 그리고 사용자는 그 행을 읽을 수 있습니다

점자 디스플레이에는 탐색 키가 있으므로 단 하나의 라인 일뿐입니다 화면과 사용자 인터페이스에서 이동, 활동 사물 등 일반적으로 점자 디스플레이에있는 또 다른 기능은 유선 키보드를 사용하여 점자를 입력 할 수도 있습니다 그러면 글자를 입력하는 것이 훨씬 쉽습니다 터치 스크린을 사용합니다

물론 온 스크린 키보드 만 사용하는 경우도 있습니다 대안 하지만 점자 키보드를 가지고 있다면 인생을 훨씬 쉽게 해줍니다 그래서 우리는이 접근성 서비스를 추가하고 있습니다 블루투스를 통해 점자 디스플레이에 연결됩니다

노드의 접근성 이벤트와 노드를 사용합니다 나무가 화면에 무엇인지 알기 위해 사용자에게 제시하십시오 내게 필요한 옵션 포커스를 사용하여 음성 안내 지원과 동기화됩니다 따라서 실제로 여러 가지 방법으로 시스템과 상호 작용할 수 있습니다 동시에

음성 안내 지원을 사용하거나 점자를 사용할 수 있습니다 그러나 그들은 둘 다 동기화 될 것입니다 또한 입력 방법을 추가하여 실제로 점자 디스플레이를 사용하여 텍스트를 입력하십시오 이 새로운 접근성 서비스는 점자 지원이라고합니다 현재 Google Play 스토어에서 사용할 수 있습니다

젤리 빈 그런 일이 발생하면 시도해보십시오 이러한 하드웨어 점자 디스플레이 중 저는 이제 약간의 데모를하려고합니다 그리고 우리 모두가 알듯이, 때때로 무선 기술은 어려울 수 있습니다

그럼 어떻게 작동하는지 봅시다 일어날 수있는 첫 번째 일은 점자 디스플레이가 Android 기기와 연결이 끊어졌습니다 그래서 우리는 가능한 한 간단하게 만들고 싶었습니다 점자 기기에 다시 연결하거나, 실제로 배터리가 필요하기 전에 연결을 끊었다 따라서 사용자가 수행하는 작업은 화면을 다시 열고 다시 잠금을 해제하십시오

앨런에게 오늘 이렇게 해달라고 부탁 드리겠습니다 디스플레이가 연결되게하십시오 컴퓨터 스피커 : 스크린 오프, 12:30 AM 벨소리 7 개, 슬라이드 가정, 홈 화면 3 피터 런드 블러드 : 그리고 거기에서 우리는 약간의 소리를 들었습니다 그리고 점자 디스플레이가 실제로 연결되었습니다

불행하게도, 그것은 아닙니다 내가 언급했듯이, 무선은 아닙니다 – 컴퓨터 스피커 : 화면을 켭니다 피터 런드 블러드 : 항상 우리 친구 야 그래서 저는 이것을 한 번 더 시도 할 것입니다 컴퓨터 스피커 : 12:31 AM, 벨소리 70 %

피터 런드 블러드 : 우리는 너무 많은 [무관심한] 수 있습니다 ALAN VIVERETTE : 간섭을 최소화하기 위해 블루투스가 켜져 있습니다 사용 중지 할 수 있다면 에 대해 감사하다 피터 런드 블드 : 이제는 작동 중입니다 COMPUTER SPEAKER : I / O 2012 웹보기 자습서

좋아요, 제가 여기서 할 수있는 일을 보겠습니다 내가들을 수 있듯이, 연설은 말하고 있습니다 이제 점자 디스플레이의 키를 사용하여 이동할 수 있습니다 화면 그래서 그렇게 하죠

COMPUTER SPEAKER : 홈 화면 3입니다 피터 런드 블드 : 홈 화면 3 개를 말합니다 그리고 알 수 있듯이 접근성에 초점이 맞춰지고 있습니다 전체 화면을 집중시킵니다 그리고 연설도 이야기하고 있습니다

컴퓨터 스피커 : I / O 2012 웹보기 자습서, 031, Google I 슬래시 O 2012 피터 런드 블드 : 제가 말한 행동 중 하나를 불러 드리겠습니다 전에 간단히 이것이 알림 창을 여는 동작입니다 나는 열쇠 조합을 눌러 그것을한다

점자 디스플레이에 컴퓨터 스피커 : 12 월 31 일 목요일, 20 6 월 28 일 화면이 자동으로 회전합니다 확인란의 방향을 세로로 설정하십시오 알림 삭제 버튼

피터 런드 블러드 : 여기에 – 컴퓨터 스피커 : Alan Viverette, June 27, 12 이봐, 커피 마시고 싶어? 알았어, 알란이 나 한테 물어볼거야 커피를 갖기를 원해 훌륭합니다 채팅에 응답하겠습니다

점자 디스플레이에 내가 가지고있는 것도 작은 버튼을 쉽게 클릭 할 수 있습니다 디스플레이에 집중했다 그래서 나는 Alan의 채팅 메시지를 클릭 할 것이다 COMPUTER SPEAKER (컴퓨터 스피커) : 편집 상자 메시지를 입력하십시오

피터 런드 블드 : 저를 편집 상자로 옮깁니다 이 알림을 클릭하면 Google 토크가 예상대로 작동합니다 나는 그가 무엇을 볼 수 있는지 화면에서 위로 움직일 것이다 실제로 말했다 컴퓨터 스피커 :이 채팅 기록이 꺼졌습니다

이봐, 커피 마시고 싶어? 보시다시피, 그는 개인 정보 보호에 관심이 있습니다 그러나 그는 여전히 커피를 마시고 싶어합니다 컴퓨터 스피커 :이 채팅 입력란에 메시지를 입력하십시오 피터 런드 블드 : 응답을 입력 할 것입니다 컴퓨터 스피커 : 네, 네, 저, LOV-3

좋아요, 오타를 만들면 쉽게 고칠 수 있습니다 컴퓨터 스피커 : 세 명이 삭제되었습니다 전자, 사랑, [신속한 편지] 좋아요, 그래서 저는 응답을 타이핑했습니다 이전에 언급 한 작은 키를 사용하여 이동할 수 있습니다 때로는 화면에 주위

COMPUTER SPEAKER :이 편집 상자는 네가 좋아하는 커피입니다 좋아, 그래서 지금은 실제로 보내기 위해 버튼을 누르겠습니다 컴퓨터 스피커 :이 채팅 – 피터 런드 블드 : -이 메시지

컴퓨터 스피커 : 기록에서 벗어났습니다 편집 상자 네, 커피를 좋아해요 피터 런드 블드 : 내가 볼 수있는 것은 실제로 메시지를 보냅니다 그리고 이전에 채팅 목록에 나타납니다

우리가 가지고있는 또 다른 글로벌 행동을 촉구하겠다 매우 편리합니다 그리고 이것은 다시 점자 디스플레이에서 중요한 조합입니다 컴퓨터 스피커 : 집, 홈 화면 3 개 우리를 홈 화면으로 다시 데려 간다

그리고 그걸로, 나는 그것을 앨런에게 넘겨 줄거야 터치 탐사에 대해 이야기 할 것입니다 ALAN VIVERETTE : 고마워, 피터 나는 그 커피를 나중에 먹기를 고대한다 그래서 우리가 보여 줬던 것처럼, 당신은 당신의 손가락을 사용할 수 있습니다

화면을 탐색합니다 손가락을 만져 접근 기능을 설정할 수 있습니다 방금 들었던 것처럼 화면에 이렇게하면 화면 콘텐츠에 임의로 액세스 할 수 있습니다 만약 당신이 화면에 익숙하다면 정말 대단합니다

보이는구나 어딘가에있는 모든 앱 화면처럼 많은 버튼이 있습니다 그리고 당신은 꽤 빨리 물건을 찾을 수 있습니다 이제 두 번 살짝 눌러 항목을 활성화 할 수 있습니다 방금 들었던 것이 무슨 일이 벌어 질지

자, 이거 멋지네 그러나 화면에서 항목에 액세스 할 수있는 결정적인 방법이 있습니다 더 좋다 그러니 정말 큰 화면이 있다고 가정 해 봅시다 하나의 작은 버튼으로

나는 오랫동안 내 손가락을 움직일 수 있고 결코 찾을 수 없다 그 버튼 하지만 화면에 손가락을 대고 단지 문지르면됩니다 다음 항목으로 이동하려면 오른쪽으로, 그 버튼을 찾을 수 있습니다 매우 빠르게

그리고 사실, 나는 계속 지나갈 수있는 권리를 계속 지킬 수 있습니다 화면의 모든 항목 그래서 이전에 데모 한 스 와이프 제스처를 추가했습니다 베드로가 말할 때 또한 글로벌 작업을위한 제스처도 추가했습니다

그래서 베드로는 점자 전시장에 집을 보여주었습니다 집으로 돌아가려면 화면에 도형을 그릴 수도 있습니다 또한 최근 애플리케이션 및 알림 음성 안내 지원 또는 점자 지원과 같은 접근성 서비스는 또한 제스처를 사용하여 내부 상태를 관리합니다 TalkBack에는 다음과 같은 작업을 할 수있는 제스처가 있습니다

단어 또는 문자로 화면 읽기 시작 대신에 개체에 의해 제스처 매핑에 대한 간단한 개요는 다음과 같습니다 TalkBack에 있습니다 제스처가 많이 있습니다 사실, 이것들은 모든 제스처가 아닙니다

우리는 몇 가지 방을 남겼습니다 나중에 실험 터치로 탐색 할 수있는 간단한 데모를 시작하겠습니다 알았어 먼저 터치부터 시작할거야

탐구 COMPUTER SPEAKER : 홈 화면 3입니다 Apps 집 5 중 3 항목 표시

ALAN VIVERETTE : 내 앱, 무작위 액세스 내 손가락을 움직여서 또는 내가 원하는 것을 내가 안다면 좌우로 쓸어 낼 수 있습니다 find는 아마도 과거 조금지도 일 것입니다 컴퓨터 스피커 : 메신저 항해

사람들 ALAN VIVERETTE : 좋아, 그렇다면 내가 People을 시작하려면 화면의 아무 곳이나 두 번 탭하면됩니다 컴퓨터 스피커 : 전체 연락처 드롭 다운 목록 ALAN VIVERETTE : 나는 연락을 취합니다 다시 돌아가고 싶으면 뒤로 몸짓을 그릴 수 있습니다

컴퓨터 스피커 : 응용 프로그램을 지우십시오 ALAN VIVERETTE : 다시 돌아 갑시다 컴퓨터 스피커 : 홈 화면 세 개를 지 웁니다 ALAN VIVERETTE : 그리고 Google에서 잠깐 살펴 보겠습니다 입출력

컴퓨터 스피커 : I / O 0, Google O 2012를 내립니다 Google은 2012 년을 슬래시 한 항목을 보여주는 목록 ALAN VIVERETTE : 여기에 물건 목록이 있습니다 컴퓨터 스피커 : 21 중 1 ~ 3 항목을 표시합니다

ALAN VIVERETTE : 나는 탭할 수 있습니다 컴퓨터 스피커 : 오후 8시 세션 검색 빈 슬롯 ALAN VIVERETTE : – 그 목록에있는 항목 한 번에 전체 페이지를 이동하려는 경우 ~을위한 제스처 컴퓨터 스피커 : 오전 10:00 ALAN VIVERETTE : 전체 페이지를 움직입니다

컴퓨터 스피커 : 수요일, 6 월 27 일 ALAN VIVERETTE : 이것들은 접근성과 같은 행동들입니다 우리가 점자 지원에서 사용하는 그리고 그들은 당신이 개발자로서, 일반적으로 걱정할 필요가 없습니다 TV RAMAN : 그래서 주목해라 ALAN VIVERETTE : 죄송합니다

TV RAMAN : 앨런이 보여주고있는 것은 아주, 작업 완료를위한 매우 강력한 상호 작용 모델 매우 빠르게 그래서 항상 Play 스토어를 사용합니다 설치 버튼이 대략 어딘가 그래서 화면을 만지고 하나의 영화를하는 것은 꽤 많이 있습니다 필요한 모든 것

ICS에서는 탐험 할 수 있습니다 그리고 나서 ICS 전에 트랙볼을 사용했을 것입니다 따라서 이는 사용자 상호 작용 모델을 실제로 만듭니다 정말 효과적인 또한 우리가 한 일을 통해 액세스 지침도 바뀝니다

과거에는 시스템 중심으로 할 수있는 것 ICS 이전에 TalkBack에 표시되었습니다 그리고 우리는 상황을 집중시킬 수 있다고 말하곤했습니다 이제 개발자로서의 삶은 훨씬 쉬워졌습니다 ALAN VIVERETTE : 제가 언급했듯이, 개발자로서, 당신은 일반적으로 걱정하지 않아도됩니다 작동하지 않습니다

그래서 내가 움직일 때 무엇이 ​​포커스를 받는지 궁금해 할 것입니다 내 손가락이 화면 주위에있다 이제 분명히 레이아웃을 만든 개발자로서 전에, 당신은 당신이 중첩 된 레이아웃이 많이 있습니다 분명히, 이것들 모두가 읽혀지는 것은 아닙니다 그래서 우리는 실행 가능한 그룹을 선택합니다

따라서 실행 가능하다는 것은 클릭 할 수 있거나 포커스를 설정할 수 있음을 의미합니다 그룹이 있다면이 폴더 아이콘처럼 이미지에 표시됩니다 실제로는 다음을 포함하는 그룹입니다 이미지와 텍스트 조각 그리고 그룹 자체가 클릭 가능하기 때문에, 그것은 소리내어 읽힌다

이제 콘텐츠 설명이있는 경우 그 자녀들이 소리내어 읽혀지는 내용, 설명을 읽습니다 액션이 불가능한 항목이있는 경우 전임자가 없다는 것은 분명합니다 어떻게 든 읽을 수있는 유일한 방법은 접근성에 중점을 둡니다 다행히도 접근성에 중점을 둡니다 여기에는 폴더 아이콘에 대한 계층 뷰어보기가 있습니다

보이는구나 폴더 아이콘이 있다는 것을 알 수 있습니다 뷰 그룹입니다 여기에는 이미지보기 및 풍선 텍스트보기가 포함되어 있습니다 XML은 다음과 같습니다

그러면 폴더 아이콘이 클릭 가능한 것을 볼 수 있으므로 실행 가능한 그룹 그리고 그 아이들은 두 개의 텍스트를 가지고 있습니다 그래서 이미지보기 폴더라고합니다 거품 텍스트보기에는 Google이 있습니다 음성 안내 지원이이 실행 가능한 그룹에 초점을 맞추면 말할 것이다, 폴더 Google

응용 프로그램을 디자인 할 때 유용한 팁, 가능한 경우 내장 된 위젯을 사용해야합니다 이러한 것들이 효과가 있습니다 왜냐하면 사람들은 그들에게 많은 생각을했기 때문입니다 앱이 키보드 또는 D-Pad에서 작동하는지 확인하십시오 그래서 우리가 항상 말했던 것은 앱이 작동하는지 확인하는 것이 었습니다

D 패드로 그리고 앱이 D-Pad와 함께 작동했다면, 다행히도, 그것은 효과가있을 것입니다 매우 일을한다면 약간의 수정이 필요할 수 있습니다 특별한 것들 그러나 내장 위젯을 사용하는 응용 프로그램의 경우 가능성이 바로 작동합니다 읽을 수있는 콘텐츠가 있는지 확인하십시오

실행 가능한 항목에 따라서 이미지 버튼이있는 경우 이미지 버튼을 클릭하십시오 내용 설명 초점을 맞추거나 클릭 할 수있는보기 그룹이있는 경우, 텍스트를 넣거나 몇 가지 내용 설명을 입력하십시오 일부 하위 항목

그래서 여기 나쁜 디자인과 그것을 고치는 방법의 예가 있습니다 따라서 이것은 고아가 된 실용적인 아이템입니다 보기가 포함 된 프레임 레이아웃이 있습니다 이보기는 클릭 할 수 있습니다 그리고 전체 프레임 레이아웃을 채 웁니다

텍스트가있는이 텍스트보기는 전체 텍스트를 채 웁니다 프레임 레이아웃 그리고 눈에 보이는 사용자에게는이 버튼이 큰 버튼처럼 보입니다 텍스트 레이블을 클릭 할 수 있습니다 그리고 그것이 어떻게 수행됩니다

하지만 TalkBack이나 BrailleBack과 같은 서비스는 두 개의 개별 항목처럼 따라서 프레임 레이아웃을 클릭 할 수있게 만들고 그 안에 텍스트, 당신은 행동 가능한 그룹과 아이가있다 소리내어 읽혀질 것입니다 괜찮아 그래서 때로는 조금 더 그보다 복잡합니다

그래서 당신이 정말 멋진 키보드를 만들었다 고 가정 해 봅시다 화면에는 다음과 같이 표시됩니다 당신은 멋진 버튼들을 많이 가지고 있습니다 코드에서 렌더링 따라서 이들 각각에 대한 실제 뷰가있는 대신 버튼을 누르면 화면에 그려집니다

여기에 XML이 어떻게 생겼는지가 있습니다 추측 할 수 있듯이 계층 구조가 있습니다 실행 가능한 그룹이 많지 않습니다 읽을 수있는 아이들 더 많은 정보를 제공함으로써 문제를 해결할 수 있습니다

점자 지원 및 TalkBack과 같은 서비스 그래서 이것은 맹인에게 아무런 변화없이 보이는 것입니다 사용자 및 액세스 가능성 서비스 그것은 단지 큰 빈 공간입니다 다행히도 우리는 당신이 취할 수있는 3 단계를 가지고 있습니다 하나는 사용자 정의보기에서 들어오는 호버 이벤트를 처리하는 것입니다 접근성이 켜지고 터치하여 탐색 할 때 켜기, 화면을 터치하면보기가 수신 됨 마우스 오버 이벤트

보기를 위해 안드로이드 소스 코드를 살펴 본다면, 마우스를 올리면 이벤트가 조금씩 처리됩니다 특히 접근성이 켜져있는 경우 그래서 여기에, 내가 열쇠를 어디에 렌더링하는지 알기 때문에 화면에서 모션의 xy 좌표를 매핑 할 수 있습니다 이벤트를 키로 보낸다 내가이 열쇠 만 만져도 될까? 그렇지 않다면, 나는 적절한 것을 보내야한다는 것을 안다 접근성 이벤트

따라서 키를 터치하면 이전 키, 새 키에 대한 호버 입력 및 TalkBack 또는 점자 지원을 통해 적절한 열쇠에 대한 연설 2 단계, 나가는 이벤트를 채워야합니다 그래서 호버에 진입 이벤트를 보냈습니다 방금 누르던 열쇠를 말해야합니다 그래서 여기에,이 send hover 이벤트를 키에 대한 이벤트로 만들었습니다

메서드는 키를 취하고 이벤트 유형을 가져와 채 웁니다 키에 대한 정보가있는 이벤트 그래서 그것은 분명히 텍스트 같은 것을 포함 할 것입니다 그리고 여기에서도 소스를 설정하고 있습니다 이 위대한 젤리 기능을 스 와이프하여 두 번 클릭 할 수 있음 활성화하려면 노드 계층 구조가 필요합니다

내 접근성 이벤트를 보내면 음성 안내 지원 또는 점자 지원 가상 키 ID가 있습니다 그런 다음 응용 프로그램에 노드 정보를 쿼리 할 수 ​​있습니다 그것은 해당 키 ID와 연관되어 있습니다 그래서 여기에 노드 제공자를 사용하고 있습니다 공간 제약으로 하지만이 createAccessibilityNodeInfo가 있습니다

키 ID를 사용하는 이벤트 그 키 ID를 실제 키에 매핑합니다 그런 다음 키 정보로 노드 정보를 채 웁니다 속성 일관성을 위해 노드의 부모도 설정하고 있습니다

그것이 속한 키보드가 될 수 있습니다 그리고 그 소스를 자체 가상 키 ID로 설정하고 있습니다 물론 그 부모 따라서이 세 단계를 거친 후 키보드는 모든 사용자에게 동일합니다 따라서 누군가 TalkBack 또는 BrailleBack을 사용하는 경우 if 그들은 손가락을 그 위에 올려 놓으면 그들은 적절한 말 또는 점자 피드백

그리고 우리는 단순히 Android 안드로이드보기를 처리하지 않습니다 또한 웹보기도 잘 처리합니다 그리고 찰스가 그것에 대해 더 알려줄 것입니다 고맙습니다, 앨런 헤이, 그래서 나는 Charles Chen 다

Android에서 웹 접근성에 대해 이야기하고자합니다 앨런이 방금 네가 어떻게해야하는지 네이티브 Android 앱에 액세스 할 수있게하고, 필요한 것을 만들어보세요 할, 그리고 그것을하는 방법 하이브리드 앱을 제작하는 경우에도 동일한 작업을 수행 할 수 있습니다 따라서 웹이 혼합 된 하이브리드 앱을 만드는 경우 컨텐츠 및 네이티브 Java 컨트롤을 사용하면 액세스가 가능하고 사용자가 시각 장애

따라서 웹보기를 사용하여 실제로 뭔가를 수행하는 경우 간단하거나 정말로 기본적인 – 예를 들어, 표시되는 서비스 조건을 표시 할 수 있습니다 사용자에 대한 지시 – 그 사건은 꽤 간단합니다 웹보기가 있습니다 거기에 텍스트를 넣으십시오 그리고 일반 텍스트처럼 처리 할 것입니다 모든 것은 효과가 있고 아무런 문제가 없습니다

다른 한편으로, 무언가를 세우려한다면 조금 더 역동적 인 것입니다 Ajaxy, 자바 스크립트 HTML5를 자바 스크립트의 일부로 사용하려는 경우 귀하의 UI, 당신은 여전히 ​​액세스 할 수 있습니다 여전히 여기서 훌륭한 일을 할 수 있습니다 당신이 정말로해야 할 일은 똑같은 최선을 따르는 것입니다 데스크톱에서 웹 앱을 사용하기 위해 수행해야 할 업무입니다

그리고 그 이유는 Android에서 우리는 AndroVox를 실행합니다 그래서 AndroVox는 ChromeVox의 일부입니다 ChromeVox는 우리의 스크린 읽기입니다 Chrome OS 용 솔루션입니다 Chrome OS, Chrome에서 실행됩니다

그건 그렇고, 청각에 관심이있는 사람들에게는 ChromeVox에 대한 자세한 내용은 금요일, 웹 접근성 향상 정말 좋은 이야기가 될 것입니다 그리고 저는 그것이 저의 발표자 레이첼도 선물 할 예정입니다 다른 동료 Dominick

금요일 11시 30 분에 참석하시기 바랍니다 거기에 너희들을 만나길 바래 제발 어쨌든 안드로이드로 돌아 가기 때문에 AndroVox는 그 부분입니다 ChromeVox의 그리고 이로 인해 많은 이점을 얻을 수 있습니다

그래서 우리가 만들어 낸 모든 노력 ChromeVox는 Ajax 콘텐츠에서 실제로 잘 작동하여 ARIA 및 HTML5와 같은 W3C 표준을 지원합니다 그 모든 선한 것이 안드로이드에 들어간다 그리고 그것은 효과가 있습니다 그리고 이것을 Android와 통합하여 경험, 웹 컨텐츠와 기본 안드로이드 컨트롤 모두, 조화롭게 사용자는 앱을 사용할 수 있습니다 그리고 그들은 그 차이를 실제로 알지도 못합니다

그리고 그것은 모두 단순한 방식으로 그들 모두를 위해 일할 것입니다 경험 그리고 그걸로 데모로 전환 할 것입니다 따라서 데모 응용 프로그램을 사용하는 것이 일반적으로 도움이됩니다 웹 콘텐츠와 함께 표시하려고합니다

컴퓨터 스피커 : 집 CHARLES CHEN : 그렇게하겠습니다 컴퓨터 스피커 : 집, 홈 화면 3 개 I / O 2012 웹보기 자습서 I / O 2012 웹보기 자습서

웹 컨텐츠 Google I O 2012 웹보기 자습서를 슬래시합니다 CHARLES CHEN : 알겠습니다 여기서 볼 수 있듯이, 저는 하이브리드를 가지고 있습니다 신청

웹 콘텐츠가 맨 위에 있습니다 또한 Android 컨트롤이 맨 아래에 있습니다 그리고 나는 웹 컨텐츠를 만질 것입니다 터치 탐사가 같은 방식으로 작동한다는 것을 알 수 있습니다 모든 네이티브 컨트롤과 마찬가지로 웹보기에 표시됩니다

그래서 나는 터치 탐험을 시작할 것입니다 컴퓨터 스피커 : Android의 접근성 웹보기는 ChromeVox의 포트 인 AndroVox에서 처리합니다 Android 용 CHARLES CHEN : 알았어 이전에 앨런이 너에게 보여주고 있었어

선형으로 할 수있는 제스처 항해 웹보기에서도 똑같은 기능이 작동합니다 그래서 저는 그렇게 할 것입니다 COMPUTER SPEAKER : 건물과 동일한 모범 사례 액세스 가능한 웹 사이트가 웹보기에 액세스 할 수 있도록 적용됩니다 CHARLES CHEN : 좋습니다

이제 저는이 사실을 실제로 끝 냈습니다 웹 컨텐츠 앞으로 나아가고 싶습니다 나는 정말로 걱정할 필요가 없다 최종 사용자로서

그래서 계속 탐색 할 것입니다 COMPUTER SPEAKER : 이전 버튼이 비활성화되었습니다 CHARLES CHEN : 알았어 그래서 나는 실제로 웹에서 뛰어 내 렸어 지금 콘텐츠

그리고 저는 Android 안드로이드 컨트롤에 있습니다 이제 다음 버튼으로 이동하여 클릭 할 것입니다 컴퓨터 스피커 : 다음 버튼을 누릅니다 CHARLES CHEN : 좋아, 이제 클릭 할거야 컴퓨터 스피커 : Google I 슬래시 O 2012 웹보기 자습서 CHARLES CHEN : 알겠습니다

제목에서 추측 할 수 있듯이 여기 웹 콘텐츠의이 부분은 좋은 슬라이드가 될 것입니다 이것은 정말로 나쁜 것이 될 것입니다 그래서 여기에 당신이 결코해야 할 일의 예가 있습니다 당신은 하이브리드 응용 프로그램을 만들고 있습니다 이것은 모범 사례를 따르지 않는 응용 프로그램입니다

옳은 일을하지 않습니다 그러니 그걸 살펴보고 무엇이 잘못되었는지 보도록하겠습니다 COMPUTER SPEAKER : 웹 콘텐츠가 잘못되었습니다 하나를 향하고있다 다음은 저조한 저작 페이지의 예입니다

이 버튼은 DIV와 SPAN 요소로 구성됩니다 역할 설정이 없습니다 CHARLES CHEN : 좋아요, 그래서 저는 버튼에 가려고합니다 에 올바른 설정이 없습니다 그래서 시각적으로 그것은 단지 녹색처럼 보입니다

버튼을 클릭하면 3D CSS로 정말 아름답게 보입니다 거기에는 정말로 DIV와 SPAN이 있습니다 ARIA로 분류되지 않았습니다 그것을위한 어떤 역할도 없다 따라서 사용자는 버튼이라는 것을 알지 못할 것입니다

그것을 뒷받침하는 의미가 없습니다 단순한 DIV와 SPAN 일뿐입니다 그래서 내가 거기 갈 때 어떻게되는지 봅시다 컴퓨터 스피커 : OK, 클릭 가능 CHARLES CHEN : 좋습니다

클릭 할 수 있기 때문에 클릭 핸들러가 있음을 감지 할 수 있습니다 하지만 그걸 제외하고, 당신은 정말로 그것이 버튼, 채팅 상자 이게 뭐야, 그렇지? 추가 피드백이 없습니다 그것이 적절하지 않았기 때문입니다 role 속성으로 설정합니다

그래도 이것을 클릭 해 봅시다 왜냐하면, 헤이, 그것은 클릭 할 수 있다고 말한다 그럼 어떻게 될지, 그렇지? 어디 보자 컴퓨터 스피커 : 클릭 함 CHARLES CHEN : 응? 좋아, 방금 뭔가를 클릭했다

그리고 나는 그것을 클릭 한 것을 압니다 그러나 나는 그 경고가 전혀 나오지 않았다 왜 그런 일이 일어 났는지 봅시다 COMPUTER SPEAKER (컴퓨터 스피커) :이 버튼을 클릭하면 경고 표시된 영역에는 경고 역할이 설정되지 않았거나 그것은 살고있는 지역으로 표시했습니다 TV RAMAN : 이렇게 간단한 HTML 속성이 있습니다

추가 할 수 있습니다 그리고 당신은 이것들을 볼 수 있습니다 이있다 [? W3C?] spec 주변에 있습니다 하지만 Java 개발자 및 Android 개발자로서 DIV와 SPAN에 주석을 달 필요가 있다는 것을 알아야합니다 의미를 부여하는 속성이 있습니다

동적 변경이 발생하면 주석을 달아야합니다 동적으로 변경할 수있는 영역 어느 시점에서, 어떤 어댑터 기술이든간에 사용자가 사용 중이면 말하는 것을 알고 있습니다 이 경우 기술은 Charles와 같습니다 ChromeVox가 설명했다

하지만 이것은 Android와 관련이 없습니다 기본적으로 좋은 접근성입니다 웹에서 연습 CHARLES CHEN : 고마워, 라만 그래서 큰 충고였습니다

그리고 다시, 더 많이 듣고 싶다면, 제발 와줘 금요일에 우리 대화에 좋아, 다음의 예제로 넘어 갑시다 이 부분은 수정되었습니다 컴퓨터 스피커 : 다음 버튼을 누릅니다

Google I O 2012 웹보기 자습서를 슬래시합니다 CHARLES CHEN : 좋습니다 컴퓨터 스피커 : 웹 콘텐츠 좋은 표제 1 CHARLES CHEN : 좋습니다

실제로 그 제목입니다 훨씬 더 유망한 것으로 들립니다 그것이 좋았 기 때문에 그래서 이것은 잘하면 일해야합니다 다시 한번, 나는 단지 내비게이션을하기 위해 스 와이프 제스처를하고 있습니다

그리고 이것들은 똑같은 스 와이프 제스처입니다 Android의 모든 위치에서 사용할 수 있습니다 컴퓨터 스피커 : 여기 같은 페이지가 있지만 문제가 해결되었습니다 이제 버튼의 역할이 버튼으로 설정됩니다 CHARLES CHEN : 좋습니다, 이제 우리는 올바른 것을 설정했습니다

이 버튼의 역할 지금처럼 들리는 것을 들어 봅시다 컴퓨터 스피커 : 확인 버튼 CHARLES CHEN : 좋습니다 이제 의도 한대로 작동하고 있습니다

이제 사용자는 이것이 OK 버튼이라는 것을 알고 있습니다 그리고 그들은 그것을 듣는다 그리고 OK 버튼이 너무 좋아요 그것을 클릭 해 봅시다 컴퓨터 스피커 : 확인 단추가 있습니다

경고를 받았다 CHARLES CHEN : 멋지다 그래서 이제 나는 경고가 나타났습니다 그리고 그것은 그 경고의 내용을 알려줍니다 큰

그래서 올바르게 작동합니다 그리고 그것은 – 컴퓨터 스피커 : 알림 영역의 역할이 이제 경고는 기본적으로 라이브 영역으로 간주됩니다 CHARLES CHEN : 좋습니다 그래서 그걸로 전환 할 것입니다 Android에서 테스트하는 것

Android에서 접근성 테스트가 가능합니다 정말 쉽습니다 하나, 둘, 셋만큼 쉽습니다 그리고 그것을하지 않는 것에 대한 변명의 여지가 없습니다 그것은 시스템에 내장되어 있기 때문입니다

앨런이 여기 얼마나 쉬운 지 보여주기 위해 접근성을 높이고 실행하는 것입니다 그리고 여러분 모두가 지금 장치를 가지고 있다는 것을 알고 있습니다 그래서 당신은 정말로 이것을 끝내야합니다 알란? ALAN VIVERETTE : 언제든지 시도해보세요 집이나 청중에게

컴퓨터 스피커 : 집 집 홈 화면 앱 설정 설정

찰스 첸 : 앨런이 여기서하고있는 일은 그는 설정에 들어갔다 그는 접근하기 쉽습니다 그리고 그는 TalkBack을 사용 설정합니다 컴퓨터 스피커 : 7-24의 항목을 보여줍니다 접근성

접근성 위로 이동하십시오 TalkBack을 켜십시오 CHARLES CHEN : 좋습니다, 그럼, 평상시에 당신은 음성 안내 지원을 사용하여 터치하여 탐색기가 사용 설정되어 있는지 확인하세요 웹 접근성을위한 추가 스크립트 사용 가능 네가 모든 것을 얻을 수 있도록 컴퓨터 스피커 : [INAUDIBLE] 접근성이 허용됩니다

CHARLES CHEN : – 당신이 모든 AndroVox의 장점을 누릴 수 있도록 그러나 이미이 기능이 활성화되어 있으므로 준비가 끝났습니다 그럼 테스트 해 봅시다 사용자가 경험할 수있는 것을 경험해 봅시다 따라서 앱을 사용하는 것이 가장 좋은 방법입니다

컴퓨터 스피커 : 두 번 살짝 눌러 활성화하십시오 집 홈 화면 세 CHARLES CHEN : 그리고 우리는 Google I / O 앱 – 컴퓨터 스피커 : Google O 2012를 쓰러 뜨 렸습니다 Google은 2012 년을 슬래시

CHARLES CHEN : – 그저 사용하는 사람과 같은 방식으로 사용해보십시오 음성 안내 지원을 사용하면됩니다 따라서 터치 탐색을 사용하여 화면 주위를 느껴보십시오 컴퓨터 스피커 : 1:45 PM, 2:44 PM 코드 랩을 비워 두십시오

지금 시작하십시오 CHARLES CHEN : 좋습니다 컴퓨터 스피커 : [비 숙련] 캐시 I / O 2012 입력 brainpower FTW, 시간 이후에 우리를 확인하십시오 CHARLES CHEN : 훌륭한 새로운 기능을 활용하십시오 접근성 옵션을 위해 우리가 추가 한 제스처

선형 탐색을 사용하십시오 앱을 둘러 봅니다 목록을 스크롤하십시오 그것이 제대로 작동하는지 확인하십시오 컴퓨터 스피커 : Android Chrome, 코드 연구소를 보여줍니다

CHARLES CHEN : 차가워 요 그래서 우리가 정말로 여기서 확인하고있는 것은 우리의 애플 리케이션의 모든 눈을 무료로 할 수 있습니다 사용자는 앱 사용 가능 여부에 관계없이 앱을 사용할 수 있어야합니다 그들은 그것을보고 있습니다 모든 중요한 정보는 사용자에게 전달되어야합니다

사용자가 어떤 행동을 취할 때마다 피드백이 필요합니다 그들은 실제로 행동을 취했다는 것을 알아야합니다 일하고 있고, 뭔가 진행되고 있습니다 자, 안드로이드 linting 도구는 여기에 당신의 친구입니다 오늘 아침 일찍부터 Romain Guy는 Android linting 좋은 새로운 기능을 많이 얻었습니다

그리고 나는 나중에 그것에 관한 이야기가 있다고 생각한다 안드로이드 도구를 잘 이 새로운 기능 중 하나는 일부 기능을 수행하는 것입니다 접근성을위한 정말 간단한 검사 자,이 모든 것을 포착하지는 못할 것입니다

그러나 이것은 정말로 좋은 출발점입니다 그리고 이것은 매우 짜증나지만 간단하게 고칠 수 있습니다 오류 콘텐츠 설명이 누락되었습니다 그래서 만약 여러분이이 명령으로 상인방을 운영한다면, 여기에서 보듯이, 명령을 실행하면 lint가 실제로 사례를 잡아낼 것입니다

콘텐츠가 누락 된 이미지 버튼이있는 곳 기술 음성 안내 지원 또는 점자 지원을 사용하는 시각 장애인 사용자의 경우 모두 그들은 여기에 이미지가 있다는 것입니다 그러나 그들은 그것이 무엇인지 전혀 모른다 그렇게되면 정말 나쁜 일입니다 그리고 이것은 당신을 위해 그것을 잡을 것입니다

자,이 도구를 사용하는 것을 두려워해서는 안됩니다 이미지가있는 경우 간섭을 일으키지 않습니다 장식 순수하게 꾸미는 무언가가 있다면, 그것은 어떤 정보도 전하는 것이 아닙니다 실용적인, 그것은 정말로 아무것도 할 의도가 아니에요, 당신은 할 수있어

항상 null 표기법으로 태그를 지정하십시오 따라서 null로 설정하면 그것을 무시하는 도구 장식용 일 뿐이야 그것은 단지 눈 사탕입니다 그것은 실제로 아무 것도하지 않습니다

우리가 오늘 여기에서 이야기 한 것을한다면, 당신은 사용할 수있는 앱을 만들 것입니다 하지만 나는 이곳에있는 모든 사람들에게 도전하고 싶다 더 나아가 다음 마일로 가야합니다 일을 쓸모있게 만드는 것이 아니라 그것을 통해 일종의 투쟁을 할 수 있습니다 정말 멋진 앱을 만드는 것입니다

사람들이 사용하기를 좋아하는 앱 정말, 저는 우리 모두가 앱을 만들기 위해 노력해야한다고 생각합니다 찾고있는 것처럼 눈을 자유롭게 사용하는 것과 마찬가지로 효율적입니다 화면에 그리고 그걸로 라만에게 돌려 줄 것입니다

TV RAMAN : 고마워, Charles 결론적으로 안드로이드 플랫폼에서의 접근성 정말로, 정말 당신이 점점 더 커지는 데 도움이됩니다 광범위한 사용자층 플랫폼은 당신을 위해 많은 일을합니다 그러나 우리가하는 지침 중 일부를 따르면 너를 줘서 Charles의 테스트를 제안, 나는 그것을 보장 할뿐만 아니라 귀하의 애플 리케이션 시각 장애인, 시각 장애가있는 사용자, 사용자가 사용할 수있는 전문화 된 인터페이스를 제공하지만 일반적으로 사용자 인터페이스가 더욱 강력 해집니다

그것들은 정상적으로 성능이 저하됩니다 처음에는하지 않은 환경에서만 작동합니다 기대해라 그리고 그것은 매우 강력한 생각입니다 접근성은 많은 곳에서 법입니다

기업에 판매하는 경우 판매하는 경우 다음과 같은 경우 귀하의 응용 프로그램을 사용할 수 없습니다 특정 접근성 요구 사항을 충족하지 못합니다 하지만 그건 사실 내 의견으로는 초기 교육적 이유에 대해 걱정해야하는 이유 접근성 일반적으로 앱을 액세스 가능하도록 빌드하면 내 앱이 그 응용 프로그램이 궁극적으로 결국 모든 사람에게 더 유용합니다 예를 들어 작년에 우리는 접근성에 관한 I / O 이야기에서 TuneIn Radio를 선보였습니다

그 앱이 2 년 반 전에 발견되었습니다 그리고 나는 그것을 좋아했다 그것은 매우 훌륭하게 끝났습니다 우리는 그것이 상자 밖으로 액세스 할 수있는 것으로 나타났습니다 그리고 오늘은 가장 많이 사용되는 라디오 중 하나입니다

Android의 애플리케이션 그래서 나는 더 많은 사람들을 만나고 싶다고 생각합니다 각자 고맙습니다 CHARLES CHEN : 또한 Q & A에 가기 전에 오늘 우리가 여기서 많은 것을 보여 줬음을 언급하십시오 그리고 나는 너희 모두가 진짜를보고 싶어 죽는다는 것을 안다

실생활에 전시 그러니 샌드 박스로 들러주세요 우리 복도는이 복도 앞에 서 있습니다 접근성이야 당신은 그것을 놓칠 수 없다

그러니 들러서 인사 해주세요 또한 파트너가 있습니다 그래서 와서 확인해보십시오 확인을 클릭하면 질문이 표시됩니다 고맙습니다

[박수 갈채] CHARLES CHEN : 네? 관객 : 예, 여러 항목과 같이 더 복잡한 항목이있는 경우 그룹의 라디오 버튼 또는 스 와이프해야하는 항목 행동을 취하십시오 지시 사항을 포함시켜야합니까? 정확히 무슨 일이 일어나고 있는지, 어떤 라디오 버튼이 선택, 언제든지, 하나, 옵션이 무엇입니까? ALAN VIVERETTE : 내장형을 사용하는 경우 라디오 버튼, 아니 내장 된 위젯이 자신의 작업을 수행하도록 할 수 있습니다 몸짓으로, 내가하고있을 때 당신이 알아 차렸을지도 모르는 것처럼 정기 스크롤, 나는 두 손가락을 사용했다 따라서 터치하여 탐색 할 때 한 손가락 제스처는 단순히 두 자리 그림의 제스처가됩니다

CHARLES CHEN : 네, 선생님? 관객 : 내 질문은 내용과 관련이 있습니다 설명 예를 들어 영화를 말하는 품목 목록이 있다고 가정 해 봅시다 그런 다음 입력하면, 당신은 영화의 포스터 예술 그리고 나서 당신은 제목을 가졌습니다

포스터를 null 콘텐츠로 만드는 것이 적절합니까? 기술? 그걸 어떻게 든 동적으로 전송해야 할까? 이 영화 포스터입니다 ALAN VIVERETTE : 제 생각에, 일반적으로, 콘텐츠 설명을 추가하면 의미가 추가되어야합니다 정보 그래서 이미 영화의 제목을 가지고 있다면 영화 포스터가 제목을 반복하면됩니다 아마 그것을 피하십시오

TV RAMAN : 그렇습니다 "영화 포스터"라고하는 것 왜냐하면 그건 정말로 최종 사용자로서 훨씬 더 많은 기능을 제공하십시오 따라서 애플리케이션을 덜 수월하게 만드는 측면에서 오류가 발생합니다 관객 : 고마워

CHARLES CHEN : 네? 나는 당신이 먼저 그것을 가지고 있다고 생각합니다 관객 : 그리고 [무관심한] 오늘 발표 한 내용은 40 버전에는 적용되지 않습니다 Jelly Bean에서만 사용할 수 있습니다 TV RAMAN : 예

ALAN VIVERETTE : 맞습니다 관객 : 네, 알겠습니다 그리고 내가 가지고있는 질문은 일반적으로 표준을위한 것입니다 객체의 데이터 고정 된 내용 설명 콘텐츠 설명을 수정할 수 있습니까? 예를 들어, 내 응용 프로그램에서 웹보기를 사용하고 있습니다

그리고 내 시야를 시작할 때마다 [INAUDIBLE]이 표시됩니다 내가 사용하기 때문에, 내가 원하는 것은 [INAUDIBLE]이라고 가정 해 봅시다 다른 것을 구하기 위해 가능한가? CHARLES CHEN : 내 조언은 실제로 당신에게 웹보기에 대한 콘텐츠 설명 왜냐하면 콘텐츠 설명이 트럼프가되기 때문입니다 정상적인 행동

따라서 웹 처리 능력을 모두 잃게됩니다 그리고 당신은 모든 것을 재 구현해야만합니다 너 자신이 원하는 일이 아니야 그래서 오히려, 당신은 그렇게해서는 안됩니다 대신, 귀하의 페이지를 실제로 제공하는 방식으로 제공해야합니다

HTML5 접근성 우수 사례를 따릅니다 그리고 그것은 단지 작동해야합니다 그것에 대해 더 자세한 질문이 있으면 오프라인에서 일대일 채팅으로 즐거운 시간을 보내십시오 관객 : 네 CHARLES CHEN : 그러면 앱을 살펴볼 것입니다

관객 : 네, 고마워요 고마워 CHARLES CHEN : 문제 없습니다 알겠습니다? 관객 : 안녕하세요 많은 앱을 보니 자주 찾는 앱이 있습니다

앱을 사용하는 방법에 대한 도움말 가이드 그리고 이것은 접근성의 영역에서도조차 없습니다 이제 Send에 도착하면서 어떻게 비틀 거리는 지 보았습니다 버튼 – 이전에 만든 인스턴트 메시징 데모였습니까? 그 프로그램을 처음 발견했을 때, 심지어 주위에 자극의 거기에 버튼을 보냅니 까? 우리는 어떻게 그것을 일종의 직관적이지만 접근하기 쉬운 것으로 만들 수 있습니까? 동시? TV RAMAN : 그럼 당신은 아주 좋은 질문을합니다 그래서 한 가지 방법으로 당신은 실제로 그것을 매우 직관적으로 만들 수 있습니다

시각 장애인은 당신이 기대하는 곳 나는 실생활에서 이것을 보여줄 것입니다 오늘 밤, Google I / O 파티가 끝나면 모두로 돌아갑니다 네 호텔 방 그리고 호텔 방 문을 열면 사냥을하지 않습니다

전등 스위치 주위에 전등 스위치가 바로 있습니다 개인적으로 터치 스크린 인터페이스를보고 싶습니다 앞으로 2 년 안에 일관성, 어디서나 당신이 기대하는 곳입니다 오늘날 시각 장애인을 위해 터치 탐색이 우리의 탈출구입니다

그래서 우리는 탐구합니다 그러나 당신이 관찰 한 것처럼, 그것은 고통 스럽습니다 그리고 일들이 일종의 정착 된 세계에서 – 오늘날 모바일 공간에서 우리 모두는 매우 빠르게 혁신하고 있습니다 어떤면에서는 모든 사용자 인터페이스 컨트롤이 어떤 장소에 따라 다른 장소 디자이너 생각이 최고였다 하지만 일이 잘 풀리면 1 년 후 지금은 오늘처럼 빛을 사냥 할 필요가 없습니다

호텔 방에서 스위치를 누르면 OK 버튼이나 실제로 설치 버튼 없음 화면에서 사냥 관객 : 좋아, 빨리 추가 할 수 있을까? 너가 호텔 방 문을 열었다면 좋은 생각이야 그리고 목소리가 들려왔다 "네 오른쪽으로 가벼운 스위치가있어?" TV RAMAN : 좋은 일 이군 그러나 다른 한편으로, 그것이 항상 오른쪽에 있다면, 왜 그렇습니까? 너는 실제로 그것을 말할 필요가 있니? 예를 들어, 우리가 그런 시스템

우리는 문을 열 때마다 전등 스위치입니다 청각 장애인 사용자는 무엇을 할 것입니까? 청각 장애인 사용자는 무엇을 할 것입니까? 우리는 결국 – 내 생각에, 이것들은 상호 배타적 인 솔루션 그러나 사용자 인터페이스는 사용자 인터페이스가 눈에 띄지 않을 때 가장 잘 작동합니다 그들은 문까지 걸어 간다 문 손잡이의 유형은 밀어 붙이거나하지 말아야한다

문이 나를 밀거나 당겨서는 안된다 CHARLES CHEN : 또한, 귀하의 특정 상황에 추가하고 싶습니다 질문, 그것은 실제로 정말로 강력한 방법 중 하나입니다 터치 탐색과 선형을 사용할 수있는 곳 네비게이션 내 데모 중에 기억한다면, 나는 약간의 만져 봤어

먼저 웹 컨텐츠를 탐색하십시오 그리고 제스처 탐색을 시작했습니다 그리고 이것은 작동하는 것과 같은 것입니다 Android의 모든 부분에서 당신은 무언가에 탐구를 만질 수있다 그런 다음 제스처 탐색을 시작할 수 있습니다

가리킨다 처음으로 앱을 사용할 때, 어떤 것이 놓여 있는지 알 수있는 시간 그러나 일단 당신이 그것을 이해하면, 미래에, 당신은 얻을 수 있습니다 일반 부근으로 이동 한 다음 선형을 사용하십시오 네비게이션

TV RAMAN : 예를 들어, 오늘 전화로 도망 쳤을 때 Chrome, CNN 또는 BBC 또는 내가 읽은 사이트를로드합니다 자주 뉴스 그 화면의 해당 페이지의 1/3이 탐색 물건, 그리고 내가 정말로 필요하지 않은 것들 정기적으로 읽을 수 있습니다 그래서 대략 손가락을 반쯤 내리고 제목을 입력 한 다음 OK라고 말하면 여기에서 읽습니다 그래서 그것은 강력한 패러다임입니다

그러나 지금부터 1 년 후에는 이러한 것들이 일관되게 나타나기 때문에, 잘하면 우리는 좀 더 최적의 것을 말할 것이라고 확신합니다 관객 : 고마워 CHARLES CHEN : 네, 선생님? 청중 : 우리는 JavaScript를 사용하여 스 와이프 또는 회전과 같은 기본 동작을 모방합니다 너는 갈 능력이있어 보통은 한 손가락이 스 와이프하거나 두 손가락이 회전합니다

이제, 손가락으로 두 손가락을 쓸어 넘기고 터치 피드백 그렇다면 웹 개발자는 계속해서 네이티브 제스처를 모방 한 JavaScript 라이브러리? 그게 정상적으로 문제 였으니 까 CHARLES CHEN : 네, 근본적으로 무슨 일이 일어나고 있는지 여기에 개발자로서, 당신은 정말로 그것을 알지 못합니다 차이점 – 우리가 어떻게하고 있는지 깨닫지 못할거야 두 손가락으로 쓸어 넘기는 것

무슨 일이 일어나고, 안드로이드 끝 부분에 코드를 평소와 똑같은 방법 최종 사용자를 위해 얻을 수있는 것은 두 명을 사용하는 경우입니다 손가락과 그들은 터치 탐사를 가지고있다 손가락 한 개가 보입니다 그래서 그 차이를 실제로 보지 못할 것입니다

TV RAMAN : 질문에 대한 답은 다음과 같습니다 해당 라이브러리를 계속 사용하십시오 그리고 우리는 이것을 플랫폼에서 일관되게했기 때문에 수준이 높고 응용 프로그램의 시각 장애가있는 사용자는 손가락을 더 사용해야합니다 터치하기 위해 사용하는 손가락 하나 기본적으로 플랫폼에 대한 탐험은 마우스처럼 보입니다 접근성이 켜지면 포인터가 움직입니다

청중 : 접근성이 있는지 쉽게 판단 할 수있는 방법이 있습니까? 장치가 켜져 있습니까? CHARLES CHEN : 네 청중 : 귀하의 콘텐츠를 변경하는 것이 좋습니다 깃발이 켜져 있습니까? TV RAMAN : 프로그래밍 방식으로 확인할 수 있습니다 그렇습니다 당신이 정말로 무겁게 관습 인 무언가를하고 있지 않다면, 실제로 더 잘 제공 할 수 있다고 생각하는 곳 의미론, 나는 내용을 실제로 바꾸지 않을 것이다 예를 들어, 매우 사용자 정의보기가있는 경우

Alan이 키보드의 예를 보여주었습니다 하지만 멋진 캘린더 앱을 개발했다고 가정 해 보겠습니다 그런 식으로 그리고이 사용자 정의 캔버스를 가지고 있습니다 몇 가지 목록을 사용하여 캘린더 모델을 구축했습니다

몇 가지 격자, 그리고 무엇이든, 그리고 당신이 느끼는 것처럼, 앱으로 개발자는 목록, 목록, 표 및 단추를 말합니다 앱의 의미가 없어지면 기본적으로 사용자 고유의 액세스 가능성 비트를 구현합니다 우리는 좀 더 복잡한 플랫폼 위젯을 위해 할 수 있습니다 그러나 그것은 내가 물건을 주문을 받아들이는 수준이다 별도의보기 나 별도의보기를 수행하지 않습니다

콘텐츠 레이아웃 시간이 지남에 따라 둘은 동기화되지 않으므로 너는 문제가 생길거야 ALAN VIVERETTE : 당신이 시간을 절약 할 수있는 것은 매우 드뭅니다 별도의 구현 CHARLES CHEN : 예, 당신이하고 있다면 말이됩니다

모든 OpenGL이나 뭐 그리고 이것은 단순한 목록 일뿐입니다 그리고 기호 목록 만 갖고 싶었습니다 ALAN VIVERETTE : 그래도, 당신이 노드 제공 업체를 통해 서면으로 작성된 표면 렌더러 또는 GL 캔버스를 사용하는 OpenGL 완전히 액세스 할 수 있습니다 그리고 그것은 실제와 구별 될 수 없습니다

구현하는 경우보기 계층 구조 노드 공급자 CHARLES CHEN : 네 그래서 일반적으로 그렇게하려고하지 마십시오 TV RAMAN : 구현할 추가 코드는 다음과 같습니다 앨런과 찰스가 묘사 한 것은 노드입니다

공급자와 노출 – 그래서 당신은 시맨틱 스를 통해 그 가상 계층 CHARLES CHEN : 어쨌든, 당신이 더 구체적인 것을 가지고 있다면, 우리는이 이야기 후에 오프라인에서 당신과 이야기하게되어 기쁩니다 예? 마지막 질문 일 수도 있습니다 짧은 시간에 달리기 관객 : 안녕하세요, 제 이름은 다니엘입니다

이 세션을 가져 주셔서 감사합니다 베드로가 프레젠테이션에서 알란에게 메시지를 보냈을 때 그는 커피를 좋아한다고 말하면서 보내기 버튼을 찾으십시오 그러나 그 장치는 그에게 메시지에 대한 피드백을주지 않았다 실제로 전송되지 않았습니다 우리는 그것을 볼 수있었습니다

그러나 우리는 그것을들을 수 없었다 그래서 베드로는 그가 메시지를 보냈다고 생각합니다 그러나 Alan은 여전히 ​​그것을 기다리고 있습니다 그렇다면 프로그래밍의 오류는 무엇입니까? 신청? 또는 이것이 중요하지 않은 원인은 무엇입니까? 피드백 메시지가 전송되지 않았습니까? 사실 그것은 큰 질문입니다 나는 그것이 물론 균형을 이루고 있다고 생각합니다

많은 피드백 이 경우 우리는 아마도 약간의 조금 더 피드백 하지만 언제든지 돌아가서 메시지가 있는지 확인할 수 있습니다 당신이 정말로 알고 싶다면 실제로 보냈습니다 TV RAMAN : 나는 그것이

또한 보내기 버튼을 눌렀을 때 성공적으로, 그것은 보낸다고합니다 그리고 나는 여기에 일어난 일이 우리 모두 였다고 의심합니다 집중은 데모에 대한 이야기를 더 많이했다

실제 사용에 반대합니다 그러나 메시징 응용 프로그램은 당신은 성공적으로 보낸다 당신이 보내지 않을 때 그것은 당신에게 피드백을주지 않습니다 피드백에 대한 피드백이 부족합니다 CHARLES CHEN : 그리고 저는 우리 중 한 명과 새로운 접근성 이벤트, 성공적으로 타입 발표

이것은 정확하게 유스 케이스이다 편리하게 왔어 ALAN VIVERETTE : 그래서 유형 발표 – CHARLES CHEN : 우리는 그것을 업그레이드 할 것입니다 ALAN VIVERETTE : 당신이 원할 때입니다 앱에서 방금 말을합니다

유형이 포함 된 접근성 이벤트를 보내는 경우 발표하면 축 어적으로 읽힐 것입니다 CHARLES CHEN : 고맙습니다 좋아요, 그래서 마지막 질문이나 아니요? 승인 ALAN VIVERETTE : 마지막 플러그 하나, 우리는 홀에서 코너, 접근성 부스 우리를 보러와

TV RAMAN : 고마워요 그리고 귀하의 앱을 기대하십시오 [박수 갈채]

7 Best Camera Apps For Android 2018/2019!

우리 채널에 달린 것 Android 2018의 7 가지 최고의 카메라 앱에 대한 다른 동영상입니다 그리고 네가 좋아한다고 확신 해

시작하자 좋아, 그래서 나는 수동 카메라에 가장 인기있는 애플 리케이션의 목록을 가지고 또는 수동 카메라 응용 프로그램 만 수행해야합니다 나는 당신이 당신의 전화 설정에서 나와 함께하기를 요청한다 노출을 설정할 수있는 능력이 있다면 apki 조명 상태를 읽어보십시오 sahi ni hai to apso iho badha sakte ho 화이트 밸런스에 초점을 맞추고 스스로 설정할 수 있습니다

또는 특별한 특징이있다 촬영 끝에서 촬영하거나 촬영할 방법이 없습니다 장점은 원시 파일의 복사본을 얻을 때 이 소프트웨어를 사용하여 검색 내용을 편집 할 수 있습니다 대비, 노출, 색을 sb로 변경 이렇게하려면 전화기의 DSLR 제어 장치가 있어야합니다 그는 분명히 시도 할 것입니다

좋아, 다음 앱은 영화 프로이거나 youtube에서 전화를받을 수있는 비디오 카메라 앱을 가지고있다 비디오가 금지되지 않았거나 전문적인 영화 비디오가 없습니다 너에게 앱은 확실히 앱을 가지고있다 비디오를 손쉽게 비디오 녹화 세션으로 전환 할 수 있습니다 화면을 클릭하여 개체에 집중하거나 두 번 살짝 누르십시오

포커스를 키에 고정 할 수도 있습니다 또는 sb를 집중 시키거나 공개하도록 응용 프로그램을 수동으로 설정할 수 있습니다 나 ak 또는 sbse acha 기능입니다 컬러 그레이딩 비디오 시네마 프리젠 테이션을 위해서는 시간 색상 그레이딩 또는 효과를 편집해야합니다 또는 비디오 녹화를 컬러로 내 비디오 녹화입니다

또는 앱에 앱을 설정할 수 있습니다 너는 건초 너희 fayda hoga 기 humara 비디오는 영화이다 나는이다 싹 돼지 또는 편집 시간 또는 검색 결과의 효과를 사용하십시오 앱의 동영상 비율을 변경할 수 있습니까? 느리고 빠른 동작 fx가 설정되면 시간이 경과하면 촬영할 수 있습니다 또는 녹음 시간입니다 시작하는 데 도움이되는 일련의 설정이 있어야합니다

이것은 당신이 확실히 녹음하고 싶은 비디오입니다 세 번째 앱은 자체 검색에 보관됩니다 또는 자동 셀카 카메라 앱입니다 isme app jese 그는 자동으로 apki에서 사진을 캡처 카메라를 denose 포즈 또는 키보드의 아무 버튼이나 누릅니다 또는 나는 당신이 사진을 자동으로 캡처와 같은 기능을 가지고있는 응용 프로그램입니다 가게를 재생할 것 같아요

또는 당신이 응용 프로그램은 공식적으로 구글 시작되었습니다 또한 앱을 볼 수있는대로 곧 미리보기를 볼 수 있습니다 화면을 클릭하거나 사진 앱을 클릭하여 화면을 저장할 수 있습니다 또는 현재 흑백 사진을 클릭하고 있습니다 카메라에 앱이있는 것은 이번이 처음입니다 또는 카메라 nx는 Google 픽셀 2 카메라 앱의 수정 된 버전입니다

최신 Google 카메라 앱을 다운로드 할 수있는 좋은 방법입니다 픽셀 2는 stderers에 의해 촬영 된 그림의 이미지이고, hdr + image processing milegi jui apki 사진 기 품질 bht badh jayegi 또는 카메라 nx에 개인화 된 인물 사진을 사용했습니다 또는 결과가 약간 다릅니다 몇 장의 인물 사진을 찾고 있어요 배경이 흐릿 해지는 배경이 있습니다

사용자 앱에 앱을 업로드하는 빠른 앱입니다 아니면 나보다 다른 장치가 없어 저를 행복하게 해주는 힘을 가진 영원한 카메라 앱이 있습니다 또는 재미있는 비디오, 당신은 앱을 갖고 싶지 않거나 일반 카메라 앱을 가지고 있지 않습니다 앱을 비디오로 빨리 감거나 다시 사용할 수 있습니다

비디오를 그대로 루핑하거나 루프를 켜거나 끌 수 있습니까? GIF 또는 비디오 형식의 소셜 미디어와 직접 공유 할 수 있습니다 재미 있거나 재미있는 앱입니다 괜찮은 다음 카메라 앱은 retrica입니다 또는 KJZ 로그 중 하나가 필터 필터 카메라를 사용하여이를 사용하고 있습니다 실시간 필터는 여기에서 사용할 수 있습니다

따라서 사진은 bht입니다 또는 결과를 편집 할 수 없습니다 Retrica는 동일한 효과를 가지고 있으며 실시간 필터라는 사실입니다 앱 스 와이프에서 필터를 변경하거나 앱에서 대학을 감독 할 수도 있습니다 이 기사에 대해 질문이 있으시면 다시 시도하십시오

다음 앱은 불 켜져 있거나 최근에 시작되었습니다 카메라에서 설명서를 제어 할 수있는 간단한 카메라 응용 프로그램이 있습니다 jiz 앱을 확대하면 셔터 속도가 변경 될 수 있습니다 또는 셔터 속도를 변경해야하는 변경 사항입니다 나중에 스포츠 vale shots le hohe ho 가능한 경우에도 비디오 비디오를 만들 수있는 방법이 있습니까? 사진에 사용할 수있는 빛에 비추어 사용할 수있는 두 가지 유형의 재즈 기능이 있습니다

OK 녀석 오늘은 그게 다야 우리 비디오를 즐기고 내가 좋아하는 카메라 앱이 뭔지 ​​말해 줄 수 있길 바래 우리의 비디오를 시청 해 주셔서 감사합니다

Introducing Oboe for Building Audio Apps on Android

Oboe 시작하기 요즘 많은 앱들이 음향을 사용해 성공적인 사용자 경험을 제공하고 있습니다 디제잉, 가라오케나 음악 관련 게임이든 음향은 표현과, 오락 그리고 창의력을 위한 강력한 도구로 자리매김했습니다 저는 오늘 새로운 C++ 라이브러리인 Oboe를 여러분에게 소개하고자 합니다 안드로이드 상에서 흥미롭고 쌍방향 호환이 가능한 음향 서비스 제작이 얼마나 쉬운지를 보실게 될 겁니다 쌍방향 음향이란 무슨 말일까요? 이 키보드를 예를 들어 보겠습니다 키를 누르면 즉시 소리가 납니다 이런 점이 이 키보드의 반응이 빠르다는 느낌을 전달합니다 즉각적인 음향 피드백을 받으니까요 악기를 연주할 때 이런 기능들이 우리에게 즐거운 경험을 전달합니다 하지만 키를 눌렀지만 한참 후에야 소리가 나온다고 상상해 볼까요? 이런 지체로 인한 경험이 키보드는 어려운 악기라는 인상을 안겨줄 겁니다 동일한 이유가 앱이나 게임 등에 적용될 수 있는데요 리듬 게임과 가라오케 디제잉 또는 스크래치 앱, 가상현실, 신시사이저, 드럼등 상상할 수 있는 모든 악기가 포함될 수 있습니다 이러한 모든 앱들은 공통된 요구 사항이 있습니다 성공적인 사용자 경험을 제공하는 저 지체율 음향 서비스입니다 바로 Oboe를 제작한 이유이기도 하죠 모든 안드로이드 기기에서 가장 낮은 음향 지체성을 제공하는 C++ 라이브러리로서 API 16 이상에서 작동합니다 99%의 안드로이드 기기에서 호환 가능하다는 의미입니다 장치 내부에서, AAudio를 이용해 API 27 이상의 모든 API에서 발생하는 OpenSL ES에 대비할 수 있습니다 이와 같이, Oboe는 사용하기 편리한 단일 API를 제공함으로써 더 새로운 기능의 사용과 더불어 AAudio에서 더 향상된 결과를 도출해 낼 수도 있고 모든 기기에서 백 워드 호환성 기능도 제공합니다 Oboe를 시작하기 전에 GitHub로부터 복사본을 저장해야 합니다 여러분의 로컬 컴퓨터의 자료를 복사하는 단계입니다 Oboe는 CMake의 하위 프로젝트로 만들어졌습니다 여러분의 프로젝트 CMAke 환경을 먼저 업데이트해야 합니다 만약 여러분이 CMake 환경 설정 초기 값을 설정하지 않은 상태라면 C++ 지원을 앱에 추가해야 합니다 아래의 링크를 통해서 첫 번째, 당신의 프로젝트에 Oboe 소스 코드의 위치를 지정해 주세요 이 경로로 복사본이 저장이 됩니다 그 다음, 이 경로를 서브디렉터리로 추가하신 다음 open 헤더를 추가하세요 마지막으로, Oboe를 종속 라이브러리로 추가하십시오 안드로이드 스튜디오의 라이브러리는 Build로 이동해 C++프로젝트 링크를 새로 고침 하시면 확인하실 수 있습니다 거의 다 끝났습니다, 여러분의 코드 속에 Oboe 헤더만 추가하시면 Oboe 개체를 사용할 수 있습니다 그리고 모든 개체들은 Oboe 네임스페이스 안에 있기 때문에 혹시 사용 중에 다른 네임스페이스와 충돌할 가능성은 없습니다 이제 여러분은 Oboe API를 사용할 준비가 다 끝났습니다 시작 안내서, 코드 샘플, 코드 랩을 아래의 링크를 통해서 GitHub에 가셔서 이용하십시오 사용하시다가 생기는 문제나 질문은 저희 GitHub 게시판에 올려주세요 최선을 다해서 해결하겠습니다 Oboe에 대한 관심이 있으시거나 어떻게 하면 지연이 되지 않는 오디오 스트리밍을 구축할 수 있는지 또 어떻게 하면 오디오 콜백을 최우선 순위로 받을 수 있는지 다음 영상 편에서 Oboe를 사용해 음악을 만들어 보며 알아보겠습니다 오늘은 여기까지 하죠 안녕히 계십시오 그리고 직접 제작해보세요

Leveraging the Power of Arrow to Build Android(Kotlin) Apps using Functional Programming

[음악 재생] 좋아, 얘들 아 다시 오신 것을 환영합니다

그래서 얼마나 많은 기능적인 프로그래머가 여기에 있습니까? 승인 그럼 지금 놀라운 세션이 있습니다 화살표를 사용하여 안드로이드를 구축하는 힘 모니카 (Monika)의 함수 프로그래밍을 사용한 Kotlin 그녀는 4 년 동안 안드로이드 개발자로 일해 왔습니다 이제부터 그녀를 무대에 오르게해서 시작할 수 있습니다

[음악 재생] MONIKA KUMAR : 개발자 John을 만날 수 있습니다 Kotlin을 처음 사용하고 싶어합니다 그의 프로젝트에서 Kotlin의 함수 프로그래밍 기능 그러면 어떻게 그렇게 할 수 있을까요? 화살표를 입력하십시오 안녕, 모두들

저는 Monika Kumar Jethani입니다 나는 당신을 환영합니다 이 세션의 모든 부분을 활용하면 Arrow 기능적 프로그래밍을 사용하여 Android 애플리케이션을 구축하는 방법 그래서 저는 4 명으로 구성된 다국어 프로그래머입니다 소프트웨어 개발 분야에서 수년간의 경력을 쌓았습니다 관심 분야는 이동성과 인공 지능입니다

코드를 읽고, 코드를 작성하고, 코드에 대해 이야기합니다 그리고 나는 자바가 시작된 같은 날에 태어났습니다 얼마나 많은 사람들이 함수형 프로그래밍을 사용하기 시작 했습니까? 당신의 프로젝트에서? 좋아, 좋아이 세션에서 우리는 함수형 프로그래밍이 무엇인지 조사하고, Kotlin의 기능적 구성물 Arrow 소개, Arrow의 데이터 유형에 대해 자세히 설명합니다 유형 클래스,보다 기능적인 프로그래밍 개념 Arrow가 그 자체로 가져 오는, 그리고 샘플 Arrow 애플 리케이션

그래서 함수형 프로그래밍은 선언적 스타일을 도입합니다 당신이 무엇을해야할지 집중하는 프로그래밍의 하는 방법보다는 계산으로 평가를 처리합니다 수학 함수의 그래서 객체 지향 프로그래밍과는 달리, 프로그램에 국가가있는 곳 객체는 메소드를 통해 상태를 변경합니다

함수형 프로그래밍은 유지 보수 및 변경을 엄격하게 피할 수 있습니다 의 상태 따라서 함수형 프로그래밍의 핵심 개념은 순수한 함수입니다 따라서 순수한 함수 (normal function)처럼, 당신은 입력을 받아, 당신은 출력을 제공합니다 그러나 보편적 인 판매 포인트가 있습니다

순수 함수가 있음을 의미합니다 동일한 입력에 대해 항상 동일한 출력을 제공합니다 b = 1, b = 2, b = 10, 동일한 입력에 대해 동일한 출력을 얻을 수 있습니다 두 번째 요점은 중요한 점입니다 주문 함수는 적용된 매개 변수에만 초점을 맞 춥니 다

그것에 함수 밖에서는 작동하지 않습니다 여기 오른쪽에서 볼 수 있습니다 합계 함수는이 두 가지 이유로 순수한 함수입니다 그래서 언제든지, 내가 1을 동등하게한다면, b = 2이면 항상 출력을 얻습니다

일부 기능은 조작 요소에 초점을 맞추기 때문에 그것은 그것에 제공됩니다 그것은 인스턴스 변수 나 어떤 것이 작동하지 않습니다 함수 밖입니다 따라서 함수형 프로그래밍의 많은 장점이 있습니다 객체 지향 프로그래밍 그래서 우리는 응용 프로그램을 함수로 만듭니다

따라서 코드는보다 간결하고 모듈화됩니다 테스트가 더 쉬워집니다 그것은 예측 가능합니다 당신은 T가 1 인 것을 압니다 또한 a1, b2를 주면 3이됩니다

똑같습니다 – T에서 10을 얻습니다 안전 프로그래밍을 장려합니다 불변성과 순수성과 같은 구조를 도입함으로써 기능 그래서 함수형 프로그래밍은 언어 독립적입니다 그리고 함수를 다루는 언어 일류 시민으로서의 기능적 프로그래밍으로서의 소리 언어

예는 Scala, Haskell 및 Kotlin입니다 이러한 언어에서 함수는 다른 함수로 전달 될 수 있습니다 함수에서 반환 될 수 있습니다 변수에 할당 할 수 있습니다 그럼 Kotlin의 함수 구조를 살펴 보겠습니다

그것들은 변경 불가능한 객체를 의미하는 변경 불가능 성이며, 객체의 상태를 변경할 수 없습니다 그리고 Kotlin에서 val 키워드를 사용하여 불변성을 부여합니다 고차 함수 – 고차 함수 함수를 취하는 함수에 주어진 이름이다 매개 변수 또는 반환 함수로 람다 (Lambdas) – 또 다른 기능을 제공합니다

기능 그러나이 경우에 공급되는 기능은 이름이 없습니다 게으른 평가 – 객체 생성 처음 사용될 때까지 연기됩니다 테일 호출 재귀 – 그래서 모두들 여기서 재귀에 익숙해야합니까? 따라서 꼬리 호출은 메소드의 마지막 호출 동일한 서브 루틴에 호출됩니다 꼬리 호출 재귀, Kotlin의 꼬리 호출 최적화 재귀 호출로 마지막 호출이있는 경우입니다

확장 기능 – 어디에서 할 수 있습니까? 더 많은 메소드를 추가하여 클래스의 기능을 확장하십시오 Null 안전성 – nullable 유형을 나타낼 수있는 곳 유형 뒤에 물음표가 나타납니다 패턴 일치 – 호출 할 변형을 알아 내고, 패턴 또는 유형에 따라 다릅니다 그래서 코 틀린은 우리 모두가 알듯이, 바닥을 걸을 것입니다 자바에 있었다

그리고 그것들을 개선하려고합니다 그래서 우리 모두가 알 수 있습니다 객체 지향 프로그래밍 언어에서 자체는 객체 지향 프로그래밍 언어입니다 따라서 Kotlin은 기본적으로 객체 지향 프로그래밍의 융합입니다 기능 프로그래밍

순수한 함수형 프로그래밍 언어는 아닙니다 기능적 프로그래밍을 시행하지는 않지만, 형식화 된 함수형 프로그래밍을 지원하지 않습니다 그래서이 모든 것을 고치려면 Arrow가 들어갑니다 Arrow는 Kotlin의 표준 라이브러리에 기능적인 동반자입니다 그것은 2017 년에 소개되었습니다

최신 릴리스는 073입니다 가장 인기있는 두 가지 Kotlin 라이브러리의 융합입니다 Kategory 및 funcKTionale을 사용하면 자세한 정보를 얻을 수 있습니다

arrow-ktio에서의 Arrow에 대해 따라서 Arrow에는 세 가지 데이터 유형이 있습니다 더 많은 데이터 유형이 있습니다 하지만이 프레젠테이션에서는 세 가지 중요한 것에 초점을 맞춘다

Option, Either 및 Try입니다 그래서 그들 모두는 봉인 된 수업입니다 그리고 Option은 이름에서 알 수 있듯이, 선택적 값을 나타내는 데 사용됩니다 그래서 Option에 A 타입의 값이 있다면, 그것은 [INAUDIBLE] Some의 가치를 가질 것입니다 그래서 약간의 가치가 있다면 A가 될 것입니다

모든 값은 None이됩니다 그래서 Option은 Some 또는 None을 가질 수 있습니다 예에서 볼 수 있듯이, 우리가 someValue, Some과 문자열을 할당하려한다면, 그것을 인쇄합니다 그래서 우리는 산출물로서 어떤 가치를 얻습니다 따라서이 경우 someValue, 변수, Some 유형의 Option 값을 포함합니다

두 번째 예 – emptyValue 변수 없음 유형의 옵션 값을 포함합니다 그런 다음 옵션을위한 중요한 도구가 있습니다 어떤 유형의 경우, 어떤 작업을 수행하면, 당신은 결과를 얻을 것이다 없음 유형에서, 당신은 작업을 수행하려고 시도하지만, 당신은 결과적으로 항상 None을 얻을 것입니다 따라서이 예에서는 숫자를 볼 수 있습니다

Some 유형의 Option 유형입니다 숫자 없음은 유형 없음의 Option 유형입니다 따라서 옵션에 대한 작업을 수행하려고 할 때 type 일부는 결과를 얻는다 언제 Option 유형 None에서 작업을 수행하려고 시도하면, 당신은 결과를 None으로 얻습니다 두 번째는 출력을 없음으로 얻는 경우입니다

기본 설정을 지정하려는 경우가있을 수 있습니다 null 타입의 경우의 값 – 없음 유형 거기에서 getOrElse를 사용할 수 있습니다 그래서 당신에게 제공하는 옵션을 제공합니다 유연성을 기본 제공 None 유형의 경우 값

그래서 값은 None이고, getOrElse를 사용하면, 이를 기본값으로 지정합니다 그래서 당신이 그것을 출력 할 때, 당신은 디폴트 값을 얻습니다 None 값이기 때문입니다 그런 다음 Option의 사용 사례는 다음과 같을 수 있습니다 우리는 신청서에 양식이 있습니다

따라서 필수 항목은 주로 이메일, ID, 비밀번호, 사용자입니다 이름 이름은 Option이 될 수 있습니다 따라서 Option 데이터 유형을 사용하여 당신의 코드에서 그 이름 그런 다음, 우리 모두는 Kotlin의 when 절 스위치와 같습니다

그래서 절에는 기본값이 있습니다 따라서 기본적으로, 없음을 사용할 수 있습니다 그리고 나머지 경우에는 Some을 사용할 수 있습니다 이제 두 번째 데이터 유형 인 Isither로 넘어갑니다 그 이름에서 알 수 있듯이, 모두 이중 값 중 하나입니다

따라서 왼쪽은 예외 상황을 나타내는 데 사용됩니다 오른쪽은 [INAUDIBLE]을 나타내는 데 사용됩니다 따라서이 예제에서는 right라는 변수를 볼 수 있습니다 그리고 그것은 어느 쪽인가의 유형입니다

그래서 왼편에는 문자열이 있어야합니다 맞습니다 정수를 포함해야합니다 당신은 어느 쪽을 지정합니다 맞아요

그리고 당신이 그것을 인쇄하면, 당신은 권리를 얻습니다 그럼 두 번째 경우에 그래서 왼쪽, 예외를 나타 내기 때문에, 일부 유효성 검증 메시지를 넣을 수 있습니다 따라서 인쇄 할 때 왼쪽 부분이 인쇄됩니다 그래서 당신은 또한 어떤 디폴트 값을 넣으려고 시도 할 수 있습니다 마찬가지로, 권리가 있다면, 당신은 그냥 결과물을 낼 수 있습니다

왼쪽에 기본값을 넣을 수 있습니다 당신은 예외적 인 경우입니다 그냥 0을 출력 할 수 있습니다 따라서 이것이 가능한 예입니다 어느 쪽에서 값을 추출 할 때 사용합니다

Option과 마찬가지로, getOrElse를 Either와 함께 사용할 수 있습니다 게다가 그리고 여기에서도 왼쪽에 기본값을 제공 할 수 있습니다 그래서 여기서 다시 볼 수 있습니다, 우리는 getOrElse를 사용하여 기본값 0을 할당 알려진 부분이있는 왼쪽 부분으로 그래서 당신은 어느 쪽이 될 수 있는지 추측 할 것입니다 그 검증 자료를 표시합니다

우리 양식에는 이메일 양식이 있습니다 그래서 우리는 특정 형식이있을 것으로 기대합니다 그래서 포맷이 바르게 따른다면, 우리는 그것을 입력으로 받아 들일 수 있습니다 그렇지 않으면 유효성 검사 메시지를 표시 할 수 있습니다 어느 쪽이든의 도움으로 이제 시도해 보겠습니다

Try는 Try와 유사합니다 Java 나 C #에서 볼 수 있습니다 그래서 값이 존재하는지 확인해보십시오 존재하는 경우 성공 부분으로 이동합니다 실패하면 실패 부분으로 넘어갑니다

따라서 예제에서 볼 수있는 getQuizQuestions 실패 할 가능성이 있으며 예외가 발생합니다 그래서 그것은 Try 안에 포함되어 있습니다 그래서 Try 내부에 동봉되어 있기 때문에, 그것은 예외를 던질 수 있습니다 예외가 발생하면 출력을 실패로 볼 수 있습니다 그리고 예외 행 번호와 이름을 얻습니다

예외도 마찬가지입니다 Option 및 Either와 유사하므로 다음과 같이 할 수도 있습니다 Try 값을 추출하십시오 성공하면 b 부분을 찾습니다 그래서 우리는 실패한 b로서 성공합니다

따라서 실패한 경우 기본값을 출력 할 수 있습니다 이 경우 0입니다 그리고 성공 – b를 찾을 수 있습니다이 경우는 a입니다 승인

따라서 알려진 함수가 있습니다 Recover로 예외를 처리하는 데 사용됩니다 실패입니다 그래서 복구 – 다시, 예외가 걸립니다, 화면에 표시 할 값을 제공합니다 그 예외가 발생할 때 여기에서는 런타임 예외가 발생합니다

이렇게되면 값 0이 출력됩니다 그리고 이것은 Recover를 사용하여 수행 할 수 있습니다 그래서 try를위한 유스 케이스는 예외를 잡을 수있다 우리가 나누는 것처럼 그래서 우리는 항상 제수가 0이 아닙니다

따라서 Try 블록에서 나누기 코드를 묶을 수 있습니다 기기가 0이 아닌 경우 분할 결과를 출력합니다 값이 0이면 Try를 사용할 수 있습니다 오류 부분으로 리디렉션 할 수 있습니다 그래서 타입 클래스 – 타입 클래스는 Arrow의 중요한 특징입니다

그들은 행동을 나타냅니다 3 가지 타입 클래스가 있습니다 이 세션에서 초점을 맞추십시오 그것은 Functor, Monad 및 Applicative입니다 따라서 Functor는 래핑 된 값에 함수를 적용하는 데 사용됩니다

맵 기능 사용 그래서 여기에서 그들은 A에서 B까지의 기능을 가지고 있다는 것을 알 수 있습니다 우리는 감싸 진 값, F of A를가집니다 그리고 나서 우리는 감싸 진 값, B의 F를 얻습니다 그래서 F 포장 된 값을 변환하는 함수입니다

map은 동일한 컨텍스트 내에서 변환 된 값을 반환합니다 Functor는 어떻게 작동합니까? 펑 터는 함수와 펑터를 취하고, 새로운 펑터를 반환합니다 그래서 여기서 플러스 3이 함수라는 것을 알 수 있습니다 그러면 Functor가 생깁니다이 경우 Option

Some (2)입니다 그리고 새로운 펑터를 반환합니다 그래서 OptionSome (2)에서 연산을 수행하면 3, 그것은 우리에게 Some (5)를 줄 것이다 그래서 Some (5)는 새로운 functor입니다

맵 기능에 의해 제공됩니다 따라서 Functor에서 먼저 값은 컨텍스트에서 풀립니다 그런 다음 3을 더한 함수가 적용됩니다 결과 값은 같은 맥락에서 배치됩니다 그래서 이것은 일부 부분에서는 잘 작동합니다

이제 Option에 포함 된 None 부분이 있습니다 지금까지 함수 자체는 전혀 적용되지 않습니다 오른쪽에서 코드를 볼 수 있습니다 옵션 없음을 사용합니다 함수에 3을 더하고 싶습니다

그래서 함수는 적용되지 않습니다 결과 출력은 None입니다 그런 다음 Functor를 배열에 적용합니다 따라서 각 추가 된 값에 대해 함수가 적용되고, 우리는 새로운 가치 배열을 얻습니다 그런 다음 함수에 적용된 펑터 – 그래서 여기에서 우리는 functor 자체가 함수라는 것을 알 수 있습니다

먼저 주어진 값에서 우리는 함수를 적용합니다 즉 주어진 값은 10이므로 우리는 더하기 2를합니다 그것은 우리에게 12를줍니다 그런 다음 함수에 3을 더한 함수를 적용하여 15를 얻습니다 그런 다음 Functor는 Option, Either, Try 또는 모든 데이터 유형으로 작업하고, Functor의 인스턴스를 제공합니다

여기서 addOne을 볼 수 있습니다 Type 종류의 매개 변수를 취합니다 그래서 모든 클래스는 Option, Try, 여기에서 사용할 수있는 Functor 인스턴스를 제공하십시오 여기 구체적인 구현을 할 때 볼 수 있습니다 이걸 Option과 Try로 – 그래서 옵션 (1)의 경우, 플러스 1 기능을 수행합니다

그런 다음 Some (2)로 출력합니다 그런 다음 Try를 사용하여 동일한 작업을 수행 할 때 Try (1)을 사용하면 1 Success (2)를 제공합니다 마찬가지로, 사람들은 커스텀 펑터를 만들 수 있습니다 그러나 그들은 일정한 규칙을 따라야합니다 규칙은 구성 및 신원과 같습니다

그래서 당신은 명심해야합니다 당신의 펑터를 만드는 동안 그래서 Applicative– Applicative가 사용되었습니다 Apply를 사용하여 랩핑 된 값에 랩핑 된 함수를 적용합니다 여기에서 함수 a가 더하기 3과 같은 것을 볼 수 있습니다

또한 값에 싸여 있습니다 그리고 우리는 감싸 진 값 Some (2)를가집니다 따라서 래핑 된 함수를 값에 적용합니다 일부는 (2) Apply를 사용하고 결과는 Some (5)입니다 애플리케이터가 어떻게 작동하는지 – 우리는 문맥 안에 포장 된 함수를 가지고있다

우리는 맥락에서 가치가 있습니다 우리는 둘 다 unwrap하고 값에 함수를 적용합니다 그리고 우리는 맥락에서 새로운 가치를 부여합니다 그래서 응용 프로그램을 값 배열에 적용합니다 그래서 함수에 2와 3을 곱하면, 우리는 펑터처럼 적용 할 것입니다

각 배열 요소에 적용 해 보겠습니다 새로운 배열 요소 목록을 얻습니다 따라서 Applicative Builder로 알려진 개념이 있습니다 당신은 다른 Option 타입을 통해 그것을 묶어서 계산할 것이고, 일부 계산을 수행합니다 여기 예제에서 볼 수 있습니다

Employee라는 클래스가 있습니다이 클래스에는 세 가지 속성이 있습니다 ID, 이름 및 doj 그리고 우리는 Option 타입의 변수를 가지고 있습니다 다른 옵션 유형 – 하나는 UUID, 하나는 String, 하나는 Integer입니다

따라서 이러한 속성 값을 유지하는 데 사용됩니다 그래서 우리는지도에 Applicative와 Map을 사용합니다 모든 변수 값 [INAUDIBLE] Employee의 속성으로 Applicative Builder에 대한 USP는 다음과 같습니다 유형, 컴퓨팅 할 때의 정보를 보존한다는 것 다른 Option 유형을 넘어서 그리고 모든 값이 완료되면 콜백이 호출됩니다

값이 Some 일 때 발생합니다 값 중 하나가 없음이면 출력이 없음으로 표시됩니다 없음에서 작동하지 않습니다 따라서 모나드 – 모나드는 싸인 된 값을 적용합니다 flatMap을 사용하여 랩핑 된 값을 리턴하는 함수

여기서는 half라는 함수가 있습니다 따라서 반은 의견을 제시합니다 그리고 그 수가 짝수라면 그것의 절반을 돌려 줄 것입니다 그것이 4이면, Some (2)를 줄 것입니다 짝수가 아니면 None을 반환합니다

그래서 절반은 모나드를 반환하는 함수입니다 그리고 우리는 감싸 진 값인 Some (3)을가집니다 flatMap을 사용하여 반으로 적용합니다 따라서 3이 짝수가 아니기 때문에 반은 None을 반환합니다 4는 짝수이므로 절반은 랩된 값을 반환합니다

그 일부입니다 (2) 우리가 None 연산을 위해 똑같은 것을하려고 할 때, 그것은 아무 것도주지 못할 것이다 이미 말했듯이, 모든 작업은 일부와 작동합니다 없음으로는 작동하지 않습니다 Monad는 어떻게 작동합니까? Monad는 모나드와 모나드를 반환하는 함수를 취하고, 그리고 나서 모나드를 반환합니다

그래서 Some (3)은 모나드라는 것을 알 수 있습니다 함수 half는 함수이고, 모나드를 반환합니다 그리고 마지막 결과는 None입니다 그 자체는 모나드입니다 Monad Chaining도 가능합니다

여기서 볼 수 있습니다 절반은 3 번 호출됩니다 값은 Some (20)입니다 그래서 처음으로 반은 참여하게되고, 그것은 어떤 것을 줄 것이다 (10); 두 번째 시간, 일부 (5); 세번째, 없음 모나드 바인딩은 다음과 같은 프로세스입니다

다른 Option 유형을 결합하는 데 사용됩니다 따라서 Option 유형은 flatMap을 사용하여 결합 할 수도 있습니다 그러나 계산이 증가하고 복잡성이 커집니다 따라서이를 방지하기 위해 Monad 바인딩을 사용합니다 따라서 Monad 바인딩에서 bind 메소드는 내부적으로 flatMap을 호출합니다

그러나 성능 집약적 인 방식으로 수행합니다 그래서 우리는 세 가지 옵션을 결합한 것을 볼 수 있습니다 정수 값을 갖는 타입 그리고 결과로, 모나드 바인딩 후에, 또한 Option 유형입니다 그래서 Functor, Applicative, 및 Monad

Functor의 모든 참여자는 Applicative에서 가능합니다 그리고 Applicative의 모든 기여자들 Monad에서도 가능합니다 따라서 더 많은 기능 프로그래밍 개념이 있습니다 첫 번째는 기능 구성입니다 그 이름에서 알 수 있듯이 작곡 기존 함수에서 함수를 작성합니다

그래서 고정 기능으로 작성하십시오 고정 된 의미로, 함수 이름 두 이름 사이 그리고 그것은 그들이 왼쪽과 오른쪽 매개 변수라고 가정합니다 해당 함수에 적용됩니다 이렇게 구성된 함수는 오른쪽에서 가치를 얻습니다

왼쪽에 적용하고 계속합니다 그것이 최종 결과를 얻을 때까지 그래서 여기에서 당신은 볼 수 있습니다, 두 가지 기능이 있습니다 심지어 더 커졌습니다 그리고 그들에 대한 작품을 작곡합니다

따라서 Compose는 우선 짝수 기반 목록을 필터링합니다 둘째로, 그 결과를 더 큰 수조로 전달할 것입니다 그런 다음 greaterThanThousand를 기준으로 목록을 필터링합니다 배관 – 배관은 Compose의 반대입니다 왼쪽에서 시작하여 계속 적용합니다

오른쪽의 모든 것 그래서이 경우에는 이것이 동일한 예입니다 거기에 Compose가있었습니다 이 경우 먼저 목록을 평가합니다 더 많은 것을 위해

그리고 그 결과가 무엇이든간에 그 결과를 짝수에게 제공 할 것입니다 논리적 구성 요소 – 함수에서 작동합니다 부울 형식을 반환하고이를 부인합니다 그래서 여기에 모든 정수의 함수가 있음을 알 수 있습니다 0보다 큽니다

다시 말하면, 임대인 기능은 보완법을 기반으로합니다 이전 기능의 즉, 그것은 0보다 작은 모든 사람들을 찾을 것입니다 컴포넌트 함수는 보완 물을 찾는 데 사용됩니다 특정 기능의 그럼 우리는 목록을 가지고 있습니다 목록을 출력하면 1에서 5까지 모든 숫자를 더 많이 얻는다

남은 숫자는 그보다 훨씬 적습니다 암기는 순수 함수의 예비를 캐시하는 데 사용됩니다 우리 모두 알다시피 순수 함수 항상 동일한 입력에 대해 동일한 출력을 반환합니다 그래서 우리가 [INAUDIBLE] 함수를 캐시한다면 – 캐시 순수 함수 결과, 그것은 우리에게 도움이 될 것입니다 우리는 같은 계산을 여러 번 수행 할 필요가 없습니다

함수를 외우고 계산 결과를 저장합니다 그것에 적용된 매개 변수에 그렇다면 Arrow를 기존 Android와 어떻게 통합 할 수 있습니까? 스튜디오 프로젝트? 종속성을 추가해야합니다 이것은 의존성 목록입니다 GitHub 사이트에 나열됩니다

필요한 모든 클래스와 함수를 기반으로, 적절한 종속성을 가져와야합니다 이것은 간단한 계산기 앱입니다 두 개의 operants를 취하고, 더하기, 빼기, 곱하기, 나누기 그래서 데이터를 통합 할 수있는 유스 케이스였습니다 유형 개념

그래서 여기에 Add, Add operation, you 또한 모나드 바인딩을 결합 할 수 있습니다 유사한 유형의 옵션 여기서는 나누기 위해 Try 데이터 형식을 사용했습니다 왜냐하면 제수가 0 일 가능성이 있기 때문입니다 따라서 제수가 0이면 실패가 발생합니다

예외 이름 제수가 0이 아니면 Try는 Success 봇을 실행합니다 나는 값을 얻는다 비슷하게, 곱셈은 모두 1에서 2가 2라는 것을 압니다 3에서 1은 3입니다

따라서 Some (1)에 들어가는 것은 숫자 자체가됩니다 그래서 곱셈 – 나는 그 사건을 고려했습니다 더 많은 경우가 있습니다 마찬가지로, 값이 0이면 결과는 0이됩니다 따라서 모든 Arrow 개념을 통합 할 수 있습니다

우리가 보통하는 일에 그렇다면이 앱은 이메일을 입력하는 간단한 앱입니다 구독 버튼을 누르십시오 그래서 여기에 Option 유형을 사용했습니다 따라서 입력 된 이메일이 유효한 입력 인 경우, 변수에 저장합니다 유효한 입력이 아닌 경우 None 만 저장합니다

따라서이 경우, 추가 처리, 메일 링 목록에 이메일을 추가하는 것처럼 완료되지 않습니다 따라서 입력이없는 곳에서 볼 수 있습니다 이메일 입력은 None으로 저장합니다 입력이 제공되면 값은 Some 및 값으로 저장됩니다 그런 다음 Android 용 화살표를 사용할 때의 우수 사례 – 그래서 Arrow는 새로운 도서관이자 Kotlin입니다

우리 대부분에게 새로운 것입니다 그래서 우리는 Kotlin과 Arrow를 통합 할 수 있습니다 가능한 한 우리 프로젝트에서 부작용을 단일 지점으로 푸시하려고합니다 또한, 우리는 다른 데이터에 대해 매우 확신 할 필요가 있습니다 다른 개념, 즉 데이터 유형과 유형 수업

차이점이 있습니다 우리가 어떻게 할 수 있는지 확인해야합니다 Arrow의 주어진 개념을 사용하여 프로젝트를 모델링합니다 그래서 이미 진행중인 다양한 프로젝트가 있습니다 화살표를 사용하여 완료됩니다

Helios처럼 – Helios는 Kotlin의 Arrow 용 JSON 파서입니다 그것은 화살표를 사용합니다 그런 다음 기능 유효성 검사가 있습니다 Either 및 Try 데이터를 사용하여 양식 유효성 검사 수행 유형 따라서이 링크에서 다른 프로젝트를 확인할 수 있습니다

그래서 화살을 말릴 준비가 되셨습니까? 좋아, 잘됐다 이것이 바로 프레젠테이션의 끝입니다 모두 감사합니다 모든 검색어에 대해 내 Gmail ID에 연결할 수 있습니다 고맙습니다

How to Screen Mirroring, Android Apps, Cast Screen, AirPlay, Mac OS X, Windows

무료 또는 유료로만 USB 또는 무선으로 미러링을 검사하는 방법 소프트웨어 Android 5의 새로운 기능 중 하나는 나중에 0 점이 될 가능성이 있습니다 운영 체제의 모든 장치의 화면을 첫 번째 무료 옵션으로 미러링하십시오

이 비디오에서 Outkast와의 Mera 베타는 Google Chrome과 결합되어 Google로 이동합니다 Play 스토어에서 Mera 베타 및 휴대 기기를 다운로드하고 설치합니다 이제 스마트 폰 또는 태블릿에서 설정 개발자 옵션으로 이동하여 활성화하십시오 USB 디버깅 이제 Google 웹 스토어에서 모든 캐스트 수신자를 설치하고 실행합니다 Chrome 앱 실행기가 Android 휴대 전화에서 미러 입찰을 시작하고 귀하의 컴퓨터와 일치하는 네트워크 장치가 크롬으로 이어지고 화면의 컴퓨터 IP 주소가 컴퓨터에서 무선으로 미러링됩니다

이것은 무선으로 안드로이드 화면을 공유하는 쉽고 무료 방법입니다 같은 네트워크에있는 다른 장치를 지원합니다 화재 TV Apple TV 및 mera 베타의 유일한 단점은 더 이상 상호 작용할 수 없다는 것입니다 컴퓨터를 통한 화면 귀하의 휴대 전화에 컴퓨터의 키보드로 아무런 타이핑도하지 않아서 짜증이납니다 미러 플로팅 워터 마크가 그대로 남아있을 수 있으며 제거 할 방법이 없습니다 그것 이외에 그것은 자유롭고 설치하기 쉽다 그러나 우리는 다른 선택권이 또한있다 Mac 용 또 다른 무료 옵션은 Droid를 설치하는 방법을 배우기 위해 화면에서 droid입니다 녹색은 재판 또는 유료 버전을 위해이 비디오를 시청하십시오

120 당신이 다른 하나를 설정하는 방법에 대한이 비디오를 볼 수있는 그들의 droid와 화면 미러링과 함께 droid 다른 유용한 기능을 설치하십시오 귀하의 컴퓨터에 야외 droid 수신기에서 다음 응용 프로그램 센터를 설치 새 사용자의 Air droid Center에서 휴대 기기로 전송 이메일 주소와 비밀번호를 입력하십시오 연결되면 컴퓨터에서 Droid를 착용하고 Droid를 열기 위해 클릭하십시오 미러링 및 선택한 장치가 이미 등록 된 droid는 다양한 기기가 있지만 휴대 전화를 거울처럼 사용할 수없는 사람들을 위해 뿌리 내려야합니다 무선 미러링에 대한 또 다른 옵션은 반사경 반사경이있는 것입니다

캐스트 사용 가능 Android를받는 최초이자 유일한 Google Cast 수신자 시도 할 수있는 iPhone 및 iPad 앱과 동시에 휴대 전화와 태블릿 사용 무료 반사경은 Windows Mac Android iOS 및 Fire TV와 호환됩니다 훌륭한 무선 미러링 품질을 원하는 사람들을위한 완벽한 솔루션 반사경이있는 옵션 및 기능 – 로컬 네트워크 연결 만 있으면됩니다 설치 후 airplay 또는 Google Cast 미러링을위한 기기 간 Mac 또는 Windows 컴퓨터의 반사경과 iPhone 또는 iPad를 사용하여 나타남 Android에서 설정을 공개하고 미러링을 사용 설정으로 이동합니다 캐스트 표시 무선 디스플레이 및 무선 디스플레이 사용 대부분의 Android 기기는 기본적으로 Google 캐스팅을 지원하지만 그럴 필요는 없습니다 기능은 무료 Google 크롬 캐스팅을 추가하여 계속 미러링 할 수 있습니다

응용 프로그램은 대부분의 휴대 전화 및 태블릿에서 안드로이드 화면 미러링을 가능하게합니다 빠른 검토 나는 이것이 훌륭한 화면 미러링 응용 프로그램이라고해야만한다 반사경은 무선 미러링 및 스트리밍 수신기로 거의 모든 장비 조합을 컴퓨터에 연결 그러나 마우스로 모바일 장치와 상호 작용해야하는 경우 키보드는 USP로 미러링 할 수있는 옵션 화면이 가장 간단합니다 PC 또는 Mac 화면에 안드로이드 화면을 공유하는 방법 Google 크롬 웹 브라우저 및 chrome Google 웹의 방문자라는 앱 PC 또는 Mac 컴퓨터를 방문하여 매장을 다운로드하고 설치하십시오 기기를 연결하면 기기와 휴대 전화를 선택하기 만하면됩니다

개발자 옵션으로 이동하지 않으면 태블릿을 연결해야합니다 Android 디버깅을 다시 사용 중지 및 사용 설정하면 연결을 설정해야합니다 이런 종류의 솔루션의 장점은 마우스와 상호 작용할 수 있다는 점입니다 그리고 키보드 의미 당신이 원하는 유형의 응용 프로그램을 열 수 있습니다 또한 입력 웹 클라이언트가없는 많은 앱을 사용하면 좋은 방법입니다 휴대 전화에있는 앱의 실제 키보드로 아무 것도 필요하지 않습니다 귀하의 안드로이드 전화에 설치되어 Windows Linux 또는 Mac 사용자도 사용할 수 있습니다 약간의 지연이 있지만 다른 무선 솔루션과 대비되는 것은 조금 있습니다

더 빠른 다음과 같은 몇 가지 응용 프로그램 덕분에 장치 화면이 가까워졌습니다 이 비디오가 도움이 되었습니까? 우리에게 비슷한 몫을주고 다음 비디오에서 당신을 만나십시오

Android Design in Action: Fitness Apps and Modern UIs

로마 누리 크 : 안녕하세요 "Android Design in Action "언제나 그렇듯이, 나는 당신의 호스트 인 Roman Nurik입니다

안녕 얘들 아담 코흐 NICK BUTCHER : 그리고 런던의 Nick Butcher 로마 누리 크 : 그리고 오늘, 우리는 이야기 할 것입니다 – 우리가 뭘 얘기 할거야? 우리는 피트니스 앱에 대해 이야기 할 것입니다 개인 피트니스 애플 리케이션 사실 이것은 닉이 가장 좋아하는 카테고리 중 하나이기 때문에 Endomondo에 대해 오늘 많이 이야기하고 있습니다

그것은 우리가 오늘 강조 할 훌륭한 앱입니다 그리고 우리가 피트니스 앱을 다룬 후에 구체적으로 실제로 피트니스에 대한 일부 태블릿 정보 애플 리케이션, 우리는 현대적인 UI로, 그리고 더 구체적으로, 무엇보다 현대적인 UI를 구성하는 일부 패턴 디자인 가이드에서 보았습니다 그래서 Endomondo로 뛰어 들자 그래서 저는 그것을 바로 넘겨 줄 것입니다 – 오, 우리는 약간의 깜박임이 계속 발생했습니다 우리가해야 할 일은

? 우리가 방금이 플러그를 뽑을 수 있는지 보자 다시 연결하십시오 NICK BUTCHER : 당신은 "The App Clinic "지난 주부터? 네

아직도 일어나고있어 ADAM KOCH : Y-Cast가 다시 시작됩니다 그래, 다시 시작해야 할까? 승인 다시 시작합시다 잠시 후에 다시 연락 드리겠습니다

좋아, 그래서 우리는 돌아 왔다고 생각해 그리고 희망적으로 깜박임이 멈췄습니다 내 생각에 그것은 데모 신의 작은 부분 일 뿐이라고 생각합니다 오랫동안 앱 클리닉에서 그들의 약의 맛 하지만 어쨌든, Endomondo와 함께, 나는 우리가 Nick, Nick 이후로,이 앱이 가장 좋아하는 앱입니다

엔도 몬도에서 얘기하고 싶니? NICK BUTCHER : 네, 이것은 제가 가장 자주 사용하는 것 중 하나입니다 애플 리케이션, 나는 말할 것이다 나는 여가 시간에 트라이 애슬론을 조금한다 멀리 안드로이드 개발에서 그래서이 훈련을 추적하기 위해이 응용 프로그램을 사용합니다

그리고 저는 그것에 대해 약간의 통계가 있습니다 따라서 피트니스 앱을 사용했다면 일반적인 앱을 제공합니다 TPS를 사용하여 운동 추적 기능, 로깅, 등등 하지만 내가 좋아하는 측면 중 하나는 그들이 정말로 Android UI 가이드 라인을 따르고 또한 연락처 배지와 같은 재미있는 것들을 통합하는 등 Android UI와 깊이 통합됩니다 여기서 우리가보고있는 스크린 샷은 다음과 같습니다

예를 들어, 활동 피드와 당신이 한 운동 그리고 나는 당신이 볼 수 있다고 생각합니다 그들은 꽤 괜찮은 것을했습니다 UI 지침을 따르는 일 여기서 볼 수 있습니다 – 너를 방해하려는거야, 닉 이것은 매우 가련한 역사의 버전입니다

나는 실제로 달리기, 자전거 타기, 또는 아무것도하지 않습니다 그게 바로 Nick의 작업 라인입니다 그러나 이것은 볼 수있는 것의 한 예일뿐입니다 이벤트를 캡처 한 후, 어떻게 생겼는지 그러나 실제 시나리오에서는 분명히 사물의 목록

미안, 어서, 닉 NICK BUTCHER : 매우 희소한 목록입니다 탭에 대해 의견을 말 했나요? 우리가 여기서보고있는 패턴을 리프레쉬할까요? ADAM KOCH : 예, 그렇습니다 실제로 그것을 버리고 싶습니다 너희들에게, 너 같은 종류에 대한 너의 생각은 뭐니? 패턴을 새로 고침하거나 새로 고침하여 새로 고침 하시겠습니까? 개인적으로 실제로는 새로 고침 아이콘이 액션 바는 불확정 스피너에 끝나며, 새로 고침이 진행되는 동안, 그러나 나는 모른다

너희들은 어떻게 생각하니? NICK BUTCHER : 패턴을 그대로 설명해주세요 그것은 스크린 샷에서 명확하지 않다 이것은 Pull to Refresh 패턴의 변형입니다 그래서 오른쪽에, 당신은 Roman의 활동을 당신이 그것을 아래로 당길 때까지 꼭대기에 실제로 내뿜어 라 그런 다음 Tap to Refresh 옵션이 추가로 나타납니다

그래서 제 의견으로는, 이것은 대단히 잘 작동하지 않습니다 왜냐하면 새로 고침하려면 당연히 편리합니다 단지 하나의 제스처 반면에 이것은 제스처와 같은 것입니다 따라서 새로 고침 버튼 만 있으면됩니다

나를 위해, 나는 당신이 말했듯이, Adam, Refresh 버튼 액션 바에서 불확실한 진전 – 대부분 안드로이드에서 목록은 탄력성이 없기 때문입니다 나는 이것이 iOS에서 Tweety의 패턴이라는 것을 알 수있다 그리고 그 플랫폼에서 잘 작동합니다 목록에는 이런 종류의 탄력적 인 특징이 있습니다 그래서 그것을 과장하기 위해 정말 잘 작동합니다

어떤 종류의 일을하는 것 안드로이드는 그렇지 않지만, 당신은 그렇게하지 않습니다 기대는 어떤 종류의 힘 필드를 가지고있는 것입니다 당신이 목록의 끝에 도달했다는 표시 따라서 추가 옵션을 공개하는 것은 정신 [? 모델?] 나를 위해

네, 확실히 동의합니다 제 생각에 탭을 새로 고침하는 것과 같은 것을 사용하면, 또는 나는 추측한다, 당겨서 새로 고침한다, 정말로, 우리 권고는 가지고있다 만약 당신이 그것을 사용한다면, 무언가와 함께 그것을 사용하십시오 액션 바의 새로 고침 버튼과 같이, 심지어 오버플로에서 새로 고침이 자동 또는 사용자 인 경우 정말로 항상 사용하지 않을 것입니다 오버플로는 완전히 허용됩니다

아담 코치 : 네, 제 생각에는이 경우에는 거기에 실제 액션 아이템을 보여주는 방 때로는 불가능할 수도 있습니다 오버플로 메뉴에 넣어야합니다 어쩌면 새로 고침하기 (Pull to Refresh)가 사용자에게 더욱 분명하게 드러날 수 있습니다 그렇다면, 나는 추측한다

하지만이 경우 나는 개인적으로 그것이 좋은 추가라고 생각할 것이다 니키 버셔 : 좋아, 그럼 우리가 계속해야하지? 그래서이 두 화면은 그 역사와 종류입니다 활동 스트림 및 뉴스 피드 우리가 다음으로 나아가면, 멋진 기능 중 일부가 있습니다

내가 정말로 좋아하는 것은 경로를 찾는 능력 – 그래서 다른 사용자가 만든 경로는 정말 멋지 네요 네가 여행 중이라면 캘리포니아에 와서 마운틴 뷰를 방문하면 모선,이 기능을 사용하여 달리기를 찾았습니다 환상적인 낯선 지역의 경로 코치 : 닉, 거기에 뿌리 나 루트를 의미합니까? 닉 바쳐 : [LAUGH] 나는 "뿌리"를 의미한다고 확신한다

코닥 : [LAUGH] 알았어, 그냥 확인해 NICK BUTCHER : 네, 그리고 경로를 보는 것뿐입니다 그 자체로, 당신은 챔피언이라는 개념을 가질 수 있습니다 시도하고 누군가의 시간을 이길, 또는 그런 종류의 물건, 모든 재미있는 물건 그래서 이것들은 우리가 강조하고 강조하고자하는 재미있는 기능입니다

전화 앱에서 로마가 말했듯이, 나는 앱을 많이 사용한다 하루에 몇 번, 정상적으로 그래서 응용 프로그램을 사용하여 꽤 행복했습니다 그러나 내가 정말로 느끼고있는 것이 부족한 것 일부 타블렛 기능입니다 따라서 우리가 어떤 기능을 응용 프로그램 웹 사이트에 제공, 실제로 일부 정말 유용하고 유용한 기능입니다

타블렛 응용 프로그램을 실행하기에 완벽 할 것입니다 여기 예를 들어 기본 운동 화면이 있습니다 운동을 추적하는 데 사용할 수 있습니다 네가 얻을 수 있기 때문에 나는 이것이 정말로 동기 부여가되는 것을 발견했다 이번 달보기에는 작은 아바타가 당신이 한 활동들

그리고 나를 위해, 이것은 나를 계속 지켜주는 것들 중 하나입니다 다시, 그리고 응용 프로그램을 사용하여 나를 유지합니다 내가 며칠을 놓치면 너는 아무 것도 없어 다시 와서 그 사각형을 채울 수 있습니다 다시 찾아보고 완전히 채워진 것을 볼 때 나는 그것을 좋아한다 귀하의 훈련이 얼마나 일관성이 있었는지보십시오 닉, 넌 운동이 아니야

이걸보고 내 말은, 하루에 한 가지 이상의 운동 항목이 있다는 의미입니다 인상적이다 NICK BUTCHER : 음, 내 자전거를 타기 위해 통근하곤 했어 아마 속이는거야

우리는 거기에 갈 그래, 이거 정말 중요한 부분이라고 생각해 내가 생각하기에 매우 유용한 정보 당신이 타블렛에 앉는 더 큰 부동산에 그리고 다음 화면으로 넘어 가면 다른 우리가 얘기하고 싶었던 점은 너는 끌 수있어 내가 말했듯이, 나는 약간의 통계 괴상한 사람이다

그래서 나는 사랑한다 내 운동을 부어 볼 수 있고, 알다시피, 나는 개선, 더 많은 마일리지를 수행했는지, 더 빨리 수행했는지 평균 시간, 모든 것들 그래서 몇 가지를 꺼낼 실제 기회가있는 것처럼 느껴집니다 더 많은 공간이있을 때이 정보를 우리가 태블릿에 관해 이야기 할 때, 아무도 당신이 네 팔에 묶인 넥서스 10으로 달려 가라 또는 뒷 주머니에

말도 안돼 ADAM KOCH : 넥서스 7 일 수도 있습니다 Nickus BUTCHER : 넥서스 7조차 [알아들을 수 없는] 좋은 점을 뽑아 냈습니다 실제로, 나는 정말로 체육관에 앉아서, 운동 용 자전거에 앉아서, 예를 들면

태블릿을 사용하여 영화를 보거나 따라 잡기 위해 YouTube의 최신 Android 개발 하지만 너는에 넘기고 싶을지도 모른다 캡쳐 할 운동 앱의 태블릿에 최적화 된 인터페이스 그 멋진 운동을 방금했습니다 하지만 나에게있어 내가하고 싶은 가장 큰 일은 할 수있는 일은 뉴스 피드를 소비하는 것입니다 하고, 내 통계를 쏟아 부어보고, 앞으로도 계획을 세우십시오 사용할 수있는 다른 경로

이것이 우리가 시도한 주요 측면입니다 다시 상상할 수있는 신청 NANIK : 그리고 제가 지적하고자하는 한 가지는 – 이 웹 사이트의 아주 작은 부분이 있습니다 옆에있는 창유리들 중 하나는 당신에게 보여줍니다 당신이 한 운동의 개인적인 유형뿐만 아니라 이번 달에 당신이 얼마나 오래 있었는지, 얼마나 많은 당신이 태운 칼로리

그리고 그 종류의 요약 정보가 공정하게 느껴집니다 한 달에 한 번씩 보는 것이 재미 있습니다 그렇게 쉽게 이용할 수있게되면 태블릿이나 큰 화면 UI NICK BUTCHER : 멋지다 ROMAN NURIK : 한 명 더 있다고 생각합니다

오 우리는하지 않습니다 그래서 우리는 엔도 몬도 (Endomondo)를 살펴 보았습니다 실제로, 저는 Nick에게 그가 앱을 어떻게 사용하고 그가 무엇을 할 것인지 이야기했습니다 태블릿 경험을 원한다

그리고 태블릿에서 어떻게 보일 수 있는지 살펴 보았습니다 특히, 더 많은 소비 경험, 더 많은 소비 흐름을 제공합니다 당신은 소파에 앉아 있고, 무엇을해야할지 계획하고 있습니다 나머지 일주일 동안 – 너는 너의 현재 통계가 뭔지보고 싶을 뿐이야 뿐만 아니라, 닉이 말했듯이, 당신이 도착하면 모선을 방문하는 마운틴 뷰

주변 경로 및 찾아보기 방법 아주 시각적 인 방법? 그래서 우리는 이런 것들을 가져 갔고 우리는 정말 멋진 대시 보드와 같은 것을 만드십시오 그리고 대시 보드가 아니라는 의미에서 대시 보드가 아닙니다 대시 보드와 같은 탐색 옵션을 보여줍니다 패턴으로 4 ~ 6 개의 아이콘을 볼 수 있습니다 새로운 콘텐츠를 보여줍니다

이것은 정말로 콘텐츠 전달 대시 보드와 같습니다 앱의 다양한 측면을 보여주는 다양한 측면을 보여줍니다 서비스를 한 화면에 모두 표시합니다 그래서 여기에 정보 계층이 집중되어 있습니다 진짜 좋아해– 현재 운동

여기가 기본 창입니다 그것은 중앙 창입니다 그리고 두 번째로 중요한 아이템이 화면은 누군가가 논평한지 여부에 관계없이 사회적 활동입니다 당신의 사건 중 하나, 누군가가 너 근처에있는 길 근처에서 도망 갔다 너 근처에 "뿌리"가있을거야

당신은 멋지고 사용하기 쉬운 이러한 것들을보고 싶습니다 오른쪽에 피드 우리가 한 일은 기본적으로 기존의 해당 핸드셋 화면에서 피드를 얻고 개별 콘텐츠 항목을 풍부하게합니다 각 콘텐츠는 여기에 표시됩니다 텍스트 한 조각

시간이 있습니다 그것은 클릭 할 수있는 객체를 가지고 있습니다 Han에 대한 세부 사항보기, Han의 전체 프로필 페이지 그리고 당신이 관심을 가질만한 경로라면, 어쩌면 이런 종류의 토큰 또는 콘텐츠 확장이 있습니다 내가 지적하고 싶었던 또 다른 점은 액션, 핸드셋의 현재 앱에서 뭔가에 대해 논평 할 수 있습니다

각 목록 항목 옆에는 이런 종류의 설명 버튼이 있습니다 그러나 무엇이든을 좋아할 방법이 없습니다 나는 좋아하는 것 또는 + 1-ing 또는 그런 것, 일종의 가벼운 길이라고 생각한다 상호 작용하기 – 말, 오, 그래, 이건 축하해 의견을 말하면서 댓글을 달았습니다

NICK BUTCHER : 앱에 그 앱이 있다고 생각합니다 오, 알겠습니다 NICK BUTCHER : UI에서 완전히 명확하지 않습니다 UI는 단순한 플럽이며 일반적인 거품이기 때문에 그것을 클릭하면 주석을 달 수있는 옵션이 제공됩니다 알았어

그래서 우리가 여기서 한 것은, 대신에 다른 어 포지션, 기본적으로 오버 플로우 자산 나타냅니다, 어이, 행동이 있습니다, 여러 이 작업을 수행 할 수 있습니다 그리고 분명히, 당신은 길게 눌러 선택할 수 있어야합니다 행동을 취하는 것 – 여러 게시물을 좋아하세요 하지만 여기에서는 하나의 항목에 대해 조치를 취할 수 있습니다 길게 누르면 상황 별 액션 바가 표시됩니다

이 오버플로를 터치하여 여러 항목이 있음을 보여주고, 또는 여러 작업이 있습니다 이는 Google Now가하는 것과 매우 유사합니다 따라서 Google Now에는 여러 장의 카드가 있습니다 카드 설정을 보거나 카드에 조치를 취하려면, 하단의 작업 버튼과 함께 실제로 각 카드 옆에이 오버 플로우가 표시됩니다 그리고 마지막으로 우리는 이런 종류의 독특한 작업을 수행했습니다

인근 노선 제시 이 앱이 상단에 대한 정보를 가지고 있다고 가정 해 봅시다 당신 근처에 3 ~ 4 개의 루트가 있습니다 별표를 쓰거나 즐겨 찾지 않았습니다 이것은 내용을 버블 링하는 방법입니다

그것은 끊임없는 발견 메커니즘입니다 그러면 왼쪽과 오른쪽 사이를 스 와이프 할 수 있습니다 몇 가지 데이터를 보여주는 다른 주변 경로 얼마나 오래되었는지, 어떤 비율의 사용자를 좋아하는지, 그 때 가장 좋은 시간은 무엇입니까? 이것은 앱에서 이미 액세스 할 수있는 모든 데이터입니다 내가 아는 한 그래서 이것은 10 인치의 풍경입니다

사실, 내가 놓친 것이 하나있다 여기 왼쪽에는이 종류의 요약이 있습니다 정보, 이번 달처럼, 이것들은 활동들입니다 너는 해냈어 너는 얼마나 많은 칼로리를 태웠다

당신이 운동하는 데 얼마나 많은 시간을 소비했는지 니가 추가하고 싶었던 다른 것, 닉? NICK BUTCHER : 대담하고 가벼운 논란의 여지가있는 사용 그 사랑이나 싫어하는 조금의 패턴 새로운 42 잠금 화면 ROMAN NURIK : 사실, 응축 된 여기 응축 된 그리고 빛, 나는 믿는다 대담하고 가벼우 며 응축 된 버전의 Roboto가 있습니다

그래서이 모든 것들에 걸쳐 타이포그래피가 많이 있습니다 [? 머그잔 ?] NICK BUTCHER : 나의 일반적인 느낌은 사랑해 마찬가지로, 나는 세 가지 주요 섹션을 정말 좋아한다 그걸로 부서졌습니다

따라서 10 인치 UI가있는 경우 공간이있는 10 인치 태블릿 이걸 보여주기에 충분합니다 그래서 당신은 무슨 일이 일어나고 있는지 즉시 볼 수 있습니다 내가 관심이있는이 세 가지 주요 주제 처음부터 살펴 보았습니다 나는 이들 중 일부를 활용할 수 있기를 바랍니다 왼쪽의 통계를 볼 수 있습니다

웹 사이트에서 사용할 수있는 그래프는 장치에서도 사용할 수 있습니다 멋질 것입니다 하지만 네가 너를 버블 링하는 멋진 일을했다고 생각해 내가 정말로 신경 쓰는 것 ROMAN NURIK :이 점에 유의해야합니다

대시 보드는 매우 대화 형입니다 콘텐츠 지향적이며 콘텐츠는 조작 가능합니다 그래서 스노우 보드를 만져보고 싶으면 이 달 동안 당신의 스노 보드를위한 다른 통계, 당신은 그것을 할 수 있습니다 당신은 그걸 만질 수 있어야합니다 내가 언급 할 다른 것은이 앱이 이 세 부분 만

제가 여기서 한 것은 액션 바를 제안했습니다 회 전자는 앱의 다른 부분을 보여줍니다 예를 들어, 다른 섹션으로 건너 뛰고 싶다면 – 액션에 있어야하기 때문에 설정이 아닙니다 오버플로 -하지만 어쩌면 나도 몰라, 네가 실제로 태블릿에서 데이터 캡처를 시작하고 싶습니다 당신이 스피너에서 할 수 있어야하는 것

NICK BUTCHER : 그래, 내 생각에 스트레스가, 우리가 지금까지했던 것과 똑같은 전화로 봤어 나는 완전히 다른 것을 가지고 있어도 괜찮다고 생각한다 대시 보드, 완전히 다른 홈 화면, 언제 당신은 완전히 다른 맥락에서 달리고 있습니다 그것은 우리가 제시 할 정보와 동일합니다 응용 프로그램

그것은 완전히 다른 시각 치료 또는 우선 순위 ROMAN NURIK : 그래서 시간의 이익을 위해 건너 뛰자 이 몇 가지 다른 화면을 통해 그래서 이것은 기본적으로 초상화입니다 우리가 한 일은 우리가 실제로 생각한 것입니다 이 화면은 여러 방향으로 표시됩니다

여러 크기의 경우? 단지 10 인치 풍경이 아닙니다 밖에 태블릿 세계 세로 장치가 있고 7 인치 장치가 있습니다 그들은 아마도 크기와 화면 해상도가 다를 것입니다 그래서 이것은 10 인치 초상화의 예일뿐입니다

목업은 같이 보일 수 있습니다 우리가 기본적으로 한 것은 선형 접근법을 취했습니다 이 콘텐츠를 레이아웃하는 것 따라서 계층 구조는 여전히 유지됩니다 맨 위에있는 항목이 가장 많습니다

중요한 것, 당신의 달력 두 번째 항목 인 화면의 두 번째 행은 다음과 같습니다 수평으로 pannable 사회 피드 그리고 여기에 프리젠 테이션이 있습니다 정말 세련된

확실히 여기서해야 할 일이 많이 있지만, 당신이 이것에 대해 생각하기 시작할 수있는 한 가지 방법 일뿐입니다 그런 다음 주변 경로 섹션이 바닥이 아직있다 그래서 같은 종류의 공간을 차지합니다 일반적으로 그러나 다시 말하지만,이 섹션들은 모두 매우 유연합니다

사실, 그 얘기 좀 해봅시다 7 인치 레이아웃을 살펴 보겠습니다 그리고이 부분에서 나는 그 맨 위에있는 섹션, 그 달력은 유연합니다 잠재적으로 다른 일 행을 하단 또는 상단 이 경우 2 월에 다른 행이 표시됩니다

그리고 나서 위아래로 스크롤하여 변경할 수 있어야합니다 당월 그런 다음 왼쪽에서 오른쪽으로 콘텐츠를 재정렬 할 수 있습니다 하단,이 요약 섹션 스크린의 가장 중요한 부분은, 7 인치 UI에서 모든 기능을 갖춘 것은 아닙니다 10 인치 UI에서와 마찬가지로 그래서 당신이 할 수있는 것들 중 하나 대시 보드 유형 화면은 탭으로 전환하는 것입니다

그리고 그들은 수평으로 스 와이프 할 수 있어야합니다 그래서 실제 수평 적 상호 작용이 없기 때문에, 허용하는 것이 아주 간단해야합니다 전체 화면 내용을 스 와이프하여 운동, 뉴스 피드 및 경로 그리고 그것들은 모두 수직으로 배치되어야합니다 NICK BUTCHER : 나는 그저 전화를 걸고 싶다

이 여백 지점을 사용하려면 절대적으로 괜찮습니다 네가 7 인치에서 한 것처럼 정말 좋아 풍경, 예를 들면 어떤 사람들은 당신이 모든 인치를 절대적으로 채워야 만하는 것처럼 느낍니다 화면 공간

그리고 그것은 사실이 아닙니다 내 말은, 네가이 달력을 그렇게 늘릴 수 없다면 훨씬 더 넓어 – 잘못 생각하기 시작할 것입니다 종횡비 그것은 꼴 사나게 느낄 것입니다

여기에 여백 포인트를 도입하는 것은 절대적으로 좋습니다 그리고 호흡하기에 충분한 공간을 제공하십시오 ROMAN NURIK : 맞아 그리고 확실히 조금 더 편안하고, 많은 태블릿 UI에서 추가로 사용할 수 있습니다

양쪽에 호흡 방 나는 누가 이것을 언급했는지 잊었다 이에 대해 언급 한 위대한 소식이있었습니다 특히 타이포그래피를 둘러싼 것입니다 특히 타입을 배치 할 때, 그것은 단지 측정 값, 라인 당 단어의 양 또는 귀하의 줄당 문자 수를 늘리지 만 실제로는 네가 많이 가지고있을 때 멋지고 관대 한 패딩을 가진 눈 무거운 내용, 특히 텍스트

너무 많은 공간을 두려워하지 마십시오 너무 적은 공간에 대해 더 걱정하십시오 너무 적은 공간이 더 위험하다고 생각합니다 ADAM KOCH : 네, 그리고 또한 공간이 화면에 있습니다 너는 바깥 가장자리에 물건을 갖고 싶지 않아

화면, 일부 목록보기처럼 자동으로 전화 UI에서 스트레치 아웃 네, 당신은 분명히 훌륭한 배포판 화면에서 뒤로 물러서서 볼 수 있습니다 콘텐츠의 멋진 모자이크 – 왼쪽 가장자리에 던져지는 물건 뿐만이 아닙니다 NICK BUTCHER : 네

콘텐츠의 무게가 있습니다 그래서 나는 그게 – 오, 신경 쓰지 마라, 우리는 닉으로부터 잠금 장치 화면을 가지고있다

닉, 너 얘기하고 싶어? 자물쇠 화면 모형? NICK BUTCHER : 네, 제 번호 요청입니다 Endomondo 얘들 아, 이걸 만들어라 나는이 응용 프로그램을 사랑하지만,이 필요합니다 잠금 화면 위젯이 마침내 여기에 있습니다 그것을위한 완벽한 사용 사례입니다

그래서 우리는 그저 볼 수있는 것을 조롱했습니다 그래서 나는 여기에있다 도망 가고, 바로 거기, 내 땀 투성이의 손, 나는 단지 장치를 잠금 해제 할 필요가 없다 내가 얼마나 빨리 가는지, 얼마나 멀리 갔는지 여행을하거나 행동을 취할 수 있습니다 그래서 저는 여기서 조롱했습니다

접힌 상태 일 때 주요 정보 잠금 화면 위젯의보기 그것은 나의 거리, 페이스, 그리고 총 시간을 말하고 있습니다 그런 다음 자물쇠를 펼치려면 아래로 스 와이프해야합니다 화면 위젯을 사용하면 다음보기를 얻을 수 있습니다 [알아들을 수 없는] 행동을 취하십시오

따라서 이미 중지했다면 일시 중지, 중지 또는 재개 할 수 있습니다 운동을 여기서 일시 중지했습니다 그래서 당신은 너 숨을 쉬고있어, 너는 빨리 그걸 막으려 고하고있어 당신이 당신의 PV 또는 무엇이든을 놓치지 않도록 시간 그래서 이것이 정말 재미있는 사용 사례라고 생각합니다 잠금 화면 위젯 용 지적하고 싶은 것은, 네가 한 일이 정말 마음에 든다

여기 니크, 흰색을 사용 했어 여기서 모든 것이 흰색이거나 흰색 음영 또는 흰색 투명 음 완전히 투명하다 우리가이 일을 할 수있는 이유는 화면 잠금, 항상 배경을 어둡게합니다 따라서 배경이 순수한 흰색이라해도 디밍은 실제로 흰 텍스트 나 도형을 화면을 여전히 아주 잘 읽을 수 있습니다 그래서 당신은 확실히 싱글을 사용할 기회가 있습니다

컬러, 흑백 아이콘 및 UI 요소를이 화면에 표시합니다 그리고 Play를 사용하면서 한 일이 정말 마음에 듭니다 앱에서 버튼을 중지합니다 앱을 보면, 그들은 실제로 녹색이며 양식화되었습니다 그리고 그것을 취하여 그것을 잠금 화면에 적용하십시오

보이는 것처럼 보이는데 실제로는 흰색이 투명합니다 NICK BUTCHER : 예, 당신처럼 디자이너로서 무서울 수 있습니다 이것들에 대한 어떤 통제도하지 마라 분명히 벽지가 있습니다 그래서 당신은 배경을 모른다

그래, 맞아, 나는 미치광이가되고 싶지 않았다 색상 충돌 – 녹색 버튼이있는 경우, 그것은 실제로 작동하지 않을 것입니다 그래서 나는 정말로 깨끗한 흰색을 찾으러 갔다 내 생각에 너의 위에 45 % 불투명 한 검은 색이 있다고 생각해 벽지,이 효과를 얻으려면 희미 해지기

ROMAN NURIK : 굉장해 좋아요 마지막 화면은 다음과 같을 것입니다 당신은 실제로 일시 중지 상태 또는 일시 중지 상태 일 것입니다 [알아들을 수 없는]

아, 재개 국가 예 따라서 일시 중지 할 수있는 옵션이 제공됩니다 좋아요 그래서 그걸로 들어가 봅시다 우리는 약 7 분 남았습니다

불행히도, 잘, 아마 다행히도 또는 불행히도, 우리는 실제로 디자인이 많지 않거나 0이 아닙니다 오늘 뉴스 그래서 우리는 단지 UI 패턴에 대해서 이야기 할 것입니다 디자인 가이드에서 보았던 것뿐입니다 그래서 우리는 액션 바 (Action bars)에 대해 이야기 해 왔고 반응 형 디자인, 타이포 그라피 사용하기

그래서 너희들은 아마 이것들에 꽤 잘 노출되었을거야 UI 패턴 유형, 특히 수평 스 와이프, 스 와이프하여 기각합니다 우리는 몇 주 전에 그 모형을 만들었습니다 UI 패턴이 포함되었습니다 그래서 덜 일반적으로 알려진 패턴 중 일부를 살펴 보겠습니다

그리고 이것이 반드시 공식적인 패턴은 아닙니다 그들은 단지 커뮤니티 패턴입니다 커뮤니티가 사용하고 있으며 현대 UI가 그것이 의미가 있다면 확실히 활용하십시오 NICK BUTCHER : 그리고 지역 사회에 따라, 우리는 엄청나게 생산적 인 누릭 (Nurik) 씨가 이들 대부분을 만들었습니다 너는 매우 겸손하지만, 고마워, 로마

아담 코치 : 독신자 공동체 ROMAN NURIK : 이것들 뒤에 숨겨진 코드, 방법을 보여줄 수있는 코드 스 니펫을 작성했습니다 이것을 구현하지만, 실제로 안드로이드 애플 리케이션의 디자인 사례, 처음부터 파티 앱, 시스템 앱, 커뮤니티에서 가져올 수 있습니다 그러나 예, 우리는 이들 모두에 대한 코드 샘플을 가지고 있습니다 따라서 실제로 어떻게해야하는지에 대해 질문이있는 경우 이것을 구현 한 다음 쇼 후에 알려주십시오

먼저, 끝내고 버리는 것에 대해 이야기 해 봅시다 우리는 과거에 이것을 특색으로 삼았습니다 기본적으로 액션 바를 완전히 제거하고 그것을 매우 비슷하게 보이는 것으로 대체합니다 폐기 표시 줄 그래서 정말 간단한 화면에서 간단한 정보를 작성하거나 연락처에 대한 일부 변경 사항 (예 : 저장, 취소, 위로, 뒤로

그러나 대안 중 하나는 실제로 이것을 보여주기위한 것입니다 매우 간단하고 직선적 인 상태입니다 Done and Discard, Done and 상단의 바를 취소하십시오 나는 이것에 대해 다른 의견이 있으십니까? 우리는 과거에 그것에 관해 이야기했습니다 NICK BUTCHER : 예, 우리는 그것에 대해 이야기했습니다

나는 그것이 몹시 좋아한다 무슨 일이 일어날 지 액션 바가 제공하는 것은 사실이지만 이 시각적 치료는 일어날 것이다 ROMAN NURIK : 그래, 그리고 Done 버튼이 왼쪽 상단에 표시되고 삭제됩니다 액션 오버플로와 같은 것입니다

그리고 그것은 당신이 다른 행동을 취한다면 더 유용합니다 그냥 완료 외에도 표시하고 싶습니다 취소하거나 완료하고 취소하십시오 또는 정말로 기대하지 않거나하지 않는 경우 사람들이 취소하기를 원한다 연락처를 저장하는 경우와 마찬가지로 변화를 만들 것입니다

NICK BUTCHER : 예, 좋은 지적입니다 예를 들어,이 시스템에서 사람들을 보아라 [? 찾고 있습니까?] 편집 또는 연락처 만들기, 그리고 나는 생각을 만들 수도 있습니다 캘린더 일정, 맞죠? 그리고 그들은 당신에게 이것을 보여줄 것입니다 ADAM KOCH : 그래, 나는 그 다른 형식의 종류는 더 명확하게, 말하자면, 뒤로 버튼이 할 수 있습니다

이 경우 내용을 분명히 저장합니다 ROMAN NURIK : OK, Done and Discard, 이렇게 권장합니다 다시 한번, 간단한 편집 양식 – 화면을 정말로 편집하고있는 화면 콘텐츠가 아니라 몹시 복잡한 콘텐츠입니다 핀과 진행 그리고 이것은 제가 아주 간략하게 다루는 것입니다

사용 빈도가 적기 때문입니다 이상적으로 모든 것을 기기에 저장합니다 모든 것을 캐시하고 기회 주의적으로 캐시합니다 하지만 영화 나 대용량 파일이있는 경우 캐싱 또는 저장 작업이 장치가 꽤 무거운 무게, 당신은 사용자에게 줄 수 있습니다 클라우드에서 콘텐츠를 저장하거나 고정하는 명시적인 방법 귀하의 장치에 그리고 이것은 기본적으로 약간의 UI 요소입니다

핀 단추, 일종의 체크 상자와 같습니다 확인한 다음 고정해야합니다 그런 다음 백그라운드에서 피닝 진행 300 메가 다운로드와 같은 앱이라면 200 메가를 다운로드 한 다음이 원형 차트는 어딘가에 있어야합니다 가득 찬 길의 약 2/3

아주 간단한 UI 위젯을 사용할 수 있습니다 매우 무거운 것을 다루는 경우 앱 전반에 걸쳐 클라우드에서 끌어온 콘텐츠 NICK BUTCHER : 정말이 요소가 마음에 들었습니다 어떤 사람들은 정말 명백한 경로를 따라 내려갑니다 오프라인 모드에서 나는 온라인 모드에있다 스트리밍 또는 핀으로 연결 하시겠습니까? 그리고 그것이 잘못된 길이라고 생각합니다

난 당신이 정말로 하나의 UI를 가지고 있어야한다고 생각하고 그냥 힌트 오프라인으로 사용할 수 있는지 여부를 사용자에게 알려줍니다 Play 스토어에서 얻은 단서를 따라 가면서, 대부분의 기기에서 제공되는 음악 앱 [? 보기?] 그것을 대표하는 좋은 방법이 될 것입니다 좋아요 그래서 약 2 분 남았습니다 다른 이들 중 일부를 통해 비행합시다

아무도 얘기를하고 싶지 않은가? 막대 또는 인라인 취소? 누가 그것을하지 않았습니까? 아담 ADAM KOCH : Nick이 좋아하는 것, 특히 인라인 하나 NICK BUTCHER : 멋진 섹션이 있습니다 확인을 촉구하는 지침과 언제 제안을 취소 할 것인가 그래서 저는 그 흐름도를 통해 작업 하겠지만, 본질은 다음과 같습니다

모든 것에 대한 확인을 촉구하는 것은 도로 블록 같은 종류 당신은 정말로 많은 행동을 매우 빠르게 수행 할 수 없습니다 그래서 우선적으로, 당신이 회복 할 수있는 방법이 있다면, 이런 종류의 실행 취소 동작을 제공합니다 그래, 그 이름에서 알 수 있듯이, 이것은 복구 할 수있는 방법을 제공합니다 방금 한 작업에서 보관 및 이메일

이 기능을 사용하여 실행 취소하면 다시 복원하여받은 편지함으로 복원 할 수 있습니다 그리고 아담이 말했듯이,이 작품은 정말로, 정말로 잘 느낍니다 Swipe to Dismiss 패턴과 함께, 언제, 언제 목록에서 항목을 스 와이프하여 바꿉니다 당신이 그것을 다시 가져올 수있는 인라인 취소 버튼이 있습니다 옆에서

나는 그것이 정말로 멋지게 작동한다고 생각한다 에 대한 최신 버전의 Gmail 앱을 안드로이드 42 예를 들어 ADAM KOCH : 그래, 누군가가 실제로 이것들, 당신은 안도의 한숨을 쉬게합니다 마찬가지로, 나는 뭔가를 삭제했다, 나는 그것이 어디로 갔는지 모른다

그런 다음 Undo를 입력하면 신속하게 다시 가져올 수 있습니다 경험 OK, 다음 패턴으로가 봅시다 그리고 이것은 하나의 패턴입니다 아마도 우리는 – 닉과 나 자신 -이 빠른 리턴이라고 불렀습니다

그것에 대한 실제적이고 공식적인 이름은 없습니다 그러나 그 생각은 – Google Now입니다 Google Now의 스크린 샷입니다 이것은 당신이 뭔가를 갖고 싶다는 생각입니다 영구, 항상 사용할 수 있습니다

Google Now 검색 창과 같습니다 그러나 당신은 반드시 그 중 일부를 차지하고 싶지는 않습니다 귀중한 수직 부동산 그래서 당신이 할 수있는 것은, 막대는 스크롤을 시작하면 화면이 나타납니다

그러나 사용자가 스크롤을 시작하면 약간, 그 막대기, 당신이 스크롤 영역에있을 수있는 곳마다, 그 막대기가 천천히 뒤로 젖혀지기 시작합니다 그리고 나서, 당신이 좀 더 스크롤을 시작하면, 바 완전히 보입니다 그리고 거의 떠 다니는 느낌을줍니다 나머지 콘텐츠 위, 그림자 사용 여부 또는 무엇이든 그것은 실제적으로 최상위에 실제로 고정되어 있습니다

항상 화면에 표시됩니다 따라서 쉽게 사용할 수 있지만 항상 표시되는 것은 아닙니다 거기에 좋은 이원성이 있습니다 다른 UI 패턴으로 넘어 갑시다 토큰 화 된 텍스트 필드입니다

그리고 우리는 조금 시간이 조금 지나고 있다는 것을 알기 때문에 우리는 이것을 통해 날아 가야 해 아이디어는 이메일을 타이핑하기보다는 주소와 많은 자유 형식 텍스트 다루기 그것에 대해 똑똑하다 그리고 당신이 부유 한 내용의 조각 인 무언가를 보는 경우에, 실제로 어떤 객체로 해석하는 것처럼 사용자가 텍스트 필드와 상호 작용할 수 있도록 텍스트 필드 텍스트의 성격뿐만 아니라 실제 물건 Nick Butcher : 나는 가야 해 얘들 아

쫓겨났다 쫓겨나고있어? 알았어 너를 보게, 닉 나는 그것이 마지막이었다고 생각한다 – 오오 아니오, 우리는 하나 더 가지고있다 마지막 것은 베젤 슬쩍입니다

이것은 Nick이 가장 좋아하는 UI 패턴입니다 기본적으로 수평 스크롤 가능 또는 화면의 핵심 레이아웃에있는 대화 형 컨텐츠, 당신은 분명히 그것들을 탭 또는 측면과 같은 것들을 노출 [? 항아리?] 또는 항법 [? 항아리?] 그래서 여기에있는 아이디어는 가장 왼쪽의 베젤을 사용하는 것입니다 가장 오른쪽 약 16 dps의 화면이 표시됩니다 거기서부터 슬쩍 시작하세요

베젤 슬쩍으로 처리됩니다 따라서 가장자리에서 콘텐츠를 끌어 오는 것과 거의 비슷합니다 Chrome이하는 일이 바로 Chrome입니다 ADAM KOCH : 좋은 예입니다 예

ROMAN NURIK : 사실, 이것은 새로운 것입니다 잠금 화면은 내가 아는 한도 마찬가지입니다 그래, 그래서 이것은 항상 훌륭한 또 다른 패턴이다 스 와이프를 사용하여 가로 콘텐츠에 액세스 할 수있게 만들었지 만 또한 수평을 가지고있다 상호 작용 나는 그것이 마지막 것 같아요

그래서 우리는 시간이 지남에 있습니다 하지만 우리와 함께 해 주셔서 다시 한번 감사드립니다 Android 디자인 실천 늘 그렇듯이 나는 로마인이다 ADAM KOCH : 아담 코흐 (Adam Koch), 닉 부처 (Nick Butcher) 런던에서 우리를 방금 떠났습니다

네, 그래서 다음 주엔 안 볼거야하지만 아마 몇 주 후에 그래서 너희들을 만나고, 큰 휴식을 취하십시오 [음악 재생]

Publish smaller apps with the Android App Bundle

LYLA FUJIWARA : 자원을 제공하는 것이 가장 좋습니다 모든 장치를 지원하기 위해 네가 트레이드 오프를해야 할 것처럼 보일지 모른다

지원 장치와 작은 APK 사이 이제 멀티 APK를 사용하지 않는 경우 다른 화면 밀도, CPU 아키텍처, 언어가 앱의 상당 부분을 차지할 수 있습니다 APK 크기 그래서 우리는 새로운 출판 형식을 도입했습니다 Android 앱 번들

그것은 당신의 청중을위한 더 작은 다운로드를 의미 할 것입니다 Play Console에서 아티팩트 관리가 쉬워졌습니다 앱 번들은 포괄적 인 단일 빌드 아티팩트입니다 APK 대신 Google Play에 업로드합니다 멀티 APK, 앱 번들과 비교 더 작은 앱을 사용자에게 제공하고 더 간단합니다 하나의 빌드 아티팩트이기 때문에 관리해야합니다

Google Play에 앱 번들이있는 경우, 그것은 새로운 프로세스를 사용하여 전달합니다 동적 전달이라고하는 APK 간단히 말하면 앱의 일부만 전송합니다 각 사용자가 필요로하는 이제 새로운 앱 번들 형식 만 사용하면됩니다 사용자에게 자동으로 제공됩니다 언어, 화면 밀도 및 ABI 만있는 APK 필요한 리소스

또한 코드 리팩터링이 필요 없습니다 앱 번들을 만드는 것은 문제 일뿐입니다 오른쪽 빌드 출력 선택 Android Studio를 사용할 때 여기에서 서명 된 앱 번들 생성 옵션을 참조하십시오 APK 대신 번들 작성을 선택하고 키를 입력 한 다음 대상 폴더를 선택하면 작업이 완료됩니다

그런 다음 반짝 반짝 빛나는 새 앱 번들을 갖게됩니다 Google Play 앱 로그인에 등록해야합니다 Play Console에 있습니다 Google Play는 기본적으로 최적화 된 APK를 생성합니다 귀하의 사용자를 위해, 당신은 능력을 제공해야합니다 해당 APK에 서명하십시오

앱 번들은 현재 Google Play에서 지원됩니다 번들에서 APK를 생성하는 데 사용되는 기술 오픈 소스이기 때문에 앞으로는 앱 번들이 다른 앱과 작동합니다 지원을 가능하게하는 상점 번들은 모든 장치에서 작동합니다 롤리팝 이상을 실행하는 기기 다이나믹하게 전달할 때 가장 큰 이점을 누릴 수 있습니다

사전 롤리팝 기기는 여전히 멀티 APK 스타일을 갖습니다 APK는 Google에서 자동으로 생성합니다 앱 번들에서 재생합니다 계속해서 자세히 살펴 보겠습니다 Google Play에서 실제로이 번들을 사용하는 방식, 동적 게재가 수행하는 작업 및 사용자가 APK를받는 방식 과거에는 APK를 업로드했지만, 그런 다음 Play는 동일한 APK를 제공합니다

앱 번들을 업로드하면 Google Play에서 해당 번들을 사용합니다 그것을 여러 개의 더 작은 크기로 나눕니다 분할 APK로 알려진 APK 항상 다운로드되는 앱의 부분 기본 APK라는 분할 APK에 배치됩니다 번들을 사용할 때 자동으로 재생됩니다

자산, 기본 라이브러리에 대해 분할 된 APK를 만듭니다 이러한 리소스 별 분할 APK 구성 APK라고합니다 예제를 살펴 보겠습니다 Pixel 2에서 영어를 사용하는 사용자입니다 XL (ARM64 프로세서에서 실행되는 560 DPI 해상도) 앱을 설치하면 동적 게재 내가 특별히 필요로하는 분할 APK를 찾을 수 있습니다

이 분할 APK는 동작하는 호환 장치로 내 기기에 최적화 된 맞춤형 단일 APK처럼 이전 장치의 경우 동적 전달 연구 적절한 ABI와 함께 멀티 APK를 발송합니다 및 밀도 리소스 Android 앱 도입으로 번들 및 동적 게재 자동으로 작은 애플 리케이션을 허용 보다 원활한 배포 프로세스를 제공합니다 또한 앱 번들 형식 적어도 베타 버전에서는 동적 기능을 도입했습니다 동적 기능을 통해 특정 기능을 모듈화 할 수 있습니다 필요할 때 사용자에게 전달할 수 있습니다

자세한 내용은 아래 링크를 확인하십시오 앱 번들 제작에 궁금한 점이 있다면, 시작하기 가장 좋은 장소는 gco/andriodappbundle입니다 행복한 코딩