top scariest apps available on android and ios || scary apps which you should never install

안녕 얘들 아, 그 중에 있다면 초자연적 인 활동을 믿는 사람 또는 유령과 관련된 것들을 아는 것에 관심이있는 사람들 Play 스토어 또는 앱 스토어가 유용 할 수 있습니다 당신이 그 사람들 중 하나라면 이 모든 것을 믿지 않는 사람 또는이 모든 오싹한 것들을 두려워하지 마십시오

그래서 나는 당신에게 그런 소름 끼치는 애플 리케이션에 대해 말할 것입니다 Play 스토어 또는 앱 스토어에서 사용할 수 있습니다 한 번 사용하면 너는 두려워해야한다 첫 번째 앱은 SPIRIT BOARD입니다 안드로이드 폰이 있다면 당신도 ouija 보드와 함께 어떤 정신을 호출하려고 할 수 있습니다 우리는 정말로 죽은 사람과 이야기 할 수 있니? 하지만이 응용 프로그램은 무서운 보드를 가지고 있습니다

이 소름 끼치는 일을 도와 줄 수 있어요 이 앱을 설치하고 열 때 여기에 알파벳과 숫자로 된 보드가 보입니다 planchette에 손가락을 대어 줘야 해 정신에서 질문하다 당신이 질문을 할 때 언젠가 영혼이 당신에게 대답하려고 할 것입니다

보드에 보이는 평면도가 천천히 움직이기 시작합니다 너는 어떤 정신과 대화를 경험하기 시작할 것이다 이 목록에있는 다른 앱은 I SCARE APP입니다 친척이나 친구를 겁주고 싶다면 그럼이 응용 프로그램은 정말 당신을 도울 수있다 안드로이드 폰이든, IOS 폰이든 앱을 쉽게 다운로드 할 수 있습니다

당신은 안드로이드와 아이폰 모두 에서이 응용 프로그램을 얻을 수 있습니다 그것은 또한 내가 scran 장난 꾸러기 앱이라고 불린다 이 앱은 무언가에 집중 한 후 완전히 겁나는 앱을 열면 중앙에 빨간색 버튼이 보입니다 그것 주위에 착시가있는 그리고 그 환상에서 길을 잃었을 때 갑자기 공포의 얼굴이 화면에 나타납니다 그게 정말 너를 무서워 해 다음 앱은 HER STORY입니다

이 이름을 들으면 정상적으로 들린다 하지만이 응용 프로그램을 사용하는 사람은 자신이 공포 신비와 관련이 있음을 발견 할 수 있습니다 이 앱은 Android 및 iOS에서 다운로드 할 수 있습니다 이 응용 프로그램은 TV가 아닌 다른 경험을 제공합니다 이 응용 프로그램은 그 여성들의 비디오 포멧을 보여주기 때문에 남편은 누구야? 이 앱은 당신이 여기 탐정 게임을하기 때문에 진짜 인터뷰의 느낌을줍니다

이 응용 프로그램은 몇 footej을 볼 수 있으며 여자로부터 질문을 그녀는 당신에게 대답을 해줘야 해 이 응용 프로그램은 범죄 다큐멘터리와 같은 수수께끼를 해결할 수 있습니다 얘들 아 다음 앱은 RIP VIP 사망 알림 앱입니다 이 응용 프로그램은 일부 죽은 사람과 살아있는 사람의 세부 정보를 포함 누군가 죽거나 이미 사망 한 경우 그럼이 응용 프로그램은 당신에게 그의 혹은 그녀의 죽음에 대한 경고를 보내드립니다 또한 소름 끼치는 소리 알림을받습니다 그 사람 사진과 함께 홈 화면의 배경 화면을 변경하십시오

다음 목록에 유령 센서입니다 이 앱은 모든 장소에서 사용할 수 있습니다 당신은 어떤 초자연적 인 존재를 가지고 있다고 생각합니다 이 앱은 설치하고 열 때 유령 센서와 비슷합니다 그러면 그것은 장치처럼 행동 할 것입니다 그 장치를 착용해야합니다 앱의 빗나가는 바늘로 알려줍니다

주변에 어떤 소름 끼치는 일이 있건 없건간에 다음은 Camster App입니다 이 앱에서 처음에는 이상한 것을 알 수 없습니다 그러나 그것을 사용하는 사람들에 관해 생각할 때 그때 당신은 조금 불안해 할 수 있습니다 이 앱은 앱 스토어에 있습니다 이를 통해 여러 카메라에서 연결할 수 있습니다

그것은 교통 카메라 여부, 날씨 카메라 공용 카메라 또는 감시 카메라 그래서 짧게 당신은 다른 카메라의 많은 비디오 footej를 볼 수 있습니다 우리가 추측하는 것은 좋지 않습니다 누가 너를보고 있는지 안다? 다음 앱은 WOODS입니다 이 게임을 통해 야생 scaary 숲을 탐험 할 수 있습니다 너는 초자연적 인 수사관 역할을해야 해 어떤 초자연적 인 존재를 찾는 사람 당신 손에 단 하나의 성화가 있습니다

어두운 소름 숲에서 빛을 볼 수있는 곳 하지만 너는 아무것도 없어 그 성화를 제외하고는 정말 무서워 정말 끔찍한 또 다른 소름 끼치는 앱이있다 죽음의 시계라고 불리는 이 앱을 사용할 때 너는 너의 죽음의 죽음을 알게 될거야 응용 프로그램을 연 후 양식을 작성해야합니다

양식을 작성한 후 너 괜찮아 이 응용 프로그램은 즉시 당신의 죽음의 날짜와 시간을 보여줍니다 몇 가지 앱과 소프트웨어가 더 있습니다 그것은 역방향으로 시작하고 당신에게 알려주는 카운트 다운 기능을 가지고있다 너의 인생의 며칠이 지나갔 어 당신 인생에 몇 일 남았습니까? 앱의 카운트 다운에 따라 일상 생활이 줄어들고 있습니다

네가 끝날 날이 너와 가까이있다 그래서 당신이 비디오를 좋아한다면, 채널을 구독하십시오 벨 아이콘을 누릅니다 미래의 모든 동영상에 대한 알림을받습니다 이 동영상을 좋아하는 친구들과 공유하십시오

당신이 어떤 질문이라도 가지고 있으면, 친절히 코멘트 박스에 쓴다 나는 너를 다음 비디오에서 볼거야 그때까지 잘 가라 안녕히 가십시오

Kotlin/Everywhere, Android Dark Theme in Flutter, & Kubernetes apps

[음악 재생] 토드 케펠 만 : 안녕 나는 개발자 쇼 (Todd Kerpelman for the Developer Show) 가장 멋진 개발자의 주간 업데이트입니다

Google의 뉴스 전문 안드로이드 개발자의 50 % 이상이 현재 Kotlin을 사용합니다 GitHub에서 가장 빠르게 성장하는 언어입니다 많은 새로운 Jetpack API 및 기능 Kotlin에서 첫 번째로 제공 될 예정입니다 그래서 당신이 코 틀린에 대해 더 깊이 들어갈 수 있도록, 우리는 일련의 커뮤니티 중심 행사를 기쁜 마음으로 알립니다

Kotlin의 잠재력에 초점을 모든 플랫폼에서 Kotlin Everywhere라고합니다 이 사건들에 대해 더 자세히 알기를 원하면, 게시물의 세부 정보를 확인하십시오 점진적인 웹 앱을 만드는 경우, 당신은 아마 안드로이드 장치에서, mini-infobar라는 Chrome 시스템 대화 상자가 나타납니다 브라우저 화면의 맨 아래에 사용자에게 PWA를 설치하라는 메시지를 표시합니다 이 방법은 설치를 유도하는 데 유용 할 수 있지만, 개발자들은 사용자에게 앱을 설치하도록 요청합니다

크롬 76에서는 미니 인포바를 방지 할 수 있습니다 정상적으로 나타나지 않고 나타납니다 당신이 선택한 시간에 방법을 찾으려면 게시물의 세부 정보를 확인하십시오 이번 달 Google I / O에서 Android 팀 Android Q에서 어두운 테마 지원을 발표했습니다 사용자가 시스템 전체의 어두운 UI 모드를 토글합니다

그리고 모든 사람들을위한 희소식 Flutter 팀이 이미 Android에 대한 지원을 추가했다는 것입니다 2 월의 어두운 테마 그리고 Flutter 앱에서 활성화 할 수 있습니다 위젯 트리에 속성을 추가하기 만하면됩니다 어느 재산을 물으셨습니까? 글쎄, 당신은 알아낼 게시물을 체크 아웃해야합니다

Kubernetes 애플리케이션은 엔터프라이즈 급이며, 배포가 용이하고 컨테이너 화 된 응용 프로그램 어떤 Kubernetes 환경에서도 실행할 수 있습니다 Google Cloud Platform 마켓 플레이스 Kubernetes 응용 프로그램과 같은 다양한 솔루션을 제공합니다 데이터베이스에서 보안에 이르는 모든 것 가격 책정 옵션이있는 개발자 도구 등 기업의 요구 사항을 충족하도록 설계되었습니다 따라서 더 많은 정보를 얻으려면 체크 아웃하십시오 게시물의 세부 사항

개발자 학생 클럽은 수천 명의 학생 개발자를 제공합니다 전 세계의 도구와 기회 리더로서 성장하고 Google에서 기술을 향상시킬 수 있습니다 오픈 소스 기술 및 실제 문제를 해결할 수 있습니다 커뮤니티의 문제를 해결하는 데 관심이 있다면 기술을 통해 학생들을 이끌고 싶습니다 커뮤니티를 Google에 초대하면 신청할 수 있습니다

아래 설명에있는 링크를 사용하십시오 이봐, 구독하고 공유하는 것을 잊지 마세요 저는 개발자 쇼 (Todd Kerpelman) 개발자 쇼입니다 지켜 주셔서 감사 드리며 다음 주에 다시 보겠습니다 나는 kung를 알고있다, 나는 kung fu를 모른다

[웃음]

Learn how to Build Android Apps with Android Jetpack and Kotlin

발표자 : 건축가와 건축가를 배우십시오 Kotlin 프로그래밍 언어로 된 Android 앱 업계에서 입증 된 도구와 라이브러리를 사용합니다

Kotlin에서 Android 앱을 만드는 중입니다 Udacity와 함께 Google에서 개발 한 코스입니다 업계에서 실제 Android 앱을 제작하여 학습하게됩니다 현대적인 응용 프로그램 아키텍처의 모범 사례 Android Jetpack 구성 요소를 사용하는 이유와 방법을 이해하고, 데이터베이스 룸, WorkManager 백그라운드 처리를위한 새로운 탐색 구성 요소 등

핵심 Kotlin 기능을 사용하여 앱 코드 작성 보다 빠르고 간결하게 Android로 개발하는 법은 API와 바로 가기를 배우는 것 이상 그것은 당신의 두뇌를 모바일 개발자처럼 생각하도록 훈련시키는 것입니다 우리와 함께 배우십시오 이 무료 과정에 대한 자세한 정보와 모든 정보를 보려면 Udacity, udacitycom/google으로 이동하십시오

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에 연결할 수 있습니다 고맙습니다