Migrate your existing app to target Android Oreo and above (Google I/O '18)

[음악 재생] 알았어 "Android 앱 마이그레이션"에 오신 것을 환영합니다

Android O 및 그 너머에 " FRED CHUNG : 안녕하세요 나는 개발자 옹호자 프레드 정입니다 Dan GALPIN : 안녕하세요, 저는 개발자 Galphin입니다 ERIC KUXHAUSEN : 안녕하세요, 저는 개발자 대변자가 아닌 에릭입니다

저는 마이그레이션을 담당하는 리드 소프트웨어 엔지니어입니다 API 26을 타겟팅 할 Google Play 스토어 앱 단 갈린 : 오후에 우리와 함께 해줘서 고마워 마지막 날의 가장 기대되는 세션을 예약하는 곳입니다 우리가 기록하지 않는 재미있는 즉흥적 인 것을 제외하고 죄송합니다

집 시청자입니다 그래서 네가 진짜 여기있는거야 구글 I / O의 대단원 FRED CHUNG : 음, 대단원이 시작됩니다 그렇다면 왜 마이그레이션해야합니까? 많은 이유가 있지만, 무엇보다도 마음에, 특히 Google Play에서 배포하는 경우, 올해 말까지 2018 년 8 월에 새로운 앱이 출시 될 예정입니다 최소한 API 레벨 26 또는 Android 8

0을 타겟팅해야합니다 마찬가지로 앱 업데이트의 경우에도 앱 업데이트가 필요합니다 2018 년 11 월까지 최소 API 수준 26을 타겟팅해야합니다 다시 말해서 앞으로 앱 업데이트 DAN GALPIN : 이제 모든 새로운 Android 버전 중요한 보안을 가져 오는 변경 사항을 소개합니다

성능 향상 및 경험 향상 전체적으로 Android 이러한 변경 사항 중 일부는 명시 적으로 선언 한 앱에만 적용됩니다 타겟 SDK 버전 매니페스트 속성을 통한 지원, 타겟 API 레벨이라고도합니다 실제로 타겟을 사용하여 APK를 업로드하려고하면 SDK가 26 미만이면 친숙한 알림을 볼 수 있습니다 이런 식으로 ERIC KUXHAUSEN : 저는 우리가 여기 있기 때문에 여기 있습니다

Google Play에서 Play 스토어 앱을 계속 업데이트하고 싶었습니다 11 월 마감 이후 프레드 (FRED CHUNG) : 그래서 몇 가지 기본 사항을 빠르게 살펴 보겠습니다 각자 모두 최소 SDK는 가장 낮은 플랫폼 버전입니다

앱이 기꺼이 지원할 것입니다 종종 시장 침투와 관련된 결정입니다 다양한 Android 출시 DAN GALPIN : 컴파일 SDK는 말 그대로입니다 프로젝트가 링크하는 SDK 헤더 및 스텁 라이브러리 ERIC KUXHAUSEN : 중요한 것은 물론, 내가 말하는거야 targetSdkVersion은 플랫폼의 방식입니다

하위 호환성을 보장합니다 즉, 특정 행동 만 취할 수 있습니다 변경 사항은 특정 특정 대상 SDK 버전으로 적용됩니다 FRED CHUNG : 기술적으로 이것은 사실 일 필요가 있습니다 그리고 이것은 전형적이고 권장되는 사례입니다

당신이 아마 걱정하기 때문에, 대략 95 %의 사용자 최신 버전을 대상으로하지는 않습니다 Androids의 버전은 아직 그것을 개선하기 위해 노력하고 있습니다 DAN GALPIN : 목표를 변경하지 않으면 SDK가 버전 26 이상인 경우 런타임 권한과 같은 것을 처리해야하며, AlarmManager가 변경되어 다양한 방법으로 작동합니다 BroadcastReceiver 동작을 처리하려면, 배경 서비스를 피할 수 있습니다 ERIC KUXHAUSEN :하지만 좋은 기회가 있습니다

앱이 네트워크 및 배터리를 낭비 할 것이라는 점, 장치의 경험을 덜 빠르고 유동적으로 만듭니다 프레드 (FRED CHUNG) : 프리 -M 버전에서 마이 그 레이션하는 경우, 더 큰 변화 중 하나는 아마도 지원 일 것입니다 런타임 권한 런타임 권한은 실제로 사용자 개인 정보 보호 및 신뢰에 관한 것입니다 하지만 앱이 민감한 권한을 요청할 수도 있습니다

문맥 그리고 그것은 애플 리케이션을위한 좋은 일이다 누군가 당신의 앱을 설치하지 않기를 원하기 때문에 당신이 허락을 구하고 있기 때문에 하나의 특정 흐름에있는 민감한 정보 앱 내에서 따라서 우선, 모든 권한이 아닙니다 런타임 것들이 간단하고, 이것을 기억하기 쉽습니다 FRED CHUNG : 개발자는 걱정하지 않습니다

사용 권한을 생각할 수 있습니다 사용자는 이러한 광범위한 범주의 측면에서 볼 수 있습니다 그리고 당신이 가지고 있어야 할 첫 번째 질문 앱이 정말로 조항을 필요로하는지 여부입니다 결국 허가를 제거하는 것은 쉽습니다 자, 에릭, Play 스토어 앱에서 어떻게 처리 했습니까? ERIC KUXHAUSEN : 간단합니다

당신이해야 할 일은 앱이 시스템 이미지에 대한 권한을 미리 부여했습니다 FRED CHUNG : 그건별로 도움이 안돼, Eric ERIC KUXHAUSEN : 말하자면, 우리도 시도하고 사용합니다 가능한 한 이들 중 적은 수만큼 DAN GALPIN : 물론, 앱이 아직 준비되지 않았기 때문에 M을 타겟팅한다고해서 사용자가 가서 원하지 않는 권한을 비활성화하십시오

FRED CHUNG : 특별 권한이 있습니다 얻기 위해 사용자를 설정으로 리디렉션해야합니다 예를 들어, 오버레이 창 그리기, 또는 일부 행렬 권한이 될 수 있습니다 같은 화면 캡처 단 갈린 (DAN GALPIN) : 이제 UI의 작업으로, 런타임 권한은 실제로 활동이나 프래그먼트가 필요합니다

onRequestPermissionResult를 재정의 한 방법 자, 이것은 당신의 뷰 레이어, 활동과 파편과 같은 실제로 필요한 모든 사용 권한을 예상한다 다른 층에 의해 자, 대단한 변화가 있습니다 알람에 대해 이야기 해 봅시다

Android의 알람은 두 가지 기본 형식을 취합니다 앱이 스스로 깨어나도록 허용하는 리터럴 알람입니다 실시간 이벤트에 대한 알림을 전달하기 위해 당신을 깨우는 것과 같은 약속 또는 곧 예정된 약속 또는 그들은 일을 스케쥴링하는 방법입니다 앱이 종료 된 후 얼마 후에 발생합니다 Android 초기에는 단일 API였습니다

하지만 KitKat을 통해 AlarmManager가 정확하지 않게되었습니다 명시 적으로 요청되지 않은 한, 향후 작업 일정을 수립 할 때 더 좋습니다 이제 앱이 정확한 시간에 사용자에게 알릴 필요가 있다면, setExact 메소드를 추가했습니다 여기에 우리가 구현 한 곳이 있습니다 KitKat 이상에서이를 호출하는 지원 라이브러리의 메소드

ERIC KUXHAUSEN : Play 스토어에서 정확한 알람을 사용하지 않습니다 앱 우리가 사용하는 알람은 정확하지 않습니다 시스템이이를 더 잘 배치 할 수있게 해준다 배터리 및 시스템 상태

DAN GALPIN : 이제 Android Marshmallow Android를 유휴 상태로 만들 때 경보는 일반적으로 발화합니다 그래서 우리는 명백한 메소드 인 setExactAndAllowWhileIdle을 추가했습니다 알람을 울리면 장치를 깨울 수 있습니다 그리고 우리는 그 지원 라이브러리에 메소드를 구현했습니다 게다가

그리고 실제로 이전 지원 라이브러리를 호출합니다 이전 플랫폼 버전의 setExact 메소드 FRED CHUNG : 그래서 그 박람회가 끝나면, 테이크 어웨이는 꽤 간단합니다 맞습니까? WorkManager를 통해 향후 작업을 GCM 작업으로 옮기는 것을 고려하십시오 WorkManager는 새로운 작업 스케줄링 작업입니다 우리가 시작했다

DAN GALPIN : 이제 WorkManager는 Jetpack의 일부입니다 그리고 당신의 임무를 수행하는 가장 좋은 방법을 선택합니다 API 버전 및 앱 상태와 같은 항목을 기반으로합니다 안정적으로되면 권장 API가됩니다 우리가 무언가를 생각해 내지 않으면 그전에는 더 좋았어

ERIC KUXHAUSEN : Play 스토어에서 우리의 배경을 볼 수있었습니다 작업은 정기적으로 KitKat에서 2 % 더 많은 사용자에게 도달합니다 우리가 Firebase JobDispatcher를 채택했을 때, 단지 알람을 사용합니다 이렇게하면 시스템 상태 및 배터리 사용이 향상됩니다 알람을 사용해야 할 경우 가장 정확한 알람을 사용하십시오 너는 할 수있어

FRED CHUNG : 이제, 가장 정확한 경보, [INAUDIBLE]처럼 15 분마다 사용해야합니다 따라서 당신은 현명하게 그것들을 사용해야 만합니다 DAN GALPIN : 오, 예, WorkManager입니다 그럼 BroadcastReceiver에 대해 다시 이야기합시다 FRED CHUNG : 우리는 BroadcastReceiver에 대해 이야기해야합니까? DAN GALPIN : 우리는 그들에 대해 이야기해야합니다

FRED CHUNG : 그렇게하자 DAN GALPIN : 네 FRED CHUNG : 그래서 BroadcastReceiver, 저는 많은 사람들이 아마 그걸 알 것 같아, 그렇지? 플랫폼에서 알림을 보내고 실행하는 데 사용됩니다 시스템 전반의 이벤트에 대한 응답으로 Android에서 강력한 API를 제공하는 이유 중 하나입니다 서비스

DAN GALPIN : 이제 커다란 힘이 엄청난 책임입니다 그리고 이러한 엔드 포인트의 방식에 대한 응답으로 사용 된 경우 대부분이 더 이상 앱을 시작할 수 없으며, O를 목표로 한 번 이상 FRED CHUNG : 물론, 예외가 있습니다 안드로이드 맞지? 이들 중 상당수는 매우 드물게 발생하지만, 로케일 변경 등 또는 어떤 경우에는 아직 대안이 없습니다

그 (것)들을 필요로하는 apps를위한 방송에, 예를 들면, 그 USB 액세서리 것들처럼 브로드 캐스트 사용을 피하는 방법에 대한 예를 확인해 봅시다 따라서 직장에서는 적절한 실행을 설정하여 그렇게 할 수 있습니다 기준, 네트워크 서비스 요구, 그런 다음 우리는 기능을 가질 수 있습니다 이는 네트워크 상태 변경 수신 대기와 유사합니다

방송 그리고 매니페스트에 이와 같은 코드가 있다면 이전 버전의 Android에서는 연결 변경에 대한 리스너를 비활성화 할 수 있습니다 그냥 사용 안함으로 두십시오 그리고 나서, 당신은 무엇을 할 것입니까? 그런 다음 수신기를 설정하여 PackageManager의 ComponentEnableSetting입니다 ERIC KUXHAUSEN : 또 다른 예외 팩을 마친 후에 많은 작업을 수행해야하는 경우입니다

예를 들어 알람을 다시 예약하거나 업데이트 귀하의 데이터베이스 수신기를 등록 할 수 있습니다 action_my_package_replaced에 대한 매니페스트에서, 그것은 계속 작동합니다 앱을 겨냥한 명시적인 브로드 캐스트 중 하나 DAN GALPIN : 자, 정말로 필요하다면 모든 패키지 업데이트에서 어떤 작업을 수행하려면, 당신은 아마 당신이하지 않기 때문에 action_package_replace_events에서 더 이상 시작할 수 없습니다

그러나 우리는 getChangedPackages라는 API를 가지고 있습니다 앱에서 무엇을 볼 수있게 해주는 패키지는 이전 저장된 일련 번호 이후로 변경되었습니다 지금 인생에서 달리기는 대개 건강합니다 나는 아마 더 많이해야한다 하지만 Android 앱은 가능한 한 작게 운영되기를 원합니다

그리고 게으른 앱은 사실 더 나은 앱입니다 그리고 나는 선언문이나 뭔가를 만들어야한다 프레드, 우리가 실제로해야 할 일이 뭐라고 생각하니? FRED CHUNG : 나에게 좋은 소리 우선, 무엇에 대해 이야기 해 봅시다 그것은 전경에 있다는 것을 의미합니다

완전히 명백하지 않기 때문에 그렇습니까? 다음과 같은 몇 가지 일반적인 경우가 있습니다 앱이 사용자에게 표시되거나 사용자가 볼 때 전경 서비스를 사용하거나 앱이 전경 앱에 묶여있다 그래서 앱도 전경에 있습니다 이 예외적 인 경우에 앱이 보이지 않을 때 배경에 있습니다

표준 서비스를 실행하는 경우, 작업 서비스 또는 BroadcastReceiver 그리고 당신이 O +에있을 때 백그라운드에서 실행할 때 서비스 시작 IllegalStateException이라는 예외를 throw합니다 그것은 좋지 않다 DAN GALPIN : 이제 서비스를 시작할 수 있습니다

앱이 포 그라운드에 있습니다 그리고 그들은 약 1 분 동안 계속 달릴 것입니다 귀하의 앱이 배경으로 된 후에 그리고 이것은 특히 중요합니다 왜냐하면 O에서 시스템은 앱이 보유하고있는 모든 웨이크 잠금 장치 활동과 같은 활동적인 구성 요소가없는 경우 또는 서비스

O를 타겟팅하는 앱뿐만 아니라 모든 앱에 적용됩니다 FRED CHUNG : 앱이 여전히 작동하는 몇 가지 경우가 있습니다 포 그라운드라면 실행할 수 있음 예를 들어 알림에 대한 응답으로 서비스를 시작합니다 액션, 우선 순위가 높은 Firebase Cloud 메시지, 또는 MMS 또는 SMS 배달에 대한 응답으로 이제 몇 가지 솔루션을 살펴 보겠습니다

백그라운드 서비스없이 백그라운드에서 실행됩니다 DAN GALPIN : 우선, GCM 소방 작업을 사용하십시오 – 아! – 백그라운드 작업을위한 WorkManager 이제는 이것에 대한 많은 이유가 있습니다 여러 Android에서 일관된 API 서비스를 만듭니다 예를 들어, 버전

ERIC KUXHAUSEN : 또는 당신이 가진 것에 대해별로 신경 쓰지 않는다면 앱은 플랫폼간에 일관되게 작동하며, 또는 최소한의 작업량으로 O로 이동하려는 경우, JobIntentService를 사용할 수도 있습니다 DAN GALPIN :하지만 진지하게 WorkManager 사용을 고려하십시오 제약 조건을 활용하고 삶을 편하게 만듭니다 ERIC KUXHAUSEN : Google Play 스토어 앱 WorkManager를 사치스럽게 사용하지는 않았지만, 왜냐하면 그것은 아직 존재하지 않았기 때문입니다 그건 우리가 JobScheduler와 Firebase를 사용해야한다는 것을 의미했습니다

JobDispatcher 자, 우리가 처음 배운 것은 Android L에서 JobScheduler를 사용하려면, 당신이 정말로 어떻게 이해하지 못한다면 다음과 같은 경우 알람이 울리며 작동합니다 예상대로 작동하지 않습니다 또한, 대안을 사용하십시오 예를 들어, L과 M의 첫 번째 릴리스에서, JobScheduler는 실제로 당신의 업무를 수행하지 않을 것입니다

동일한 제약 조건이 충족 된 두 개의 작업이없는 한 두 가지 작업을 예약하여이 문제를 해결할 수 있습니다 일치하는 제약 조건 DAN GALPIN :하지만 WorkManager처럼 진지하게 FRED CHUNG : WorkManager ERIC KUXHAUSEN : JobScheduler의 상황이 훨씬 나아졌습니다

M, MR1 이상 그러나, 또 다른 특질은 당신이 최소 대기 시간을 0으로 설정하는 것을 피해야합니다 이것은 오버라이드를 방해 할 수 있습니다 일부 릴리즈의 마감일 재정의 기한은 당신의 일은 일정 기간 동안 계속됩니다

제약 조건이 충족되지 않더라도 DAN GALPIN : 아니면 그냥 사용할 수 있습니다 실제로 작동하지 않는 WorkManager 재정의 기한이있다 하지만 당신이해야 할 일은 두 번째 직업을 예약하는 것입니다 비슷한 기능을 수행하는 워치 독으로 ERIC KUXHAUSEN : 여기에 몇 가지가 있습니다 JobScheduler 또는 WorkManager를 사용할 때 고려해야합니다

Android는 캡 티브 포털과 [INAUDIBLE]을 감지하려고 시도하지 않습니다 조건, 그러나 불완전한 예술이다 또한 Android는 간혹 네트워크 전에 앱을 깨우십시오 앱에서 사용할 수 있습니다 이것이 의미하는 바는 적절한 오류 처리가 필요하다는 것입니다 일자리를 재조정하는 일

Play 스토어에서 지수 백 오프를 추가하면 우리의 일에, 우리는 19 % 더 성공적인 배경 작업을 보았습니다 여기에서 핵심은 시스템이 작동하도록 허용합니다 동일한 작업으로 일정을 다시 잡는 실수를 저지르기 쉽습니다 ID, 시스템 백 오프도 사용합니다 이는 백 오프 속도를 방해하거나 재설정 할 수 있습니다

DAN GALPIN : 또는 WorkManager에서 – 사실, 그래, 그러지 마라 같은 결과가 있기 때문에 프레드 (FRED CHUNG) : PendingIntents를 사용하면 PendingIntent를 변경할 수 있습니다 서비스 대상에서 BroadcastReceiver 대상 이제 작업이 30 초 이내에 실행되면, goAsync를 호출하고 작업을 바로 실행할 수 있습니다

BroadcastReceiver에서, 그건 그렇고, 뭔가를 끝내는 초경량 방법입니다 네트워크 또는 wakelocks가 보장되지는 않습니다 그래서 아직도해야 할 일이 많이 있습니다 DAN GALPIN : BroadcastReceiver에서 일정 잡기 WorkManager를 사용하여 프레드 (FRED CHUNG) : 그렇다면 외부에 즉각적인 사용자가 필요한 시간에 민감한 이벤트를 유발했습니다

관심, Firebase Cloud 사용 고려 앱에 알림 메시지 FCM은 높음 및 보통 우선 순위 메시징을 지원합니다 우선 순위가 높은 메시지의 경우 장치가 졸음에서 깨어 나면 많은 것을 의미합니다 시스템 건강에 좋지는 않을 것입니다 작업이 10 초 이내에 실행될 수 있다면, 바로 실행할 수 있습니다

또는 다음을 사용하여 작업을 예약하십시오 DAN GALPIN : WorkManager 실제로 전경 서비스 요구되거나 요구된다 이상적으로는 사용자가 시작한 작업입니다 오랜 시간 동안 뛰고 싶다

사용자에게 일종의 지속적인 업데이트를 제공합니다 예는지도, 탐색 피트니스 추적, 주악 ERIC KUXHAUSEN : Play 스토어에서 우리는 앱을 복원 할 때 전경 서비스 사용 장치를 설치 한 후 응답 시간이 길기 때문에 OK입니다 사용자 상호 작용 DAN GALPIN :하지만 음악을 듣는 것만 큼 재미있는 것은 아닙니다 FRED CHUNG : 좋은 소식은이 다른 것들이 이미 귀하의 애플 리케이션에 영향을 미칩니다

그러나 아마도 당신은 아직 눈치 채지 못했을 것입니다 그 따라서 Android N에서 새로운 사진 방송 더 이상 발생하지 않지만 TriggerContentUris로 대체 할 수 있습니다 일자리를 구하는 것은 일을 의미합니다 새로운 WorkManager API를 사용하면 다음과 같습니다

DAN GALPIN : 이제 앱이 백그라운드에서 실행중인 경우 Android O + 기기에서 위치 시스템 서비스 앱의 새 위치를 자주 계산하지 않으며, 앱이 더 자주 업데이트를 요청하더라도 백그라운드 앱에 대해서만 전체 Wi-Fi 스캔도 수행됩니다 매시간 몇 번 따라서 더 자주 전화를받는 경우 Wi-Fi 관리자 [INAUDIBLE] 실제로는 캐시 결과 만 제공하면됩니다 이제 사용자 도달 시간을 알아야하는 경우 특정 위치, 지오 펜싱 사용 자, 활성화 될 수있는 지오 펜스는 단지 100 개뿐입니다

그래서 당신이 그것보다 더 많은 사이트를 필요로한다면, 실제로 지역 지오 펜스를 사용할 수 있습니다 필요에 따라 다양한 지오 펜스 세트를 교환 할 수 있습니다 이제, 그것은 말하고 있습니다 – 비컨은 굉장합니다 주변 알림을 사용할 수 있습니다 API

특히 중요합니다 네가 특정 다작의 커피 공급업자라면 ERIC KUXHAUSEN : 배치 버전을 사용할 수도 있습니다 FusedLocationProvider의 최대 위치 업데이트 지정 귀하의 유스 케이스에 수용 가능한 대기 시간

그리고 시스템은 배치 업데이트를 시도 할 것이고, 앱의 빈도가 줄어 들었습니다 이렇게하면 배터리 사용이 최적화됩니다 수동 위치를 사용할 수도 있습니다 이를 통해 앱을 기회주의 적으로 피기 백 가능하게합니다 다른 앱의 위치 업데이트에서 가장 빠른 속도로 업데이트 지정된 간격

하지만 앱의 위치 업데이트가 네트워크와 같은 값 비싼 작업에 묶여 있어야합니다 전화를 걸면, 당신도 그들을 억제해야합니다 FRED CHUNG : 따라서 일괄 배치와 수동적 위치를 통해, 우리는 힘으로 위치 업데이트로 작업 할 수 있습니다 효율적인 방식 다음으로 몇 가지 관련 개선 사항을 살펴 보겠습니다

플랫폼에서 그래서 안드로이드의 과거 여러 버전에서, 우리는 일련의 배터리 최적화 기능을 도입했습니다 백그라운드 작업을 연기하고 제한하는 것을 기반으로합니다 따라서 이미 이들 중 일부에 익숙 할 것입니다 예를 들어, 장치가 도즈 (doze) 장치가 연결되지 않은 경우 및 장치가 연결되지 않은 경우 꽤 오랫동안 사용되었습니다

졸작에서 앱은 보류중인 모든 것을 끝내야합니다 정기적 인 유지 관리 기간의 일부 작업 DAN GALPIN : N +에서 이동 중에 doze가 연장됩니다 장치가 사용자의 주머니에 앉아있을 때와 같은 경우 자, app standby는 M에서 소개되었습니다

세금 제한을 부과하는 곳 앱 사용시 ERIC KUXHAUSEN : 브랜드에 대한 새로운 정보를 알려 드리겠습니다 Android P에서 사용 기반 제한 보다 세분화 된 방식으로 적용됩니다 이전 I / O에서 이미이 사실을 알았을 수도 있습니다 "앱이 사용자의 배터리를 소모시키지 않도록하십시오

" 앱이 앱의 대기 버킷 중 하나에 추가됩니다 사용량에 따라 시스템이 점차적으로 더 많은 제한을 앱에 적용합니다 활성에서 희귀 한 양동이로 이동함에 따라 또한 배터리 절약 기능이 향상되었습니다 사용자가 확장 할 수 있습니다 다른 모든 것보다 배터리 우선 순위를 지정하여 배터리 수명을 늘립니다

이로 인해 기능이 다소 저하되며, 사용할 수없는 위치 요청과 같은 화면이 꺼져있을 때 그러나이 모드는 정말 유용합니다 당신의 장치가 조금 더 오래 지속될 필요가있을 때 FRED CHUNG : 방금 이야기 한 기능 앱의 알람에 부가적인 영향을 주며, 작업, 동기화, 네트워크 액세스 및 FCM 메시지를 표시합니다 그래서 우리는 모든 사람들에게 이러한 시나리오를 철저히 테스트 귀하의 응용 프로그램 내에서

DAN GALPIN : 좋은 소식은이를위한 도구가 있다는 것입니다 예를 들어,이 ADB 명령 장치를 유휴 상태로 만들면서 모든 응용 프로그램을 잠잠하게 만듭니다 ERIC KUXHAUSEN : 애플리케이션 대기를 테스트하려면, 먼저 장치의 연결을 시뮬레이트합니다 그런 다음 get 및 set inactive 명령을 사용할 수 있습니다 앱 대기 상태에서 기기를 가져오고 나가기

FRED CHUNG : 앱 대기 버킷의 경우, 당신은 주어진 꾸러미에 대한 버켓을 가져 와서 설정할 수 있습니다 비슷한 광고 명령 하지만 플러그를 뽑는 것을 기억하십시오 테스트하기 전에 장치 또한이를 수행 할 수있는 프레임 워크 API가 있습니다

마지막으로 배터리 세이버를 테스트하는 명령입니다 한 가지 유의점은 앱의 UI에 어두운 테마가있는 경우, 어두운 테마 사용을 고려해 볼 수 있습니다 배터리 세이버가 전원을 절약하기 위해 추가로 켜지면 OLED 장치 PowerManager를 통해 API로 확인할 수 있습니다 그리고 방송을 듣고 그렇게해라

DAN GALPIN : 그래서, 많은 방법들이 있습니다 백그라운드에서 멋진 앱을 만들기 위해 전경 서비스를 사용하지 않고 WorkManager의 새로운 기능을 활용하십시오 효율적인 위치 전략 사용, 새로운 API 사용, 우리에게 무엇이 아닌지 알려주십시오 피드백을 제출하여 귀하의 요구를 충족 시키십시오

이슈 트래커를 통해 프레드 (FRED CHUNG) : 그래서, 아마 목표를 업데이트하는 중이다 SDKs, 모두 좋다 당신이 그것에있는 동안, 우리는 Android에서 선택한 최신 기능을 확인해보십시오 사용 사례와 관련이 있습니다 예를 들어 알림 채널을 추가해야합니다

귀하의 앱에 O 그렇지 않으면, 음, 알림 그냥하지 않습니다 쇼, 좋지 않을 것입니다 채널을 신중하게 계획하여 사용자가 선택적으로 할 수 있도록하십시오 원치 않는 알림을 끄십시오 DAL GALPIN : 한장 뒤로 젖히십시오

ERIC KUXHAUSEN : Play 스토어가 구현 된 기기에서 알림 채널 지원, 우리는 더 적은 비율의 사용자를 사용할 수 없게됩니다 우리의 모든 통지 DAN GALPIN : 앱에서 반투명 상태 표시 줄을 사용하는 경우, 삽입 된 API를 사용하여 코드에서 상태 표시 줄이 고정되어 있다고 가정하지 않습니다 크기 이제 탐색 서랍을 사용하는 경우, 이것은 실제로 실제로 일반적입니다

이제 P를 타겟팅하면 그 컷 아웃 영역에서 흥미로운 것을하십시오 이제 공익 광고 발표, 당신은 당신의 시스템을 넣을 필요가 없습니다 당신의 유일한 장치에 이미지 한동안 에뮬레이터를 사용하지 않았다면, 그것은 꽤 굉장합니다 최근에는 초고속 로딩에 대한 지원을 추가했습니다

P 개발자가있는 모든 장치에서 AR 지원과 함께 시스템 이미지 미리보기, DisplayCutout 시뮬레이션 가능 개발자 옵션을 통해 이것으로 공익 광고가 종료됩니다 FRED CHUNG : 좋아 그래서, 종횡비 화면 따라서 OEM이 출하하는 추세가되었습니다 16보다 긴 화면이있는 이러한 기기 화면 비율 9

앱이 몰입도 높은 경험을 제공하는지 확인하세요 이러한 화면 기능을 최대한 활용할 수 있습니다 그것은 꽤 굉장하다 따라서 최후의 수단으로 시스템은 여전히 ​​사용자를 제공합니다 지원되는 최대 종횡비를 선언하는 방법

하지만 응용 프로그램 주위에 레터 박스가 표시됩니다 ERIC KUXHAUSEN : 진지하게, 정말로 편지함을 원하십니까? DAN GALPIN : 더 큰 화면에서 책임감이 커집니다 자, 그림 활용을 고려해보십시오 화상 채팅, 영화 재생, 체력 추적 또는 Pokemon Go로 이동합니다 다중 디스플레이 지원은 또한 사용자가 애플리케이션에 대한 활동을 시작하는 방법 두 번째 디스플레이에

그리고 여기서 정말로 고려해야 할 유일한 것 그것이 두 번째 구성을 가지고 있는가? 가장 가능성이 큰 1 년 앱과 다를 것입니다 따라서 애플리케이션 전반에 걸친 가정을하지 않도록주의하십시오 근면 한 구성에 대해 결론적으로 Android 개발 최신 도구 및 API를 사용하여 더 나은 배터리 수명, 더 매끄러운 멀티 태스킹, 최신 하드웨어 및 플랫폼 기능 지원, Jetpack을 활용하여 구축 현대적이고 검증 가능한 아키텍처 고맙습니다

괜찮아 사실, 안돼, 안돼, 안돼 실제로 한 가지 더 있습니다 Android가 실제로 사용을 제한하고 있습니다 개발자 미리보기 1의 일부 비 SDK 인터페이스 그리고 당신은 이것을 보았습니다

우리가 실제로 토스트와 로그 엔트리로 너에게 경고했다 이 방법이 사용 된 경우 그러나 DP2에 대해 테스트한다면, 이 방법 중 일부는 작동을 멈추고, 앱이 다운 될 수 있습니다 따라서 문제가 있으면 테스트하고 파일을 보내주십시오 앱이 할 수있는 어떤 방법도 있다고 생각하지 마라

이러한 방법 이외의 작업 그리고, 당신을 미래에 돕기 위해, 우리는 실제로 StrictMode에 대한 새로운 VM 정책을 추가했습니다 SDK API가 아닌 모든 API를 켜고 감지하는 데 사용할 수있는 사용법은 정말로 중요합니다 이 비 SDK 사용은 실제로 당신의 도서관에서 일어나고 있습니다 그래서 실제로 확인하는 것은 정말 좋은 방법입니다

귀하의 앱은 앞으로도 호환 될 것입니다 우리는 비 SDK의 호환성을 보장하지 않기 때문에 API 그래서 이제 그게 사실입니다 지난 30 일에 관심을 기울이지 않았다면 분, 내 농담이 분명히 필요하기 때문에 괜찮습니다 ERIC KUXHAUSEN : 엔지니어라면 희망이 있습니다

오늘 공유 한 정보 중 귀하의 리뷰가있었습니다 그리고 유용한 정보를 찾길 바랍니다 프레드 (FRED CHUNG) : 그렇다면 PM입니다 26을 목표로 삼아, 계획을 세우는 것은 너무 늦지 않았습니다 팀과 협력하여 필요한 작업량을 파악합니다

그리고 실제로, 우리는 가이드를 준비했습니다 Android 개발자 사이트에서 사람들이 이해하고, 현재 릴리스, 필요한 작업량, 우리는 집합 적으로 생태계를 발전시킬 수 있습니다 고맙습니다 [음악 재생]

Google Maps Android API: Heatmaps library

IRIS UY : 안녕하세요, Iris입니다 EMMA YEAP : 저는 Emma입니다

IRIS UY : 그리고 이번 여름에 실습 인턴을 엔지니어링하고 있습니다 Google 시드니에서 EMMA YEAP : 오늘 우리는 이야기 할 것입니다 우리가 여름 동안 일해 온 것에 대해 히트 맵을 Google Maps Android API 유틸리티에 추가했습니다 도서관 IRIS UY :지도에서 히트 맵을 사용합니다

많은 지리적 포인트를 시각화합니다 다른 색상이나 불투명도는 영역을 나타냅니다 포인트의 강도가 다릅니다 일반적으로 높은 강도는 따뜻한 색상, 따라서 이름 EMMA YEAP : 히트 맵

강도 맵은 시각화에 유용합니다 전체 위치를 표시하는 큰 지리적 데이터 세트 트렌드 IRIS UY : 예를 들어 여기에서는 서로 다른 유형의 장소를 보여주는 히트 맵 시드니 도심 주변 장소는 위치가있는 관심 지점입니다 예를 들어 레스토랑이나 상점 또는 관광 명소 EMMA YEAP :이 데모에서는 Google의 레이더 검색을 사용합니다

검색 결과를 얻는 Places API 사용자 입력 키워드 및 렌더링을위한 히트 맵으로서 결과의 위치 사용자가 더 많은 키워드를 입력하면, 이 앱은 다양한 색상으로 더 많은 열지도 레이어를 만듭니다 사용자는 결과를 시각적으로 비교할 수 있습니다 IRIS UY : Places API에 대해 자세히 알아보기 개발자 설명서를 참조하십시오 히트 맵 라이브러리가 포함되어 있습니다

Google Maps Android API 유틸리티 라이브러리의 일부로 제공됩니다 라이브러리 설정 방법에 대한 지시 사항 및 소스 코드를 볼 수있는 위치는 아래에 링크되어 있습니다 EMMA YEAP : 타일 오버레이를 사용했습니다 히트 맵을 표시합니다 타일 ​​오버레이는 일련의 이미지입니다

지도 타일 위에 표시됩니다 이렇게하려면 먼저 타일 공급자를 만들고, 타일 ​​이미지 클라이언트 측을 생성합니다 그런 다음 타일 공급자와 타일 오버레이를 만듭니다 그것을지도에 추가하십시오 IRIS UY : 처음에는 새로운 히트 맵 타일을 만듭니다

제공 업체를 사용합니다 당신은 lat longs 컬렉션을 제공해야합니다 또는 입력 데이터를 나타내는 가중치가있는 long long을 사용합니다 EMMA YEAP : 위도 (Lat)에서 가중치가있는 Lat long을 만들 수 있습니다 길고, 선택적으로 강도 값을 갖는다

무게를다는 데 사용할 수 있습니다 다른 개구부도이 단계에서 구성 가능하며, 히트 맵이 어떤 색을 사용하는지 등 IRIS UY : 색상은 그라데이션 클래스를 사용하여 정의됩니다 그라데이션은 두 개의 배열을 사용하여 만듭니다 색상을 나타내는 정수 배열, 값을 나타내는 float 배열 각 색이 나타내는 것입니다

이 수레는 분수로 표현됩니다 최대 강도의 0에서 1까지 히트 맵의 값 EMMA YEAP : 예를 들어 기본 히트 맵 표시된 값으로 생성됩니다 그라디언트 클래스는 이들을 사용하고 그들 사이를 보간합니다 히트 맵에 사용 된 색상을 생성합니다

자신 만의 그라디언트로 히트 맵을 만들 수 있습니다 그림과 같이 건축업자에게 제공하십시오 IRIS UY : 이제이 공급자를 사용하여 새 타일 오버레이를 추가합니다 귀하의지도에 이것이 맵에 기본 히트 맵을 추가하는 데 필요한 것입니다

EMMA YEAP : 반경, 불투명도 및 그라디언트를 생성 할 때와 생성 한 후에 모두 표시합니다 데이터 세트를 완전히 다른 데이터로 변경할 수도 있습니다 또는 업데이트 된 버전 IRIS UY : 이렇게하려면 관련 집합 x 메서드를 호출 한 다음 오버레이의 타일 케이스를 지 웁니다 새 옵션 값으로 모든 타일을 다시 그립니다

EMMA YEAP : 시청 해 주셔서 감사합니다 IRIS UY : 또한 학생에 대해 더 자세히 알고 싶다면 Google의 기회와 인턴 프로그램, 아래 링크를 방문하십시오

Curso Android. Google API Key. Vídeo 107

안녕하세요? 이 프로그래밍 과정의 전달 우리가 어떻게 볼 것인지 안드로이드 앱을 가져오고 그 쿠키는 사용에 필수적이다 어떤 종류의 Google지도 당신이 수행하는 프로젝트는 중요하지 않습니다

당신은 웹 페이지를 만들고 있습니다 예를 들어 Google지도 포함 귀하의 비즈니스를 찾거나 예를 들면 안드로이드 같은 모바일 애플리케이션 우리 안에서 봉사하게 될 우리 Google지도 작동 능력있게되기위한 필수 조건 이것들을 가져와 열쇠는 가지고있다 Google Google 계정이 소유자입니다 이 모든 창고와 규칙들 게임에 우리에게 계정이 있어야합니다 Google은 매우 문제가되지 않습니다

왜냐하면 if 예를 들어 전자 메일 계정이 있습니다 Gmail을 사용하면 당신이 분명히 사용자와 다른 제품의 암호 Google은 사용자에게 서비스를 제공하지 않고 더 많은 이들 X를 만드는 방법을 보자 패널 액세스로 응용 프로그램 개발자 Google과 우리가 할 수있는 구글 검색 엔진에 들어가기 예를 들어 Android 앱 및 첫 번째지도 이 검색에서 우리에게 제공하는 링크 그 중 하나를 클릭해야합니다 우리가 방문해야합니다 설명 할 모든 과정 오늘 우리가 1 월 24 일에있다

2019 년을 크게 바꿀 수 있음 다음 달 웹 페이지 구조 변경 그래서 무엇 때문에 모르겠다 당신이 보는 것과 일치한다 특히이 비디오를보고있는 경우 기록한 후 몇 개월 또는 몇 년 나 또한 변경되었을 수 있습니다 그들에게 구글을 만드는 게임의 규칙 미래에 당신이 지불해야 할 최고 어쩌면 그렇게하지 않기를 바랍니다 알고있는 Google 계정이 필요했습니다

잘 나는 구글 계정이 가고 있다고 생각한다 필요한 경우 우리는 항상 그것을 방문하지 않는다 첫 번째 링크와 좋은 여기 무엇 때문에 먼저해야 할 일은 다음과 같습니다 이 메뉴는 우리가 우리가 일어난 곳을 떠났다 그것이 말하는 곳으로 직접 가보 죠

우리가 여기에 던지면 조금 더 내려다 본다 빠른 가이드를 말하고 앱을 얻으세요 또한 여기에 우리가 나타납니다 시작 뒤따라야 할 단계 그 사진을 응용 프로그램에 삽입하십시오 Android에 매니페스트 파일 xml이 있습니다 하지만 잘 보겠습니다

최신 동영상은 현재 시작 버튼을 클릭하십시오 그리고 여기에 한 번 페이지 창문을 볼 수있는 것처럼 나오지 않는다 Google지도를 사용하도록 설정하는 팝업 플랫폼을 선택하고 제품 중 하나를 선택하십시오 다음에 나가면지도를 선택하겠습니다 아직도 마우스는 우리에게 거리지도 기능 포함 보기 및 SDK를 포함한 api 안드로이드 용지도는 우리가 가고있는지도입니다

우리를 특별히 찾고 있습니다 지도 선택 버튼 클릭 계속하다 이제 그는 우리에게 프로젝트를 만들 것을 요청합니다 제어판의 프로젝트 구글 개발자는 당신이 그에게 줄 수 있습니다 네가 원하는 이름, 심지어 우리 이름 그들은 기본적으로 하나를 제공합니다 예를 들어 프로젝트에 전화하자

metromadrid 노선 또는 원하는대로 사건을 부르면 이름이 붙을거야 우리가 어디에서 사용할지를 나타내는 대표자 이 API는 우리가이 API를 사용할 때 사용합니다 우리의 안드로이드 응용 프로그램은 우리가 이 이름을 주었고 여기에 좋은 이름을 붙였다 음, 용어를 읽는 기분이 든다면 서비스 및 추가 정보 사실은 제가 여러분에게 말할 것입니다 if 다음을 클릭하십시오

그들은 당신이 볼 수있는 것처럼 우리에게 창조를 요구합니다 청구서 수신 계정으로 문의하지 않습니다 우리가하고있는이 돈 앱과 키를 가져오고 필요한 것이 있습니다 청구서 수신 계정을 만드십시오 해당 버튼을 누릅니다

나는 그런 식으로 지적해야한다 이 모든 창에 액세스 할 수 있어야합니다 우리는 이미 당신이해야 할 Google 개발자 때 Google 페이지에서 달성 당신은 Google 검색에 액세스합니다 우리가 가지고있는 사용자 이름과 비밀 번호로 귀하의 Gmail 계정 전에 음성으로 이 모든 것을 액세스 할 수있는 예 과정은 우리가 지금 당장해야한다 사용자 이름과 비밀번호로 식별 페이지에서 브라우저로 구글 잘 여기, 그는 우리에게 1 단계를 요청한다

우리가있는 두 나라의 우리는 조건을 읽고 동의합니다 나는 그들을 읽지 않을 것이지만 그것은 편리하다 당신은 그들에게 문제 중 하나를 읽는다 우리가 가진 가장 큰 오늘 데이터 보호 및 너가 들었을이 모든 소식 페이스 북과 위반에 대해 개인 데이터는 우리가 그들을 가지지 않고 받아들이 기 때문에 그것을 읽고 그것을 읽는 것이 편리합니다 또한 우리가 원하는 경우 정기적으로 이메일 뉴스의 뉴스 제품 등등, 음, 가자

여기 아무 말도하지 마라 그리고 계속해서, 우리는 동의하고 우리는 계속된다 2 단계 중 2 단계에서 우리는 그들이 우리에게 물어 보는 정보 계정 글쎄요, 당신이나 회사에 대해 말하기 위해 여기에 따라 달라지면 좋겠다 그들은 그들이 코드를 요구하는 주소를 묻는다 주 우편 도시 그리고 눈도 그들이 결국 우리에게 묻기 때문에 우리가 반드시 포함해야하는 카드 번호 벌써 당신에게 우리를 표하는 규칙이라고 말했어

구글, 나는 이것이 당신은 누구에게나 승리하지만 그들은 가지 않을 것입니다 내가 전에 말했어 오른쪽의 여기에 자동 청구 너만 무료 체험 기간 우리는 카드 데이터를 당신이 모르는 로봇이 아닌지 확인하십시오 업데이트하지 않는 한 요금이 부과되지 않습니다 수동으로 유료 버전 계정 우리가 그렇게 잘 할 수없는 일 글쎄, 나는이 정보를 채울거야

나는 동시에 그것을하고있다 내가 그것을 할 때, 데이터 일단 데이터가 채워지면 시작 버튼을 클릭합니다 mindfreak 그 후에 기억하려고 시범 기간의 아무 것도 부탁하지 말고 다음을 클릭하십시오 단추 창문이 나온 직후 나 없이는 아무 것도하지 않은 창발의 어디서나 클릭 한 앱에서이 작업을 수행 할 수 있다고 말합니다 7up 및 Google지도 플랫폼을 활성화합니다

귀하의 API 키를 생성합니다 구현 다음을 클릭하십시오 그리고 나서 여기에 등급은 우리가 이미 발전 할 준비가되어 있고 여기에있다 apicc 그리고 그럼이게 뭐지? 우리는 우리가 도달 한 끝을 찾고있었습니다 그는 여기에 복사 버튼이 있습니다 이 피카를 잃지 않으려 고

언제든지 제어판에서이 앱을 찾고 구글은 우리에게 선택을 줄 것이다 프로젝트는 일단 우리가 이 프로세스를 완료하면 새로운 다른 응용 프로그램에 대한 프로젝트를 상상해 보라 android 또는 웹 프로젝트의 경우 당신은 웹 페이지를 만들고 있습니다 좋은 google지도를 포함하십시오 모든 프로젝트에는 앱과 키가 필요합니다

이걸로 아무 것도 우리가 이미 끝냈다 우리가 아래쪽 버튼을 누르면 이제 apicc와 함께이 작업을 수행하십시오 에서 일련의 작업을 수행해야합니다 에 우리의 응용 프로그램을 공개 다음 동영상은 우리가 앱을 보호해야 함을 새 키 경고 고지 어쩌면 다른 비디오에서 나는 말할지도 모른다 원하는 경우 지금 보호하는 방법 앱을보고 메뉴로 이동합니다

아피스 여기 apis에서지도를 찾습니다 kfor 안드로이드 당신이 세부 정보를 제공 여기 자격 증명으로 가서 거기에 간다 우리는 앱과 잘할 수있는 열쇠를 가지고있다 이 비디오를 그 지점에 남겨 두자 우리가 만나는 사람과 내가 너에게 나는 항상 너를 머물도록 초대한다

까지 다음 배달에주의를 기울이십시오 잘 돌아 간다

Principles of mobile app design: Delight users and drive conversions – Google I/O 2016

JENNIFER GOVE : 안녕하세요 어떻게 모든이다? 관객 : 좋습니다

제니퍼 GOVE : 좋아 그런 멋진 군중 오늘 내 이야기에 모두와 주셔서 감사합니다 제 이름은 Jenny Gove이고 저는 User Experience Researcher입니다 여기 Google에서

나는 지금 Google에 10 년 동안 이달에 있었는데, 그게 우연이라고 들었는데 [클리핑] 고맙습니다 나는 그것이 우리가 몇 년의 시간과 일치한다고 들었다 I / O 컨퍼런스 개최 그래서 두 주년, 정말 재미 있습니다 그래서 오늘 오후에 우리는 이야기 할 것입니다

훌륭한 앱 개발 및 원칙 수립에 대해 귀하와 공유하고 싶은 모바일 앱 디자인, 그래서 당신은 당신의 사용자에게 훌륭한 경험을 할 수 있습니다 그리고 왜 이것이 중요한가? 글쎄, 중요한 이유는 죄송합니다 각 앱에는 150 만 개가 넘는 앱이 있습니다 우리가 알고있는 상점 거기에는 많은 경쟁이 있습니다

앱이 유용성 결함으로 고통 받기를 원하지는 않습니다 나는 유용성 결함과 사용자 경험 문제를 생각한다 일부 앱의 참여가 부족할 수 있습니다 예를 들어 25 %의 앱과 같은 것을 배웠습니다 때로는 두 번 이상 사용되지 않고 34 %의 앱 11 번 이상 열리지 않습니다

따라서 주변에 이러한 통계가 있습니다 앱 참여 및 재 참여와 관련하여 우리는 그 문제 자체에 대해 많은 연구를하고 있습니다 구글에서 우리가 가지고있는 특정 제품들 그러나 나는 그것이 정말로 우리에게 일하고 있다고 생각한다 우리의 사용자 경험과 우리의 애플 리케이션에서 사용성 문제

그래서 저는 여러분에게 세 가지에 대해 이야기 할 것입니다 남은 얘기들 나는 너에게 경험에 관한 이야기를 할 것이다 최근에 앱을 가지고 있었다 나는 너에게 한 연구에 대해 말할거야

정말 멋진 앱을 만드는 방법을 이해하기 위해 도망 쳤습니다 경험 그리고 저는 몇 가지 원칙을 다룰 것입니다 우리가 온라인으로 발행 한 내용으로 이해할 수 있습니다 앱을 만들기 위해 할 수있는 핵심 사항 더 나은 경험

그리고 그 원칙들 내에서, 나는 너를 위해 많은 자원이있어 뿐만 아니라 그 길을 따라 도울 수 있습니다 그래서 내 이야기 가족과 휴가를 보내고있는 동안 여기에 우리는 플로리다에서 멋진 시간을 보내고 있습니다 저와 저의 파트너이자 아이들입니다

그리고 우리가 휴가를 가기 전에 우리가 머물기 위해 일련의 호텔을 세웠다 그것은 스스로 운전하는 여행이었고 나는 이것들을 미리 예약했다 – 나는 그것을했다 내 노트북에 플로리다에 도착했을 때 많은 호텔이 발견되었습니다 새로운 기술 – 앱을 최대한 활용하기 시작했습니다

구체적으로 – 나에게주기 위해서 나의 여행 중에 정말로 매끄러운 약간의 경험 그들은 내가 체크인 할 수 있도록하는 일을 지금하고 있습니다 내가 도착하기 전에 – 비행기를 타듯이 – 그리고 내가 열 수 있도록 내 방으로 곧장 갈 수있게 해줘 문, 응용 프로그램과 함께

꽤 멋지다 나는이 새로운 것들로 꽤 날아 갔다 그들이 할 수 있었던 일 하지만 내가 휴가를 갔을 때 무슨 일이 있었는지, 체크인 통보가 왔어 내가 뭔가에 일렬로 서있는 동안 이렇게, 테마 파크의 롤러 코스터

그것은 나에게 물었다, 내가 체크인하고 싶어 했느냐? 그리고 나도 나에게 물었다, 나는 자기 자신의 방을 선택하고 싶어했다 또는 나는 그들이 나를 위해 선택할 수있게 했습니까? 음, 내가 예약했을 때 나는 기억한다 텍스트 필드가 있었는데, 나에게 물어 봤어 내가 요청을 받았 더라면 나는 바다가 보였습니다 왜냐하면 저는 다음 호텔에이 아름답고 깨끗한 해변이 있음을 알았습니다

나는 발코니가있는 방을 주문했다 저는이 멋진 경험을 정말로 원했고, 바다를 내려다 보면서 하지만 노트북에서의 경험이 이 앱의 경험으로 바꿀 것입니다 나는 지금 직면했다 나는 그것에 대해 약간 염려했다

그리고 나는 더 나은 기회를 가질 수있을 것이라고 생각했다 내 방을 선택하는 것보다는 그들은 나를 위해 선택합니다 항상 당신 손에 맡기는 것이 더 낫지 요? 그래서 나는 내 방을 선택하기로 결정했다 그들이 나에게 준 것은 휴대 기기에서 꽤 좋았습니다 실제로 효과가있었습니다

나는 그것이보기에 상당히 도전적 일 것 인 것처럼 보인다라는 것을 알고있다 부동산의, 그러나 그것은 아주 잘 작동했다 그들은 분명히 다른 방을 배치했다 그들은 방의 출입 여부를 명확하게 표시했다 하지만 단 한 가지 문제가있었습니다

그리고 그것은 호텔이 어떤 방향으로 향하고 있는지 전혀 몰랐습니다 바다 앞 그래서, 나는 줄을 서 있었고, 알아 내려고 노력했다 어떻게 해결할 수 있을까? 이제 실제로는하지 않은 몇 가지 해결 방법이 있습니다 그 때를 생각해보십시오

Google지도, 어쩌면 Google 이미지를 파악하거나 볼 수도 있습니다 이 경우 호텔은 다소 대칭입니다 그래서, 그것은 매우 까다로울 것입니다 나는 일종의 엄지 손가락 규칙을 사용하기로 결정했다 그리고 내가 생각하기에, 가장 많이 찍은 방을 가진 쪽 아마 바다를 마주하고 있었던 쪽이었다

그래서, 여기 730 방을 선택하기로 결정했습니다 그래서 우리는 호텔에 도착해서 모든 가방을 가져 갔고 너 무슨 일이 일어날 지 알지? 나는 이것 같이 조금 보인 전망을 얻었다 [웃음] 큰 실망 그럼 내가 뭘해야 해? 그런데 나는 다시 모든 길을 가야했다, 다시, 리셉션에 – 나는 내가 생각했다 우회로, 응용 프로그램을 사용하여 – 접수와 이야기

그들은 매우 도움이되었고, lovely 한 호텔이었고, 그것을 고쳤다 나를 위해, 그리고 결국, 우리는 위로 올라 갔다, 다른 마루, 호텔에 들어갔다 나는 전망을 얻었다 그것은 훨씬 더 같았습니다 아름답군, 응? 이것은 실제로 플로리다입니다

바하마처럼 보입니다 정말로, 정말로 멋졌다 그래서 인 – 게스트 서비스는 인간의 개입이 요구되었다 앱이 실제로 제공되지 않았기 때문에 내가 바라는 서비스 너무 잘 했어, 나는 정말로 내가 사용할 수있는이 새로운 기술로 찍은, 그러나 그것이 배달되지 않았기 때문에 그것은 짧아졌다

이 중요한 정보는 나를위한 것입니다 나는지도상의 정보가 필요했다 이 경우에는 바다의 전망이 필요했습니다 약간의 파도 방금 오리엔테이션이 필요했습니다

그래서 나를 위해, 그것은 매우 비판적이었다 이 아름다운 해변에 대한 내 견해, 이 주차장보다 그리고 그것은 훨씬 더 비판적이었을 수도 있습니다 내 휴가에 아주 친애하는 것보다 그것은 클라이언트를위한 이벤트 매니저 예약 일 수 있었지만, 아마 그것은 손님들을 위해 예약 된 사람들이었을 것입니다

결혼식이나 무언가를 위해서 한 가지 교훈은 분명합니다 우리는 개발자와 디자이너로서 전체 흐름을 이해할 필요가있다 우리 사용자가 겪고있는 그리고 그 부분은 부서집니다 이것은 정말로 시원하고 신기술이었습니다

그러나 나는 모든 것을 통해 백 트랙을 정렬해야했다 그 앱이 살 일걸요 날 구해줘 그래서 그 경험을 정말로 이해합니다 처음부터 끝까지

그리고 저는 모바일에서 생각한 것은 그 작은 것들입니다 우리는 우리가해야 할 것을 깨닫지 못한다 그래서 우리가 정말로 이해해야하는 이유입니다 사용자의 관점과 사용자의 경험 그래서, 제 이야기는 그런 것들에 관한 것입니다

그리고 우리가 그들을 어떻게 고칠 수 있는지 내가 너에게 약간의 역사를 알려줄 께 2 년 전, 우리는 많은 경험 특히 모바일 웹의 경우 문제가 많았습니다 사람들을 위해 그래서 우리는 대규모 연구를 수행했습니다

어떤 일이 일어나지 않았는지 이해하려고했습니다 모바일 웹 용으로 올바르게 구현, 우리가 더 잘할 수있는 곳, 우리는 모바일 웹을위한 25 가지 원칙을 발표했다 그것들은 정말로 잘 해냈습니다 사람들은 그것을 일종의 초기 단계로 사용했습니다 더 나은 사용자를 제공하기위한 좋은 방법 모바일 웹에서의 경험

하지만 그뿐 아니라 우리는 사람들이 우리에게 돌아와서 말했습니다 이것은 모바일 웹에 적합하지만 내 앱입니다 내 앱은 어떨까요? 내 앱에 대해 말해 줄 수 있습니까? 그래서 나는 다른 연구를하라는 부름을 많이 받았다 그리고 애플 리케이션에 대한 연구, 그래서 우리가 한 일 이죠 최근에는 연구에서 기본 앱을 살펴 보았습니다

오늘 내가 너에게 선물 할 원리들 그 일의 결과입니다 이 연구에서 우리는 특허를 이해할 수있었습니다 운 좋게 사용자 경험을하게하고, 운 좋게 행복하게 우리는 일부 회사가 더 나은 방법으로 구현 된 것들, 그 특허가 왜 더 잘 작동하는지 이해하십시오 그것들을 당신에게 가져 오십시오

그리고 이것을 잘 이해하는 것이 우리에게 중요합니다 그래서 우리는 원칙에 확신을 가질 수 있습니다 우리가 말하고있는 것, 그리고 너 자신의 제품에이를 구현하는 데 자신감을 가질 수 있습니다 그래서이 연구를하기 위해 우리는 회사와 파트너 관계를 맺었습니다 AnswerLab이라고합니다

그들은 사용자 경험 컨설팅 기반 샌프란시스코 그리고 우리는 그들과 협력하기 때문에 우리가 연구를 원했기 때문에 규모를 조정할 수있었습니다 꽤 큰 규모입니다 모바일에서 100 가지 앱에 대한 상호 작용을 연구했습니다 그래서 이들은 대형 소매점, 소규모 서비스 제공 업체를 통해 우리는 뉴스 앱을 보았고, 우리는 많은 다른 종류를 보았다

식료품 점과 같은 서비스, 여행 서비스, 소매업, 중소기업 우리는이 일환으로 게임을 보지 않았습니다 그것은 의도적으로 이루어졌습니다 왜냐하면 우리는 그것이 약화 될 것이라고 느꼈기 때문에, 또는 희석, 원리 우리는 게임이 아마도 완전히 다른 세트를 가지고 있다고 생각합니다 그걸 제외하고, 우리는 다양한 수직 계열을 조사했습니다

그리고 우리는 샌프란시스코, 시카고, 뉴욕시 이제이 연구에 참여한 103 명의 참가자가있었습니다 그래서 사용성 연구를 위해, 그것은 정말로 크다 그들은 개별적으로 실험실에 들어 왔고, 각각 90 분 동안 따라서 155 시간의 사용성 연구가 가능합니다

그래서, 만약 당신이 밤새도록 그리고 하루 종일 밤새 위로 머물렀다면, 그것은 거의 일주일이 될 것이고, 휴식을 취하지 않을 것이며, 실제로는, 그것은 일주일에 거의 4 주 정도가되었습니다 그래서, 실제로 큰 연구가 있습니다 그래서 우리는이 다른 수직을 커버 할 수있었습니다 그리고이 연구에서 우리는 무엇을 했습니까? 음, 사람들이 연구에 들어갔다 90 분 동안 그들은 정말 6 개의 앱을 사용할 수 있습니다

그것들 각각에 대해 좋은 일을하고 있습니다 그들은 그들과 함께 자신의 휴대폰을 가져 왔고, 그 이유는 우리가 그들을 원했기 때문입니다 전화에 정말 익숙합니다 그리고 우리는 어떤 문제도 원하지 않았습니다 다른 기기이거나 그렇지 않았습니다

뒤로 버튼 또는 그와 비슷한 것에 익숙합니다 그래서 Android는 약 50 %, iOS는 약 50 %를 차지했습니다 그리고 연구에 참여했을 때 우리는 무엇을 했습니까? 그래서, 우리는 다른 작업을하고 다른 시나리오를 설정했습니다 그들을 위해 우리는 그 일을 무언가로 만들기 위해 최선을 다했습니다

그들에게도, 그들이 할 수 없도록, 우리가 부르는 것을, 만족스러운 일을하는 것입니다 가능한 한 빨리 작업을 수행 할 수 있습니다 그들이 할 수있는 한 우리는 그들이 그 일에 관심을 갖길 원했습니다 그래서 우리는 그들이 관심을 갖는 것에 관해 종종 그들과 이야기했습니다

이 예에서 우리는 그들과 대화 할 수 있습니다 좋아하는 음식에 대해 이해하고 이해합니다 먼저 그들로부터 무엇인가, 그 전에 그들이 그것을 주문할 수 있는지를 물어보기 그날 저녁 저녁 그리고 우리는 그들이 큰소리로 말하게했습니다, 사용성 용어로 불리는 것이 무엇인지, 생각대로하는 프로토콜을 사용했고, 우리는 그렇게했습니다 그래서 우리는 그들이 고통의 포인트를 이해할 수 있었다

그들이 다른 업무를 수행 할 때 맞았다 그들이하고있는 일을 어디에서 물건이 원활하게 흘러 갔는지 이해하십시오 그렇게 해본 결과 우리는 데이터를 취했습니다 – 많은 데이터가있었습니다, 당신이 상상할 수 있듯이, 그 많은 유용성 자료 – 우리는 그것을 25 가지 원칙으로 정리했습니다 그래서 이것은 당신이 취할 수 있고 이해할 수있는 것입니다 자신의 앱에 적용 할 수 있습니다

우리는이 원칙들을 6 개의 챕터로 분류했습니다 하지만 내가 그들에게 들어가기 전에, 나는 우리가 실제로이 25 가지를 어떻게 얻었는지 설명합니다 그래서 그것을 25 가지 원칙으로 만들기 위해, 우리는 이것이 넓은 범위의 문제라는 것을 알아야했습니다 우리는 그것을 알아야만했다 상당히 일반적인 문제였습니다

우리는 25 가지 이상의 것들을 만났습니다 앱에서 문제가 있었지만 우리가 가장 큰 문제를 치고 있는지 확인하기 위해, 우리가 더 나은 방법을 구현 될 수있다 승인 그래서, 우리가 가지고있는 다른 장 앱 탐색 및 탐색, 앱 검색, 상거래 및 전환, 등록, 양식 입력 및 유용성 및 이해력 이제 우리는 25 가지 다른 원칙을 가지고 있습니다

하지만 여기서,이 이야기에서, 나는 단지 두 가지 원칙으로 갈 것입니다 각 챕터와 나머지 원칙들 온라인으로 사용할 수 있습니다 나는 또한 당신을위한 자원을 모아 봤다 일부 구현에 도움이되는 당신이 여기서 보는 것들 스크린을 찍을 좋은 시간이 될 것입니다

그것은 당신이 당신 자신의 시간에 들여다 볼 수있는 자원이기 때문에, 더 자세하게 이제 앱 탐색과 탐색부터 시작하겠습니다 따라서이 장은 실제로 사용자에게 내용을 안내하는 것에 관한 내용입니다 그들이 찾고있는, 빨리 그래서 우리는 일련의 핵심 원칙들을 모았습니다

효과적이고 유쾌한 앱 탐색을 만드는 데 도움이됩니다 이제 이들 중 두 가지를 살펴 보겠습니다 따라서 사용자에게 큰 도움이 될 수있는 기능 위치를 자동으로 감지하지만하지 않습니다 위치 기반 작업이 필연적으로 예외없이 현재 위치를 기반으로합니다 우리는 이것을 너무 자주 본 것 같아요

그래서 정말 대단한 일입니다 구현하고 도움을 줄 수있다 사용자가 무언가를 원할 때 끊김없는 경험 위치는 있지만 기본적으로 사람들을 활성화시키는 방법없이 과도하게 적용된 것을 보았습니다 해당 위치를 변경하십시오 그래서이 예에서 누군가 오늘 밤 호텔을 찾고 있습니다

그들이있는 곳 근처의 호텔을 찾고 있습니다 불행히도, 위치를 바꿀 수는 있지만, 그것을하는 유일한 방법은 아마도 설정을 통과하는 것입니다 우리는이 문제를 여행 앱뿐만 아니라, 소매 앱에서도 사용했습니다 우리는 무언가를 찾고 싶어하는 사람들의 유스 케이스를 보았습니다 상점에 있었지만 그 위치는 아마도 부모가 살고있는 곳 근처에서 그 가게 근처에 있었는지 알아 내고 싶었다

부모님 께 그 사실을 알릴 수 있도록 그래서 단지 이것을 제공하는 것입니다, 기본적으로 우리는 우리는 너무 많은 사용 사례를보고 있습니다 시나리오 밖이었습니다 여행에서 우리는 사람들이 나타날 곳을 보았습니다 그들의 교통 수단과 그들이 원했던 호텔 기차역의 다른 쪽 끝에 책을 썼다 라인, 그리고 그들은 지금 호텔을 예약 할 시간이 있었는데, 하지만 그들은 그들이있는 곳에 있지 않습니다

당시 호텔이 필요했습니다 훨씬 더 나은 시나리오는 여전히 사람들이 현재 위치를 사용할 수있게하고, 그러나 그들을 잘 변화시킬 수있는 자원을 제공해야합니다 근본적으로 위대하고 위대한 기술입니다 분명히 당신이 사용하도록 권장하지만, 그것은 과도하게 적용된 종류입니다, 화면의 일부를 사용하지 않고 부동산 사용자가 위치를 변경할 수 있도록합니다 그 자동 감지 위치를 사용하고 싶다면, Google Places API를 사용하면 현재 지원되는 위치를 알아 내려면 우리는 당신을위한 짧은 링크가 있어요

저 재료에 도착하기 위해서 앱 탐색 및 탐색의 또 다른 측면 우리가 애플 리케이션으로 공정한 비트를 본 것은 앱에서 모바일 웹으로 이동합니다 그리고 내가 작성한 방식으로 볼 수 있습니다 이것을하는 것에 문제가 있다는 원칙 그것은 app-to-web 전환이 필요한 곳에, 그래서 그들이 필요한 곳에 마찰이 가해지지 않도록하십시오

그래서 저는 여기 아이디어가 각각의 경우에 정말로 필요하다고 생각합니다 그것을 위해? Google은 여기 Google에서 기술을 만들기 위해 노력하고 있습니다 이 장면을 훨씬 더 부드럽게 만들기 위해 필요한 전환점 그것을하기 위해, 그러나 현재, 우리는 여전히 적어도 일종의 성능 저하를 봐라 그래서, 정말로 당신이 가지고 있는지 모바일 웹으로 사람들을 밀어 넣는다 그들이 지금 앱 경험에있을 때, 그런 다음 마찰이 없도록하십시오

따라서이 예에서 우리는 누군가 누가 비행기를 탑승하는지 이것은 아주 평범한 상황이 될 수 있습니다 사람들이 모바일 웹으로 이동합니다 그러나 우리가 자주 본 것은 단순히 여행 앱에있는 것이 아니라, 다른 시나리오에서도 우리는이 경험을 보았습니다 근본적으로 변한다

그래서 우리는 이런 것을 보았습니다 승인? 그리고 때로는 일어날 수 있다고 생각합니다 팀의 조직 구조 때문입니다 알다시피,이 앱 팀이 모바일 웹입니다 팀, 그리고 그들은 충분히 말하지 않았어, 그렇지? 그래서 저는 몇몇 회사들이 더 좋은 일을하고 있다고 생각합니다

이 팀은 함께 사용자를 계획 할 수있게합니다 경험, 모양과 느낌, 내용 배치 방법에 대해 설명합니다 그런 다음 실제 구현을 분리합니다 다른 플랫폼에서 따라서 더 나은 경험은 회사들은이 점에 대해 정말로 사려 깊다

그리고 그 모습과 느낌을 매우 매끄럽게 만들 수 있습니다 모바일 웹으로 바로 이동할 수 있습니다 안드로이드에서, 우리는 이것에 대해 약간의 연구를하고 있습니다 Chrome Custom이라고하는 몇 가지 기술이 있습니다 살펴 봐야 할 탭

그것은 당신을 활성화 시키는데 정말로 도움이됩니다 툴바 색상 변경, 종료하고 애니메이션을 입력하여 해당 앱에서 이동하는 전체 과정 모바일 웹에보다 원활하게 전달할 수 있습니다 두 번째 장으로 이동하십시오 따라서 앱 검색에서의 중요성 정말로 과소 평가 될 수 없습니다 이제 몇 가지 중요한 검색 구현에 대해 이야기 해 보겠습니다

따라서 검색 필드를 눈에 잘 띄게 표시합니다 우리는 모바일 웹 연구를했을 때 이걸 발견했습니다 검색의 중요성에 대해 따라서 가난한 사례에서 우리는 사람들이 그것을 찾을 것으로 기대하는 장소에서 검색, 그러나 텍스트를 찾기 위해 그것을 어떻게 기대할 것인가가 아닙니다 이리 우리가 본 연구에서 사람들은 수색을 위해 주위를 둘러보고있는 약간의 좌절을 가지고 있었다

때때로 그것은 메뉴 아래에 숨겨져 있었고, 가장 분명한 것 중 하나 인 것처럼 들리지만, 그러나 나는이 연구에서 내가 본 것에 대한 나의 요약이 무엇인지, 개발자와 디자이너가 구현하지 않았다는 것입니다 충분한 검색 필드 영구 검색 필드를 포함해야합니다 검색이 정말로 중요한 부분 일 때 앱에서의 내 경험에 대해 무슨 일이 일어나고 있는지 생각하는 사람들이 많이 있습니다 검색이 중요하다고 생각하지만 그렇지 않습니다

스크린 부동산을 바치는 것이 중요합니다 그러니 앱에서 확인해보세요 현재보다 현저하게 강조해야할까요? 아르? 그래서 우리는 이것에 대한 조언을 Material Design에두고 있습니다 그리고 우리는 지속적인 검색을하고 검색 필드에 넣고, 확장 검색도 있습니다 우리는 유리 모양의 아이콘을 가질 수 있습니다

물론 검색을 위해 확장되었습니다 앱에서 검색의 중요성에 대해 생각해보십시오 그리고 사람들이 얼마나 중요한지는 중요합니다 검색 유형에 대한 결정 구현해야합니다 그리고 구현 세부 사항을 위해, 검색 대화 상자와 검색 위젯이 있습니다

이 링크를 클릭하면 더 많은 정보를 얻을 수 있습니다 필터 및 정렬 옵션은 어떻게됩니까? 대단히 중요합니다 다시 한 번, 우리는 그들이 숨겨져 있거나 일종의 묻혀있는 것을 보았습니다 또는 더 아래로, 사람들은 그들에게 갈 수 없었다 그들이 필요로하는만큼

그것은 우리가 최근에 한 우리 연구가 보여준 것입니다 우리는 그것의 훌륭한 구현을 보았습니다 그러나 아직도해야 할 일이 더 있습니다 셔츠에 대한 결과 242 개, 필터링하거나 정렬 할 방법이 없습니다 따라서, 더 나은 구현은 정말 좋은 클리어 버튼

필터 사람들은 그것을 아주 분명하고 쉽게 볼 수 있습니다 그리고이 예는 의류에 대한 것입니다 이 패널을 모든 올바른 종류로 슬라이드했습니다 그 (것)들을위한 수색 선택권의

그래서 당신은 베스트 매치, 최신 콜렉션, 그런 종류의 것 내가 이런 필터를 보았을 때 한 가지는, 몇몇 회사들은 예를 들어 사이징을 실시하고 있었고, 재고가 없을 때, 그리고 그것은 사람들에게 문제를 일으켰습니다 그들은 그들이 이제까지 할 것인지 알지 못했기 때문에 재고가 그들의 크기가 그래서 여분의 작은 것을 빼앗긴다고 상상해보십시오 그냥 그것이 주식에 없었기 때문에, 사람들 그것이 다시 올지 모르겠다

그보다 나은 경험은 그들을 가능하게하는 것과 같습니다 아마 재고가 언제 돌아 왔는지 알아보기 위해 가입하십시오 그러나 확실히 그것을 보여주고, 그것을 안정된 상태로 보여준다 좋다 그래서 여기에 색과 가격 그리고 또 다른 한가지가 있습니다

나는이 디자인에 대해 좋아한다 필터를 지우거나 필터를 적용한 다음 패널을 닫으려면 맨 위의 별도 수표, 그래서 패널을 닫는 것에 대해 혼란스럽지 않습니다 않습니다 따라서이 주제에 대한 검색을 유지하면서, 사람들에게 검색을 돕는 다른 방법이 있습니다 그 중 하나는 사용자 정의 제안 추가입니다

이는 응용 프로그램의 데이터에서 만들 수 있습니다 그래서 그것은 사람들이 그들의 수색에 정말로 도움이 될 수 있습니다 또 다른 하나는 최근 질의 제안입니다 그래서 모든 기술과 시설 그 검색 경험을 향상시킬 수 있습니다 보다 깊이있는 검색 경험을 통해 생각해보십시오

좋은 주제입니다 상거래 및 전환 따라서 사용자는 앱이 정말 부드럽길 기대합니다 제품을 찾고, 학습하고, 구매하는 경험 그럼 몇 가지를 살펴 보겠습니다

이 연구에서 상거래 및 전환에 대한 정보가 공개되었으며, 전환 경험을하도록 돕습니다 따라서 비교 쇼핑 기능을 사용할 수 있습니다 이 예에서 왼쪽의 여기에 부동산 앱, 여기, 그리고 사람들에게 그냥 그들은 아래로 스크롤하여 볼 수 있습니다 다른 집에서 그들이 좋아하는 것, 그들은 기억에 의지해야하며, 사람들, 우리, 너와 나, 우리는 모두인지 주의자이다 우리는 우리의 두뇌를 그렇게 많이 사용하는 것을 좋아하지 않습니다 그리고 우리는 사용자가 자신의 뇌를 많이 사용하도록 만들고 있습니다

여기, 그들이 물건 등을 보았던 곳을 기억합니다 그러나 우리는 더 잘할 수 있고 그 중 일부는 할 수 있습니다 우리가 본 것은 사람들을 돕기 위해 이런 방식으로 우리는 사람들에게 북마크 아이템을 제공하게됩니다 그들은 그것을 보았습니다 그래서 그들은 그것을 비교할 수있었습니다

모바일에서이 작업을 수행하는 것은 여전히 ​​매우 어렵습니다 그러나 여전히 우리가 할 수있는 모든 일이 도움이됩니다 그래서 저는 여기서 당신을 보여 드리겠습니다 사람들이 비교할 수있게했다 그리고 나서, 당신은 그것이 꽤 제한되어 있음을 볼 수 있습니다, 전화의 크기와 함께,하지만 여전히, 당신은 그 정보를 모으는 것

그것은 그들이 다른 모든 가정을 무시할 수 있다는 것을 의미합니다 걱정하지 않고 침실을 비교할 수 있습니다 그들은 욕실을 비교할 수 있습니다, 가정의 비용, 기타 등등 우리는 이것이 필요하다는 것을 알고 있습니다 연구에서, 우리는 사람들이 이에 대한 대안을 취하는 것을 보았습니다

그래서 소매상에서 사람들이 장바구니에 품목을 추가하는 것을 보았습니다 단지 그들이 같은 장소에서 그들 모두를 볼 수 있도록 그리고 그 일을 생각하는 사용자가있었습니다 다른 사람들이 어려움을 겪었습니다 그래서 우리는 이것이 필요하다는 것을 압니다

비교 및 탐색 경험에 대해 생각해보십시오 앱 내에서 사람들이 필요로하는 것 그런 다음 결제 수단을 쉽게 추가하고 관리 할 수 ​​있습니다 나는 다른 날에이 사실에 대한 가난한 예를 실제로 발견했습니다 내가 물건을 사러 갔을 때였습니다

나는 다시 휴가를 가고 있었다 나는 휴가를 가기를 좋아한다 그리고 나는 예약을하고 있었다 임대 주택 그리고 카드를 업데이트해야 할 시점까지갔습니다

내 머리 속의 나의 모델은 음, 새 카드가 도착했다 이전과 같은 카드 일뿐입니다 그것에 날짜가 새겨졌습니다 내 마음 속에는 내 카드에 대한 내 정신 모델이 있습니다 그것은 같은 카드입니다

그냥 교체가 필요합니다 새로운 결제 수단이 아닙니다 그래서 기존 카드를 편집 할 수있을 것으로 기대했는데, 그러나 그것을 할 수있는 시설이 없었습니다 그래서 나는 개발자의 모델을 이해해야 만했다 새로운 결제 수단을 추가해야했습니다

이 예에서는 그 사람이 그들이 체크 아웃되고있는 지점까지, 하지만 카드를 편집하거나 새 카드를 추가 할 방법이 없습니다 그것은 다른 곳에서도 가능합니다 하지만 우리 대부분은 생각하지 않습니다 글쎄, 나는 아침에 일어나서 생각할 것입니다 해당 앱에서 결제 수단을 관리해야합니다

종류가 별개의 활동입니다 맞습니까? 우리는 필요할 때 그것을 생각하는 경향이 있습니다 우리가 돈을 낼 때 그래서, 여기에 문제가 있습니다 따라서이 예에서는 훨씬 좋습니다

기존 카드를 편집 할 수있는 옵션이 있습니다 새 결제 방법을 추가합니다 여기에 여러 가지 결제 수단을 제공하고 사람들을 유도합니다 매우 깨끗한 형태의 디자인으로, 여기, 사용자가 새로운 신용 카드를 추가하기로 선택한 경우, 원할 경우 카드를 스캔 할 수도 있습니다 그래서 그 경험을 멋지고 깨끗하게 만드십시오

이제 Google에서 제공하는 하나의 시설 Android Pay는 그 중 하나를 선택하는 방법입니다 지불 할 이 아이디어는 사용자에게 매우 간단합니다 사용자가 Android Pay를 통해 원활하게 결제 할 수 있으며, I / O에는 여기에 대한 이야기가 있다고 생각합니다 이 링크에서 더 많은 정보를 얻을 수 있습니다

그래서 등록 등록은 회사 및 개발자에게 매우 인기가 있으며, 그게 그렇게 보였으니까 우리가 사용자로부터 참여를 얻을 수있는 곳입니다 그것은 사용자가 우리에게 맡기는 곳입니다 우리는 오래 전부터 이러한 등록을 제공 한 사실을 알고있었습니다

장벽이 앞에있는 것은 사람들이 도달하기위한 커다란 장애물이 될 수 있습니다 먼저 뭔가를 제공하는 것이 낫습니다 그래서 그들은 그들의 편에서의 참여를 느낄 수 있습니다 회사에 다른 몇 가지가 있습니다

등록과 관련하여 오늘 이야기하고 싶습니다 그래서 우리는 사용자들이 로그인하고 가입하는 데 어려움을 겪고있는 것을 보았습니다 까다로운 일이지, 그렇지? 우리는 종종 사용자가 양식을 작성하는 것을 보았습니다 그들이 제공 되었다면 그들이 가입하기로되어있을 때 서명하고 있었고, 그 반대 아마 우리 모두에게 일어난 일입니다

그래서 우리는 더 나은 경험을 발견했습니다 사람들에게 로그인하거나 등록 할 수있는 옵션이 주어졌습니다 그 단어들은 매우 달랐고, 그것들을 구별 할 수 있었고, 우리는 그들을 올바른 길로 끌 수 있습니다 그래서 그들은 그 혼란에 빠지지 않았습니다 우리는 등록 및 신원에 대한 솔루션을 많이 보유하고 있습니다

Google에서 우리는 전체 ID 플랫폼을 가지고 있습니다 내가 너를 보라고 권하고 싶다 기본적으로 인증 시스템입니다 몇 가지 구성 요소와 다양한 선택 사항이 있습니다 만들다

그래서 이들 중 하나는 Android 용 로그인입니다 사용자가 동일한 자격 증명으로 로그인 할 수 있습니다 그들은 Google에서 사용합니다 전체적인 의도는 그 과정을 더 많이 만드는 것입니다 쉽고 간단합니다

그 이야기는 다른 방법이 있습니다 암호 인증을 마찰없는 경험으로 만드십시오 우리 모두는이 상황에 처해있었습니다 우리에게는 효과가 없으며 모바일에서는 상당히 고통 스럽습니다 비밀번호를 계속 입력하면 작동하지 않습니다

앱에서 더 악화 될 수 있습니다 이 곳이 사람들이 돌려 보내진 곳이라는 것을 알았습니다 모바일 웹에 연결 했지, 그렇지? 그럼, 당신은 다시 그 고리에있어, 그리고 그것은 더욱 악화되고 있습니다 그래서 우리는 하나의 솔루션에 대해 이야기했습니다 사람들이 로그인 할 수있게 해줍니다

우리가 보았던 또 다른 하나는 훨씬 더 대중적이되고 있습니다 지문 입력이고, 우리의 연구에서, 사람들은 이것에 대해 꽤 행복했습니다 그들은이 일을 아주 많이 좋아했습니다 그래서 나는 이것이 좋은 것으로 생각합니다 또한 구현 세부 정보가 더 있습니다

여기서 지원되는 장치에서 지문 스캔을 사용합니다 그리고 Smartlock은 우리의 정체성 시스템의 또 다른 부분입니다 그것은 당신이 자동으로 사용자에게 응용 프로그램에 로그인 할 수있게하고, 그들이 저장 한 자격 증명을 사용합니다 그것은 또 다른 좋은 것입니다 이 연합 신원 조항의 일부 그리고, 만약 당신이 사용자들과 멀리 떨어져 있지 않다면, Sign-in Hints도 있습니다

우리에게 자격 증명 API를 사용하십시오 로그인시 사용자에게 힌트를 줄 수 있으며, 사용자 이름과 이메일 주소 모든 것은 서명 허들과 같은 쉬운 일종의 방식으로 이루어집니다 그래서 폼 엔트리 양식 입력에 대해 디자인에서 이야기했습니다

년과 년 동안 우리는 데스크톱 양식 입력 작업을 많이했는데, 우리가 모바일 웹에 갔을 때, 우리는 다시 모든 것을 다시 배우어야했습니다 그 양식들이 실제로 정말로 작고, 양식을 작성하기 위해 확장해야합니다 항상 앱으로 조금 더 나아졌습니다 우리가 양식을 디자인했기 때문에 모바일 장치의 구매부터

그러나 나는 말하기를 기쁘게 생각한다, 나는 우리가 먼 길을왔다라고 생각한다 그러나 우리 연구에서 보았던 것들이 아직도 있습니다 개선 될 수있다 그래서 저는 이것을 사용자 친화적 인 형태로 분류했습니다 내가 본 것들 중 몇 가지는 여전히 사용자가 자신의 업무에 많은 작업을해야하는 일부 앱

여러 다른 필드에 커서 놓기 그들의 전화 번호, 그리고 이런 것들에 대해서, 사용자 측에서 많은 노력이 필요합니다 또한 양식 필드가 어떻게 나타나는지 보려고 지불하지 않았습니다 사용자에게 문제가되었습니다 그 (것)들을 위해 종류를 분류하는 것은 단단했다 그들이 다음에 채워야 할 것의 그들의 정신 모델 그것들은 좌절감을 일으켰고 확실히 마찰적이었습니다

포인트 더 나은 교전은 여기에서 더 많은 일을하고 있습니다 백 엔드에 따라서 사용자가 휴대 전화에 글을 쓰고 싶어하는지 숫자 사이에 대시가있는 숫자, 숫자 사이에 공백이 있으면 아니면 하나의 긴 필드 일뿐입니다 그리고 그것을 만들어라

그것은 우리를 위해 조금 더 많은 일을한다 개발 측면에서,하지만 그것은 사용자가 훨씬 쉽게 사용할 수 있습니다 그들이하는 일을 이해하고, 오류가 반환되지 않습니다 또한 오류가있는 곳에서도 인라인을 제공합니다 정말 도움이됩니다

여기 앱에는 양식을 현장으로 옮기는 정말 좋은 직장 사용자가 정보를 입력하면 이는 사용자에게 매우 유리한 결과였습니다 따라서 멋진 텍스트 필드를 만드는 방법에 대한 많은 정보가 있습니다 머티리얼 디자인을 통해 서로 다른 측면에 대해 많은 이야기 좋은 양식을 만드는 것 특히 장소에 대해서는 지역 정보 자동 완성 기능을 사용할 수 있습니다

Places API의 일부로 다시, 그리고 이것은 이러한 형태로 채우는 데 정말로 도움이 될 수 있습니다 위치가 필요한 필드 양식 디자인의 또 다른 측면은 키보드와 일치하는 것입니다 필요한 텍스트 입력 이것은 꽤 잘 알려진 일이며, 그러나 우리는 여전히 잘 수행하지 못하는 중요한 앱을 보았습니다

따라서 사용자가 신용 카드에 커서를 올리면 필드에 추가하고 앱에이 항목이 있다면 너는 그것을 조사해야한다, 그것이 옳은 일을하고있는 것인가? 이 예에서는 여기에 올바른 일을하지 않습니다 사용자는이 키보드를 그대로두고, 올바른 키보드를 얻을 수있는 방법이 없습니다 대개는 아니지만, 여기에 숫자 키를 치고 나서 그들은 상단에 숫자가있는 키보드를 갖게 될 것이고, 적절하게 설계하는 것과는 대조적으로, 한 번 커서가 안에 있으면 그 (것)들을위한 숫자 키보드 이렇게 작은 것들, 양식에있는 모든 작은 것들 실제로 추가하고 양식 디자인을 체크 아웃하십시오 이런 식으로 사람들에게 정말로 도움이됩니다

입력 방법 지정에 대한 정보가 있습니다 이 링크에서 찾을 수있는 키보드 유형과 올바른 키보드 그런 다음 마지막으로 유용성과 이해력을 살펴 보겠습니다 이것들은 당신이 할 수있는 작은 것들입니다 우리가 우리 연구에서 보았던 것, 애플 리케이션을 통하여, 사용자들에게보다 자연스러운 경험을 제공합니다

우수한 사용자 경험을 보장하는 데 중요 할 수 있습니다 사용자가 걸려 넘어 지거나 경험을 포기하지 않는 경우, 언제든지 이것은 텍스트 레이블 및 시각적 키 제공에 관한 것입니다 시각적 정보를 명확히하기 위해 그래서 이전에 이것을 보았습니다 제 이야기에서 저는 시각적 인 열쇠가 빠져있었습니다

그 그림 속의 파도가 필요해 호텔의 방향을 이해하는 데 도움이됩니다 이 예제를 보자 몇 순간을 가지고 자신을 결정하십시오 그 아이콘이 나타내는 것이라고 생각하는 것

그들 중 일부는 아마 다른 사람들보다 분명합니다 답을 봐야할까요? 여기에 우리가 간다, 그래서, 그것은 나의 여행, 책, 클럽, 그리고 계정이다 누구가 그 (것)들을 맞았 는가? 나는 아마 계정이 그렇게 나쁘지 않았다고 생각한다 그러나 우리가 본 교훈은 다시, 나는 그것이 지나친 일반화라고 생각한다 우리가주는 규칙은 아이콘이 모호하고, 텍스트 레이블이 꼭 필요합니다

문제는 말하기에 때 아이콘 모호하다 우리 모두는 서로 다른 수준을 가지고있다 이해와 관련하여 너는 내가 생각하기에, 너의 많은 아이콘들 애매하게 될 것입니다 나는 당신에게 모범을 줄 수있다

따라서 필터 아이콘을 알 수 있습니다 이런 식으로 보이니? 그렇게 보편적이라고 생각할 수 있습니다 그것은 아주 다른 방식으로 그려집니다 많은 다양한 앱에서 보편적으로 사람들 사이에서 이해되는 것을 발견하지 못했습니다 그래서 나는 우리가 우리의 수준을 바꿔야한다고 생각합니다

앱의 아이콘 수와 관련하여 설정 라벨이 필요한 사람들, 사람들이 그것을 이해할 것입니다 그리고 이것은 매우 훌륭한 곳입니다 간단한 AB 테스트를 수행하고 레이블 제공 여부와 차이점 레이블을 제공합니다 여기에 구현 세부 정보가 있습니다 단추에 텍스트와 아이콘을 사용하려는 경우

그래서 그걸 가지고 있다면 그리고 라벨을 붙이는 것에 대해 이야기하고, 항상 저를 깨닫게 해줍니다 내 응용 프로그램에 액세스 할 수 있습니다 여기에는 많은 가이드 라인이 있습니다 응용 프로그램에 액세스 할 수 있는지 확인하십시오

그리고 오늘 내가 들어가야 할 마지막 원리 컨텍스트에서 사용 권한을 요청합니다 그래서, 이것은 우리가 Android M으로 가능하게 한 것입니다 하지만 우리는 여전히 상당수의 앱을보고 있습니다 그것을 이용하고 있지 않다 잠시 동안 iOS가 가능할 수있었습니다

지금도 따라서이 예에서 사용자는 다운로드 및 응용 프로그램을 열고 그들은 즉시 묻습니다, 위치를 사용할 수 있습니까? 그래서 아마이 앱은 그들에게 제안되었습니다 다른 누군가에 의해 그들은 오, 이것이 정말 좋은 앱이라고 말했다 당신이 가정 장식에 대해 배우고 싶다면, 그리고 그것은 당신이 살 수있는 몇 가지 정말 멋진 것들을 가지고있어

그러나 우리와 비슷한 방식입니다 문제가되는 등록을 생각 하겠지? 당신이 그것을 앞쪽에 요구할 때 넘어서 오는 장애물입니다 이것은 사용자에게 똑같습니다 개발자들이 말하는 것처럼, 내 위치를 알려주는 것과 같습니다 내가 너에게 다른 것을주지 않기 전에, 그렇지? 사용자는 종종 '아니오'라고 말하려고합니다

그들은 왜 그 이유를 정말로 이해하지 못하기 때문에 그들은 단지 당신의 앱을 둘러보고 싶었습니다 그래서, 그걸하는 더 좋은 방법입니다 안드로이드 M 때문에 지금 할 수 있어요 런타임에 컨텍스트에서이를 수행 할 수 있습니다 이 예에서는 매장을 검색하는 사람들이 있습니다

사용자가 자신의 동기 부여가 있기 때문에 훨씬 나아질 것입니다 권리? 그들은 그 가게를 찾을 수 있기를 원합니다 그 다음에 일어나는 일은 그들에게 더욱 분명합니다 뒤에 오는지도가 있고 그것 묻는다, 위치를 사용할 수 있습니까? 음, 물론 그렇게 할 수 있습니다 권리? 너는 받아 들일 확률이 훨씬 높다

당신이 문맥에서 묻는다면 우리는 이것을 위해 많은 자원을 가지고 있습니다 우리는 작은 비디오와 구현 세부 사항이 있습니다 런타임에 사용 권한을 요청할 수 있는지 여부 그리고 그것은 단순히이 원칙에 불과합니다 왜냐하면 많은 사람들이 그것에 대해 알고 있음을 알고 있기는하지만, 우리가 최근에 공부 한 앱에서 많이 보았습니다

그것이 여기있는 이유입니다 그래서 내가 원칙의 끝으로 나를 데려다 준다 너와 갈거야 각 장을 살펴 보았습니다 이러한 원칙을 온라인에서 더 많이 찾을 수 있습니다

그들은 모두 Google에서 생각할 때 온라인 상태입니다 그리고 여기 당신과 관련된 짧은 링크를 만들었습니다 원칙에 향상된 모바일 사용자 환경 사실 여러 가지 원칙이 있습니다

내가 무엇이 있는지 말해 줄께 모바일 앱 원칙, 새로운 설정 25 가지 모바일 원칙 중 새 집합이 있습니다 소매업을위한 25 가지 원칙 – 웹과 앱 모두입니다 다시 한 번 연구를 했으므로 그 정보는 그런 다음 모바일 웹 원칙이 있습니다 이전에 게시 한 내용, 이미 보았을 수도 있습니다

이 링크의 모든 링크는 동일한 링크입니다 더 자세한 구현 정보가 필요한 경우 모바일 웹 사이트에서 우리의 웹 펀더멘털의 일부이기도하다 사이트 및 그 곳에서 제공 한 특정 링크 추가 개발자 구현 세부 정보를 제공합니다 내가 가기 전에 한 가지 더 이야기하고 싶습니다 연구의 이야기

그래서이 연구에서, 신용 카드 스캔 기능을 구현 한 지불하기 위해서 이제 우리는 연구에서 소수의 사람들이 전에 그것을 사용했고, 그것을 가로 질러 왔고, 그것을 좋아했다 그러나 이것은 상대적으로 새로운 기술이기 때문에, 우리는 그것을 만난 사람들이있었습니다 처음으로 이제 스캔이라는 단어에 대해 생각하면 가장 친숙한 단어입니다

경험, 나는 생각한다, 단어 스캔과 더불어, 내가 식료품 가게에 가서 신용 카드를 스캔 할 때입니다 권리? 그리고 바로 옆에 내 신용 카드를 걸고 있습니다 음, 다른 기계를 통해 퍼팅, 정말, 그게 스캐닝 내가 스캔이라는 단어를 알고있는 또 다른 곳 사진 복사기에 종이 넣고있다 더 오래 전의 일이지만 여전히 스캔, 서로의 위에 뭔가를 가하고

따라서 사용자는이 요청을받습니다 신용 카드 스캔 그것은 스캔이라는 단어를 사용하는 것입니다 그리고 만약 당신이 그들을 번역하려한다고 상상한다면, 종종 가장 먼저 묻는 것은, 우리 카메라를 사용할 수 있을까요? 음, 카메라가 할 일은 무엇입니까? 내 신용 카드를 스캔하는 중입니까? 음, 아마도, 나는 그것을 이해하지 못한다 그래, 그래, 내 카메라를 사용할 수있어

그런 다음 여기에 신용 카드를 보관 해달라고 요청합니다 자동으로 스캔합니다 좋아요, 지시에 따라 놀라지 마시고, 우리는 연구에서 세 사람이 이것을 보았다 그리고 그들은 기다리고 기다렸다 그들은 대단히 실망했다

그들은 지불하는 것이 아주 간단한 방법이라고 생각했기 때문에 그리고 이것은 단지 이해에 관한 것입니다 우리가 사람들에게하고 싶은 것과 사용하고있는 언어 간단하고 사용하기 쉽습니다 불행히도 우리는이 모든 것이 효과가 있다고 생각합니다

아직 작동하지 않습니다 그러나 그것은 말이 맞습니다 그들이하는 일, 그들이 무엇을하도록 지시 받았기 때문에 그래서 다시, 나는 그 시점으로 돌아 간다 사용자를 이해하고있는 앞에서 만든 경험, 끝에서 끝까지

흐름과 고통의 포인트를 이해합니다 정말 중요합니다 네가 경험을 쌓기를 원하기 때문에 당신은 당신의 사용자를위한 정말 좋은 앱 경험을합니다 사용자가 좌절하지 않는 곳, 좌절감의 종류가 아니라 내 앱을 사용한 후에 느낌이 들었고 내 호텔 방까지 갔다

내 창문에서 그 주차장을 봤어 앱 경험을 할 수 있기를 바랍니다 사람들이 인생이 정말로 마찰이없는 것 같은 느낌을 갖게한다 해변의 경치와 더 비슷합니다 그래서 저는 여러분에게 세 차례의 테이크 아웃을 해드 리고 싶습니다

그리고 이것들은 생각할 수있는 세 단계입니다 이 이야기 이후에 대해 앱을보고 앱을 감사합니다 25 가지 원칙에 위배된다 간단히 말해서, 우리는 이러한 경험들 각각에서 무엇을하고 있으며, 그리고 그것을 측정하고 있습니까? 그게 너에게 길고 긴 길을 가져다 줄거야

하지만 앱도 독특합니다 맞습니까? 따라서 주요 사용자 여정을 실제로 이해해야합니다 그 붕괴 지점을 이해하십시오 내 호텔 앱에 내가 제공 한 것 정말 흥분 되긴했지만 내게서 깨진 점들 결국에는 잘 작동하지 않게되었습니다

그리고 나서 마침내, 당신 자신의 사용자 테스팅에 대해 생각해보십시오 Google Ventures의 가이드 사용자 연구를 위해 많은 자원을 제공합니다 실제로 작은 규모의 방법으로 사용자 테스트를 수행하면 당신이 제공 한 좋은 것들을 볼 수 있도록 앱에서 축하하고 고통을 식별 할 수 있습니다 귀하의 애플 리케이션에 포인트, 그래서 당신이 그들을 해결하는 방법에 대해 생각할 수 있습니다 시간 내 주셔서 감사합니다

[음악 재생]

Android Performance: UI (Google I/O '17)

[음악 재생] CHET HAASE : 와우, 미온 한 박수 고맙습니다

크리스 크랙 : 제 이름은 크리스 크레이크입니다 나는 안드로이드 UI Toolkiit에서 일한다 CHET HAASE : 나는 Chet Haas입니다 나는 또한 안드로이드 UI Toolkit 팀에서 일한다 그리고 오늘, 우리는 공연에 관해서 이야기하지 않겠습니까? 우리가 퍼포먼스 토크를한지 얼마되지 않았습니다

그래서 우리는 다시해야한다고 생각했습니다 우리가 공연에 관해서 이야기하기를 좋아하기 때문입니다 올해의 퍼포먼스 토크에서, 우리는 그것을 좀 더 유스 케이스 중심으로 만들고 싶었습니다 렌더링이 어떻게 작동하는지 조금 알려주세요 우리가 만든 변화들 중 일부는 성능 향상을위한 또한 실제로 어떻게 할 것인지에 대한 몇 가지 단계를 거칩니다

jank이 무엇인지 알아보고, 응용 프로그램에서 그것을 수정하는 방법 그러자 UI 성능, 이봐, 너 거기 간다 그래서 우리는 초당 프레임, FPS에 대해 이야기합니다 정말 좋은 통계입니다

무엇을 이해할 수있는 좋은 방법입니다 귀하의 신청서에서 진행됩니다 그러나 실제로 기간에 대해 생각하는 것이 좋습니다 권리? 따라서 초당 프레임 수는 적지 않습니다 솔직히 디스플레이는 초당 60 프레임을 맞고 있습니다

항상 그리고 나서 같은 숫자의 명중을 정렬해야합니다 응용 프로그램에 대한 초당 프레임 수입니다 그러나 기간에 대해 생각하는 것이 좋습니다 각 프레임이 복용하고 있습니다

그 프레임이 실제로 그리는 데 얼마나 걸리나요? 너는 그 창문 안에 들어 가지 않을거야 당신이 너무 오래 적응하지 못하면 따라서 응용 프로그램에서 jank를 수정하려면, 애매한 부분을 고치고 싶다면 언제 당신은 그 목록을 내미는 것입니다 중간에 프레임이 건너 뛰었습니다 사용자가이 janky 동작을보고 있습니다 고정하는 것은 단순히 프레임을 고정하는 것을 의미합니다

너무 오래 걸린다 또한 일관성에 대해 생각하는 것이 좋습니다 60 프레임을 가질 수 있다면 좋습니다 대부분의 경우 초당 하지만 가끔씩, 여러 프레임을 떨어 뜨리는 경우 연속적으로, 그것은 좋지 않다

당신이 정말로 원하는 것은 일관된 행동입니다 그래서 짐을 쫓는 것은 당신이있는 곳을 찾는 것입니다 그것들을 버리고 당신이 그것들에 기여하는 병목 현상을 수정합니다 그럼 시간에 대해 이야기 해 봅시다 앞으로 나아갈 시간을 살펴 보겠습니다

왼쪽에서부터, 오른쪽으로– 미안, 왼쪽에서 오른쪽으로 – UI 공간에서 어떤 일이 일어나는지 살펴보십시오 따라서 이러한 수직 새로 고침 동기화에 대해 생각해 보면, 매 16 및 2/3 밀리 초마다, 일반적으로 일반적인 디스플레이에서 Vsync 요청을 받고 있습니다 권리? 이것은 프레임을 게시하는 하드웨어 종류입니다 화면에 사용자가 뭔가를 볼 때입니다

60 초를 60, 16 2/3으로 나눈 값으로 나눕니다 나중에 필요할 때 수학을 끝낼 수 있습니다 그런 다음 프레임을 각 프레임에 매핑하면 이러한 각 프레임, 이 회색 상자는 게시물을 게시하기 위해 애플리케이션이 수행하는 작업 그 정보를 화면에 표시합니다 이상적으로, 모든 것들은 해당 프레임에 대해 일어날 필요가있는 것은 16 및 2/3 밀리 초 나는 그 말을 그만둬야 해

나는 16 밀리 초를 말할 것이고 너는 그것을 해석 할 수있다 그러나 당신은 원한다 내가 손으로 직접 그린 아름다운 아이콘 화면 맨 아래로 가면 사용자가 볼 수 있습니다 그래서 각각의 수직 동기화에서, 그들은 하드웨어 버퍼가 무엇이든간에보고 있습니다 님이 화면에 게시 중입니다

그래서 그들은 거기에서 그것을 볼 것입니다 하지만 문제가 생기면 렌더링, 프레임 중 하나가 너무 오래 걸리는 경우, 사용자는 그것을 보지 않을 것입니다 그들은 그들이 무엇을 정확히 볼 것입니다 이전 프레임에서 본 것입니다 귀하의 신청서에 너무 오래 걸렸습니다

당신은 프레임을 건너 뛰었습니다 그래서 그것은 jank입니다 그것이 우리가 분석하고 고치려고 노력해야 할 자국입니다 그러니 조금 뒤로 물러나서, 좋아, UI 툴킷에서 실제로 렌더링이 어떻게됩니까? 앱의 관점이 있습니다 당신의 응용 프로그램에서 계속 진행하면 프레임 워크가 실제로 무엇인지 살펴보십시오

너를 대신해서 여기 간단한 코드가 있습니다 나는 계속해서 돌아다 보니, 알았다 그래서 화면에서 볼 수있다 여기로

여기 간단한 코드가 있습니다 우리는이 색깔을 가지고 있습니다 상황이 지금은 밝은 회색입니다 그리고 사용자가이 사용자 정의보기의 중간에 클릭하면, 우리는 색을 바꿀 것입니다 우리는 그것이 필요하다는 견해를 말할 것입니다

무효화하려면 새 색상으로 다시 그리기 따라서 사용자가 화면을 클릭하면 onclick 메서드에 이벤트를 보내고, 우리는 상황을 바꿀 것입니다 그러면 우리는 무효화 할 것입니다 무효화하면 이후에 onDraw가 호출됩니다 일련의 일이 아닙니다

그것은 onDraw를 직접 호출하지 않습니다 하지만 시스템에 알려주면, 다시 그려야합니다 그리고 나중의 호출은 onDraw 메소드로 필터링됩니다 그런 다음 onDraw가 캔버스에 그립니다 그것은 결국 화면에 게시됩니다

UI 툴킷이 제공하는 모든 작업을 통해 너를 대신해서 그래서 플랫폼 관점에서, 무슨 일이 일어나고 있는지 한 줄에 여러 가지가 있습니다 무엇보다도, 주어진 프레임에서, Vsync 요청을 받으면 입력을 처리합니다 따라서 사용자가 클릭 한 경우, 사용자가 스크롤하는 경우 우리가 그 정보를 얻는 곳입니다 그것을 바탕으로 무언가를하십시오

애니메이션이있는 경우, 애니메이션이있는 경우 그 스크롤 목록을 놓아 줘요, 지금은 그냥 뛰어 다니고 있습니다 이벤트를 게시하여 목록으로 업데이트되도록합니다 공간에서 움직이거나, 화면에서 화면을 움직이는 것처럼, 우리는 그 애니메이션 이벤트를 처리합니다 속성을 변경합니다 그게 무효화되어 적절하게 다시 그려 질 수 있습니다

그런 다음 필요한 경우 레이아웃을 수행합니다 따라서 애플리케이션에서 변경된 사항이 사물, 크기 또는 위치를 변경하고, 그것이 우리가 측정하고 배치 할 때입니다 다시 변화해야 할 일, 무효화 및 다시 그립니다 그리고 나서 우리는 실제로 우리가 기록적인 무승부라고 부르는 것을합니다 이것이 이전 슬라이드에서 우리가 보았던 것입니다

onDraw 메서드에서 여기가 네가 무엇이든 할 수있는 곳이야 우리가받은 드로잉 작업을 원한다 내부적으로 저장합니다 캔버스, 새로운 색을 그려보세요

그래서 당신은 우리가 다음에 그릴 수 있도록 후드 아래에서 옳은 일 그리고 마지막으로 렌더링합니다 이것이 바로 우리의 무대입니다 그래서 처음 네 단계에서 모든 것을 할 수 있습니다 코드에서, 또는 표준보기에서, 우리는 그것을하고 있습니다

그리고 우리는 렌더링을 처리합니다 그리고 그것은 기본적으로 변형입니다 우리가 쓴 무엇이든 아래층에서해야합니다 나는 너에게 힌트를 줄 것이다 OpenGL 또는 GPU 명령으로 바꾸고, 그런 다음 우리는 GPU에 보냅니다

우리가 아름답고 빛나는 색채를 보면 몇 가지 다이어그램에서 사용하려고합니다 우리는이 다섯 단계를 가지고 있습니다 그래서 특정 프레임에서 지루한 회색 상자가 있습니다 실제로 다른 단계로 나뉘어져 있습니다 앞의 예제에서, 간단한 애플리케이션 코드에서, 우리는 거기에 모든 단계가 없었기 때문에 레이아웃이 필요하지 않았습니다

우리가 한 모든 일은 색을 바꾸는 것이 었습니다 그래서 우리는 onclick에 대한 정보를 얻었습니다 캔버스 작업의 기록을 그렸습니다 새 색상을 그리고 나서 그 결과로 생긴 렌더링 작업 전형적으로 – 그래, 슬라이드에서 말하는 것처럼

전형적인 어플리케이션에서,보다 일반적인 프레임, 그러면 거기에 모든 단계가있게 될 것입니다 따라서 우리는 일부 입력과 일부 애니메이션을 처리 할 수 ​​있습니다 일부 레이아웃 및 레코드를 작성한 다음 렌더링합니다 그리고이 모든 일들이 연속적으로 일어나고 있습니다 그래서 이것은 작업 순서입니다

실제로 실제로 두 개의 스레드가 있습니다 우리가 렌더링 스레드를 가지고 나온 롤리팝처럼 기술, 이전에 우리가 얘기했던, 우리가 처리하는 곳 모든 응용 프로그램 공간이 계속 진행됩니다 응용 공간에서 처음 네 단계, 또는 UI 스레드에서 그리고 나서 우리는 실제로이 분리 된 실을 가지고 있습니다 렌더링을 처리합니다

그것들은 여전히 ​​연속적으로, 순차적으로, 렌더링 스레드가 무엇을 알지 못하기 때문에 당신이 말할 때까지 렌더링 할 수 있습니다 그러나 렌더 스레드는 다른 것들을 비동기 적으로 수행 할 수도 있습니다 UI 스레드에서 그래서 우리는 원자 애니메이션의 일부를 보낼 수 있습니다 그 동안에 처리 할 수 ​​있습니다

그러나 일반적으로 UI 스레드에서 이러한 모든 작업을 수행합니다 그런 다음이 정보를 렌더링과 동기화합니다 스레드를 생성 한 다음 해당 스레드에 스레드를 렌더링하고, GPU와 대화를 처리합니다 따라서 잘 작동하는 응용 프로그램에서 전형적인, 이것이 스크롤링 또는 핑거링 상황이라고 가정 해 봅시다 응용 프로그램에서 물건이 잘 작동하고, 그리고 비교적 빨리 그릴 수 있습니다

이것은 상황이 어떻게 생겼는지입니다 다시 말하지만, 하단의 아름다운 눈 아이콘, 사용자가 프레임이 발생하는 것을보고, bam, bam, bam, bam, 모든 것이 16 밀리 초의 장벽 내에서 발생합니다 그러나 전형적인 janky 상황에서 갑자기, 뭔가 더 오래 걸렸다 여기에서는 입력 명령이 훨씬 오래 걸리는 것을 볼 수 있습니다 따라서 사용자가 클릭 할 때 비용이 많이 드는 작업 수행되었다

누군가 웹 서비스 호출을했습니다 또는 일반적으로보기를 만들었거나 바인딩했습니다 당신은 비싼 수술을 했어요 우리에게 많은 일을 시켰고, 시간을 밀었습니다 당신이 그 모든 일을 기록하는 데 지출하고 있다고 작업

그런 다음 렌더링 작업이 반드시 미끄러졌습니다 다음 프레임으로 이동하고, 사용자 장벽에 부딪치지 않았기 때문에 그 의견을보고 싶지 않았습니다 그래서 그것은 우리가 고치기를 원하는 재앙입니다 좋아, 움직여 보자 너는 무엇에 관해서 말하는 걸까? 응용 프로그램에 문제가 있습니다

쳇이 묘사 한대로, 지금 어떤 일이 일어날 지 알 것입니다 프레임이 너무 오래 걸리는 경우 우리가하는 과정에 대해 이야기 해 봅시다 de-janking이라고 불리우는 것, 당신의 신청서를 밟는 것, 이러한 문제를 찾아 내고 수정합니다 따라서 귀하의 신청서를 취소하는 첫 단계 release-ish 빌드를 실행하는 것입니다

그래서 저는 그것이 의미하는 바는 make 디버깅을 실행하고 있는지 확인하십시오 디버깅을 사용하여 실행중인 경우, 호는 다른 수표를 추가해야합니다 약간의 시간을 추가 할 수있는 검증 단계 결과를 조금 왜곡하십시오 따라서이를 무시하거나 테스트하는 것이 좋습니다 실제 릴리스 빌드

두 번째 단계는 앱을 시각적으로 검사하는 것입니다 목록을 스크롤하면서, 어떤 깡통이 생기고, 시각적으로 감지하면, 애니메이션을 보면 분명히 앱에서 가장 핵심적이고 중요한 부분부터 시작하십시오 많은 사람들이 기본 스크롤 목록을 가지고 있습니다 시작하기 좋은 곳 당신이 일종의 사람이되면 당신이 방금 볼 수 있다면, 오, 잘, 그것은 나에게 잘 보이지만, 프로필 GPU 렌더링을 사용하도록 설정할 수 있습니다

그리고 너에게이 모든 막대를 줄거야 아래쪽에, 당신에게 말할 것입니다 특정 임계 값을 통과하면 일어나고 있을지도 모르는 것에 관해 당신에게 작은 암시를 줘라, 색상에 따라 온라인에 관한 문서가 있습니다 하지만 진짜 다음 단계는, 그 후, 당신은 어떤 양동이를 보았습니다, 너 오, 그래,이 물건들이 화면에 나타날 때, 또는 UI의이 특정 부분을 처음로드 할 때, 너는 상호 작용이 무엇인지 알아 낸다

그리고 당신이 말한다, 좋아, 다음에 무엇을해야합니까? 음, 다음 단계는 일반적으로 Systrace입니다 Systrace는 SDK에있는 도구이며, 플랫폼 도구 디렉토리에 있습니다 당신은 또한 GitHub에서 꺼낼 수 있습니다 당신은 절대 가장 신선한 버전을 원한다면 그래서 여기에서 우리는 매우 빠른 라이브보기를 할 것입니다

Systrace가 실제로 어떻게 생겼는지를 통해 그래서 이것은 당신이 끌어 올 때 볼 수있는 것입니다 처음으로 Systrace 그래서이 특별한 예에서 나는 내 애플 리케이션에서 RecyclerView를 통해 스크롤 그리고 오, 저 jyy 프레임이 있습니다 나는 시각적 인 말더듬이를 볼 수있다

그래서 나는 그 시간 동안 Systrace를 잡았습니다 그리고 이제 나는 Systrace를 시작합니다 오, 세상에, 여기에 많은 정보가 있습니다 소음이 많습니다 정말보기가 어렵습니다

무엇을보고 있어야합니까? 무엇보다 먼저 할 수있는 일 여기 왼쪽을 볼 수 있니? 알았어, 알았어, 음, 커널이 있고, 잠재적으로 다른 프로세스가 있습니다 내가 뭘할지 알아? 나는 지금 다른 모든 사람들을 무시할 것이다 상단 프로세스까지 아래로 스크롤하겠습니다 지금 당장 볼 수있는 유일한 것 내 패키지, Androidjanktown입니다

사실, 그 이상으로 나아갈 수도 있습니다 여기 왼쪽에서 볼 수 있습니다 이것은 사실, 개별 스레드를 알려줍니다 우리가 신경 쓰는 것 쳇이 말한 것처럼 여기서 중요한 두 개의 스레드입니다

내 응용 프로그램의 UI 스레드와 렌더링 스레드가 있습니다 그래서 나는 더 아래로 스크롤 할 것입니다 내가 볼 수있는 모든 것까지, 화면 맨 위에, 그게 대부분입니다 그래서 매우 높은 수준에서, 그냥보고있는 것입니다 이 흔적에서, 그것에 대해 많이 알지 못하고, 나는 말할 수있다, 좋아,이 추적의 시간은 왼쪽에서 오른쪽으로 간다

가장 왼쪽에 0 초가 있습니다 더 멀리 나아가 그리고 당신이 특정한 세부 사항을 볼 수없는 경우에, 그것에 대해 걱정하지 마십시오 나중에 확대 된 일부 스크린 샷을 보겠습니다 그러나이 매우 높은 수준의 견해에서조차도, 나는 말할 수있다, 제로, 나는 작은 작은 조각을 많이 얻는다

여기,이 작은 맥박 이들은 프레임입니다 큰 확인 그것의 대부분은 믿을 수 없을만큼 일관되게 보입니다 정말 매끄럽게 보입니다

정기적으로 반복됩니다 그러나 여기에는 몇 가지 큰 시각적 우수성이 있습니다 그리고 이것은 종종 드 janking 무엇입니까 이 특별한 뛰어난 프레임을 찾고 있습니다 조사하고 있습니다 여기를 확대하면 시작할 수 있습니다 정확히 틀린 부분을 보면서 주변을 클릭하고 알아낼 수 있습니다

정확히 무엇이 문제인지 그리고 당신이 그것을 볼 수 있도록, 우리는 슬라이드로 돌아가서 당신에게 보여줄 것입니다 특별히 스크린 샷 이것은 간단한 프레임 중 하나입니다 상당히 의미심장하게, 우리가 이전에 보았던 것 매우 빈번하고 매우 규칙적인 펄스처럼

이제 이것들은 매우 좋았습니다 그들은 전에 작은 작은 조각처럼 보였습니다 그러나베이스 라인이 무엇인지 살펴보기 위해 먼저 살펴 보겠습니다 그래서 우선, Systrace에 관한 까다로운 것들 중 하나 여기에 많은 데이터가 있습니다 클릭해야 할 것이 많습니다

하지만 멋진 기능 중 하나는 이러한 UI 스레드의 대부분 구성 요소, 그것을 클릭하십시오, Systrace 당신에게 그것을 설명하려고 최선을 다할 것입니다 따라서이 특정 유형의 UI를 클릭하면 이것은 가장 많이 추적되는 섹션을 의미합니다 이것은 UI 스레드 작업을 나타내는 가장 큰 청크입니다 Systrace UI의 맨 아래에서 클릭하면, 오, 알겠습니다 안무가는 안무가입니다

그리고 사실 여기에서 문서로 연결됩니다 dandroidcom에서 Choreographer가 어떻게 설명되는지 공장 마찬가지로, 내가 드로잉 프레임을 내려다보고 싶다면, 그것은 프레임의 렌더 스레드 구성 요소입니다

그리고 그것을 클릭하면 비슷한 설명을 얻습니다 모든 종류의 추적을위한 많은 기능이 있습니다 Systrace 전체, 특히 UI 및 렌더링 스레드, 가장 관심이있을 수 있습니다 이제 우리가 물건을 클릭 할 수 있다는 것을 알았으니, 우리는 그런 식으로 조금 더 많은 정보를 얻을 수 있습니다 이 프레임이 어떻게 생겼는지 정확하게 살펴 보겠습니다

뭐하는거야? 그래서 우리가 여기서 제일 먼저 보는 것은 애니메이션 콜백입니다 이 버튼을 클릭하면 애니메이션이 표시됩니다 또는 확대하면 볼 수 있습니다 그리고 저는 이러한 방식으로 진행할 것입니다 이 애니메이션은 Chet와 ​​똑같은 애니메이션입니다

전에 그것에 대해 이야기하고있었습니다 그리고 전에 보았 더라면 많은 프레임이있었습니다 그리고 저는 그것이 RecyclerView라고 말했습니다 따라서 RecyclerView에 대한 한 가지 공통적 인 이유가 있습니다 애니메이션 효과를 발휘하고 있습니다

Flinging 애니메이션 자체는 RecyclerView의 실제를 실행합니다 애니메이션 콜백의 일부로 작업을 번역하고 팽창시킵니다 그리고 Chet가 말한 다른 무대 전에는 기록 그릴입니다 RecyclerView 뷰가 유용하기 때문에 무효화, 주위의 미끄러짐 및 그리기입니다 좋아, 우리는 그것이하고있는 일에 대해 약간의 맥락을 얻는다

그리고 실제로이 부분을 클릭하면 애니메이션 안에있는 애니메이션의 이것은 RecyclerView 스크롤입니다 따라서 RecyclerView 스크롤은 실제로 정말로, 정말로 빠르게 여기에 RecyclerView가 최소한의 작업을 수행하고 있기 때문입니다 사실,이 UI가 차지하는 시간을 살펴보면 프레임은 125 밀리 초입니다

훌륭합니다 전체 프레임은 6 개 미만으로 완료됩니다 축하합니다 이제 우리는 조금 더 느린 프레임을 봅니다 이제이 사람은 실제로 끔찍하지 않습니다

그러나 그것이 이전의 것과 어떻게 다른지 살펴 보겠습니다 그래서 우선, 여기에 측정 값이 있음을 알 수 있습니다 그래서 계층 구조의 어떤 것이 레이아웃을 요청했습니다 재평가 됐어 알았어, 알았어

여기 또 다른 것은 업로드 비트 맵입니다 그래서 RenderThread가 비트 맵을 처음 보았을 때 그것을 표시 할 필요가있을 때, 그것은 GPU에 업로드 될 것이고, GPU가 정말 빨리 그릴 수 있도록 OpenGL에 업로드했습니다 이제 첫 번째 업로드는 약간 비쌉니다 나중에 조금 더 얘기하겠습니다 그러나 실제로, 우리가 그것을 보면, UI 스레드 4 밀리 초가 걸린다

전체 프레임 13 미만으로 끝납니다 이것은 문제가되지 않습니다 이건 괜찮아 그러나 이제는 정말 나쁜 것들을 보도록하겠습니다 이것들은 우리가 멀리에서 본 것들입니다

좋아요, 여기서 분명히 뭔가가 일어나고 있습니다 하지만 네가 새로운 사람이라면, 무슨 일이 일어나고있는거야? 무슨 일이 일어나는지 어떻게 알 수 있습니까? 그래서 실제로,이 부분을 클릭하면, RV CreateView, 설명 할 것입니다 이것은 기본적으로 어댑터의 콜백입니다 onCreateViewHolder에 대한 즉, RecyclerView는 새로운보기가 필요합니다

그리고 그것을 창조하고 있습니다 그리고 실제로, 당신이 바로 아래를 보면, 음, 많은 이유, 많은 시간들 이 CreateView 부분을 차지하고, 그것은 팽창하고 있다는 것입니다 특히 복잡한 물건들로 부풀려지다 내 RecyclerView에서 시간이 좀 걸릴 수 있습니다 글쎄, 그건 불행한 일이다

다음 부분 인 onBindViewHolder에서 밀리 세컨드 반 정도 걸립니다 좋지는 않지만 OK, 그럼 어떻게해야합니까? 알다시피,이 UI 스레드 프레임은 약 20 밀리 초가 걸렸습니다 UI 스레드에서 약 274로 합계 안좋아

우리는 분명히 그 틀을 잡을 것입니다 그래서 이것은 실제로,이 과정입니다 네가 통과 할 수있는 사람이야 그러나이 특별한 경우에, 우리는, 우리가 너를 도울 수있는 뭔가 야 지원 lib와 함께

그리고 이것은 우리가 작업 한 기능입니다 정확히 그 목적을 위해 그럼 돌아가서 조금 얘기합시다 RecyclerView가하는 일 따라서 RecyclerView는 기본 지원 lib 구성 요소입니다

콘텐츠의 동적 목록을 표시하기위한 뷰를 동적으로 보여줄 필요가있다 무한 또는 잠재적으로 스크롤하거나 표시 뷰 계층 구조에 첨부 된 것보다 많은 컨텐츠 그래서 나는 무엇을 의미합니까? 글쎄, 네가이 네 가지 항목을 부분적으로 가지고 있다면 RecyclerView에 표시되고, 스크롤을 시작하고, RecyclerView가해야 할 일은이 네 가지를 처리하는 것입니다 특정 항목 실제로,해야 할 일은 그것들을 아주 약간 상쇄하는 것입니다

그것이 우리가 보는 일의 양입니다 그리고 사실, 기억한다면, 첫 번째 RV 우리가 강조했던 두루마리, 그것은 작았 다 RecyclerView가 거의 수행하지 않았기 때문에 사소했습니다 그러나 일단 우리가이 특정한 목록의 가장자리에 도착하면, 음, 무슨 일이야? 이제 우리는 갑자기 일부 양동이를 볼 수 있습니다 이것은 흥미로운 일이 일어나는 프레임이기 때문입니다

처음으로이 목록에는 5 개의 항목이 있습니다 즉 이전에 재활용 할 품목을 얻을 수 없다는 의미입니다 즉,이 메시지 아이콘을 부풀려 야합니다 음, RecyclerView가 작동하는 오래된 방법입니다 이제는 어떤 종류의 단순화 된 버전으로 돌아가 보겠습니다

우리는 Systrace에서 보았습니다 다시 한 번 말하지만, 이것은 추방하는 동안 일어났습니다 우리는 완전히 멋지게 보이는 두 개의 프레임을 가지고 있습니다 짧은 UI 스레드 지속 기간 매우 합리적인 RenderThread 기간 마감일 전에 끝났습니다 그러나 갑자기, 당신은 큰 애니메이션 덩어리를 쳤습니다

우리가 알다시피,이 특별한 경우에, RecyclerView가 생성 및 바인딩 작업을 수행하고 있기 때문입니다 작업 그래서 우리는 여기서 재미있는 것을 보게됩니다 RenderThread가 작동 할 때, UI 스레드는 10 밀리 초 동안 완전히 유휴 상태입니다 이 새로운 프레임이 나오기 전에

플링이 예상되는 것은 어렵지 않습니다 계속할 것입니다 제 말은 애니메이션이하는 일입니다 그리고이 작품을 만들어, 실제로 바로 거기에 맞을 수 있습니다 따라서 RecyclerView Prefetch에서이 작업을 수행합니다

우리는 새로운 아이템을 기대하기 시작했습니다 근본적으로 화면에 올거야 그들로부터 도둑질을했다 깨달음, 오, 그게 많은 일을 할거야 저를 조금이라도 훔치도록하겠습니다

내가 인플레이션하러 가자 일찍부터 우리는 필요에 따라 그렇게 할 필요가 없습니다 그리고 이것은 실제처럼 생겼습니다 이 앱은 똑같은 응용 프로그램의 Systrace입니다 내가 한 모든 일은 지원을 업데이트하는 것뿐이었습니다

lib를 사용하여이 기능을 사용하십시오 갑자기 Systrace에서 RV Prefetch 이벤트가 발생합니다 다시 한번 클릭하면 Prefetch 기능에 대해 설명하고, 그것은 무엇을합니다 그리고 와우, 우리가 꺼낸 13 1/2 밀리 초입니다 다음 프레임의 우리는 일을 훔쳐 막대한 시간을 절약했습니다

그리고 이것은 무언가의 위대한 모범입니다 지원 lib가 한 일이지만 절대적으로 프로세스입니다 당신이 훑어 볼 수있는 자신의 응용 프로그램에 문제가 있습니다 지원 lib는 이런 식으로 모든 문제를 해결할 수 없습니다 하지만 좀 더 프리 페치에 대해 이야기 해 봅시다

그래서 몇 가지주의 사항이 있습니다 항목이 실제로 필요하지 않으면 어떻게됩니까? 항목을 프리 페치하면 어떻게 될까요? 그리고 갑작스럽게, 그 항목 바로 앞에 화면에 올 때, 사용자는 화면을 탭하기로 결정하고, 날뛰다 멈춰? 별똥별을 멈 추면, 당신이 그 물건을 필요로하지 않으면, 뭔가 다른 것이 들어 오면 마지막 순간에 새 데이터가 도착하면 작업을 잘못 수행했을 수 있습니다 그리고 정말로, 괜찮습니다 시간의 999 %, 프리 페치가 진행 중입니다

올바른 결정을 내리기 위해 그 특별한 경우에 약간의 작업을 낭비 할 수 있습니다 그래도 RenderThread가 없다면? RenderThread가 없다면 프리 페치를 시도하지 마시고, 지금부터 시작하십시오 RenderThread가 대다수의 장치에 있기 때문에, 당신은 무료로 대부분의 장치에서 이것을 얻을 수 있습니다 지원 lib의 최신 버전 만 사용하면됩니다 하지만 오래된 장치에서는이 기능이 작동하지 않습니다

그래서 가용성, 이것은 실제로 얼마 전부터 lib v25가 지원되었습니다 그러나 가장 좋아진 사람들을 포함하여 점점 좋아지고 있습니다 26의 최근 베타 버전 이 기능은 기본 레이아웃 관리자에 내장되어 있습니다

그래서 RecyclerView, horizontal, 수직, 무엇이든간에 선형 또는 시차 또는 격자 레이아웃, 너는 단지 이것을 무료로 얻는다 이것은 최신 지원 lib로 업데이트하는 것입니다 그러나 사용자 정의 레이아웃 관리자가있는 경우, 당신이 완전히 관습적인 것을하고 싶다면, 또는 흥미로운 방식으로 하위 클래스 중 하나를 하위 클래스로 만들려면, 당신이 재정의해야 할 수도 있다는 것을 명심하십시오 이 특정 방법은 인접한 프리 페치 위치를 수집합니다 그리고 이것이 당신의 커스텀 레이아웃 매니저에서, 똑같은 동작을 얻을 수 있습니다

그리고 당신은 구현을 볼 수 있습니다 다른 것들의 그리고 Chet의 멋진 글에서 이것에 대해 더 많이 읽을 수 있습니다 RecyclerView에 대한 프리 페치 하지만 조금 뒤로 물러나서 이야기 해 봅시다

음, 뭐라구? 음, 우리는이 특별한 경우를 보았습니다 버스트 작업 부하를 가진 RecyclerView가 jank를 유발할 수 있습니다 그러나 일종의 이야기하고, 뒤로 물러나서, 무엇을 이야기할까요? 역사적으로 Android와 jank의 문제였습니까? 그래서 우리가 생각한 가장 오래된 것들 중 하나 쓰레기 수거입니다 역사적으로 가비지 수집은 중요한 문제였습니다 Android에서 그러나 이것은 플랫폼 꾸준히 개선되고 있습니다

따라서 alloc에 ​​대한 GC는 ART를 사용하여 L에서 본질적으로 고정되었습니다 나는 수백 개의 흔적을 보았다 나는 무엇보다 가장 막강하게 블로킹 GC를 보지 못했다 앱 할당 GC는 큰 문제가 아닙니다

그러나 여전히 런타임은 계속해서 개선되고 있습니다 런타임은 GC에서 더 좋아지고 있습니다 할당 오버 헤드를 낮 춥니 다 OS 쓰레드 스케쥴링, 이것은 특히 흥미로운 것이다 이전 버전의 커널에서, Android의 이전 버전에서 플랫폼은 언제쯤에 나쁜 결정을 내릴 것입니다

귀하의 신청서를 예약하십시오 이것은 특히 N / O에서 크게 개선되어 왔으며, 하지만 유감스럽게도 커널에만 한정되어 있습니다 그래서 그것은 보장되지 않는다는 것을 의미합니다 모든 N 또는 O 장치에 있어야합니다 그러나 확실히 새로운 장치를 찾으십시오

특별히 스레드 스케줄링을보고 있다면, 작업이 실행 중인지 확인하려는 경우 당신이 그것을 원할 때 정확하게 렌더링은 흥미로운 것입니다 나는 많은 부분을 렌더링 할 때 일한다 렌더링, 특히, 하나의 것들 나는 Chet와 ​​Ramon이 수년 전에 이야기했던 것을 기억한다 View Alpha가되었습니다

보자 렌더링이 겹쳐져있다 설정된 레이어 유형의 하드웨어가 있습니다 어딘가에 내가 기억할 필요가있는 다른 콜백들 잘, 우리는 그것을 개선하려고 노력했다

그래서 우리는 Auto-Hardware layer M을 추가하기 시작했습니다 그것을 무료로 받으십시오 M +, 당신은 여전히 ​​Hardware Layer를 사용할 수 있습니다 그 문제를 피하십시오 그러나 우리는 N, 최악의 상황을 개선합니다

비트 맵 업로드는 다른 하나입니다 일찍 일어난 일에 대해 이야기했다 처음에는 비트 맵을 표시 할 때 상당한 지연이 발생합니다 그러나 우리는 N에 새로운 기능을 추가했다 prepareToDraw 비트 맵에서 비트 맵로드 허용 라이브러리를 비동기식으로 작업을 일찍 시작하려면, 그리고 그것은 그들에 의해 채택되기 시작했습니다

이전에 말했던 것처럼 재활용보기 (View Recycling) 기본적으로 다른 일반적인 원인이었습니다 support lib가 크게 향상되었습니다 그래서 25에 추가, 거기에 와서 더 많은 개선 그리고 돌아가서 ART의 녹음을 볼 수 있습니다 더 많은 것을 배우고 싶다면이 I / O의 세션 ART가 해왔 던 일에 대해서

하지만 나는 그 모든 것을 통과하기를 원했다 그게 당신에게 말하는 것 같아서요 플랫폼이 어떻게 개선되고 있는지, 그리고 저크의 유일한 근원이되는 지점에 도착하는 것 귀하의 응용 프로그램에서 당신이 해결할 수있는 것들입니다 자 료의 출처에 대해 조금 이야기 해 봅시다 애플리케이션에서 발생할 수있는 그게 뭔가로 인해 일어날 수 있습니다

앱 내부에서 잘못되었습니다 그리고 그들 중 많은 수가 있습니다 그러나 정말로 빨리 가자 RecyclerView의 문제는 부 풀릴 필요가있는 RecyclerView 관련 문제, 마지막 순간에 그 일을하고, 느슨하게, 아마도 10 밀리 초 이상을 일으킬 수 있습니다 단일 프레임에서의 작업 하지만 RecylcerView에는 다른 미묘한 문제가 많이 있습니다

불필요한 인플레이션을 유발할 수 있습니다 그리고 그것에 대해 조금 더 이야기하십시오 그래서 비트 맵 그림을 UI 스레드에서, 무승부 콜백의 가장 일반적인 이유 중 하나 매우 길다는 것은 당신이 일부 작업을 캐싱하려고 시도하고 일부 내용을 비트 맵에 캐시합니다 그러나 유감스럽게도 소프트웨어 비트 맵으로 그립니다 특히 그것이 어디에 있든 많은 시간이 걸릴 수 있습니다

화면 크기 근처 캔버스 호출, 몇 가지 캔버스 호출, 즉 경로를 그립니다 당신이 당신의 경로에 자주 돌연변이를 일으키고 있다면, 저비용 일 수 있습니다 그리고 우리는 실제로 자신의 길을 벗어났습니다 이들 중 일부를 문서화하십시오 그리고 나는 이것을 언급 할 것이다

하지만 바인더 예제로 빨리 가자 이것이 가장 좋아하는 조사 중 하나이기 때문에 지난 버전의 Android 실적 팀 바인딩 바인더 문제를 찾고 해결했습니다 따라서 Binder는 Android의 IPC 메커니즘입니다 창 관리자와 대화하고 싶다면, 또는 뷰 계층 구조가 창 관리자와 이야기하고 싶습니다 아마 바인더를 통과 할거야

다른 사람의 콘텐츠 제공 업체와 이야기하는 경우, 만약 당신이 표면 튀김과 이야기하고 있다면, IPC를 통해 이야기하는 경우 아마 바인더를 통과 할거야 바인더에는 추적 기능이 있습니다 불행히도, IPC는 종종 매우 비쌉니다 진실을 말하면 실수로 추가하기가 쉽습니다 귀하의 응용 프로그램에

다음은 Systrace의 특정 스크린 샷입니다 계속 진행되는 바인더 트랜잭션이 많은 RecyclerView 스크롤 중에 당신이 그것을 본다면, 바인더, 바인더, 세상에, 그런 다음 UI에서 다른 콜백을 실행 중입니다 스레드, 많은 바인더를 실행합니다 이 모든 것들이 상당히 중요합니다

21 밀리 초 프레임입니다 인플레이션이 없다 절대적으로 오래 걸리는 일은하지 마라 작업을 수행하는 바인더 오버 헤드 일뿐입니다 UI 스레드에서 실제로 수행하면 안된다

그래서 바인더 추적은 전체적으로 많은 도움을 줄 수 있습니다 Systrace의 최신 버전에서는 기본적으로 설정되어 있습니다 그러나 요약하면 많은 이유가 있습니다 그리고 우리는 그들 모두를 문서화했습니다 d

androidcom/vitals 페이지로 이동하면 이 프리젠 테이션에는 많은 자료가 있습니다 코드로 더 깊이 들어간 예제가 많이 있습니다 예제 등등이 웹 사이트에서

그리고 이제 저는 그것을 다시 돌려 줄 것입니다 성능 유지에 관해 이야기 할 Chet에게 앱에서 CHASE HAASE : 나도 지적해야한다 Chris가 지적한 문서는 새로운 것입니다 방금 게시되었습니다 크리스 크랙 : 그래, 수요일

CHASE HAASE : 사이트의 퍼포먼스 문서를 생각하면, 당신은 어쨌든 그것을 확인하고 싶을 수도 있습니다 훨씬 더 자세하고 자세한 정보 그리고 문서화 팀이 일하고있었습니다 Chris와 같은 엔지니어들과 정말 밀접하게 다른 팀은 그 정보를 얻기 위해 이 드 janking 당신을 도울 정말 정확 하 고 깊은 그래서 당신이 어떻게 발견하고 수정할 수 있는지 이야기 해 봅시다

실제로 앱 성능을 유지해야합니다 그것은 네 단계의 종류로 내려갑니다 당신은 생각할 수 있습니다 하나는 사용자 통계를 수집 할 수 있으므로 실제로 통계 문제가있는 곳 자체 추적을 추가 할 수 있습니다

우리가 모든 Systrace를 볼 때주의해야 할 점은 중요합니다 Chris가 보여준 것들, 그것은 샘플링 프로파일 러가 아닙니다 메소드 호출 당 보이지 않습니다 그것은 귀하의 응용 프로그램에서 일어나는 모든 것들이 아닙니다 그것들은 우리가 계측 한 구체적인 흔적들이다

프레임 워크와 플랫폼 코드, 그래서 Systrace에서 볼 수있는 유일한 것입니다 우리가 실제로 플랫폼에 추가 한 흔적입니다 왜냐하면 우리가 흔적을 추가한다면, 그러면 애플리케이션 속도가 느려질 것입니다 그래서 우리는 그것이 실제로 의미가있는 곳에서 그것을 추가합니다 따라서 실제로 추적 기능을 추가 할 수 있습니다

그 방법을 알려 드리겠습니다 잔크 테스트를 추가 할 수 있습니다 따라서 실제로는 연속 테스트가 필요합니다 변경 사항을 구현할 때이를 알 수 있습니다 그리고 애플리케이션의 새로운 빌드를 가지고 있다면, 그리고 당신의 연기는 사라집니다

네가 의존하는 대신 그걸 알면 좋지 않을까? 사용자가 Play 스토어에서 낮은 평점을 받으면 처음 보는 사람은? 어쩌면 당신은 실제로 지속적인 테스트를 가질 수 있습니다 그걸 네가 잡을 수있어 마지막으로 도구를 사용하십시오 그는 Systrace에서 깊이 들어 봤지만 가치가있다 다른 것들에 대해서 생각해 보라

개발 중일 때 일반 도구 상자의 일부 여야합니다 그래서 내가 지적해야 할 것들 중 하나 사용자 통계를 보면 현재 대시 보드의 스크린 샷입니다 실제로는 이론적 인 스크린 샷입니다 우리는 실제로 회색 박스를주지는 않습니다 그건 의미가 없습니다

그래서 이것은 수요일에 플레이 팀이 준 이야기에서 온 것입니다 다양한 측정 항목에 대해 이야기했습니다 이제 대시 보드에 제공 할 수 있습니다 따라서 계산되고 저장되는 메트릭이 있습니다 기기에서 사용자가 선택하는지 여부에 따라 그 안에 업로드 된 다음 업로드 될 수 있습니다

귀하의 응용 프로그램을위한 귀하의 대시 보드에 대한 정보가 될 수 있습니다 그래서 사람들이 실제로 무엇인지 볼 수 있습니다 jank stats를 포함하여 실제 세계에서 볼 수 있습니다 얼마나 많은 프레임이 들어 왔는지, 그것은 이러한 지속 시간 버킷의 히스토그램의 일종입니다 각 레벨에서 얼마나 많은 프레임이 들어 오는지 그 히스토그램의

따라서 응용 프로그램의 용도뿐만 아니라 아이디어를 얻을 수 있습니다 일반적으로하고 있지만, 방금 업데이트 한 경우에도, 그리고 상황이 더 나 빠졌 으면 좋았을까요? 집계되어 표시되는 정보 Play 대시 보드에서 실제로 내부에서 왔습니다 우리는 플랫폼에서 N 릴리스에 주입되었습니다 프레임 메트릭 그리고 그 주변에는 API가 있습니다

그리고 우리는이 것을 매우 낮은 수준으로 컴파일합니다 그러나 당신은 그것에 대해들을 수 있습니다 이 OnFrameMetricsAvailableListener를 구현할 수 있습니다 그리고 프레임 당 콜백 데이터를 얻습니다 각 기간의 지속 시간은 다음과 같습니다

이 개별적인 것들 네가 생각하면, 네가 GPU 프로필 또는 온 스크린 프로파일 러를 완료하고, 우리는 이전에 스크린 샷을 보았습니다 그 모든 정보 정확히 당신이 얻는 기간입니다 FrameMetricsListener에서 입력은 얼마나 오래 걸렸습니까? 애니메이션은 얼마나 오래 걸렸습니까? 프레임의 총 지속 기간은 얼마나됩니까? 따라서 모든 정보를 얻을 수 있습니다

그것을 집계하여 업로드하십시오 당신의 심장 내용을 분석하십시오 우리는 지원 lib의 v26에서 약간 단순화했습니다 따라서 베타 버전에는 지금이 비트가 있어야합니다 따라서 프레임마다 듣고 지속 시간을 확보하는 대신 그리고 나서 그것들을 집계 할 필요가있다

우리는 당신을 위해 그들을 모아 놓았습니다 기본적으로 지속 기간 버킷의 SparseIntArray를 가져옵니다 히스토그램 그리고 다시, 당신은이 물건들을 컴파일하고 집계 할 수 있고, 기기에 저장 한 다음 업로드하십시오 오프라인으로 분석하도록 선택한 서버 따라서 Play 스토어 대시 보드는 귀하를 대신하여, 전체 응용 프로그램 그러나 특정 흐름을 계측하고 싶다면 귀하의 응용 프로그램에서 정말 당신이 중요하게 느끼기에 민감하거나 중요합니다

그런 다음 프레임 메트릭 항목을 사용하여이를 수행 할 수 있습니다 커스텀 트레이싱 – 내가 말했듯이, 모든 트레이스들 크리스가 보여준 Systrace 예제에서 본 우리가 플랫폼에서 가지고있는 표준 추적이었다 하지만 당신은 자신의 흔적을 추가 할 수 있습니다 귀하의 신청서에 그래서 당신은 어떤 것들을 위해 이것을하는 것에 대해 생각해야합니다 당신이 생각하는 것이 더 비쌀 수도 있습니다

당신은 레이아웃을 유발하고 있습니다 너는 그것을 원한다 보기를 바인딩하거나 비싼 물건일지도 모릅니다 거기에 추적을 추가하고 싶습니다 그 시간이 어떻게 될지보고, Systrace에서의 모습

악기를 더 많이 사용할수록, 실제로 보낼 시간이 많을수록 계측 정보를 출력합니다 그렇기 때문에 우리는 방법론 수단을 가지고 있지 않습니다 한편으로는 Systrace에 너무 많은 정보를 원하지 않습니다 왜냐하면 중요한 정보가 손실되기 때문입니다 그러나 실제로, 당신은 실제로 비뚤어지고 싶지 않습니다

계기 호출에 의한 당신의 시간 너가 실제로 만들고있는거야 귀하의 응용 프로그램에 대해서도 마찬가지입니다 그렇게 생각한다면, 반 밀리 초보다 오래 걸릴 것입니다 계측의 오버 헤드 소음에 빠질 것입니다 그러나 그것보다 훨씬 빠른 경우, 당신은 아마 그렇게하고 싶지 않을 것입니다

영구적 인 기준으로 성능 테스트는 항상 그렇습니다 어쨌든 시험을 치르면 좋습니다 네가 실제로 성능 문제를 유발할 때를 알고 있었습니까? 특히 큰 앱과 큰 팀의 경우에 그러합니다 그래서 많은 개발자들이 코드를 쥐고 있다면 공통 코드 기반으로 만들면 좋을 것입니다

문제 발생시기를 자동으로 감지하는 방법 그렇지 않다면 – 개발자가 코드를 쥐고 있다면 귀하의 아키텍처에 익숙하지 않은 또는 귀하의 관행, 그럼 당신이되고 싶어 이전에이를 감지 할 수있다 사용자 수준에서 잡기 그리고 당신은 특히 UI 영역에 대한 테스트 그게 더 중요해, 그렇지? 공통 피드가있는 경우 공통 목록 보기, RecylerView 상황 사람 모든 시간에 들어갈 것입니다 모두가 착륙하는 곳에서 그 코드를 테스트하고 그 코드가 빡빡하게 유지되는지 확인하십시오

사용자 측면에서 데이터를 수집 할 수 있으며, 장치 측 및 앱 측에서는, 및 FrameMetricsAggregator 또는 호스트 측에서도 수행 할 수 있습니다 따라서 이러한 명령 줄 도구 인 dumpsys gfxinfo를 실행할 수 있습니다 그 모든 정보를 얻을 것입니다 Gfxinfo는 다시 똑같습니다

정확히 같은 종류의 다른 견해입니다 이전에 얘기했던 기간 데이터의 GPU 프로파일 링에서 볼 수 있습니다 FrameMetrics 집계에서 그리고 특히, 당신은보고 싶다 서로 다른 백분위 수를 어떻게 처리하는지 앱의 가끔 프레임을 건너 뛰면 아무런 문제가 없습니다

경우에 따라 700 밀리 초의 프레임 저하가 발생하는 경우, 그것은 아마도 큰 문제 일 것입니다 또는 프레임의 10 %가있는 경우 실제로 경계가 누락 된 것은 큰 문제입니다 그러니주의를 기울이십시오 A, 앱이하는 일, 성능이 어떤지 알면 당신이 할 수있는만큼 좋은 성능을 얻으려고 노력하십시오 그러나 시간이 지남에 따라 변화하는 것에주의를 기울여야합니다

해당 앱을 업데이트 할 때 당신이 그것을하는 것처럼 당신이 공연을 잃지 않는다고 마지막으로 도구를 사용하십시오 그래서 우리는 Profile GPU Rendering에 대해 이야기했습니다 개발자 옵션에서 활성화 할 수 있습니다 아주 쉽게, 일들이 어디로 가고 있는지 알 수 있습니다

기기에서 무슨 일이 일어나고 있는지 RecyclerView 나 일반적인 UI가 무엇이든간에 케이스가 있습니다 그 녹색 줄이 중요합니다 초록색 선 위로 가려면, 당신은 16 밀리 초 경계를 놓쳤습니다 그리고 너는 프레임을 꽉 쥐었다 이것은 특히 janky 프레임처럼 보입니다

나는 그들이 거기에 어떤 틀을 만들고 있다고 생각하지 않는다 적어도 일관성이 있습니다 그들은 그들을 위해 그것을 가지고있다 그래서 당신은 장치에서 그렇게 할 수 있습니다 이것은 디버거와 개발자에게 더 있습니다

수준, 일종의 볼 일종의 다시 말하지만, 동일한 정보를 사용하고 있습니다 우리가 가장 낮은 수준에서 컴파일하고, 사용하기 쉽도록 화면에 둡니다 Android Studio에서 몇 가지 새로운 프로파일 링 도구가 출시되었습니다 최신 릴리스에서

그들은 이번 주 회담에서 그 문제에 관해 이야기하고있었습니다 그래서 당신은 YouTube에서 녹음 된 것들을 확인할 수 있습니다 특히이 청중에게, CPU 모니터가 정보를 제공합니다 이 모든 메소드 호출에서 실제로 무슨 일이 벌어지고 있는지 그것은 당신에게 일반적으로 좋은 아이디어를 준다

앱에서 어디에서 실적이 발생하는지, 또한 GPU 모니터는 다시 한번, 얼마나 빨리이 물건을 렌더링하는지 다른 견해, 그리고 당신이 16 밀리 초 경계를 치고 있는지 여부 CHRIS CRAIK : 네, 사실 저는 말하고 싶습니다 이전 도구에 익숙하다면 내장 된 SDK의 일부인 Trace View (추적 뷰) 모니터로, 이것은 똑같은 일을한다 하지만 UI가 훨씬 뛰어나고 훨씬 더 유용하며, 사실, 훨씬 정확한 데이터도 있습니다 지금까지는 훨씬 더 좋습니다

CHET HAASE : 다른 도구를 보는 방법 그래서 우리는 Systrace에서 깊은 다이빙을 보았습니다 특히 Systrace를 처음 보았을 때, 나는 그 도구를 다시보고 싶지 않습니다 거기에 너무 많은 정보가 있습니다 정보로 무엇을해야하는지 잘 모릅니다

그것은 모든 정보를 가지고있는 도구입니다 단지 익숙해지기 만하면됩니다 그것이 어떻게 작동하고 어떻게 신을 수 있는지를보기 위해 그것을 사용함 필요한 정보와 사용자 정의 추적을 추가하십시오 필요 나는 그것으로 들어갈 수있는 더 쉬운 방법이라고 생각한다

당신은 훨씬 더 사용하기 쉽고 더 높은 것을 사용함으로써 천천히 물속에 잠길 수 있습니다 Android Studio 도구로 진행되는 사항에 대한 그런 다음 특정 양조장이있는 경우 당신이 추적하려고하는 것, 알고있는 것 Systrace는 훌륭한 곡물 도구입니다 당신이 훨씬 더 깊은 수준에서 그것을 추적하는 것을 도울 것입니다 시스템 전반 그리고 마침내, 화제에 아닙니다, 그러나 이것을 위해 군중은 성능에 관심이 있습니다

개발자 옵션을 시험해 볼 수도 있습니다 이 대체 렌더링을 사용할 수 있습니다 기본적으로 켜져 있지 않습니다 하지만 너는 볼 수있다 응용 프로그램이 어떻게 동작하는지, 가능한 미래 가능성을 위해

Skia Renderer이므로 개발자 옵션을 사용할 수 있습니다 그것을 가능하게하고, 확실하게하십시오 거기에 문제가 없다는 것을 있다면, 그것에 대해 듣는 것이 좋을 것입니다 그래서 우리는 오늘 그것을 언급하고 있습니다 우리가 언급 한 일부 자원이 있습니다

나는 그들을 다시 데려 오지 않을 것이다 다시, dandroidcom의 vitals 페이지를 확인하십시오 특히 Slow Rendering이라는 jank 섹션이 있습니다

그리고 몇 가지 중요한 I / O 세션이 있습니다 YouTube에서 확인해보십시오 아마 이미 게시되었을 것입니다 Tim Murray는 Systrace 및 시스템에 대한 훌륭한 개요를 제공했습니다 일반적으로 성능

Android Performance – Overview ART Talk는 공연과 기억에 관해 이야기했습니다 개량 그들은 꽤 멋진 약간의 재료를했다 런타임 측면, 런타임 개선, 뿐만 아니라 GC 측면 이제는 동시 가비지 콜렉션이 있습니다

더 이상 일시 중지가 거의 없습니다 결국 전체 GC를 가져올 때까지 그리고 그들은 전경에서 압축 할 수 있습니다 최소한의 크기의 힙을 얻을 수 있습니다 훨씬 빠른 할당과 컬렉션을 얻으십시오 그 모든 것들에 대한 세부 사항은 ART 토크에 있습니다

그리고 마지막으로, Play 사람들의 이야기가 있습니다 "아무도 크래시 또는 Janky Apps를 좋아하지 않습니다" 그리고 그것이 바로 대시 보드에 대한 이야기입니다 그들이있는 다른 시설들 개발자를 제공합니다 그리고 그것은 이야기입니다

알았어 [박수 갈채] [음악 재생]

Device provisioning and authentication with Android Things (Google I/O '18)

[음악 재생] DARREN KRAHN : 우리 이야기에 오신 것을 환영합니다 오늘 장치 프로비저닝 및 인증에 대해 Android 관련 콘텐츠

내 이름은 대런이야 저는 소프트웨어 엔지니어입니다 그리고 안드로이드에 대한 보안 작업도합니다 WAYNE PIEKARSKI : 멋지다 그래서 저는 Wayne Piekarski입니다

저는 Android Things와 IoT에 대한 개발자 옹호자입니다 그리고 오늘 우리의 대화에와 주셔서 감사합니다 그리고 오늘, 우리는 당신에게 전략에 대해 이야기 할 것입니다 귀하의 IoT 장치를 인터넷에 연결하는 방법, 클라우드 및 기타 모든 것 그래서 우리는 모든 과정을 끝까지 마칠 것입니다

그리고 우리는 Google 소프트웨어가 어떻게 Android Things, Firebase 및 Cloud IoT와 같은 플랫폼 핵심,이 작업을 훨씬 쉽게 할 수 있습니다 그래서 많은 사람들이 알고있을 것입니다 그리고 그게 바로 당신이 오늘 여기 온 이유입니다 그리고 그것은 우리가 이전에 본 것보다 더 커질 것입니다 그래서 우리가 전화를 본 것과 똑같은 방식으로 PC보다 더 큰, 나는 우리가 가고 있다고 생각한다

IoT 디바이스가 그보다 훨씬 큰 수주를보고 있습니다 우리는 IoT 장치들로 둘러싸여있을 것입니다 온갖 일을하는 매일 매일 우리를위한 다양한 업무가 있습니다 그리고 단지 하나의 장치가 될 수는 없습니다 당신은 수십 또는 수백 가지를 가지려고합니다

모든 종류의 흥미로운 일을하고 있습니다 오늘은 아이디어에 대한 몇 가지 힌트를 드리겠습니다 이러한 종류의 IoT 디바이스를 가장 효과적으로 구축하는 방법에 대해 연결 방법, 보안 방법 등을 설명합니다 먼저 Android Things의 기본 사항을 살펴 보겠습니다 바라건대, 대부분의 사람들이 소개 토크를 보았습니다

그렇지 않다면, 우리는 많은 회담을 갖고 있습니다 여기 안드로이드가 무엇인지 커버하는 IO에서 하지만 안드로이드 것들의 핵심 개념 모듈에있는 시스템을 기반으로한다는 것입니다 그 위에 이미지에 표시됩니다 작은 작은 보드입니다

SOM에는 CPU, Wi-Fi, 메모리가 포함되어 있습니다 보드 지원 패키지라고 부르는 것에 의해 지원됩니다 그리고 이것은 드라이버, 커널, 라이브러리, 그리고 모든 것 또한 Google의 업데이트 및 보안 기능도 제공합니다 Android Thing SOM을 사용하여 개발자가 IoT 장치를 쉽게 만들 수 있습니다

보안을 유지하는 데 도움이됩니다 최신 상태로 유지되는 이유는 소비자가 지금 필요로하는 것들이다 그들의 장치와 Android Things를 고유하게 만드는 또 하나의 기능 정말 강력한 유형을 지원한다는 것입니다 장치에서 처리 중입니다

따라서 클라우드에서 일할 필요가 없습니다 하지만 당신은 비디오 및 오디오 처리를 할 수 있습니다, 당신은 기계 학습을 할 수 있고, 모든 것을 할 수 있습니다 전화 수준의 CPU 성능을 갖추고 있기 때문에 이 Android Things SOMs 다른 하나는 Android를 기반으로한다는 것입니다 따라서 모든 친숙한 개발자 도구를 사용할 수 있습니다

당신이 익숙한 Android Studio 및 모든 Android 개발자 인 경우 보유하고있는 기존 코드입니다 Android를 사용하면 집에서 바로 즐길 수 있습니다 이전에 Android 개발을 완료했다면 IO에서 다른 많은 대화가 있습니다 그것에 대해 자세히 알기 위해 갈 수 있습니다 하지만 오늘 우리가 집중해야 할 것은 우리가이 모든 것을 어떻게 활용할 수 있느냐입니다

Android 기기와 함께 제공되는 IoT 기기를 더 쉽게 만들 수 있습니다 그리고 당신을 위해 더 잘 그래서이를 염두에두고 예제를 살펴 보겠습니다 이 강연을 통해 우리가 사용할 내용 우리가 무슨 말을하고 있는지 설명해 주려고 그래서 우리는 IoT 세척을 할 것입니다

왜 안되니? 그리고 모두가 기계 학습을 사용하게되어 기쁩니다 및 TensorFlow 그래서 세탁기를 사용해야합니다 기계 학습을 온보드합니다 빨래를 보는 카메라가 있어야합니다

그리고 옷을 빨고있는 동안, 기계 학습 알고리즘을 수행합니다 그것이 얼마나 깨끗한 지 분석합니다 그리고 세탁물이 어떻게 보이는지 볼 수 있습니다 일할 때 씻겨서 이런 일이 일어나는 것을 보는 데 관심이 있습니다 그래서 우리는 우리의 신제품 "TensorWash"를 부를 수 있다고 생각합니다

그래서 우리가이 "TensorWash"세탁기를 만들 때, 대부분의 세탁기에는 전면에 제어판이 있습니다 여전히 수동으로 제어하기를 원하기 때문입니다 이제 Android Things가 지원하기 때문에 정말 강력한 기기라면 앞면에 스크린이있다 OpenGL을 실행할 수 있습니다 비디오와 오디오를 재생할 수 있습니다

그게 당신이 만들 수있는 하나의 선택입니다 기계의 호화로운 모델입니다 그러나 비용을 줄이려면 저렴한 IoT 세탁기를 만들기 위해, 그러면 디스플레이를 없애기를 원할 것입니다 그래서 우리는이 예제를 위해 이것을 남겨 둘 것입니다 그래서 머신은 IoT가 가능해질 것입니다

정면에 몇 개의 버튼이 있습니다 하지만 거의 모든 일이 진행되고 있습니다 우리는 전화를 통해 통제 할 수 있습니다 얘기 좀하려고합니다 그래서이 기계의 진정한 마법 그것이 인터넷에 연결되었을 때입니다

따라서 원격으로 장비를 모니터링 할 수 있습니다 카메라가 보는 것을 볼 수 있습니다 다음과 같은 경우 세탁주기를 시작할 수 있습니다 집에서 운전할 때, 직장에있을 때 그래서 사용자는 집에 없으며 그들은 잠재적으로 세계 어느 곳에 나있을 수 있습니다

그래서 우리는 그것을 단지 존재로 제한하고 싶지 않습니다 집안에있는 것이 가까운 곳에서 통제됩니다 따라서 우리는 인터넷 클라우드 기반 연결이 정말로 필요합니다 그 뒤에 어떤 종류의 클라우드 솔루션이 있습니다 그리고 모든 종류의 재미있는 기능을 추가 할 수 있습니다

클라우드를 지원함으로써 그래서 우리는 점수를받을 수 있습니다 옷을 씻지 않거나 물을 너무 많이 낭비하지 않기 때문입니다 서비스 부서에 결함을보고 할 수 있습니다 그리고이 모든 것을 지원하기 위해서, 기계는 Wi-Fi를 필요로합니다 그리고 우리는 단지 막힘으로 속일 것입니다

그것으로 이더넷 케이블에 그래서 우리는이 세탁기를 가지고 있습니다 우리는 클라우드에 연결할 필요가 있습니다 그리고 우리는 클라우드와 상태를 공유해야합니다 전화가 장치를 제어 할 수 있도록 따라서 가능한 많은 클라우드 서비스가 있습니다

우리는 오늘 그들 중 몇 사람에 대해 이야기 할 것입니다 그러나 첫째로, 이런 종류의 일을하기 위해서, 먼저 네트워크에 장치를 가져와야합니다 요즘 많은 기기들이 Wi-Fi를 기반으로하고 있습니다 장치에는 SSID와 암호가 필요합니다 네트워크에 가입하십시오

많은 장치에는 키보드 또는 디스플레이가 없습니다 우리 세탁기의 경우처럼, 그래서 모든 것이 전화로 처리되어야합니다 그리고 우리가 전화를 사용한다면, 그 장치는 Wi-Fi 액세스 포인트를 자체적으로 구동해야합니다 전화가 연결됩니다 모든 로그인 [INAUDIBLE]을 보냅니다

그런 다음 장치가 네트워크에 다시 연결됩니다 그 정보를 사용합니다 어떤 이유로 든 잘못 될 경우, 전화는 무슨 일이 일어 났는지 알 수있는 방법이 없습니다 그래서 매우 섬세한 과정입니다 따라서 일부 전화기 또는 Wi-Fi 네트워크에서는 문제가 될 수 있습니다

그리고 많은 개발자들이이 도전이 올바른 것으로 생각합니다 그래서 우리는 몇 가지 힌트를 통해 이걸 더 좋게 만들려고 다음으로, 장치는 장치 소유자는 누구인가? 그래서 당신은 장치가 보이는지 확인하고 싶습니다 장치 소유자와 다른 사람 만 제어 할 수 있습니다 그들이 신뢰하는 것

그래서 우리는 어떤 종류의 인증 토큰이 필요합니다 서버에서 발급 받아야하는 그런 다음 사용자가이 토큰을 제어하는 ​​데 사용합니다 우리는 그것을 장치에 두었습니다 그런 다음 기기가 연락하기 위해 사용하는 것입니다 인터넷과 구름

사용자 팩토리가 장치를 재설정하면, 우리는이 토큰과 그 밖의 모든 것을 잊을 필요가 있습니다 그런 다음 기기가 자체적으로 재설정되어야합니다 다른 사용자가 기계를 사용할 수 있도록 이전의 역사는 보존되어 있지 않습니다 이제는 우리의 "TensorWash"가 모두 연결되어 갈 준비가되었습니다 따라서 전화, 장치 및 클라우드가 모두 통신 할 때, HTTPS와 같은 TLS 연결을 통해이를 수행합니다

그렇게 안전하다는 것은 매우 중요합니다 우리는 도청을 중앙에두고 싶지 않습니다 일반적으로 Google 서비스에는 요즘 HTTPS가 필요합니다 그리고 우리는 실제로 이것을 기본적으로 시행하기 시작했습니다 그래서 우리는 당신을 위해 더 힘들게 만들고 있습니다

모든 보안 때문에 암호화되지 않은 연결을 사용하는 방법 의미 그리고 이런 장치를 만들 때, 모든 사람들이 적절하게 보안을 유지합니다 작은 IoT 회사들조차도 정말 간단한 장난감이나 뭐든간에, 왜냐하면 모두가 항상 자신의 장치가 문제가되지 않을 것이라고 생각합니다 작은 문제조차도 예상치 못한 영향을 미칠 수 있습니다 너는 나중에 꿈도 꾸지 않았다고 기기가 전 세계에 출시되면 그게 전부입니다

그것은 당신이 무엇을 할 수 있는지에 대한 핵심 개념입니다 우리가 만들고있는 세탁기를 가져올 필요가있다 클라우드에 연결하도록하십시오 Wi-Fi를 설정해야합니다 자격 증명을 전송해야합니다

그런 다음 암호화와 연결해야합니다 그러나 실제로는 훨씬 더 많습니다 그래서 내가 할 일은 내가 갈거야 대런에게 주요 개념의 일부에 대해 깊은 잠수를 할 수 있도록 여기에 약간의 설명이 있습니다 무슨 일이 일어나고 있는지

DARREN KRAHN : 멋지다 그래서 한 걸음 뒤로 물러나서 몇 가지 이야기하고 싶습니다 우리가 사용하는 핵심 개념들 장치 들간의 안전한 관계를 수립하고, 근본적으로 우리가하는 일입니다 우리가 장치를 제공 할 때 이러한 개념은 뚜렷하지만 매우 얽혀 있습니다

실제로 볼 수 있듯이 나는 인증, 권한 부여, 및 증명 첫째, 인증 뭔가를 인증하는 것은 간단합니다 정품인지 유효한지 증명하기 위해 정통합니다

우리는 예술 작품, 공식 문서, 필기체 서명 우리는 또한 대부분 얼굴 인식을 사용하여 서로를 인증합니다 이것은 우리에게 매우 자연스러운 일입니다 매우 직관적입니다 컴퓨터는 종종 암호를 사용하여 우리를 인증합니다

자동차는 종종 열쇠를 사용하여 우리를 인증합니다 그래서 우리는 일상 생활에서 항상 인증을 사용합니다 그것에 대해 생각조차하지 않고 그러나 하나의 컴퓨팅 장치가 다른 컴퓨팅 장치를 인증해야합니까? 이것은 우리가 생각하기에 덜 직관적입니다 흔히 비밀 데이터입니다 따라서 본격적인 컴퓨터는 비밀 데이터에 액세스 할 수 있습니다

다른 모든 컴퓨터는 그렇지 않습니다 이 비밀 데이터가 가질 수있는 두 가지 형식이 있습니다 나는 그 얘기를 듣고 싶다 하나는 암호 키입니다 다른 하나는 무기명 토큰입니다

인증하는 다른 방법이 있습니다 그러나 이것들은 매우 일반적이며 직접적으로 관련이 있습니다 우리의 "TensorWash"예제 나는 그들 각각을 조금씩 파헤쳐 보겠다 따라서 암호화 키와 인증서 웹에서 매우 일반적입니다

이것은 웹 브라우저가 웹을 인증하는 방법입니다 섬기는 사람– 예를 들어 HTTPS를 사용합니다 인증에는 인증서 확인이 포함되며, 상기 인증서 내의 상기 정보를 검증하는 단계; 이미 신뢰하고있는 것에 대해 확인 또는 당신이 기대하는 것, 그 증명서는 당신이 신뢰하는 어떤 것입니다 우리는 또한 열쇠 소유 증명을 검증해야합니다 키 자체는 전송되지 않습니다 네트워크를 통해 또는 적어도 열쇠의 비공개 부분

그러나 우리는 다른 컴퓨터에 소유권이 있는지 확인해야합니다 그것의 증거가됩니다 따라서 실제로이 작업을 수행하는 것은 정말 어려울 수 있습니다 이러한 프로토콜을 작성하는 것은 정말 어려울 수 있습니다 나는 너 자신을 직접 만들지 말 것을 강력히 권한다

그것을하는 좋은 도서관을 찾으십시오 Android Things를 사용하는 경우 HTTPS 및 TLS를 지원합니다 내장되어 있으므로 구현할 필요가 없습니다 그래서 나는 이런 종류의 인증을 비교하기를 좋아한다 공항 여권 수표로

네가 상상한다면 여권을 가져 가라 수표까지 와서 요원 특정 정보의 유효성을 검사 할 것입니다 여권에 그들은 그것이 권위에서 왔음을 입증 할 것입니다 그들이 신뢰하는 것

그리고 나서 그들은 소유 체크의 증거를 할 것입니다 여권의 경우, 사람의 얼굴과 그림이 일치한다 그들 앞에 서서 나는 또한 무기 토큰에 대해 이야기하고 싶다 이것들은 약간 다르게 작동합니다

그들은 순서대로 한 컴퓨터에서 다른 컴퓨터로 전달됩니다 확인하십시오 컴퓨터에서 종종 불투명합니다 그것을 보냅니다, 그러나 의미심장 한, 물론, 그것을 확인하는 컴퓨터에 토큰의 송신자 또는 베어러 인증 토큰의 인증에 의해 암시됩니다

검증자는 토큰을보고 확실한 토큰인지 아닌지에 대한 결정 나는 이것을 영화 표의 예와 비교하고 싶다 너는 티켓 대에 가서 영화 티켓을 산다 그 티켓이 당신의 무기명 토큰이됩니다 너는 극장에 들어가, 너는 선물한다

그 토큰, 당신은 들어갈 수 있습니다 그 티켓을 친구에게 넘깁니다 당신의 친구는 이제 그 토큰을 소지 한 사람입니다 그리고 그들은 영화에 들어갈 수 있습니다 종종 이러한 종류의 토큰은 보다 철저한 인증을 나타내는 데 사용됩니다

과거에 일어난 일입니다 또 다른 좋은 예가 있습니다 웹에서 로그인이 필요한 웹 사이트를 가지고있을 때, 사용자 이름과 암호로 로그인하십시오 그리고 암호를 다시 입력해야한다고 상상해보십시오 해당 사이트 내의 모든 페이지에 대해 새 페이지로 이동하고 암호를 다시 입력하십시오

그것은 쓸모 없을 것이다 그리고 너무 자주, 두포에서 무슨 일이 일어나는가? 웹 서버가 브라우저에 베어러 토큰을 발급 할 것입니다 그리고 그것은 일정 시간 동안 살 것이다 그리고 귀하의 계정에 액세스 할 수 있습니다 그 웹 사이트에서 의미합니다

따라서 비밀번호를 계속 입력하지 않아도됩니다 시간 IoT 장치에서도 동일한 방식으로 작동합니다 한 번 철저히 조사 할 수 있습니다 토큰을 발행하면 훨씬 가벼운 인증을받을 수 있습니다

그 시점부터의 메커니즘 인증에 대해 생각해 봅시다 IoT의 맥락에서 외침을받을 가치가있는 몇 가지 측면이 있습니다 하나는 인증이 양방향으로 진행되어야한다는 것입니다 장치 주변의 서비스 및 기타 장치 해당 장치를 인증해야합니다

그리고 그 장치는 인증을 필요로합니다 다른 서비스, 주변의 다른 장치 예를 들어, 장치는 웹 서비스를 인증하고, 브라우저가 웹을 인증하는 것과 같은 방식으로 HTTPS 또는 TLS를 사용하는 서비스 또한, 인증은 반드시 신원 확인을 의미합니다 종종, 우리는 그런 식으로 생각하지만, 반드시 그런 것은 아닙니다

그렇게해야합니다 제한된 웹 서비스의 예를 들어보십시오 [INAUDIBLE] 웹 서비스를 가정 해 보겠습니다 하지만 제품 인스턴스가 다시 연결할 수 있도록 설계되었습니다 그 웹 서비스에

그리고 모든 고객이 실제로 있는지 확인하고 싶습니다 해당 웹 서비스의 인스턴스 당신이하고 싶은 것은 인증입니다 그것은 당신의 장치 중 하나이지만 실제로는 어느 쪽인지 신경 써라 이 경우 실제로 익명 인증을 수행 할 수 있습니다

또한 인증을 바인드해야합니다 의미있는 기대에 이르기까지 우리가 인증하는지 확인하고 싶습니다 우리가 생각하는 것, 우리가 인증을 기대하고있는 것 몇 가지 예를 들어 보겠습니다

만약 당신 앞에 장치가 있다면, 당신은 그 장치를 인증하기를 원합니다 그것을 물리적 인 무언가에 묶는다 기기에서 실제적인 것을 찾아보십시오 기기에 화면이 있고 휴대 전화와 화면에 모두 코드를 표시 할 수 있습니다 예를 들어, 그것은 그 인증의 물리적 바인딩입니다

블루투스 페어링을 할 때 일반적인 경험입니다 또는 그런 것 그러나 장치 나 바코드에 스티커를 사용할 수도 있습니다 그리고 우리는 그것에 대해 조금 더 이야기 할 것입니다 암호화 된 채널도 마찬가지입니다

암호화 된 채널을 설정 한 경우 그런 다음 해당 채널을 인증해야합니다 해당 채널에 인증을 바인드하십시오 따라서 TLS 나 HTTPS와 같은 표준 프로토콜을 사용하는 경우, 이것은 이미 당신을 위해 이루어졌습니다 그것에 대해 걱정할 필요가 없습니다 그러나 두 장치간에 작업을 수행하는 경우, 예를 들어, 그들은 지원하지 않습니다

그런 종류의 프로토콜, 그럼 당신은 이것에 대해 생각할 필요가 있습니다 이제 "TensorWash"예제로 돌아가 보겠습니다 모든 인증을 살펴보십시오 그럴 필요가 있습니다 그래서 우리는 완전하게 프로 비전되지 않은 상태에서 시작할 것입니다

그래서 우리는 우리의 "TensorWash"기계를 상자에서 꺼냈습니다 이제 스마트 폰이 이미 설치되었다고 가정 해 봅시다 스마트 폰은 웹 서비스를 인증 할 수 있습니다 HTTPS, TLS를 사용합니다 그리고 우리의 경우에는 Google에 전화로 로그인 한 Google 계정이 있습니다

그래서 그 웹 서비스는 전화를 인증 할 수 있습니다 그래서 양방향 인증 관계가 있습니다 그곳에 우리가해야 할 첫 번째 일은 이 새로운 장치를 인증해야합니다 우리가 원하는 것은 자격 증명을 보내고 싶다는 것입니다

그 자격 증명은 가치가있을 수 있습니다 – Wi-Fi 암호, 클라우드 서비스에 대한 액세스 그리고 우리가 올바른 장치로 보내고 있는지 확인하고 싶습니다 우리가 그것을 보내기 전에 일단 우리가 그것을 제공하면, 우리는 그 상태로 끝나기를 원합니다 양방향 인증 관계가있는 곳 "TensorWash"시스템과 클라우드 서비스 사이 그래서 여기에 두 개의 예를 들었습니다

Firebase Cloud IoT Core를 "TensorWash"와 함께 사용할 예정입니다 그리고이 두 가지면에서 우리는 양방향 관계를 원합니다 다시 말하지만, 웹 서비스 인증, 우리는 표준 TLS HTTPS를 사용할 것입니다 그리고 우리는 다른 형태를 사용할 것입니다 우리는 조금 더 자세하게 이야기 할 것입니다

나중에 장치를 인증 할 수 있습니다 하지만 그 자격은 될거야 이 과정에서 전화로 제공됩니다 그래서 당신은 거기에 주목했을 것입니다 하지 않은 하나의 인증입니다

내보기에서 두 가지 방향으로 나아가십시오 이건 어때, 여기 노란색 이니? "TensorWash"에서 전화로 "TensorWash"장치를 상자에서 꺼내도 괜찮습니까? 설정하려고하는 전화를 인증하지 않습니까? 그래서 우리는이 방법을 사용했습니다 일반 소비자 장치 용 그들은 상자에서 나오면 깨끗한 상태에 있습니다

소유자가 누구인지에 대한 개념이 없습니다 또는 그들이 신뢰하는 사람 그들은 설치가 가능합니다 그래서 우리는이 경우를 만들고 싶었습니다 그리고 대부분은 괜찮습니다

자격 증명으로 상자에서 나오지 않습니다 그것을 내줄 예정입니다 그것은 자격 증명을 받고, 그래서 덜 중요하다, 예를 들어, 인증이 필요한 전화 "TensorWash"장치 그러나 예를 들어, 엔터프라이즈 제로 터치, 대량 출시 시나리오, 그 장치를 상자에서 꺼내기 원하는 곳 자신을 설정하십시오 상자에서 나올거야

이미 그것이 누구를 신뢰하는지에 대한 개념을 가지고있다 그리고 이것은 HTTPS URL을 취하는 것만 큼 간단 할 수 있습니다 그것을 장치에 임베드하여 깨어날 때, 그것은 그것이 갈 수있는 곳을 안다 그리고 그것을 기입 할 수있는 등록 서버가 될 수 있습니다 나머지 신임장이나 정보와 함께 구성이 필요합니다

그러나 우리는 우리의 대화를 위해 그 비트를 남겨 둘 것입니다 그리고 우리는 소비자가 있다고 가정 할 것입니다 장치, "TensorWash"가 깨끗한 상태로 상자 밖으로 나옵니다 그래서 우리는 인증에 대해 이야기했습니다 어떤 것이 진짜인지 확인하고있는 중입니다

그리고 지금 저는 허가에 대해 이야기하고 싶습니다 승인은 무언가가 허용되는지 여부를 확인하는 것입니다 그것이하려고하는 것을 할 수 있습니다 공항 여권 수표를 다시 생각해보십시오 유효한 여권을 가지고 공항에 도착합니다

수표를 통과 할 것이라는 의미는 아닙니다 예를 들어, 그들은 검사 할 것입니다 당신이 그 날 비행을 계획했는지 여부 여권이 본격적인 여권이기 때문에 당신이 통과한다는 것을 의미하지는 않습니다 여전히 추가 승인이 있습니다

유사하게, 영화 티켓 시나리오에서, 작년 영화 티켓을 가지고 극장에 가면, 당신은 당신의 영화를 보지 못할 수도 있습니다 그것은 다른 시간, 다른 날짜, 다른 보여주는 그리고 거기에 영화 티켓이 완벽하게 정통하더라도 따라서 OAuth 20의 예를 사용하고 싶습니다 매우 일반적으로 사용되는 인증입니다

웹용 프레임 워크 그것은 웹용으로 제작되었습니다 주어진 IoT 사용 사례에 따라 작동하지 않을 수도 있습니다 하지만 좋은 예입니다 중요한 몇 가지 개념을 풀어 나가야합니다

OAuth 20을 사용하지 않더라도, 당신은 이러한 개념들에 대해 생각할 필요가 있습니다 두 가지 큰 것들은 토큰 범위와 토큰 수명입니다 토큰 범위는 어떤 권한을 설명합니다 토큰과 연관되어 있습니다

그럼,이 토큰의 소지자는 무엇에 접근 할 수 있습니까? 토큰 수명은 토큰이 만기되는시기를 설명합니다 그리고 새로 고침 토큰의 개념이 있습니다 대 액세스 토큰 액세스 토큰이 사용됩니다 도착하려는 실제 리소스에 액세스하려면 보호 된 자원

이 토큰은 보통 수명이 짧고 범위가 좁습니다 그리고 그것은 자급 자족 할 수 있습니다 따라서 리소스 서버에 대한 결정 최적화되고 신속해질 수 있습니다 또한 백엔드 조회를 수행 할 필요가 없습니다 수신 한 토큰을 살펴 본다

그 정보로 결정을 내릴 수 있습니다 반대로 토큰을 새로 고침하면 이전 액세스가있을 때 새 액세스 토큰을 얻는 데 사용됩니다 토큰이 만료됩니다 이 토큰은 종종 수명이 길다 그들은 더 광범위하게 범위가 지정되어 있으므로 가서 다양성에 대한 액세스 토큰을 얻고 싶을 수도 있습니다

다른 범위의 그리고 그들은 특별히 자체적으로 포함되지 않습니다 이것이 가능하면 허가가 가능합니다 그 여부에 대한 결정을 내리는 서버 새로 고침 토큰을 기반으로 새 액세스 토큰을 제공해야합니다 해지가 있었는지 여부를 결정할 수 있습니다

그 허가 그리고 그것은 당신이 IoT와 함께 갖고 싶어하는 것입니다 그 수동적 만료를 원한다 따라서 해지되면 현재 액세스 토큰 집합 만료되면 더 이상 액세스 할 수 없습니다 다른 액세스 토큰을 가져올 방법이 없습니다

너는 상황에 있고 싶지 않아 사용하지 않는 IoT 장치를 벽장에서 꺼내야 만하는 곳, 여전히 부팅되고 공장 초기화가 이루어지기를 바랍니다 그것을 인증 해제하기 위해 당신은 그 일을 수동적으로 할 수 있기를 원합니다 그래서 이것은 OAuth spec rfc6749의 스 니펫입니다 새로 고침 토큰 흐름을 묘사합니다

중간에있는 액세스 토큰을 볼 수 있습니다 보호 된 리소스 및 리소스 서버에 액세스하는 데 사용됩니다 E와 F 단계에서 액세스 토큰이 만료 된 곳입니다 그러면 오류가 다시 발생합니다 그리고 바닥의 아래쪽, G와 H, 새로 고침 토큰이 사용 된 것을 볼 수 있습니다

권한 서버에서 다른 액세스 토큰을 가져올 수 있습니다 다행히도 시각화에 도움이됩니다 조금 더 좋아 그럼 인증에 대해 생각해 봅시다 IoT 또는 IoT 장치의 맥락에서 우리는 인증에 대해 이야기했습니다

두 가지 방법이 필요합니다 권한 부여는 두 가지 방법으로 갈 필요가 있습니다 아니면 적어도 양 방향으로 생각할 필요가 있습니다 우리는 누가 장치에 액세스 할 수 있는지, 누가 데이터를 읽을 수있는 장치에 명령을 보낼 수 있습니다 장치 등으로부터 우리는 또한 장치가 무엇에 접근 할 수 있는지 생각할 필요가 있습니다

웹 서비스에 연결할 때 어떤 권리가 있는지, 예를 들면? 우리는 최소한의 권한 원칙을 사용하기를 원합니다 우리는 필요한 것보다 더 많은 특권을주고 싶지 않습니다 이것은 IoT의 정말로 공통적 인 문제입니다 그저 그렇게주는 것이 너무 쉽기 때문이라고 생각합니다 서비스에 대한 기기 총 승인 에 연결하면 더 이상 문제가 발생하지 않기 때문입니다

인증 오류가 발생하지 않으며, 모든 것이 제대로 작동합니다 문제는 장치가 해당 승인의 10 % 사용, 기기가 해킹 당하면 이제 공격자는 모든 것을 액세스 할 수 있습니다 비록 당신이 그것을 사용하지 않았더라도 또한 만료가 필요합니다 나는 수동적 만료에 대해서 이야기했다

또한 토큰을 전달할 때 조심해야합니다 토큰은 물론 만들어집니다 특정 목적으로 통과, 예를 들어 검증 하지만 너는 네가 토큰을 보내기 전에 수신자를 인증했습니다 검증을 위해 웹 서비스로 보내고 있다면, HTTPS를 초과하는지 확인하십시오

새 기기를 구입하는 경우, 우리의 "TensorWash"케이스처럼, 그 새로운 장치를 인증하십시오 토큰을 보내기 전에 잠시 후에 알 수 있듯이 Firebase와 같은 Google 서비스 Android의 경우 Firebase SDK가 토큰을 관리합니다 이 토큰 관리에 대해 걱정할 필요가 없습니다 중대하다 그럼 돌아가서 승인을 살펴 봅시다

특히 "TensorWash"시나리오에서 우리는 전화가 이미 있다고 가정하는이 상태에서 시작합니다 이러한 클라우드 서비스로 새 장치를 설정할 수있는 권한이 부여되었습니다 전화가 암묵적으로 승인되었습니다 "TensorWash"장치를 설정해야합니다 그것에 관한 정책이 있으십시오

우리가 제공 한 후에 우리가 원하는 곳은 Firebase와 양방향 인증을 원합니다 그래서 우리는 Firebase Realtime Database를 사용할 것입니다 또한 장치와 동기화 할 수 있습니다 또한 장치에서 클라우드까지 데이터를 동기화 할 수 있습니다 그리고 장치와 동기화 될 때, 우리는 실제로 그것을 사용하여 장치에 명령을 내릴 수 있습니다

Firebase가 승인 된 권한이 있습니다 장치에 명령을 내리고 장치 데이터를 Firebase로 밀어 넣을 권한이 있습니다 Cloud IoT Core의 경우 화살표를 한 방향으로 만 넣으면됩니다 우리가 사용하려고하는 것은 통계입니다 기기가 작동하면서 메타 데이터를 Cloud IoT Core 프로젝트로 밀어 넣는다

푸시 할 권한이 있어야합니다 그 특정 프로젝트에 이제 어떻게 설정했는지에 대한 세부 정보를 보여 드리겠습니다 모두 위로 첫째, 저는 하나 더 핵심 개념에 대해 이야기하고 싶습니다 그것은 증명입니다

증명은 실제로 컴퓨팅의 무결성을 입증합니다 상태를 가진 장치, 현재 운영중인 장치 포함 장치의 상태 그래서 이것은 정말로 특별한 종류의 인증입니다 이것을 가능하게하기 위해서, 기기에 이미 자격증 명이 있어야합니다 그것은 그 자체를 증명하는 데 사용할 수 있습니다

종종 공장을 제공합니다 그래서 장치가 상자에서 나오면, 이미 진짜 인스턴스임을 증명할 수 있습니다 그 특정한 제품의 또한 증명이 종종 바운드됨을 언급 할 가치가 있습니다 암호 키로

따라서 장치의 증명 주장 대신에, 말하자면, 저는 안전한 모드에서 작동하는 진정한 장치입니다 그것은 조금 더 비슷합니다이 특별한 암호 키 정품 장치로 안전하게 보관 보안 모드에서 실행 중입니다 그리고 이것은 유용합니다 증명을 다른 것에 묶는 우리 열쇠를 사용합니다

다른 종류의 인증, 예를 들면 그리고 나중에 예제에서 보게 될 것입니다 Cloud IoT Core에 연결하기 위해 이와 같은 키를 사용합니다 그래서 안드로이드는 특히, 당신은 다양한 속성을 증명할 수 있습니다 당신은 그것이 진정한 안드로이드 것들임을 증명할 수 있습니다 장치

인스턴스인지 확인할 수 있습니다 특정 제품에 대한 장치 ID를 확인해야합니다 장치 상태를 확인할 수도 있습니다 내가 말했던 것처럼 그리고 우리가 끌어 낸 것들 중 하나는 검증 된 부팅 상태입니다

이 장치가 실제로 실행 중일 때, 그들은 그 장치를위한 소프트웨어를 증명합니다 암호화 키의 속성을 검증 할 수도 있습니다 그리고 나는 오늘 그 일에 들어 가지 않을 것입니다 이것이 인증서 체인이 보이는 것입니다 5 단계 깊이

맨 위에는 Android Things CA, Root CA, 및 중간 CA 이들은 Google에서 관리합니다 이것들은 모든 안드로이드 것들 증명에 대한 권한입니다 인증서 중간 3 단계에는 제품 별 CA가 있습니다 또한 Google에서 관리합니다

하지만 Android Things 개발자의 맥락에서 볼 수 있습니다 콘솔 특정 제품과 관련이 있습니다 그 콘솔에 콘솔에 제품을 만들 때마다, 중간 수준의 CA가있을 것입니다

해당 제품에 할당 된 따라서 다음 단계에서는 장치 별 CA가 있습니다 그리고 이것은 공장의 각 장치에 제공됩니다 이것은 장치마다 고유합니다 해당 장치의 ID가 포함되어 있습니다 그리고 장치가 상자에서 나오면, 이것이 가지고있는 것입니다

마지막 단계는 응용 프로그램 키입니다 및 인증서 그래서 이것은 장치에서 생성되었습니다 그것은 귀하의 응용 프로그램에 의해 생성되었습니다 그리고 인증서도 생성됩니다

장치 별 CA에 의해 신뢰할 수있는 실행에 의해 보호된다 환경 그래서 우리의 "TensorWash"예제에서, 증명은 화살표로 여기에서 일어난다 "TensorWash"장치에서 전화까지 따라서 우리가 그 검증을 할 때, 전화가 확인하려고하면 장치를 인증하려고합니다

그것이 우리가 증명을 사용하는 곳입니다 그래서 빠른 검토 우리는 인증, 점검 무언가가 진실하거나 유효하다는 것; 허가, 그것이 허용되는지 확인 그것이하려고하는 일을하는 것; 및 증명, 이는 특히 컴퓨팅 장치의 무결성을 검사하는 것입니다 그리고 지금, 웨인은 우리에게 보여줄 것입니다 Android Things로이 모든 작업을 수행하는 방법

쿨, 고마워 이제 주요 개념에 대해 살펴 보았습니다 이제 우리가 무언가를 만드는 방법에 대해 이야기합시다 이것을 사용하여 Android 및 기타 서비스에서 사용할 수 있습니다 Google이 제공하는 첫 번째 단계는 무언가를 사용할 수 있다는 것입니다

Nearby Connections (인접 연결) 그리고 인근 연결은 훌륭합니다 이는 추상화 계층을 제공하기 때문입니다 근처의 기기를 찾는 데 도움이되며 암호화 된 통신 채널을 설정합니다 두건 아래서는 블루투스, BLE, Wi-Fi 핫스팟을 사용합니다

그 시간에 사용할 수있는 것은 무엇이든 사용합니다 그것에 관한 또 다른 좋은 점은, 연결이 설정되면, 그것은 양측에 사람이 읽을 수있는 짧은 코드를 제공합니까? 화면에 표시 할 수 있습니다 이제는 많은 사람들이 기기를 사용했습니다 여기에 화면에 약간의 코드가 표시됩니다 그리고 그것은 대부분의 경우에 훌륭합니다

그러나 앞서 언급 한 세탁기 화면이 없습니다 따라서 우리에게는 필요한 보안이 충분하지 않습니다 그리고 우리는 어떻게 그 문제를 1 분 안에 처리 할 수 ​​있습니다 하지만 Nearby Connections는 첫 번째 빌딩 블록입니다 우리가 사용할거야

따라서 코드 스 니펫을 살펴보면, 이것은 단순한 일종의 약식 버전입니다 주변 연결 샘플의 여기서 우리는 인근 연결을 만드는 것을 볼 수 있습니다 클라이언트 상단에 그런 다음 몇 가지 검색 옵션을 지정합니다

방금 기본값 인 P2P 클러스터를 사용했습니다 우리가 여기서 사용하는 것은 그렇게 중요하지 않습니다 일단 발견 과정을 시작하면, 우리는 서비스 ID가 필요합니다 그래서이 경우에 그것은 텐센트 워시의 예입니다 제품 ID와 같습니다

Android에서의 앱 이름이 아닙니다 그들은 그것을 서비스 ID라고 부릅니다 그러나 그것은 당신의 장치의 이름이 무엇인지, 또는 당신이 그것을 부르고 싶은 무엇이든지 그런 다음 엔드 포인트 발견 콜백도 있습니다 Nearby Connections에서 언제든지 코드를 호출합니다

새로운 장치가 발견되었습니다 그리고 당신이 할 일은리스트 뷰를 유지하는 것입니다 그리고 UI를 업데이트하고, 발견 된 모든 장치를 보여줍니다 명확하게 말하면, 우리는 한 번에 하나 이상의 장치를 사용할 수 있습니다 그리고 나서 사용자가 원하는 것을 선택하면, 그들은 그것을 선택할 수 있습니다

그리고 우리는 연결을 설정할 수 있습니다 기기 측에서 Nearby 지원 startAdvertising 메소드입니다 기본적으로 사람이 읽을 수있는 장치 이름을 제공하십시오 그런 다음 동일한 서비스 ID를 입력합니다 그리고 콜백을 설정합니다

연결이 설정 될 때마다 호출됩니다 따라서 사용자가 장치를 선택하면, 그래서 그들은 스크린에서 그것을 골랐습니다 이제 요청 연결 방법을 사용해야합니다 연결 설정을 처리합니다 전달 된 원격 엔드 포인트 ID로 이동하십시오

다시 한 번 콜백이 있습니다 그리고 onConnectionInitiated는 다음과 같습니다 해당 장치로 연결이 시작될 때 사용됩니다 그리고 그것은 인증 토큰을 채운다 그것은 우리가 언급 한 짧은 코드입니다

인근 연결을 사용하면 사람이 읽을 수있는 짧은 값을 얻을 수 있습니다 다시 한번, 우리는 디스플레이가 없다 그래서 우리는 잠시 후에 그 문제를 어떻게 다룰 지 이야기 할 것입니다 하지만 여기서 볼 수 있습니다 코드는 정말 간단합니다

Nearby Connections와 함께 작업 할 수 있습니다 그리고 그것은 우리를 아주 빨리 가게합니다 그 다음 일은 대런이 증인에 대해 말한 것입니다 및 장치를 확인하는 것 따라서 우리 앞에있는 장치가 우리가 실제로 연결하고있는 것입니다

전화로 우리가하는 일은 실제로 임의의 도전 과제를 만듭니다 그래서 난수는 유일합니다 이 연결을 위해 그런 다음 기기로 전송합니다 그리고 우리는 이것을 사용하여 재연 공격을 막습니다

그리고 장치는 임의의 도전을합니다 인증 코드와 결합 주변 지역의 연결에서 가져 와서 그런 다음 이것을 사용하여 생성합니다 Android Keystore의 새로운 키 증명 인증서 체인과 함께 이 인증서 체인은 전화로 다시 전송됩니다 그러면 휴대 전화에서이를 확인할 수 있습니다 잠시 후에 얘기하겠습니다

그리고 우리가 임의의 도전을 사용하고 있지만, Nearby의 인증 코드가 중요합니다 암호화 채널에 바인딩하는 데 도움이되기 때문에 우리가 지금 사용하고있는 것 그리고 다른 것은 속도를 결정하는 것이 중요하다는 것입니다 실패한 연결을 제한합니다 그래서 네가 원하지 않는 것은 누군가를위한거야

기기를 끊임없이 연결할 수 있어야합니다 임의의 코드를 시도해보고 일부 키를 생성하도록하십시오 속도를 줄이는 것이 더 낫습니다 귀하의 장치를 공격하는 사람들 여기에 몇 가지 코드가 있습니다

너무 많이 걱정하지 마십시오 너에게 몇 가지 비트를 보여주고 싶었어 그리고 거기있는 것의 조각 하지만 장치에는 인증 토큰이 있습니다 근처에서

우리는 이전에 얻은 무작위적인 도전에 참여합니다 우리는 그것을 함께 결합합니다 이 코드를 사용하여 여기에 서명 키를 생성합니다 그리고 당신이 무언가를 생성 할 때 흥미로운 부분이 있습니다 Android Keystore에서 신뢰할 수있는 상태로 완료되었습니다

실행 환경 따라서 우리는 앱에 키를 실제로 보관하지 않습니다 우리는 실제로 신뢰할 수있는 실행 환경에 보관합니다 이것이 의미하는 바는 훌륭합니다 누군가가 우리 앱을 해킹하더라도, 그들은 개인 키를 꺼낼 능력이 없습니다

따라서 우리가하는 일에 추가적인 보안이 추가됩니다 어쨌든, 우리는이 모든 것들을 넣었습니다 모든 보라색 값은 모두 표준 상수입니다 당신이 사용하는 따라서 정확하게 캡처하는 것에 대해 걱정하지 마십시오

나중에 샘플을 출시 할 예정입니다 그 속에이 모든 것을 가지고 있습니다 그러나 나는 그저 약간의 걸음을 걷고 싶었습니다 하지만 결국 인증서 체인을 추출합니다 그리고 그게 당신이 그걸로 전화로 돌려 보내는거야

그것을 확인하고 무엇이든지 할 것입니다 그래서 Darren은 이전에 인증서 체인의 개념에 대해 언급했습니다 공장 출고시 증명 키 이 잎의 인증서 체인도 함께 제공됩니다 Android Things 루트 인증서로 돌아갑니다 이제 우리는 방금 생성 한 키에 대한 전체 체인을 갖게됩니다

그래서 바닥에, 우리가 방금 만든 것입니다 그리고 그것은 안드로이드 Things 루트에 다시 연결됩니다 이제 "TensorWash"가 생성되었습니다 그것은 사용자 지정 인증 키와 인증서 체인입니다 우리는 체인을 전화로 보냈습니다

전화로 이걸 확인해야 해 개조되지 않은 합법적 인 장치입니다 그리고 그것은 또한 우리 앞에있는 것입니다 사실 꽤 지루한 과정입니다 여러 단계가 있습니다

아마도 우리가해야 할 일입니다 장래에 도서관에두기 하지만 네가해야 할 일의 요지 인증서를 확인해야합니까 체인이 올바르게 연결되었습니다 루트가 신뢰할 수 있는지 확인해야합니다 Android Things의 루트

제품 ID인지 확인해야합니다 장치의 128 비트 UUID를 확인할 수 있습니다 이것은 공장에서, 당신은 실제로 코드를 가지고 박스에 찍어 인쇄 할 수 있습니다 사용자가 실제로 일치하는지 확인할 수 있습니다 그들 앞에서 한 사람과 부팅 상태를 확인할 수 있습니다

키가 서명되면 전송됩니다 부팅 여부를 나타내는 플래그와 함께 로더가 조작되었습니다 증명 질문을 확인합니다 우리는 조금 이야기 할 것입니다 그러면 공개 키로 저장할 수 있습니다

그리고 우리가 인증을 원할 때 유용 할 것입니다 나중에 클라우드 IoT를 사용합니다 전화 측에서 우리는 입증이 필요한지 확인해야합니다 도전은 정확합니다 그래서 우리는 그 인증서에서 증명을 추출합니다

그런 다음 인증 토큰의 해시를 만듭니다 근처에서부터 우리가 이전에 생성 한 무작위적인 도전 그리고 우리는 그것들을 결합하고 해시를 생성합니다 인증서에서 나온 것과 일치하는지 확인합니다 장치에서 체인

그리고 이런 종류의 것은 전체 루프가 완전하고 안전합니다 중요한 것은 실제로 장치에 직접 인증을 보냈습니다 주변에서 수행되었습니다 그래서 모든 것이 올바르게 수행되었는지 확인합니다 중간 공격에 사람이 없다는 것을 도중에

이제 우리는 그 장치가 우리의 것이라는 것을 압니다 그리고 이러한 모든 문제를 해결하는 데 도움이됩니다 우리가 확인한 이제 전화가 "TensorWash"를 신뢰할 수 있음을 확인했습니다 이제 Wi-Fi 네트워크에서 장치를 인증해야합니다 가장 빠른 방법은 팝업으로 휴대 전화의 활동을 말하자

Wi-Fi SSID 및 패스 프레이즈? 그러나 물론 사용자들은 그렇게하고 싶지 않습니다 사용자 친화적이지 않습니다 그리고 사용자는 자신의 암호를 입력해야합니다 앱이 암호를 읽는 동안 앱이 암호를 보게됩니다 장치로 전송됩니다

그리고 다음으로 할 일은 장치 측에서, Wi-Fi 관리자를 사용해야합니다 SSID와 암호를 설정합니다 그래서이 코드는 작은 코드 조각입니다 그러나 Wi-Fi 관리자는 좀 더 복잡합니다 따라서 실제 샘플을 보면, 이것은 작성해야하는 코드입니다

Wi-Fi Manager와 대화 할 수 있습니다 그래서 이것은 우리가 작업하고있는 것입니다 우리가 사용할 수있는 작은 코드 라이브러리를 만들고 싶습니다 당신이 가지지 못하게하기 위해이 모든 것을 건너 뜁니다 그 종류의 코드를 작성하십시오

그리고 우리는 더 좋은 소식을 가지고 있습니다 Nearby 설치라는 API가 있습니다 Google Play 서비스로 이동합니다 곧 제공 될 Nearby Setup에 대한 가장 좋은 점은, Wi-Fi 자격증을 취득 할 수있는 능력이 있다는 것입니다 휴대 전화에 저장되어 다른 기기 인 Google에 전달됩니다

서비스를 재생하십시오 Android Thing은 Google Play 서비스를 지원합니다 자격 증명을 복사 할 수 있습니다 너 자신을 다룰 필요가 없다 사용자는 입력 할 필요가 없습니다

따라서 사용자 편의를 위해 매우 유용합니다 그래서 곧 나옵니다 세부 사항은 developersgooglecom/nearby에서 확인할 수 있습니다

나중에 준비가되면 우리 장치에서 인터넷에 접속할 수 있고 열쇠가 있습니다 자, 이제 어떻게하면 우리는 이야기하고 얻는 것에 대해 갈 것입니다 클라우드 서비스가이 장치에서 활성화되었습니다 그래서 Firebase와 Cloud IoT에 대해 이야기 할 것입니다

그래서 우리가해야 할 첫 번째 일은 전화 측에서, Firebase를 설치해야합니다 Firebase는 Android, iOS 및 웹에서 작동하기 때문에 훌륭합니다 따라서 휴대 전화 앱은 여러 종류의 기기에있을 수 있습니다 Firebase 프로젝트 ID를 생성합니다 그리고 우리는 전화와 장치 모두에서이를 사용할 것입니다

그런 다음 전화 사용자에게 인증을 요청합니다 그들의 사용자 이름과 비밀 번호로, 대화 상자를 팝업, 그러면 우리가 토큰을 얻을거야 이전에 생성 한 암호화 된 파이프를 전달하십시오 여기에 약간의 코드 스 니펫이 있습니다 맨 위에 로그인 요청을하는 중입니다

흥미 롭습니다 우리는 단지 요청하고 있기 때문입니다 이메일 ID의 범위 Google은 완전한 Google 액세스를 원하지 않습니다 파일이나 이메일 또는 그와 비슷한 것에 액세스 할 수 있습니다

우리는 신분증 명을 요구하고 있습니다 범위를 제한하려고하기 때문에 Darren이 이전에 이야기했던 것과 같습니다 우리는 결국 JSON 웹 토큰을 얻습니다 그러면 Firebase로 로그인 할 수 있습니다 그러면 우리 장치는 Firebase와 상호 작용할 수 있습니다

하지만 우리는 그 토큰을 발송합니다 이전 토큰을 기기로 보냈습니다 그래서 Firebase에 로그인하여 그걸로 할 수 있습니다 그래서 다른면에서 Google 토큰을 가져옵니다 그것을 Firebase에 전달하고 그걸로 인증하십시오

이제 장치는 Firebase Realtime Database에 액세스 할 수 있습니다 코드 스 니펫도 장치에서 매우 유사하게 보입니다 Android Things 기기는 일반 Android이므로, 우리는 전화에서하는 것처럼 동일한 코드를 사용합니다 자격증 명을 받아서 Firebase 인증에 대한 자격 증명으로 로그인하려면, 이제 끝났어 이제 우리는 양방향 인증을 받았습니다

그리고 우리의 "TensorWash"는 이제 완전히 Firebase Realtime Database에 참여하십시오 그럼 기어를 바꿔서 끝내자 Cloud IoT Core와도 이야기 할 수 있습니다 그래서 당신이 수천 명의 사람들과 함께 세탁실을 운영하고 있다고 상상해보십시오 기계와 수천 개의 위치, 예측 분석을 수행하려고합니다

따라서 우리는 이러한 장치에서 데이터를 푸시하고자합니다 분석을위한 구름 IoT 그래서 Cloud IoT에서 우리는 장치를 등록합니다 휴대 전화에 앱에 대한 자격 정보가 있어야합니다 그리고 당신은 그 공인 인증서 우리가 이전에 만들었던 것, 그리고 당신은 그것을 줄 것입니다

클라우드 IoT로 장치를 알 수 있도록 그리고 그것을 믿을 수 있습니다 그런 다음 MQTT를 사용하여 요청을 보냅니다 기기 ID로 Cloud IoT에 연결하고 Google 키로 서명했습니다 클라우드 IoT가이 메시지를 확인할 수 있습니다 이 키를 확인하여 합법적입니다

이전에 받았던 내용으로 확인하십시오 그런 다음 TLS를 사용하여 MQT 요청을 보냅니다 그리고 우리는 우리의 장치가 알고 있도록 TLS를 사용합니다 누가 데이터를 보내고 있는지를 기억할 수 있기 때문에 신뢰할 수 있습니다 양측은 상대방을 확인해야합니다

여기에 아주 간단한 작은 조각이 있습니다 프로젝트 ID와 사물의 일부를 입력하는 방법을 보여줍니다 그렇게 그리고 샘플도 공개 할 예정입니다 곧 Android에서 Cloud IoT Core를 수행하는 방법을 보여줍니다

그리고 좋은 점은 publishDeviceState입니다 아래쪽에는 기본적으로 원하는 이진 BLOB가 필요합니다 그것을 클라우드 IoT로 보냅니다 그리고 생성에 대해 걱정할 필요가 없습니다 어떤 메시지 든

그래서 우리는 Cloud IoT와 Firebase에 대해 매우 빨리 이야기했습니다 당신이 할 수있는 일의 다른 옵션은 무엇입니까? 음, 우리는 또한 스마트 홈이 있습니다 Google에서 기기를 제어하는 ​​새로운 방법입니다 조수 당신이 전구를 가지고 있다면, 당신은 할 수 있습니다

조명을 조금 어둡게 말할 수 있습니다 또는 세탁기의 경우, 스마트 홈을 구현하면 내 세탁기 시작하고, Google Assistant에서 세탁물을 차게됩니다 따라서 Firebase를 구현하면 스마트 홈에 연결되는 작은 웹 고리를 작성하십시오 그런 다음 기기를 사용하도록 설정할 수 있습니다 Google Assistant로 그리고 마침내, 당신은 실제로 Google Assistant SDK를 장치에 내장하십시오

세탁기와 실제로 대화 할 수 있음을 의미합니다 직접 기계에 명령을 내리십시오 그것은 시원한 종류 다 그럼 다음은 뭐니? 조만간 공장에서 핵심 프로비저닝 스토어를 제공 할 예정입니다 기본적으로 하드웨어 장치가 있습니다

Android Things 기기에 키를 추가 할 수있게됩니다 이것은 당신이 할 수있는 일입니다 또는 그들이 생산 될 때 그리고 이것이이 열쇠가 장치에 어떻게 도달 할 것인가입니다 개발자 키트가있는 경우 키 서명을 올바르게 테스트 할 수 없으며, Android의 공식 키가 없으므로 소지품

그러나 우리는 도구를 공개 할 것입니다 곧이 일을 할 수 있습니다 Nearby Setup API도 곧 출시 될 예정입니다 그리고 그것은 프로비저닝을하는 것이 정말 좋을 것입니다 이거 정말 쉽습니다

따라서 요약하면 Google 사이트를 방문하십시오 androidthingswithgooglecom, 훌륭한 커뮤니티입니다 많은 정보가 담긴 사이트

우리는 G + community, gco/iotdev, 더 많은 정보를 얻을 수있는 곳, 그리고 오는 사이트를 추적 할 수있는 Nearby 사이트 곧 또한 소셜 미디어에서도 우리를 팔로우하십시오 기회가 없다면 IMX7 중 하나를 사용해보십시오 Google I / O에서 제공하는 개발자 키트 그래서 당신이 그 중 하나를 얻을 수 있는지 확인하십시오

너 자신 안드로이드 것들을 시도 할 수 있습니다, 정말 재미있는 개발 경험이기 때문입니다 프로토 타입 제작에 적합합니다 그러나 생산 장치 제작에도 좋습니다 그것이 우리를위한 것입니다와 주셔서 대단히 감사합니다

그리고 우리는 회의에서 당신을 만날 겁니다 고맙습니다 [음악 재생]

Build great Material Design products across platforms (Google I/O '18)

[음악 재생] JOHNATHAN CHUNG : 안녕하세요 우리 이야기에 오신 것을 환영합니다

제 이름은 Jonathan Chung입니다 그리고 저는 Material Design 팀의 UX 리드입니다 NIC BUTCHER :여보세요 내 이름은 닉 부처 야 그리고 저는 Design Relations 팀의 디자이너이자 엔지니어입니다

LARCHE : 나는 윌이야 저는 Material Design의 엔지니어입니다 JOHNATHAN CHUNG : 자리에 앉으세요 오늘 우리는 정말 어떻게 이야기하는지에 대해 기쁘게 생각합니다

플랫폼 전반에 걸친 훌륭한 소재 디자인 제품을 제작할 수 있습니다 그래서, Material Design이란 무엇입니까? 우리가 막 만든 모든 새로운 발표? 이전에 우리가 알고 있던 것에서 어떻게 진화 했습니까? 머티리얼 디자인은 이제 적응 형 디자인 시스템입니다 오픈 소스 코드로 뒷받침되는 팀은 고품질의 디지털 경험을 제공합니다 즉, Material은 당신을 돕습니다 정말 빠르고 아름답고 유익한 제품을 만들 수 있습니다

우리가 처음 출시 한 2014 년에는 제로 고객이 생겼습니다 이제 Material Design을 사용하는 150 만 개 이상의 앱이 있습니다 믿을 수 없어 그리고이 거대한 고객 수를 기반으로, 우리는 정말로 듣고 계속했습니다 우리의 시스템을 개선합니다

오늘 우리는 End-to-end 제품인 Material Theming을 출시했습니다 재료 디자인을 쉽게 만들 수있는 기능 자, 여러분 중 일부는 더 많이 배우기를 간절히 원합니다 하지만 아마도 당신 중 일부는 여전히 궁금해하고 있습니다 머티리얼 디자인이 당신에게 적합한 지 여부 귀하의 회사를 위해

그래서 나는 새롭게 걷는 것으로 시작할 것입니다 디자인 된 Materialio 사이트 그런 다음 Nick은 재료 도구 제품군을 시연합니다 공동 작업 및 맞춤 설정을 위해 제작 한 정말 쉽고 편리합니다

그러면 Will은 Material Components에 대해 이야기 할 것입니다 오픈 소스 코드 라이브러리 모든 플랫폼에서 사용할 수 있습니다 그래서 내가 왜해야하는지 세 가지 이유를 설명해 드리겠습니다 Material Design 사용을 고려하십시오 첫째, Materials Design은 개발자를위한 것입니다

우리에게 많은 피드백을 주셨습니다 앱을 적용하고 구축하는 것이 쉽지 않은 점 머티리얼 디자인을 사용합니다 이제 Material Theming 및 모든 도구를 사용하여 우리는이 새로운 기능을 지원하기 위해 구축했습니다 우리는 이제 창조하고자하는 열망을 갖게됩니다 개발할 코드에 눈을 돌려야합니다

머티리얼 디자인은 진정한 크로스 플랫폼 프레임 워크입니다 일관된 사용자를 만드는 것이 얼마나 중요한지 이해합니다 플랫폼 전반에서 작동하는 경험 따라서 머티리얼 디자인을 사용하면 사용자에게 도움이됩니다 여러 장치를 사용합니다

우리는 또한 고품질의 제품을 만드는 것이 오랜 시간이 걸린다 따라서 우리는 플랫폼 간 일관성을 장려하고 있으며, 또한 코드를 제공하고 있습니다 Android, iOS, 웹 및 Flutter에서 개발을 시작하십시오 이제, 우리는 그것을 시험에 적용 할 것입니다 이렇게 스크린을 만들 것을 상상해보십시오

그리고 아마도 여러분 모두는 전문가이자 전문가 일 것입니다 하지만 내 경험에 의하면, 화면을 구축 이것을 좋아하고 올바르게하려면 시간이 걸릴 것입니다 재료 디자인의 힘으로, 우리는 이제 그 어느 때보다도 쉽게 만들고 있습니다 여러 플랫폼에서 이와 같은 화면을 설계하고 구축 할 수 있습니다 그리고이 모든 마법은이 재 설계 된 사이트에서 바로 시작됩니다

새로운 사이트는 이제 디자인, 개발 및 도구로 나뉩니다 각 섹션에서 모든 위대한 자원을 찾을 수 있습니다 우리 팀이 당신을 위해 창조 한 디자인 지침, 도구, 리서치 통찰력, 오픈 소스 코드, 당신이 이름을 짓는다 우리는 시간을 좀 보냅니다 이 사이트는 현재 더 자세하게 설명되어 있습니다

디자인 섹션에는 여전히 모든 것이 있습니다 Material Design에 대해 좋아했습니다 모든 것이 있습니다 아무것도 사라지지 않았다 또한 가장 많이 읽은 기사 몇 가지를 소개합니다

페이지 상단의 콘텐츠를 빨리 찾을 수 있습니다 우리는 여전히 당신을 돕는 데 집중하고 있습니다 아름다운 디자인 제품, 배경없이 디자인 여기에서 기사를 볼 수 있습니다 우리가 당신을 위해 제공 한 것, 그리고 시스템 아이콘, 자신 만의 맞춤 색상 팔레트 생성, 당신의 브랜드에 맞는 서체를 고르십시오

UI에서 모양의 힘을 실제로 활용할 수 있습니다 마지막 섹션에서는 재료 연구에 대해 이야기합니다 우리는 Material Design의 모든 유연성을 보여 주며, 당신이 소매 용 건물이라면, 의사 소통을 위해, 또는 무엇인가 여행 앱만큼이나 복잡합니다 모든 것이 있습니다 그리고 우리는 그것을 테스트했습니다

그리고 체크 아웃 할 수있는 모든 것이 있습니다 머티리얼 디자인 가이드도 확장 및 향상되었습니다 재료 시스템, 재료 기초 및 재료로 변환 지침 머티리얼 시스템 섹션부터 시작하여, 우리는 Material Metaphors에 대한 일반적인 개요를 제공합니다 그런 다음 재단 섹션 다이빙 기본 관행으로 그래서 구조적인 것들을 언급 할 것이고, 타이포 그라피, 도해 법, 모양, 레이아웃 등

이제 지침 섹션에서는 전술 지침을 제공합니다 재료 제품을 만드는 방법에 대해 알아보십시오 이것에 관한 가장 좋은 점은 이러한 위대한 디자인 지침은 엔지니어링과 밀접하게 관련되어 있습니다 이제 다른 기능 중 일부를 살펴 보겠습니다 너를 위해 도움이 될 사이트에 제품을 만들 때

우리는 어떻게 상세한 사양을 가지고 있는지 압니다 엔지니어링 프로세스를 10 배 더 빠르게 만듭니다 그래서 우리는이 뷰를 제공하고 있습니다 Spec 뷰어 이 스펙 뷰어에서 우리는 이제 이 이미지에 대한 유용한 정보

오른쪽의 메뉴를 클릭하면, 다양한 유형의 모든 레이어에 액세스 할 수 있습니다 이 이미지에 대해, 당신은 단지 이미지 만 볼 수 있습니다, 측정, 텍스트, 색상, 모양 및 표고를보고, 이 UI에서 사용되는 여러 구성 요소를 확인하십시오 또는 우리가 추가했을지도 모르는 추가 노트 이 텍스트 주석을 살펴 보겠습니다 따라서이 주석에서, 여러분은 글꼴 이름, 크기 및 색상을보고, Google 팀이 구축 한 Google 글꼴 사이트로 연결됩니다

우리는 이러한 유용한 자원을 표면화하기를 정말로 원했습니다 워크 플로우의 맥락에서 당신에게, 그래서 당신이 필요로하는 모든 것이 바로 거기에 있습니다 이제 Google 글꼴 사이트로 이동하면 너는 다운로드하고 사용할 수있을 것이다 우리의 mock에서 사용되는 글꼴 우리는 또한 가장 효과적인 방법에 대한 연구를 수행했습니다

지침을 전달합니다 그리고 우리는 인터랙티브 한 콘텐츠 독자들에 대한 이해의 수준을 높였습니다 그래서 우리는 콘텐츠를 소개하기 시작했습니다 우리 기사에서 상호 작용한다 다음은 재료 팔레트 생성기의 예입니다

그것은 컬러 기사에 줄 지어 배치됩니다 이 도구와 상호 작용함으로써, 개선 된 색상 시스템에 대해 배울 수 있습니다 그래서 그것들은 우리가 가지고있는 새로운 특징 중 일부입니다 디자인 섹션에 추가 그러나 어떻게이 모든 것을 구축합니까? 그게 니가 여기있는 이유야

맞지? Develop 섹션은 이제 기능과 액세스 권한이 있습니다 Android, iOS, 웹 및 Flutter 용 오픈 소스에 모두 제공됩니다 플랫폼 협약을 존중하면서, 구성 요소가 제대로 작동하는지 확인하려고했습니다 Android뿐 아니라 다양한 플랫폼에서 사용할 수 있습니다 그리고 이들 구성 요소로 게임을 즐길 수 있습니다

우리 카탈로그에 아래로 스크롤하면 섹션이 표시됩니다 개발자 리소스 디자인 섹션과 비슷하게, 우리는 당신에게 필요한 자원을 제공하기를 원했습니다 귀하의 제품을 구축하는 데 사용할 수 있습니다

그리고 이것에 익숙하지 않다고 가정 해 봅시다 아래쪽으로 더 스크롤하면 이 작업을 시작하려면 자습서를 찾으십시오 기어를 도구 섹션으로 전환합니다 도구 섹션에는 모든 훌륭한 리소스에 대한 링크가 있습니다 갤러리를 시작으로 우리가 당신을 위해 만들었습니다

내가 사랑하고 디자인을 공유하기 위해 사용해온 부분이다 내 팀과 나는이 제품을 좋아한다 갱도 갤러리는 공동 작업을 매우 쉽고 매끄럽게 만듭니다

Nick이 갤러리에 대한 자세한 내용을 1 분 안에 알려줍니다 오른쪽에는 액세스 권한이 있습니다 양식화 된 아이콘의 다섯 가지 전체 세트 형식, 크기 및 밀도 범위에서 사용할 수 있습니다 하단에는 Material Theme가 표시됩니다 스케치 편집자

Theme Editor 란 무엇입니까? 이미 다른 회담 소식을 듣지 않았다면, Theme Editor는 플러그인입니다 브랜드를 체계적으로 표현할 수 있습니다 색상, 도해 법, 인쇄술, 그리고 모양 그리고 Theme Editor를 통해, 당신은 우리가 당신을 위해 제공 한 주제를 취할 수있을 것입니다 그것을 사용자 정의하여 사용자 정의하십시오

이러한 구성 요소 집합은 디자인에 사용할 수 있습니다 곧 또한 Theme Editor에 대한 유용한 정보 가이드 라인에 언급 된 모든 가이드 라인입니다 도구에 직접 통합됩니다 나중에 뭔가를 바꾸고 싶다면 어떨까요? 문제 없어

다음은 내부 색상에서 색상을 선택하는 예입니다 팔레트를 구성 요소의 전체 라이브러리에 적용합니다 나는 이것이 매우 유용하다고 생각한다 그리고 이것은 내 일을 그렇게 쉽게 만듭니다 이제, 나는 그것을 동료에게 넘겨 주겠다

닉, Theme Editor 사용법에 대해 더 자세히 이야기 해주십시오 고맙습니다 고마워, 조니 고마워, 조니 그래서 우리는 Material System, Foundation, 가이드 라인을 통해 고유 브랜드를보다 쉽게 ​​가져올 수 있습니다

귀하의 앱에 나는 당신에게 어떻게하면 좋을지의 예를 들려 줄거야 당신은 정말로 얼마나 쉬운 지 보여주기 위해 이것을합니다 해야 할 일이며, 특히 새로운 자료가 어떻게 나타나는지 보여줍니다 툴링은 설계 과정에서이 프로세스를 만듭니다 훨씬 더 빨리 개발할 수 있습니다

그래서 저는 올해 멋진 팀의 일원이었습니다 Google I / O 앱을 디자인하고 제작 한 사람 어쩌면 당신 중 일부는 그것을 사용했을 수도 있습니다 우리는 새로운 컴포넌트 리를 배치했음을 눈치 챘을 것입니다 여기에 하단 앱 바를 사용하는 것처럼 인셋 팹과

그러나 우리는 새로운 Material Theming을 모두 사용하고 싶지 않았습니다 우리가 원하지 않았기 때문에 오늘 큰 출시를위한 쇼를 망쳐 놓을 수 있습니다 오늘 우리가하는 일은 너를 걷는거야 Material Theming이 어떻게 할 수 있었는지 몇 가지 가능성을 통해 Google I / O의 상표를 훨씬 더 깊게 가져 오기 위해 적용됩니다 이 응용 프로그램에

그래서 Google I / O, 개발자 회의입니다 우리는 그것을 개발자 페스티벌로 거의 생각하고 싶어합니다 이 브랜드에는 장난기가 가득합니다 나는 특히 장난을 좋아한다 모션 스타일의 종류

또한 색상 표를 통해 표현됩니다 당신 주위에있는 모든 곳에서 볼 수 있습니다 또한 소프트웨어의 은유를 사용합니다 엔지니어링 세계, 레이어 및 스택과 같은 것들 그리고 우리는 일러스트 스타일에 영감을주기 위해 그것을 사용합니다

브랜드의 일종으로 그렇다면 이러한 요소를 앱 디자인에 어떻게 적용 할 수 있을까요? 그래서 나는 스케치에있다 이 파일은 테마 편집기에서 생성 한 디자인 파일입니다 조니가 방금 당신을 보여 줬어 Theme Editor가 많은 것들을 생성했다는 것을 알 수 있습니다 우리를 위해

그것은 구성 요소의 무리, 인쇄술, 스케일, 컬러 팔레트, 입면도 설정 및 아이콘, 등등 여기에서 Components View로 전환하면, 기본적으로 볼 수 있습니다 자료의 모든 구성 요소에서 일대일로 이 스티커 시트에서 나를 위해 생성 된 지침 여기, 내 디자인에서 사용할 준비가되었습니다 앱 바에서 모든 것이 있습니다 팹에서 카드로의 백 드롭

이름은 여기에 있습니다 이 구성 요소들에 대한 더 좋은 점은 그들이 Material Theming 시스템을 알고 있다는 것입니다 내가 의미하는 바를 보여 드리죠 테마로 다시 전환하여 여는 경우 스케치 플러그인 메뉴의 테마 편집기, 우리는이 테마가 현재 I / O, 일종의 인디고 프라이 머리, 그리고 청록색 악센트 색깔의 종류 색상 설정으로 들어가서 여기에서 Primary Color 섹션을 클릭하면, 그리고 나는이 원색을 바꾸어야했다

16 진수 코드를 직접 드래그하거나 16 진수 코드를 입력함으로써, 그것은 많은 효과를 가질 것입니다 내가 너를 그들을 따라 가게 해줘 우선, 이런 종류의 색조 팔레트를 보게됩니다 이 10 가지 색상의 색상이 생성되었습니다 내가 선택한 그 한 색깔에서

이것은 꽤 멋지다 나는이 작은 것에 괴짜 할 것이다 여기에 순진하지 않고 있습니다 선택한 색조 만 사용하는 것이 아닙니다 밝기를 변경하고 그런 식으로 팔레트의 종류,이 알고리즘 뒤에 디자이너가 색상을 선택하는 방법을 모방하려고 노력하고 있습니다

그리고 그것을 사용하여 멋진 색상 표를 고를 수 있습니다 잘하면 응용 프로그램 전체에서 훌륭하게 작동합니다 그래서 그것을 선택하면 테마의 전체 색상 팔레트 업데이트 중입니다 그리고 제가 다시 구성 요소로 전환하면,이 스티커 시트, 당신은이 모든 요소들이 테마 색의 변화를 알고 있습니다 그리고 그 변화는 모든 요소들로 흘러 넘칩니다

따라서 앱 바가 기본 색상을 선택하고 더 어두운 색상을 선택할 수 있습니다 상태 표시 줄의 음색 등, 그것은 꽤 강력합니다 그렇다면 우리가 생성 한이 라이브러리를 어떻게 사용합니까? 따라서 내 앱 디자인 파일로 전환하면, 이것은 I / O 앱의 일부 화면입니다 라이브러리의 구성 요소를 사용하여 디자인했습니다 저를 위해 Theme Editor가 생성되었습니다

Sketch의 라이브러리 기능을 사용하지 않은 경우, 꽤 멋지다 기본적으로 구성 요소를 공유하는 방법입니다 서로 다른 디자인 파일간에 또는 팀간에 공유 할 수 있습니다 그것은 매우 강력합니다 따라서 표준 스케치 삽입물을 사용하여 라이브러리에 액세스합니다

메뉴 그리고 제가 생성 한이 라이브러리로 스크롤합니다 그리고 바로 여기서 볼 수 있습니다 스티커 시트에서 우리가 방금 보았던 이러한 종류의 나무 구조로 배열됩니다 그래서 우리는 우리가 구성 요소의 다양한 변형, 구성 요소가있을 수있는 다른 상태로 내려갑니다

따라서 설계에 팹을 추가하려면, 메뉴에서 하나 잡을 수있어 내 디자인에 떨어 뜨려 라 그리고 오른쪽 경위 창에서, 재정의를 제공하는 것을 볼 수 있습니다 당신은 아이콘과 같은 것들을 바꿀 것입니다 따라서 Theme Editor를 통해 생성하면, 사용할 수있는 많은 구성 요소가 있습니다

그래서 우리는 그것이 생성 된 라이브러리를 이해합니다 그리고 그것을 당신의 디자인에 사용하는 방법 이러한 매개 변수 중 일부를 사용자 정의하기 시작하십시오 그래서 나는 나의 도서관으로 돌아가 Theme Editor를 열었다 그리고 내가 생각하는 첫 번째 매개 변수 중 하나 I / O 브랜드가 재미있을 수도 있습니다

I / O 로고에서 영감을 얻고 싶습니다 그 사이에 이런 종류의 탁월한 슬래시가 있습니다 나는 우리가 흥미로운 종류의 표면을 할 수 있다고 생각한다 모양 치료 그래서 기본적으로, 기준선에서, 우리는 이런 종류의 둥근 모서리 표면 모양

각도 설정으로 전환하겠습니다 대신에이 세 모서리의 선택을 취소하십시오 왼쪽 상단 모퉁이 반지름을 크랭크 업하십시오 여기 I / O 로고에서 영감을 얻으 려합니다 내 제품의 구성 요소에 깊이 삽입 할 수 있습니다

라이브러리에서 저장을 누르고 전환하면 내 디자인 파일에 스케치가이 작은 보라색 막대를 띄웁니다 모퉁이에서 기본 라이브러리에 업데이트되었습니다 이것을 클릭하면 diff가 거의 나옵니다 이것들은 모두 이러한 변화의 영향을받을 것입니다 그래서 그것들을 선택할지 말지를 선택할 수 있습니다

나는이 모든 변화를 가져갈 것입니다 이제는 형상 시스템을 알고있는 모든 구성 요소 업데이트 될 예정입니다 예를 들어이 하단 시트를 확대하면 당신은 그것이 커트 코너에서 픽업되는 것을 볼 수 있습니다 그리고 마찬가지로, 여기에있는이 제기 버튼에, 그것은 모양을 인식합니다 시스템의 일부 구성 요소는 다른 기능을 제공합니다

매개 변수를 선택할 수 있거나 가질 수없는 변형 체계 예를 들어, 여기에 표준 원형 프리젠 테이션을 사용하고 있습니다 그러나 Symbol 설정으로 들어가면 내가 선택한 곳으로 갈 수있어 다른 대안을 선택하십시오 만약 내가 매개 변수를 알고 싶거나 원하지 않는다면

예를 들어, 다이아몬드 또는 스퀘어 타입으로 픽업 할 수 있습니다 모양, 다른 모양 매개 변수에 데리러 것입니다 또는 원하면 원형으로 유지하도록 선택할 수 있습니다 그래서 그것들은 그들의 매개 변수를 고르지 않을 것입니다 유사 콘텐츠에 대해 말하면서 새로운 분산을 도입했습니다

텍스트 필드 중 우리는 곧 다시 돌아올 것입니다 내 디자인에서 바로 들어가서 선택할 수 있습니다 기본 텍스트 필드의 표준 종류는 무엇입니까? 다른 변형으로 전환 할 수 있습니다 내 스티커 시트에서 사용할 수있는 것들 그래서 거기에 우리가 간다

텍스트 필드의 다른 변형이 있습니다 바로이 윤곽선을 사용하면 더욱 분명합니다 살펴보고 싶은 다음 매개 변수는 활판 인쇄입니다 현재 I / O 앱은 Google Sans를 사용하고 있습니다 Google 브랜드의 서체 인 페어링 된 Roboto와 함께 나는 우리가 어떤 영감을 얻을 수 있다고 생각한다

그것은 개발자 이벤트입니다 그래서 저는 개발에서 영감을 얻으려고합니다 환경을 보호하고 모노 스페이스 글꼴을 사용해보십시오 이것이 Google 브랜드와 어떻게 작동하는지 확인하십시오 Theme Editor의 타이포 그라피 설정으로 들어가면, 테마 편집기에있는 여기에이 스케일이 있음을 알 수 있습니다 나를 위해 생성, 이런 종류의 의미 스타일을 제공 내 디자인 전반에 걸쳐 적용 할 수 있습니다

여기에있는 Google Sans를 선택하고 검색하면 모노 스페이스 (monospace)의 경우, 여기서 Roboto Mono를 사용할 것입니다 내 즐겨 찾기 중 하나, 그것은 어디서나 교환 할 것입니다 그 다른 폰트가 사용되었다는 것 내가 사는 곳마다 다른 곳이야 Google Sans의 다른 변형을 사용하면 수동으로 변경할 수 있습니다

그리고 그것은 흥미로운 것을 할 것입니다 여기를 보시면 Google Sans로 설정되어있는 동안 볼 수 있습니다 특정 글꼴 크기와 추적 및 무게를 가졌습니다 그리고 다른 글꼴, Roboto Mono로 전환했을 때, 해당 스타일에 대해 변경된 글꼴 크기, 추적 및 체중 그래서 여기에있는 것은 Theme Editor입니다

글꼴에 대해 꽤 영리합니다 글꼴의 특성을 살펴 봅니다 순서대로 광학적으로 수정하십시오 조화로운 스케일을 만들 수 있습니다 그래서 당신이 선택한 글꼴이 무엇인지 알 수 있습니다

x 높이 또는 획 두께가 다릅니다 또는 이와 비슷한 것을 보면, 사용하는 크기를 조정합니다 규모의 다양한 유형에 대한 이 조화로운 유형을 생산하기 위해서 모두 단지 글꼴을 선택함으로써, 그것은 저를위한 스케일을 생성합니다 그것은 꽤 훌륭하다

그래서 그것을 저장하고 내 앱 디자인으로 다시 전환합니다 다시 말하면, 도서관이 업데이트되었음을 ​​알려줍니다 나는 모든 변화를 가져갈 수있다 디자인 전반에 걸쳐 나는 다른 폰트를 마침내 사용하고 있었다 당신은 내 새로운 서체로 업데이트 된 것을 볼 수 있습니다

[박수 갈채] 테마 편집기로 이동하십시오 그래서 이러한 변화는 나에게 꽤 좋아 보인다 나머지 팀원들과 공유하고 싶습니다 머티리얼 플러그인을 사용하면 Theme Editor와의 긴밀한 통합을 얻으십시오 하지만 갤러리와도 정말 잘 통합됩니다

공동 작업을위한 도구 플러그인에서 바로 갤러리에 업로드하도록 선택할 수 있습니다 프로젝트 또는 하위 수집을 설정할 수 있습니다 그것을 넣고 곧바로 업로드 할 수 있습니다 한 번 업로드하면 준비가 완료됩니다

팀과 공유했습니다 그래서 나는 우리 팀과 공유 할 수있는 고유 한 URL을 얻습니다 그래서 갤러리에서 디자인 작품에 대한 개요를 얻을 수 있습니다 새로운 반복을 업데이트 할 수 있으므로 내 디자인이 어떻게 발전했는지 나는 논평 할 수있다

그래서 이것을 사람들과 공유 할 수 있습니다 다양한 디자인 기능에 대한 토론이 있습니다 그러나 나는 당신에게 내가 절대적으로 좋아하는 기능 중 하나를 보여 주겠다 이는 검사 모드입니다 이제 Inspect Mode를 사용하면 디자이너가 쉽게 작업 할 수 있습니다

개발자와 개발자를위한 핸드 오프 디자인에서 필요한 모든 정보를 얻을 수 있습니다 따라서 Inspect Mode를 활성화하면이 Inspector를 얻습니다 오른쪽으로 그리고 나서, 내가 가리 키거나 디자인의 항목을 선택할 때, 그것은 나에게 spec 일을 줄 것이다 근본적으로 나에게 자동으로 빨간 선을 그어 줄거야

그래서 그것은 나에게 크기, 위치 정보를 준다 그것은 선택과 모든 것의 몸과 사본을 나에게 준다 서체 정보 그것도 당신이 그들에서 사용하는 모든 아이콘을 데리러거야 소재 테마 그래서 어떤 Material Icons가 당신을 연결시킬 것입니다 Material Icon 사이트로 이동합니다

필요한 자산을 확보 할 수 있습니다 그리고 바로 거기에서 무엇보다도 갤러리는 구성 요소를 이해합니다 테마 편집기가 생성합니다 따라서이 팹을 여기에서 선택하면, 단지 말하지 않을 것입니다

이봐, 이건 파란색 동그라미 야 그것은 말할 것입니다, 이봐 요, 나는 그것이 팹이라는 것을 알고 있습니다 따라서 그것이 팹이라는 것을 알 수 있습니다 무엇보다도 플랫폼 링크 당 제공됩니다 문서를 참조하기 때문에 개발자 구현해야하는 구성 요소로 직접 이동할 수 있습니다

그리고 그들은 어떤 매개 변수도 주어질 것입니다 변경 사항은 구성 요소에서도 변경되었습니다 나는 이것을 충분히 강조 할 수 없다 더 이상 그림이 그림을 넘겨주는 것이 아니라, 이봐, 이걸 구현할 수 있기를 정말로 바란다 구성 요소 간의 밀 결합 Theme Editor와 Material Design 구성 요소간에 제공됩니다

그들은 동일한 구성 요소라는 것을 의미합니다 이 구성 요소를 사용한다는 의미입니다 이 매개 변수가 변경되었습니다 그래서 더 이상 추측하는 게임이 아닙니다 그래서 이러한 변화는 나에게 좋을 것 같습니다

@Will에 대한 Comment 기능을 열어 두겠습니다 이러한 변화가 갤러리에 업로드되었습니다 구현 준비 너에게 끝이야, 윌 LARCHE : 고마워, 닉

그는 위대하지 않습니까? [박수 갈채] 그래서 저는 엔지니어입니다 그리고 닉은이 갤러리 프로젝트를 나에게 공유했습니다 나는 링크를 얻었다 그리고 나는 그것을 클릭한다 그리고 나는 여기 들어올거야

그리고 나에게 Material Components 선적 서류 비치 자, Material Components 또는 MDC는 무엇입니까? Material Components는 오픈 소스 프레임 워크입니다 머티리얼 디자인을 구현합니다 Android 용 MDC, iOS, 웹 및 Flutter 용 MDC가 있습니다 Google에서 앱과 동일한 코드입니다

각각에는 수십 가지 구성 요소가 있으며 모두 닉이 더 일찍 이야기했던 시원한 것들을해라 오픈 소스이기 때문에 수수께끼가 없습니다 그들은 마법 상자가 아닙니다 보거나 사용자 정의 할 수있는 모든 것을 사용할 수 있습니다 그리고 우리는 코드를 기증 해 주시기 바랍니다

이제 Material Components의 새로운 텍스트 필드를 살펴 보겠습니다 어떻게해야합니까? MDC를 코드 기반에 추가하는 것은 매우 쉽습니다 Android 사용자는 디자인 지원에 액세스합니다 표준 지원 라이브러리 설정을 사용하여 Maven을 통해 라이브러리 웹에서는 노드 모듈 만 설치하면됩니다

Flutter에서 끝났습니다 Flutter에는 재질 구성 요소가 내장되어 있습니다 iOS에서는 CocoaPod를 사용할 수 있습니다 Pod 파일에 추가합니다 iOS에서 조금 더 자세히 살펴 보겠습니다

새 텍스트 필드를 구현하는 방법에 대해 설명합니다 따라서 MDC iOS의 모든 텍스트 입력란에는 입력 및 제어기를 포함한다 우리는 MDC 텍스트 필드와 아웃 라인 컨트롤러를 추가 할 것입니다 우리의 앱에 본질적인 콘텐츠 크기를 사용하여 레이아웃 할 수 있습니다

UI 텍스트 필드 대리자를 설정할 수도 있습니다 그리고 자리 표시자는 국경을 넘어서 뜰 것이다 MDC를 이미 사용하고 있다면 업그레이드가 매우 쉽습니다 이러한 새로운 디자인을 얻으십시오 CocoaPod를 사용하고 있다면, 포드 업데이트 MaterialComponents를 실행하십시오

그런 다음 컨트롤러 클래스를 변경합니다 예전의 수업에서 새로운 멋진 수업 중 하나에 이르기까지 그리고 너 끝났어 그런데이 텍스트 필드는 훨씬 더 우수합니다 이전 디자인보다 성능이 좋습니다 우리는 엄청난 양의 연구를 순서대로 수행했습니다

이러한 최적화 된 디자인, 많은 연구가 필요합니다 그리고 그것은 긴 형태로, 사용자가보고 상호 작용할 확률이 훨씬 높습니다 이 텍스트 필드는 이전 디자인보다 새로운 텍스트 필드 또는 자료에 대해 더 자세히 알고 싶다면 연구, 목요일 "Measuring Material"목요일을 볼 수 있습니다 12시 30 분에 iOS에서 이렇게하는 것은 쉬운 일입니다 하지만 안드로이드는 어떨까요? 글자 입력 레이아웃에 윤곽선 상자 스타일을 설정했습니다

요소입니다 웹에서는 요소를 바꿉니다 클래스 MDC 라인 리플, MDC 클래스의 요소 클래스 경로가있는 SVG가있는 노치 아웃 라인 MDC 노치 외곽선 경로 및 MDC 요소 노치가있는 윤곽 유휴 수정 자 클래스 MDC 텍스트 필드 개요를 잊지 마십시오 더 간단 할 수는 없습니다

그리고 Flutter에서 테두리를 윤곽선으로 바꿉니다 MDC Flutter에서 일하기 때문에 조금 편견이 있습니다 하지만 펄터가 완벽한 방법이라고 생각합니다 여러 플랫폼에서 재료 설계를 구현할 수 있습니다 한 번 해보면 iOS와 Android를 모두 얻을 수 있습니다

그리고 MDC가 바로 구워집니다 Flutter 용 기본 UI 프레임 워크입니다 새 프로젝트를 만들 때마다 이미 링크되어 있습니다 나는 그것을 좋아한다 이제 재료 텍스트 입력란 코드에 추가 할 수 있습니다

그러나 더 많은 것이 있습니다 거의 모든 재료 가이드 라인 구성 요소를 찾을 수 있습니다 자재 구성 요소 앱 바, 버튼, 카드, 칩, 대화 상자, 탐색, 탭, 잉크 잔물결 지금 수십 가지가 있습니다

그리고 오늘 Materialio/develop에서이 모든 것들을 이용할 수 있습니다 그리고 설계가 완료되지 않았기 때문에 항상 더 많은 것들이 추가됩니다 오늘은 디자인 리소스를 보여 줬습니다 오늘 Material

io에서 사용할 수 있습니다 Theme Editor, Gallery 및 Material Tools Suite의 사용법 브랜드를위한 디자인을 사용자 정의 할 수 있도록 도와줍니다 머티리얼 구성 요소가 만드는 방법 4 개의 플랫폼에서 이러한 디자인을 쉽게 구현할 수 있습니다 정확성과 용이성 그래서 당신이 I / O에 있다면, 그 밖의 무엇을 할 수 있습니까? 우리의 디자인 돔으로 갈 수 있습니다

디자인 리뷰 및 데모를 얻을 수 있습니다 박스 회담에 귀를 기울이십시오 그리고 당신은 또한 이야기를 보러 갈 수 있습니다 "Flutter가있는 코드 Beautiful UI 그리고 재료 디자인 " 우리는 Material Components를위한 30 개의 코드 랩을 가지고 있습니다

코드 랩에서 그리고 수요일 2시 30 분에 세션, "펄럭과 물질을 묻는다" 우리에게 와서 질문 할 수있는 곳 Flutter 앱에서 소재 디자인을 구현하는 방법에 대해 알아보십시오 고맙습니다

[음악 재생]

Your Google Assistant: Now on Android TV

[음악 재생] OK, Google 당신은 무엇을 할 수 있나요? 스피커 2 : 너는 나에게 다음과 같은 것들을 물어볼 수있다

연설자 3 : 음악을 연주하십시오 스피커 4 : "마스터 오브 플레이"를 실행하십시오 AZIZ ANSARI : Yumtown Dez 인구 연설자 4 : 뉴욕에있는 다른 TV 쇼를 보여 줘 제 3의 이야기를 들려주세요

Luke Cage에 대한 정보가 있습니다 연사 1 : Netflix를 엽니 다 발표자 4 : Google Play 무비를 엽니 다 사진 같아? 스피커 5 : 열린 HBO [노호] 스피커 1 : 멈춤

"Games of Thrones"에 몇 개의 에피소드가 있습니까? 발표자 2 : 67 개의 에피소드가 있습니다 제 1 주제 : 오늘의 제 안건은 무엇입니까? 발표자 2 : 귀하의 캘린더에는 아무 것도 없습니다 스피커 1 : 일시 정지 해제 CATELYN STARK : 겨울이오고 있습니다 연설자 4 : 겨울 방학 때 사진을 보여주십시오

발표자 6 : YouTube에서 비디오 검색 사람들 옷을 입은 개들 오늘의 예측은 무엇입니까? 발표자 : 95 %의 강수 확률이 있습니다 스피커 5 : 좋아 "나코"를 연주하십시오 발표자 7 : "안전하지 않다

" 스피커 8 : "빛나다" 스피커 9 : "오렌지는 새로운 블랙입니다" 연사 10 : "크라운" 연설자 11 : "이상한 것들"을 연주하십시오 스피커 12 : 조명을 어둡게합니다

[음악 재생]

Keynote (Google I/O '18)

좋은 아침입니다 구글 CEO 순다르 피차이 구글 개발자 연례 회의에 오신 여러분을 환영합니다 날씨가 좋네요 작년보다 좀 더 따뜻한 거 같아요 모두들 즐거운 시간 보내고 계신가요 이 자리에 와 주셔서 감사합니다 오늘 약 칠천명 정도가 와 주신 것 같은데요 여기 와 주신 분들 뿐만 아니라 전세계에서 라이브 스트리밍으로 보고 계신 분들도 있습니다 모든 분들에게 감사 드립니다 오늘 많은 얘기를 나눌 거예요 시작하기 전에 아주 중요한 사안을 먼저 해결하고 싶네요 작년 말 즈음에 제 눈길을 끈것이 있었는데 우리 주력 상품 중 하나에 중대한 버그가 있다는 것이었죠 뭐였냐면 버거 이모지에 있는 치즈의 순서가 잘못 된것이었습니다 버그를 고치느라 고생 좀 했어요 사람들이 치즈가 어디 있는지에 대해 그렇게 많이 신경 쓰는지 몰랐어요 그래서 수정했습니다 애초에 제가 채식주의자라는 게 좀 아이러니하네요 어째든 수정이 완료되었습니다 이번엔 치즈가 올바른 곳에 자리잡았기를 바랍니다 버거 이모지를 수정하다 보니 이 이모지도 거슬리더군요 왜 거품이 맥주 위에 있는지에 대해 직원들이 한 설명은 언급하고 싶지도 않네요 이제 물리법칙에 맞게 수정해두었습니다 다 잘 수정되었으니까 본론으로 들어가볼까요? 작년 개발자 회의 이후로 생긴 많은 발전들에 대해 이야기 해보죠 많은 부분에서 특별한 한 해였다는 것을 모두 동의하실 거라고 생각합니다 여러분도 느끼셨을 거라 믿습니다 우리는 지금 컴퓨팅에 있어서 중요한 변곡점에 서 있습니다 기술을 진보시키는 건 흥미진진한 일이죠 그에 따른 우리의 책임에 대해서도 많은 생각을 해 봤습니다 기술에 대한 기대는 어떤 세상에서 사느냐에 따라 혹은 어떤 기회가 주어졌느냐에 따라 굉장히 달라집니다 휴대폰 없이 성장한 저같은 사람은 분명히 기억하고 있습니다 기술에 대한 접근성이 우리의 삶을 어떻게 바꿀 수 있는지를요 우리는 세계 각지에서 일을 하면서 이를 목격할 수 있습니다 여러분은 스마트폰을 처음 접하는 사람을 보면서 알 수 있을 겁니다 그리고 우리가 보는 디지털 기술에 대한 큰 수요를 통해 느낄 수 있습니다 그게 바로 우리가 디지털 기술을 세계 각지로 보급하는데 집중하는 이유입니다 지금까지 우리는 2,500만명을 훈련시켰고 향후 5년 안에 그 숫자가 6,000만명 이상이 될 것으로 기대하고 있습니다 기술이 긍정적인 힘을 가진 것은 분명합니다 그러나 기술 혁신이 가져올 수 있는 결과에 대해 우리가 놀라기만 할 수는 없다는 것 역시 분명합니다 기술의 진보가 우리의 삶에서 수행할 역할에 대한 매우 실제적이고 중요한 질문이 있습니다 우리가 가야할 길에 대해 매우 조심스럽고 신중한 접근이 필요하다는 것을 잘 알고 있습니다 그 권리를 얻은 데 대한 깊은 책임감 역시 느끼고 있습니다 주요 과제들에 대한 우리의 신념이 바로 이것입니다 정보를 좀 더 사회에 유용하게, 접근성 있게 그리고 유익하게 만드는 것입니다 하나의 기업체로서 영원한 과제를 가진다는 것이 행운이라고 생각합니다 처음 시작했을 때만큼이나 오늘날과도 이어져 있는 느낌이거든요 우리의 과제에 접근함에 있어서 새로운 활력소와 함께 한다는 사실에 흥분됩니다 AI에서의 성장 덕분이죠 AI는 우리에게 새로운 길을 제시해 줬습니다 전세계 사용자들의 문제를 해결 하는데 있어서요 작년 개발자 회의에서 구글 AI를 발표했습니다 우리 팀이 열심히 노력한 결과였죠 AI의 편리함을 모두와 나누기 위해서 말입니다 저희는 전세계적으로 보급하고 싶기 때문에 세계 곳곳에 AI 센터를 만들었습니다 AI는 앞으로도 많은 분야에 영향을 주게 될 겁니다 오늘 그 예시를 몇 개 보여드리겠습니다 AI가 변형시킬 중요한 분야 중 하나가 건강 관리 분야입니다 작년에 당뇨병성 망막증과 관련한 작업을 발표했습니다 이것이 실명의 주요 원인입니다 구글은 의사의 더 빠른 진단 돕기 위해 딥 러닝 기술을 적용했습니다 그 때부터 계속 현장 시험을 해왔습니다 인도의 아라빈드 병원과 산카라 병원에서 이루어졌죠 현장 시험 결과는 매우 좋았습니다 전문의가 드문 지역에서 전문적인 진단을 내릴 수 있게 해 줬습니다 같은 망막 스캔을 봐도 사람이 찾아낼 수 없는 것들을 AI는 찾아낼 수 있다는 것을 알 수 있었습니다 같은 홍채 인식을 통해서 AI는 더 많은 정보들을 얻을 수 있었습니다 이를 통해 5년 내에 심장마비나 뇌졸중 같은 유해 심혈관 관련 질병의 발병을 예상할 수 있었습니다 제가 흥미롭게 생각한 점은 의사가 홍채 검사로 발견할 수 있는 것보다 머신 러닝을 통해 발견할 수 있는 것이 더 많다는 것입니다 이 기술은 심혈관계 질환을 수술 없이 발견하는 데 초석이 될 수 있습니다 현재도 진행중이며 최근 연구 결과를 발표했습니다 또한 협력사들과 함께 이를 현장에 적용시키려 작업하고 있습니다 AI가 도울 수 있는 또 다른 분야는 의사를 도와서 질병을 예측하는 것입니다 의사들은 다양하고 많은 어려움에 직면하고 있습니다 그런 의사들을 위해서 예고를 해 주는 거죠 24시간에서 48시간 이내에 환자가 매우 아프게 될 것 같다 이런 예고는 중대한 차이를 가져올 수 있습니다 그래서 머신 러닝 시스템으로 작업을 진행했습니다 협력 업체들과 함께 일했습니다 익명의 의료 기록들을 이용했습니다 그리고 각 환자별로 십만개가 넘는 정보를 분석하면 어떤 의사도 혼자서 분석할 수 없는 양이죠 AI가 양적으로 재입원의 가능성을 추측할 수 있다는 것을 알아 냈습니다 기존 방식보다 24시간에서 48시간 빠르게요 의사에게 행동할 시간을 좀 더 많이 줄 수 있습니다 이와 관련한 자료를 오늘 오후경에 게재할 예정입니다 우리와 함께 일할 병원이나 의료기관을 찾고 있습니다 AI가 도울 수 있는 다른 분야는 접근성 분야입니다 일상적인 사용 사례를 훨씬 쉽게 만들 수 있습니다 흔한 사용사례를 들어 볼게요 밤에 집에 오면 TV를 켜잖아요 종종 두 명 혹은 그 이상의 사람들이 서로에게 열정적으로 대화를 하는 화면을 보실 겁니다 잘 들리지 않는 부분을 들으려고 자동 생성 자막에 의존해서 무슨 말을 하는지 본다고 상상해보세요 아마 이런 장면을 보게 될 겁니다 보시다시피 알아 보기가 힘들죠 무슨 말을 하는 지 알기 어렵습니다 그래서 '루킹투리슨'이라 불리는 머신 러닝 기술이 있습니다 청각 신호만을 알아듣는 것이 아니라 시각 신호와 청각 신호를 결합하여 두 음성을 명확히 구분해 줍니다 어떻게 작동하는 지 보실까요? 유튜브 영상이라고 생각해보세요 그는 대니 에인지 수준은 아닙니다 그렇지만 콜란젤로보다는 낫죠 그러니까 그는 알아들을 수 있습니다 고의로 져도 괜찮다고 말한 겁니까? 지금 고의로 지는 것이 괜찮다고 말했을 뿐만 아니라 팬들한테 다 알려준 거죠? 이래도 괜찮다고 당신이 괜찮다고 했잖아요! 더 이상 말 할것도 없네요 우리는 말 할게 많이 있죠 중요한 일상적인 사용사례에 어떻게 기술을 접목하여 훨씬 더 편리하게 만들 수 있는지 보셨습니다 기술의 위대한 점은 끊임없이 발전한다는 것입니다 사실 머신 러닝은 200년 전 기술인 모스부호에도 적용시킬 수 있습니다 그리고 누군가의 삶의 질에 영향을 줄 수 있죠 한 번 보실까요? 안녕하세요 저는 타냐입니다 이것이 제 목소리 입니다 저는 머리 근처에 고정되어 있는 스위치로 점과 대시를 클릭해서 모스부호를 사용합니다 제가 어릴때에는 의사소통단어판을 사용했습니다 단어를 가리키기 위해 머리에 달린 막대를 사용해야만 했습니다 굉장히 재미있었습니다 진심으로요 모스부호가 처음 제 삶에 들어왔을 때 순수한 해방과 자유를 느낄 수 있었습니다 이따 봐요 사랑해요 아마 그게 제가 스카이 다이빙을 매우 좋아하는 이유인 것 같습니다 같은 해방감과 자유를 느끼거든요 스카이 다이빙을 통해서 제 하나뿐인 사랑인 켄을 만났습니다 그 역시 저와 사랑에 빠졌죠 정말 굉장히 힘든 일이었습니다 모스부호를 시험해 보기 위해 모스부호 장비를 찾는 건 힘들었어요 그래서 직접 만들어야만 했습니다 켄의 도움으로 제 목소리를 가질 수 있었습니다 또한 제 일상의 독립성도 향상 되었죠 하지만 대부분의 사람들 곁엔 켄과 같이 도와주는 사람이 없죠 그래서 G보드 팀과 협력하고 싶습니다 모스부호를 사용하는 자유를 만끽하길 희망하는 사람들을 도와주기 위해서요 G보드는 구글 키보드입니다 G보드에서 일하면서 알게 된 건 전세계적으로 그러니까 수천만명의 사람들이 살면서 본인들의 언어로 된 키보드를 가지지 못 했다는 사실입니다 구글은 타냐와 함께 모스부호를 지원하는 G보드를 만들었습니다 이것은 일종의 입력 양식입니다 모스부호를 입력하면 추측과 제안을 통해 문자가 출력됩니다 좋은 머신 러닝 예시라고 생각합니다 머신 러닝을 이용해서 실제로 누군가를 도와줄 수 있습니다 인공 지능이 없는 평범한 키보드는 할 수 없는 일이죠 이 여정을 계속할 수 있어서 매우 행복합니다 아주 많은 사람들이 이로 인해 혜택받을 거예요 그게 저를 무한히 전율시킵니다 고마워요 타냐 다른 사람들이 그들의 목소리를 찾게 당신의 목소리를 사용해줘서 매우 인상적인 이야기입니다 타냐와 켄을 이 자리에 모실 수 있어서 매우 영광입니다 타냐와 켄은 실제로 개발자로서 프로젝트에 기여했습니다 G보드에 포함된 실제 예측 제안의 힘을 모스부호의 문맥에서 사용 하기 위해 직접 구글 팀과 함께 개발에 참여했습니다 모스부호 기능이 포함된 G보드의 베타 버전이 오늘 오후경 이용가능 하다는 사실에 정말 기쁩니다 AI와 함께 제품을 재창조할 수 있어서 너무 좋습니다 G보드가 훌룡한 예시죠 매일매일 80억개가 넘는 자동 완성을 우리가 사용자에 제공하고 사용자는 그를 선택합니다 우리 주력 상품 중 하나를 AI를 이용해서 재설계한 또 다른 예시는 G메일입니다 G메일이 새롭고 신선한 외관으로 최근에 바뀌었잖아요? 최근에 이루어진 재설계입니다 여러분이 만족하시면서 쓰시고 계신다면 좋겠네요 G메일의 또 다른 기능을 보여드리겠습니다 스마트 작성이라고 부릅니다 이름에서 알 수 있듯이 머신 러닝을 사용해서 여러분이 타자를 칠 때 문구를 제안해주는 거죠 여러분이 할 일은 탭을 누르고 자동 완성을 하는 것 뿐입니다 화요일에 타코 먹기 자클린 안녕 못 본 지 좀 됐네 잘 지내고 있지? 조만간 만나서 타코 먹는 거 어때? 니가 나쵸랑 살사소스 가져오면 내가 과카몰리 만들게 이 메일에서 제목이 화요일에 타코 먹기라는 것을 인지하고 칩, 살사 소스, 과카몰리를 제안하고 있고요 주소같은 일반적인 것들도 자동으로 처리합니다 그래서 여러분이 걱정할 필요가 없죠 뭐라고 쓰고 싶은지에만 집중하면 됩니다 저는 이 기능을 즐겨 씁니다 이 기능으로 회사에 많은 메일을 보냈어요 회사가 뭐라고 생각할 지는 모르겠지만요 굉장히 좋았습니다 이번 달 내로 스마트 작성을 출시할 예정입니다 여러분 모두 좋아하시기를 바랍니다 다음 제품은 개발 단계부터 AI를 활용해서 만든 서비스인데요 바로 구글 포토입니다 아주 잘 작동되고 있고 점점 더 나아지고 있습니다 사진 중 하나를 클릭하는 것을 사진 뷰어 경험이라고 부릅니다 한 번에 한 장의 사진만을 보는 거죠 사진 서비스 규모에 대한 부연설명을 드리자면 매일매일 50억 장이 넘는 사진이 사용자들에 의해 클릭됩니다 매일매일이요 우리는 AI가 그런 상황에서 쓰이기를 바랐습니다 새로운 기능인 행동 제안입니다 사소한 행동들을 제안해주는 거죠 사용자가 행동하는 맥락 안에서요 예를 들어보겠습니다 결혼식에 다녀 왔다고 가정하죠 찍은 사진들을 살펴보겠죠 구글포토가 사진 안에 당신의 친구인 리사가 있다는 것을 인식하고 그러면 리사와 함께 찍은 사진 세 장을 공유하지 않겠느냐고 제안하는 거죠 한 번의 클릭으로 그 사진들을 리사에게 보낼 수 있습니다 모두들 자기 휴대폰으로 사진을 찍으려고 하잖아요 그걸 개선할 수 있는 거죠 예를 들어보겠습니다 같은 결혼식입니다 사진의 노출이 부족하면 우리 AI가 제안하는 거죠 지금 밝기를 조절하라구요 탭 한 번만 해주면 저절로 적절하게 밝기를 조절해 줍니다 혹은 여러분이 나중에 다시 보려고 서류를 찍어 두었다면 구글 포토가 이를 인식하고 서류를 PDF파일로 변환할 수 있습니다 그래서 나중에

나중에 쓰기 훨씬 편하게요 이런 간단한 일들을 즐겁게 만들고 싶었습니다 한편으로는 AI가 예상치 못한 상황을 선사할 수도 있습니다 예를 들면 아이를 귀엽게 찍은 사진을 가지고 있습니다 더 좋은 사진으로 만들어 줄 수 있어요 배경색을 없애고 아이의 색을 튀게 만들어 줍니다 아이를 한 층 더 귀엽게 해 주죠 아니면 아주 특별한 순간 있잖아요 흑백 사진으로 저장된 순간이요 어머니나 할머니의 사진일 수도 있죠 구글포토는 색을 입혀서 그 순간을 재창조 할 수 있습니다 좀 더 현실적이고 특별한 순간으로 만들어 줍니다 이 모든 구글 포토의 새 기능은 몇 달 이내에 출시될 예정입니다 이런 작업이 가능한 이유는 한동안 우리가 연산형 아키텍처의 규모에 많은 투자를 해왔기 때문입니다 작년에 텐서 프로세싱 유닛에 대해 말했던 것도 같은 이유입니다 특수 목적 머신 러닝 칩들입니다 오늘날 우리가 보고 있는 모든 제품의 개선을 만들어냈죠 이를 클라우드 소비자들에게도 이용 가능하게 만들었습니다 작년 이후로 우리는 열심히 일했습니다 그래서 오늘 차세대 TPU 30을 발표하게 되어 기쁩니다 이 칩들은 너무 빨라서 사상 처음으로 우리 데이터 센터에 액체 냉각 시스템을 도입해야만 했습니다 이 칩을 거대한 포드에 연결해서 각각의 포드들은 작년보다 8배 이상 빨라졌습니다 100 페타플롭스를 가뿐히 넘는 속도죠 덕분에 우리는 더 좋은 모델 더 큰 모델, 더 정확한 모델을 만들 수 있습니다 더 큰 문제들을 해결하는 데 도움을 주기도 하죠 AI를 다루면서 생긴 주요 문제 중 하나는 구글 어시스턴트입니다 우리가 바라는 완벽한 어시스턴트는 자연스럽게 대화할 수 있고 필요할 때 도움을 제공하며 현실의 일을 해결하게 해 주는 것입니다 이것을 더 좋아지게 만드는 작업을 하고 있습니다 어시스턴트가 자연스럽고 편안하게 대화할 수 있기를 원합니다 그러기 위해서는 구글 어시스턴트의 기초부터 시작해야겠죠 바로 음성입니다 오늘날 대부분의 사용자들이 어시스턴트와 상호작용하는 수단이죠 지금 음성은 '홀리'라고 불립니다 진짜 사람이죠 우리 스튜디오에서 몇 달간 머물렀습니다 녹음한 것들을 이어 붙여서 음성을 만들었습니다 하지만 18개월 전에 딥마인드 팀이 찾아낸 돌파구를 발표했죠 웨이브넷입니다 현재 체계와는 다르게 웨이브넷은 좀 더 자연스러운 음성을 만들기 위하여 실제 근본이 되는 로우 오디오를 만들어 냅니다 사람이 말하는 것과 흡사하게요 음의 높이, 속도 심지어는 말사이의 공백까지 따라해서 의미를 전달해 줍니다 그 모든 것을 가능하게 하고 싶었습니다 웨이브넷으로 열심히 작업했습니다 오늘부터 구글 어시스턴트에 6개의 새로운 음성이 추가됩니다 함께 인사 해 볼까요? 좋은 아침입니다 저는 당신의 구글 어시스턴트입니다 쇼어라인 앰피씨어터에 오신 것을 환영합니다 구글 개발자 회의를 즐기시기를 바랍니다 순다르씨에게 마이크를 넘깁니다 우리의 목표는 언젠가 전세계적으로 올바른 강세, 언어, 사투리를 구사하는 겁니다 웨이브넷이 이를 훨씬 쉽게 만들어 줍니다 이 기술을 활용하면서 어떤 놀라운 음성을 가진 분을 스튜디오로 모시면 좋을지 고민했습니다 한 번 보시죠 쿠스쿠스 북아프리카 세몰리나와 듀럼 밀을 빻아서 나온 작은 알갱이 형태의 음식 다정한 눈과 복슬거리는 꼬리에 내 하이쿠를 좋아하는 강아지를 원해 누구나 그렇지 않나? 생일을 맞은 당신의 생일을 축하합니다 생일 축하합니다 존 레전드 자랑하기 싫다고 얘기하겠지만 당신이 들은 것 중 최고의 어시스턴트가 될 겁니다 어디 사는지 말해 줄수 있나요? 각종 기기에서 저를 찾을 수 있습니다 휴대폰, 구글 홈 그리고 제게 행운이 따른다면 당신의 마음에서도요 네, 존 레전드의 음성이 어시스턴트로 나옵니다 존이 여러분이 물을 만한 모든 예상 질문에 답하면서 계속 스튜디오에 있지 않았던건 분명합니다 웨이브넷은 스튜디오에서 보내야 하는 시간을 줄이고 모델이 존의 다양한 목소리를 포착할 수 있게 했습니다 존의 음성은 올해 말에 특정 상황에 맞게 나올 예정입니다 여러분이 이런 대답을 들을 수 있게요 좋은 아침입니다 순다르씨 지금 마운틴 뷰의 하늘은 맑고 기온은 섭씨 18도입니다 오늘은 24도까지 올라갈 것으로 보이고 날씨는 화창할 예정입니다 오전 10시에는 구글 개발자 회의 기조 연설 일정이 있고 그리고 오후 1시에는 마가리타를 마실 예정입니다 좋은 하루 되십시오 오후 1시가 기다려지네요 존의 음성은 올해 하반기에 나올 예정입니다 AI와 함께 이런 진보를 이룰 수 있어서 정말 기쁩니다 구글 어시스턴트에는 더 많은 업그레이드가 있을 겁니다 그에 관해서 좀더 이야기해볼까요? 스콧을 무대 위로 모시겠습니다 헤이 구글 매디한테 전화 해 줘 네, 지금 전화합니다 헤이 구글 식사 4명 예약 해 줘 알겠습니다 헤이 구글 동생한테 전화해 줘 헤이 구글 형한테 전화해 줘 캐롤한테 문자해 줘 날 위해서도 캐롤에게 문자해 줄래? 헤이 구글 누가 나한테 문자했어? – 요 구글 – 컷! 케빈, 정말 좋았는데요 우리가 아직 '요 구글'은 못 만들어서요 '헤이'라고 해야 해요 헤이 구글 헤이 구글! 시아 노래 재생해 줘 헤이 구글 다음 편 재생해 줘 넷플릭스에서 크라운 재생해 줘 채닝 테이텀 나온 영화 전부 재생해 줘 알겠습니다 – 요 구글 – 컷! 잘 하셨는데요 제발 한 번만 '헤이 구글'이라고 해 주시면 안 될까요? 헤이 구글 내 휴대폰 찾아 줘 지금 찾고 있습니다 와! 헤이 구글 헤이 구글 헤이 구글! 요 구글 앞문 잠가 줘 컷! 좋아요 그럼 그냥 요 구글로 가죠 아마 기술자들은 그게 뭐든 업데이트하는 걸 좋아하겠죠 요 그냥 헤이 구글이라고 말하고 구글이 하게 하세요 안녕하세요 무었을 도와 드릴까요? 구글 어시스턴트 개발 총책임자 스콧 허프만 2년 전에 바로 이 연례 회의에서 구글 어시스턴트를 발표했습니다 오늘날 어시스턴트는 5억여개의 기기에서 이용 가능합니다 휴대폰, 스피커, 헤드폰 TV, 시계 그리고 그 외의 기기들을 포함해서요 40개가 넘는 자동차 브랜드의 자동차에서도 가능합니다 커넥티드 홈 디바이스 5천여개에서도 작동합니다 식기세척기부터 초인종까지요 전세계 사람들이 매일 어시스턴트를 쓰고 있습니다 예를 들면 우리는 작년에 인도에서 어시스턴트를 출시했습니다 반응이 정말 엄청났습니다 일일 사용량은 올해 초의 세 배가 됐습니다 올해 말까지 어시스턴트가 30개의 언어를 지원하고 80개국에서 이용 가능해 질 겁니다 대단한 진보를 이룬 거죠 그렇지만 아직 시작에 불과합니다 오늘 여러분에게 알려드릴 소식은 어시스턴트가 좀 더 자연스럽게 대화하고 시각적으로 나아질 중요한 방법입니다 여러분이 좀 더 많은 일을 하고 여유 시간을 가질 수 있도록요 피차이CEO가 말했다시피 이제 구글 어시스턴트에서 새로운 음성들을 선택할 수 있습니다 어시스턴트와 좀 더 자연스럽게 대화하기 위해서 중요한 요소죠 그러나 훌륭한 대화 상대가 되기 위해서 어시스턴트는 대화의 사회적 역동성을 깊게 이해해야만 합니다 예를 들어 보겠습니다 솔직히 말해서 어시스턴트가 내 말을 듣게 하고 싶을 때마다 '헤이 구글'이라고 말하는 건 조금 짜증나지 않나요? 여러분이 유튜브에서 보셨을 수도 있는 이 할머니는 분명히 그렇게 느끼고 계십니다 구구! 헤이 구구! 구구! 헬로우 구구! 헤에이 구구 오케이 구구 – 날씨가 어떨지 궁금하대 – 내일 날씨가 내일 날씨가 플래글러 해변의 내일 날씨는 소나기가 내릴 예정이며 기온은 최고 18도, 최저 13도입니다 어시스턴트가 결국 할머님을 위해서 일하긴 했네요 그렇지만 이렇게 힘들어서는 안 되잖아요 이제는 매번 '헤이 구글'이라고 하지 않아도 됩니다 확인해 보시죠 헤이 구글 워리어스가 이겼어? 네, 워리어스가 118 대 92로 이겼습니다 저번 일요일이었고 상대는 펠리칸스였습니다 좋았어! 다음 게임은 언제야? 워리어스의 다음 게임은 오늘 오후 7시 30분입니다 상대 팀은 펠리칸스입니다 고마워 오늘 밤 경기는 재밌겠어 내가 집에 가면 케빈 듀란트 저지 찾으라고 말해줘 알겠습니다 집에 도착하면 말씀 드리겠습니다 제가 자연스럽게 오고 가는 대화를 했다는 걸 눈치채셨나요? 어시스턴트와 대화하면서 후속 요청마다 '헤이 구글'이라고 반복할 필요가 없었죠 훨씬 더 유용한 건 제 어시스턴트가 어시스턴트에게 말하는 것과 여러분에게 말하는 것을 구분할 수 있다는 겁니다 이것을 지속되는 대화라고 부릅니다 가장 요청이 많이 들어온 기능이었습니다 이 기능은 다음주부터 사용 가능 합니다 경기 시간이 다가왔다고 가정해봅시다 헤이 구글 워리어스 경기 켜 주고 팝콘 기계 시작 해 줘 네 유튜브 TV에서 하는 골든 스테이트 워리어스 게임입니다 팝콘 기계 작동시켰습니다 그리고 거실이랑 주방 불 좀 어둡게 해 줘 알겠습니다 거실과 주방 조명을 낮춥니다 이 두 예시에서 제가 한 번에 여러 가지를 요구했다는 걸 알아차리셨나요? 우리한테는 굉장히 자연스러운 일이죠 하지만 컴퓨터가 이해하기는 어려운 일입니다 이것을 다중 액션이라고 부릅니다 이 기능은 지금부터 어시스턴트에서 사용 가능합니다 여러분이 어쩌면 '이게 어려운가?' '-고' 같이 연결어만 찾으면 되잖아' 라고생각할 수도 있는데요 하지만 언제나 그렇게 간단한 일은 아니죠 이 예시에서 '와'가 포함되어 있지만 두 가지 질문이 아니라 사실 하나의 질문이거든요 워리어스와 펠리칸스 중에 누가 이겼지? 하지만 이 예시는 워리어스와 펠리칸스의 선수 명단은? 방금 전의 예시와 비슷해 보이지만 어시스턴트가 문장을 분해해야만 두 가지 질문을 찾아낼 수 있습니다 언어학에서 대등 구조 축소라고 불리는 현상입니다 -워리어스의 선수 명단은? -펠리칸스의 선수명당은? 다중 액션은 더욱 복잡한 방식도 이해할 수 있습니다 그럼 재미를 위해서 헤이 구글 케빈 듀란트가 드래프트되었을 때 누가 캘리포니아의 주지사였지? 그리고 어떤 팀이 그를 드래프트 해갔지? 2007년 주지사는 아놀드 슈왈츠제네거였습니다 시애틀 슈퍼 소닉스가 케빈 듀란트를 드래프트했습니다 좋습니다 혹시 궁금해하실까봐요 감사합니다 다음 이야기를 해 보죠 우리가 연구한 또 다른 건 가정용 구글 어시스턴트의 대화 기능 향상입니다 작년 가을에 구글 어시스턴트의 가정용을 출시했습니다 가족끼리 하기 좋은 게임이나 활동, 이야기들을 제공해줍니다 우리는 책장을 계속 확장했습니다 가족들은 13만 시간이 넘는 동화를 청취했습니다 지난 두 달만 세어 봐도요 가족들을 위한 일을 계속해서 개선해 나가다 보니 많은 부모님들이 걱정을 했습니다 우리 팀에 있는 자녀를 가진 사람들도 그랬죠 아이들이 너무 오만하고 요구만 하게 된다는 겁니다 그냥 '헤이 구글'이라고 말하고 원하는 걸 시키기만 하면서요 이건 접근하기 쉬운 영역이 아니죠 하지만 우리가 한 걸음 내딛었는데 프리티 플리즈라는 기능입니다 아이를 가진 직원 몇몇이 직접 실험해봤습니다 한 번 보시죠 헤이 구글 (불명확함)에게 말해줘 아빠 '주세요'라고 말해야지 오케이 구글 이야기 하나만 해주세요 '주세요'라고 말해주셔서 감사합니다 프리즈 댄스 재생해주세요 정말 상냥하게 부탁하시네요 이야기 하나만 말해주세요 친절하게 부탁해주셔서 감사합니다 옛날 옛날에 괴짜 바다코끼리가 살았습니다 제 숙제 좀 도와주세요 제발요 – 제발 – 제발요 당신은 정말 예의바르시군요 나도 알아요 보신 것처럼 어시스턴트가 정중함이 더해진 긍정적인 대화를 이해하고 반응하는 거죠 가족들과 아동 발달 전문가와 상의하며 일해왔습니다 프리티 플리즈를 올 해 하반기 이내에 가족용 선택사항으로 만들 예정입니다 어시스턴트를 위한 새로운 목소리들부터 지속되는 대화 다중 액션, 프리티 플리즈까지 AI가 우리가 크게 도약하는데 도움을 주고 있습니다 그래서 모두가 좀 더 자연스럽게 어시스턴트와 대화할 수 있습니다 이제 릴리안을 소개하겠습니다 우리가 하고 있는 재밌는 일들을 알려주실 분입니다 음성와 영상 어시스턴트를 통합한 것과 관련해서요 스콧 감사해요 좋은 아침입니다 구글 어시스턴트 프로덕트 매니지먼트 디렉터 릴리안 링콘 지난 몇 년 동안 어시스턴트는 구두 대화에 집중해왔고 그 결과를 구글에서 보고 계십니다 오늘 새로운 비쥬얼 캔버스를 공개하도록 하겠습니다 화면용 구글 어시스턴트입니다 풍부한 시각 자료들과 단순한 목소리를 결합했습니다 매기를 무대 위로 불렀습니다 라이브 데모 버전을 오가면서 보여드릴 예정이거든요 새로운 스마트 디스플레이의 초기 버전 기억하시나요? 이번 1월에 CES에서 보여드렸습니다 우리는 최고의 소비자 가전 브랜드와 협업을 하고 있습니다 오늘 첫 번째 스마트 디스플레이가 오는 7월에 판매될 예정임을 말씀드리게 되어 기쁩니다 오늘 저는 이 새로운 장비가 여러분의 일상을 더 쉽게 만들어 주는 방법을 보여드리겠습니다 음성의 간결성을 터치 스크린의 한 눈에 알아보기 쉬운 속성과 결합해서 말이죠 라이브 데모 버전을 보실까요? 이 기기는 레노버 스마트 디스플레이입니다 은은한 화면에 구글 포토와 결합되어있습니다 제 아이들 사진이 제게 인사하네요 벨라와 허드슨은 진짜 제 아이들입니다 매일 아침을 시작하는 최고의 방법이죠 기기가 제 목소리에 통제되기 때문에 간단한 명령어만으로 영상이나 실시간 TV를 볼 수 있습니다 집 안에서 다른 일을 하면서 제가 제일 좋아하는 프로그램을 놓치지 않게 해 주는 간단한 방법이죠 헤이 구글 지미 키멜 라이브 보여 줘 알겠습니다 유튜브 TV에서 지미 키멜 라이브를 재생합니다 재밌는 일이 있었어요 제가 실제로 겪은 일인데요 오늘 아침에 딸들을 학교에 태워다 주고 있는데 바로 이렇게요 여러분은 유튜브 TV에서 멋진 프로그램들을 볼 수 있는데요 지역 뉴스나 실시간 스포츠 경기부터 아주 많은 프로그램들이 있습니다 이러한 것을 스마트 디스플레이에서 이용하실 수 있을 겁니다 물론 유튜브의 평범한 컨텐츠들을 즐기고 싶으실 수도 있죠 초보자를 위한 영상이나 음악, 새로나온 시리즈 코브라 카이 같은 독자적인 컨텐츠 같은 것 말이죠 정말 재미 있어서 이번주 부터 보기 시작 했습니다 요리는 음성과 화면의 결합이 정말로 유용하게 쓰이는 또 다른 예죠 닉과 저는 간단한 가정용 요리법을 즐겨 봅니다 헤이 구글 피자 밤 레시피 좀 보여 줘 알겠습니다 레시피들을 불러왔습니다 테이스티의 첫 번째 레시피를 선택해죠 맛있어 보이네요 구체적인 레시피가 바로 보이고 요리 시작하기를 탭해주면 됩니다 알겠습니다 테이스티의 레시피입니다 이처럼 시현 영상을 보는 동시에 음성 안내를 들을 수 있습니다 이러한 기능들은 요리에 있어서 혁명과 같습니다 특히 두 손이 뭔가를 하고 있을 때 유용하죠 고마워요 매기 스마트 디스플레이를 활용한 몇 가지 방법으로 가정 생활을 쉽게 만들어봤습니다 훨씬 더 다양한 것들이 남았습니다 방송이나 듀얼 영상 전화를 하면서 가족들과 계속 연락을 하는 것부터 다른 스마트 홈 파트너들을 통해서 계속 집 안 상황을 파악하는 것이나 구글 지도를 통해 아침 출근길을 미리 확인해 보는 것까지요 구글의 제일 좋은 것들을 결합하고 전세계의 개발자 및 협력자들과 작업하여 음성과 영상을 한 데 모아 완전히 새로운 생활방식을 가져올 겁니다 스마트 디스플레이에 고무되어 화면용 어시스턴트에 대해 다시 한 번 생각해봤습니다 우리와 언제나 함께 하는 화면인 휴대폰에 대해서요 휴대폰에서 어시스턴트가 작동하는 방식을 잠깐 보여드릴게요 얼마나 실감나고 상호 작용하며 주도적으로 작동하는 지 보시죠 또 다른 라이브 데모 버전을 볼 건데요 헤이 구글 카밀라 카베요에 대해서 말해줘 위키피디아에 따르면 카를라 카밀라 카베요 에스트라바오는 미국의 가수이자 작곡가입니다 보시다시피 화면의 장점을 활용해서 풍부하고 몰입되는 대답을 합니다 다른 예시입니다 난방 좀 줄여 줘 알겠습니다 거실의 온도를 낮춥니다 스마트 홈에서 여러분은 그저 손가락 하나로 모든 제어를 할 수 있습니다 제가 제일 좋아하는 걸 보여 드릴게요 헤이 구글 스타벅스에서 내가 매일 주문하는 거 주문해 줘 안녕하세요 스타벅스에 다시 와 주셔서 감사합니다 톨 사이즈의 무지방 라떼에 카라멜 드리즐 올려서 한 잔 맞으시죠? 다른 건 필요 없으신가요? 아니요 괜찮아요 그러면 항상 방문하시는 매장에서 가져가실 건가요? 여기서 '네'를 탭합니다 네 주문 접수되었습니다 조금 이따 만나요 어때요? 우리와 협업하는 브랜드는 스타벅스 던킨 도넛, 도어대시, 도미노 그리고 그 외에 많은 동업자들이 음식 방문 포장 및 배달 업계에 있고 구글 어시스턴트와 함께 합니다 몇몇 브랜드들은 이미 사용 가능하고 앞으로 더 많은 브랜드들이 가능할 예정입니다 요구 사항에 대해 훌륭하게 상호작용하는 대응은 정말 도움이 됩니다 하지만 제 이상적인 어시스턴트는 주도적으로 도울 수 있어야 합니다 지금 어시스턴트에 들어와 있는데 여기서 화면을 위로 밀어 올리면 제 하루를 시각적인 스냅 사진으로 확인할 수 있습니다 유용한 제안들도 볼 수 있죠 시각과 위치, 심지어는 어시스턴트와 최근 한 대화에 근거해서요 알림들, 택배들 노트와 목록들까지 모두 있고 잘 정돈되어서 바로 볼 수 있습니다 저는 이런 사소한 것들을 유용하게 관리하고 쉽게 볼 수 있는 편리함을 사랑합니다 이 새로운 휴대폰용 시각 경험은 AI 중심으로 디자인되었습니다 이번 여름에 안드로이드에서, 하반기에 iOS에서 출시됩니다 때때로 시각적 측면을 낮춤으로써 어시스턴트가 더욱 더 실제로 유용하게 쓰이기도 합니다 차 안에 있다고 해 봅시다 운전에 집중해야겠죠 직장에서 집을 향해 가는 길입니다 러시 아워임에도 최단 거리를 보여주는 구글 지도가 있습니다 헤이 구글 닉한테 내 예상도착시간 보내주고 힙합 틀어 줘 알겠습니다 닉에게 20분 뒤 도착한다고 알립니다 유튜브에서 힙합 음악을 검색합니다 남편에게 예상도착시간을 알리는 게 간단한 음성 명령어만으로 가능하니까 정말 편리하죠 구글 지도 네비게이션에 어시스턴트가 장착될 겁니다 이번 여름부터요 스마트 디스플레이, 휴대폰을 거쳐서 지도까지 둘러봤습니다 구글 어시스턴트가 어떻게 활용될 지 느낌이 오시나요 좀 더 시각적 도움이 되는 방법으로요 언제 음성으로 응답할지 그리고 언제 좀 더 몰입하여 대화를 나눌지 알아차릴 수 있습니다 이제 피차이CEO에게 다시 마이크를 넘깁니다 감사합니다 고마워요 릴리안 우리 어시스턴트의 진척사항을 보니 기분이 좋네요 아까 말했지만 우리의 어시스턴트 비전은 여러분이 일을 끝내게 돕는 것입니다 일을 하는 것의 큰 부분이 전화를 거는 것이더라구요 엔진 오일 교환 일정을 잡고 싶을 수도 있고 주중에 배관공에게 연락하고 싶을 수도 있고 미용실 예약을 하고 싶을 수도 있습니다 그런 순간에 사용자를 돕기 위해서 열심히 연구했습니다 사용자들과 사업을 좋은 방식으로 연결하고 싶었습니다 사업은 사실 예약에 많이 의지하죠 하지만 심지어 미국에서도 소기업의 60%는 온라인 예약이 불가능합니다 AI가 그런 문제를 도와줄 수 있을 것이라 생각했습니다 이 예시를 봅시죠 구글에게 화요일에 미용실 예약을 부탁하고 싶다고 해보죠 오전 10시에서 12시 사이에요 무슨 일이 일어날 거냐면 구글 어시스턴트가 여러분을 위해 매끄럽게 전화를 해 예약 하는 것입니다 지금부터 들으실 것은 구글 어시스턴트가 실제 미용실 직원에게 전화를 해서 예약을 하는 내용입니다 들어보시죠 여보세요 무엇을 도와드릴까요? 여보세요 제 고객의 컷트 예약을 하려는데요 5월 3일에 가능한가요 그럼요 잠깐만 기다려주세요 몇 시쯤에 생각하시나요? 오후 12시쯤이요 오후 12시는 꽉 찼습니다 제일 가까운 시간은 1시 15분 정도예요 오전 10시에서 오후 12시 사이에는 안 되나요? 뭘 하시느냐에 따라 달라집니다 고객이 어떤 서비스를 원하시죠? 그냥 여성 컷트요 알겠습니다 그러면 오전 열시에 가능해요 오전 열시 괜찮네요 고객님 성함이 어떻게 되시나요? 리사예요 알겠습니다 완벽해요 5월 3일 오전 10시에 리사씨 예약되셨습니다 네 알겠어요 감사합니다 감사해요 좋은 하루 되세요 여러분이 들으신건 실제 통화입니다 어시스턴트가 실제로 대화의 뉘앙스를 이해한다는 게 정말 놀랍지 않나요 이 기술 연구에 수년을 들였습니다 이를 구글 듀플렉스라고 부릅니다 자연스러운 언어 이해와 딥 러닝, 실감나는 대화에 우리가 수년동안 들인 투자의 산물이죠 어시스턴트는 일이 끝나면 예약이 완료되었다는 확인 알림을 여러분에게 전해줍니다 다른 예시를 보여드리겠습니다 식당에 전화를 하고 싶다고 해 봅시다 아마 작은 식당일 거예요 온라인 예약이 보통 불가능하죠 그리고 통화가 예상과는 조금 다른 방향으로 전개됩니다 한 번 들어보시죠 여보세요 무엇을 도와드릴까요? 안녕하세요 7일 수요일에 예약하려구요 일곱 분인가요? 4명이에요 네 분이요? 언제죠? 오늘인가요? 오늘밤? 다음 수요일 오후 여섯시요 사실 우리 가게는 5명부터 예약할 수 있어요 네 분이라면 그냥 오시면 됩니다 자리에 앉기까지 대기 시간은 어느 정도인가요? 언제요? 내일이요? 아니면 주말? 다음 주 수요일이요 7일 입니다 그리 붐비지 않을 거예요 네 분이 오시는 거 맞죠? – 알겠습니다 감사해요 – 네 들어가세요 다시 말씀드리지만 실제 통화입니다 예상처럼 흘러가지 않는 통화는 자주 있는 일이잖아요 어시스턴트는 문맥과 뉘앙스를 이해하고 만일에 대비해서 대기시간까지 물어봅니다 대화를 우아하게 다뤘어요 이 기술은 여전히 개발 중이고 열심히 연구하고 있습니다 사용자들의 경험과 기대를 충족시켜 회사와 사용자 모두에게 좋도록요 올바르게 이루어진다면 사람들의 시간을 절약하고 회사들에게 큰 가치를 창출해 줄 겁니다 이런 때에도 사용 가능하게 하고 싶어요 아침을 맞이한 바쁜 부모님인 거예요 게다가 아이가 아파서 의사에게 예약 전화를 하는 상황입니다 이 상황에 사용 가능하려면 정말 열심히 일해야 할겁니다 이보다 단순한 일들에는 조만간 사용 가능하게 출시될 겁니다 예를 들면 매일 구글에는 많은 질문들이 올라옵니다 사람들이 사업체의 개장 시간과 폐장 시간을 알고 싶어하는 질문들이 많죠 하지만 휴일이 끼면 까다로워지잖아요 사업체들은 많은 전화를 받게 되죠 그래서 우리 구글이 단 한 통의 전화를 하고 그 정보를 수백만 사용자들을 위해서 업데이트를 하는 겁니다 그러면 소규모 사업체들이 무수히 많은 전화를 받을 필요가 없겠죠 이렇게 시간을 수정함으로써 사용자들에게 더 나은 경험을 하게 만들어 줄 겁니다 다가오는 주에 이 기능을 시험 삼아 출시할 예정입니다 지켜 봐 주세요 이 모든 것을 아우르는 하나의 주제는 우리가 사용자들에게 시간을 주기 위해 열심히 노력한다는 것입니다 구글에서는 이점에 집착해왔습니다 검색에서는 사용자들이 원하는 답을 빠르게 찾아서 알려주는 데 집착했죠 그리고 저는 새로운 영역인 디지털 웰빙으로 들어섰습니다 연구 결과에 따르면 사람들은 전자기기에 매여 산다고 느낍니다 여러분들도 이런 기분을 느끼시겠죠 사회적인 압박은 커져만 갑니다 무엇이든 받는 즉시 응답하라구요 사람들은 정보를 바로바로 처리하느라 초조해합니다 포모를 겪고 있죠 최신 유행에 뒤쳐지는 것을 두려워합니다 우리는 더 나은 방법이 있을 거라고 생각했고 사람들에게 말해왔습니다 몇몇이 조모라는 개념을 알려주더군요 유행에 뒤쳐지는 즐거움이죠 그래서 우리는 디지털 웰빙이 진짜로 사용자들을 도울 수 있다고 믿습니다 많은 노력이 지속되어야 할 겁니다 우리의 모든 상품들과 플랫폼에 걸친 노력이죠 여러분의 도움이 필요합니다 디지털 웰빙으로 사용자를 도울 수 있는 방법은 네 가지입니다 여러분의 습관을 이해하고 문제를 파악하여 필요할 때 스위치를 꺼버립니다 가장 중요한 건 가족과의 균형을 찾는 거죠 예시를 몇 개 보여드리겠습니다 다가오는 출시일에 안드로이드에서 이 소식을 듣게 될 겁니다 제가 가장 좋아하는 기능은 바로 대시보드입니다 안드로이드에서 여러분이 어떻게 시간을 쓰는 지를 완벽하게 보여드릴 예정인데요 작동시켰던 앱들 그 날짜에 휴대폰을 켠 횟수 받은 알림 수 그리고 그것들을 해결하여 더 나아지도록 도울 생각입니다 앱들도 도움이 될 수 있죠 유튜브가 선두에 설 텐데요 만약 여러분이 동의한다면 휴식을 취하라고 알림을 줄 겁니다 예를 들어서 한동안 유튜브를 봤다면 알림창이 떠서 말하는 거죠 '휴식을 취할 시간입니다' 사용자들이 원한다면 유튜브가 시행할 다른 것은 모든 알림을 통합하는 겁니다 일별 요약 형태로 말이죠 네 개의 알림이 왔다면 하루에 한 번만 알림이 오는 거죠 유튜브가 이 기능을 이번 주에 출시할 예정입니다 이 분야에 있어서 많은 작업을 해 왔어요 패밀리 링크가 좋은 예죠 부모님들에게 자녀의 화면 보는 시간을 관리할 수 있는 도구를 제공했습니다 전 이게 중요한 부분이라고 생각합니다 여기에서 더 나아가고 싶습니다 아이들이 똑똑한 결정을 내릴 준비를 갖추게 하고 싶습니다 그래서 우리의 새로운 접근 방식인 구글 디자인 접근입니다 비 인터넷 어썸이라고 부르죠 아이들이 디지털 세상에서 안전한 탐험을 하게 도와줍니다 아이들이 안전하고 친절하며 사려 깊은 온라인 세상에 있기를 원합니다 다가오는 해에 아이들 오백만명을 추가로 훈련시킬 것을 서약합니다 지금 보시는 이 모든 도구들은 우리 디지털 웰빙 사이트에서 오늘 오후에 출시됩니다 우리가 거대한 책임감을 느끼는 또 다른 분야가 있습니다 바로 뉴스입니다 뉴스는 우리 주요 임무죠 또한 이런 시대에는 양질의 언론을 지원하는 것이 어느 때보다 중요한 일이잖아요 민주주의가 작동하는 데 기본이 되죠 저는 언제나 뉴스를 좋아했어요 인도에서 자라면서 분명히 기억하는 건 제가 신문을 기다렸었다는 거예요 할아버지는 제 바로 옆에서 같이 기다리셨죠 분명한 서열이 있었습니다 할아버지가 신문을 제일 먼저 보시고 그 다음은 아버지, 그리고 제 형까지 읽으면 제 차례가 왔죠 그 당시에는 주로 스포츠 영역을 좋아했습니다 시간이 흐르면서 뉴스에 대한 저의 애정도 커져갔고 오늘날까지도 저와 함께하고 있습니다 뉴스 산업에게 어려운 시기입니다 구글 뉴스 이니셔티브를 최근에 출시했습니다 삼억 달러를 향후 삼년간 투자하기로 결정했습니다 기관이나 기자들과 함께 일하면서 산업에 도움이 되는 혁신적인 제품과 프로그램을 개발하는 데 도움을 주고 싶습니다 그와 관련한 제품인 구글 뉴스는 오랫동안 우리 곁에 있었죠 사실 911테러 직후에 만들어졌습니다 스무 명의 직원이 투입된 프로젝트로 다양한 신문사의 뉴스를 보고 무슨 일이 일어났는지 더 잘 이해하고 싶어했던 한 기술자에 의해 시작됐습니다 그 때부터 컨텐츠의 양과 다양성은 커져가기만 했습니다 오늘날 생산되는 기사는 그 어느 때보다 대단한 양을 보여줍니다 도움이 간절해서 구글을 켠 사람들에게 정확한 정보를 제공하는 것이 우리의 책임인 것이 사실이죠 이게 바로 우리가 뉴스 프로젝트를 다시 구상하게 된 이유입니다 AI를 활용해서 언론이 제시해야 하는 제일 중요한 것을 우선 제시합니다 사용자가 신뢰하는 양질의 기사를 제공하고 싶습니다 하지만 출판사들을 위한 제품도 만들고 싶습니다 그 무엇보다도 깊은 통찰력과 완전한 관점으로 사용자가 관심있어 하는 주제를 제공해주고 싶습니다 새로운 구글 뉴스를 발표하게 되어 굉장히 떨립니다 트리스탄이 더 자세하게 설명해 줄 겁니다 구글 뉴스 엔지니어 트리스탄 업힐 피차이CEO님 감사합니다 새로운 구글 뉴스와 함께 세 가지 일을 도우려고 합니다 첫 번째, 여러분이 관심 있는 뉴스를 계속 알 수 있게 하겠습니다 두 번째, 완전한 이야기를 이해하게 하겠습니다 마지막으로 여러분이 사랑하는 신문사를 즐기고 후원할 수 있게 하겠습니다 결국 뉴스 출판사와 그들이 만드는 양질의 기사가 없다면 오늘 여러분에게 보여 줄 것이 아무것도 없겠죠 어떻게 여러분이 관심 있는 뉴스를 더 쉽게 알도록 만들 지부터 시작해보도록 하겠습니다 구글 뉴스를 켜면 제일 윗 부분에 지금 바로 알아야 하는 주요 기사 다섯 개의 브리핑이 보입니다 브리핑 밑으로는 당신만을 위해서 선택된 기사들이 보입니다 우리 AI가 지속적으로 웹의 파이어호스를 읽어서 매분 발행되고 있는 수백만개의 기사, 영상, 팟캐스트 그리고 댓글들을 당신이 알아야 하는 주요한 것에 따라 정리해 줄 겁니다 구글 뉴스는 각 지역 사건과 그 지역의 의견들도 보여줍니다 자신의 공동체에 연결된 것을 느끼게 해 주는 정보죠 크로니클의 이 기사는 새로운 베이브리지를 지나는데 얼마나 걸리는지를 궁금하게 했습니다 멋있는 건 제가 굳이 앱에게 나는 정치를 따른다거나 자전거를 좋아한다거나 베이 에리어에 대해 알고 싶다는 것을 말 할 필요가 없이 완벽하게 작동 합니다 그리고 우리가 앱에 강화학습같은 기술을 적용시켰기 때문에 더 많이 사용할수록 더 나아질 겁니다 언제든지 바로 이 출판사나 주제는 더 적게 혹은 더 많이 보고 싶다고 말해도 됩니다 다른 사람들은 뭘 읽는지 궁금해지면 헤드라인으로 바꿔서 지금 전세계에서 가장 보도가 많이 되는 주요 기사들을 볼 수도 있죠 더 살펴볼까요? 크고 멋있는 사진들이 많아서 이 앱이 완전히 시선을 사로잡는 걸 알 수 있죠 진심으로 훌륭한 영상은 물론이구요 한 번 보시죠 (기기에서 나오는 음악과 환호) 유튜브나 웹에 퍼져 있는 모든 최신 영상을 볼 수 있습니다 우리의 디자인은 앱을 가볍고, 쉽고, 빠르고 또한 재밌게 만드는 데 중점을 뒀습니다 우리의 처리 원칙은 이야기가 스스로 말하게 하는 것입니다 꽤 괜찮죠? 앱을 통해서 보시고 있는 것은 새로운 구글 머티리얼 테마입니다 앱 전체가 머티리얼 디자인을 이용해서 만들어졌는데요 변환할 수 있고 통일된 우리의 디자인 시스템으로 구글에서 특별히 맞춤 제작한 것입니다 오늘 오후에 더 자세한 설명과 각자의 제품에서 머티리얼 테마를 이용하는 방법에 대해 들으실 수 있습니다 새로운 비쥬얼 포맷인 뉴스캐스트를 기쁜 마음으로 소개하겠습니다 이런 것은 어떤 뉴스 앱에서도 보실 수 없으실텐데요 뉴스캐스트는 이야기를 미리보기하는 기능입니다 무슨 얘기인지 쉽게 알아차릴 수 있게 해 주죠 영화 스타 워즈와 관련된 이야기를 함께 확인해보시죠 자연스러운 언어 이해의 최신 기술을 이용해서 모든 것을 한 데 모았습니다 솔로의 영화 예고편부터 뉴스 기사나 캐스트의 언급까지 모두요 새로운 제시방식으로 휴대폰으로 보기에 아주 멋지죠 뉴스캐스트는 기본적인 것을 알기 쉽게 해 주고 더 자세히 알고 싶은 것을 결정할 수 있게 해 줍니다 또 가끔씩은 다른 방식으로는 절대 알지 못했을 것도 발견합니다 제가 제일 관심 있는 기사나 정말 복잡한 기사의 경우에는 뛰어들어서 다양한 관점을 확인하고 싶잖아요 그런 관점에서 구글 뉴스의 두 번째 목표에 대해서 얘기해 볼까요? 이야기 전체를 이해하는 겁니다 오늘날 스스로의 관점을 넓혀서 뉴스를 심도 깊게 이해하는 건 많은 노력이 필요하잖아요 구글 뉴스와 함께라면 큰 힘을 기울이지 않고 가능합니다 풀 커버리지는 더 자세히 알려주겠다는 초대장입니다 다양한 신문사와 형식으로 전해지는 이야기들 측면에서 이야기의 전체적인 그림을 완성시킵니다 우리는 시간적 동일 지역성이라는 기술을 이용해서 풀 커버리지를 만들었습니다 이 기술을 통해서 우리는 각 개체간의 관계를 볼 수 있고 이야기 속 사람, 장소, 물건을 이야기에서 전개된 그대로 이해할 수 있습니다 언제든지 이 기술을 웹의 정보의 홍수에 적용하여 줄거리에 맞게 구성합니다 전부 실시간으로 이뤄지죠 현존하는 가장 강력한 앱 기능입니다 뉴스를 파헤칠 수 있는 완전히 새로운 방식을 제공하죠 풀 커버리지가 작동하는 방법을 최근 푸에르토리코에서 발생한 정전을 통해서 알아보시죠 이 사건에 대해 굉장히 많은 궁금증을 가지고 있었습니다 "어떻게 일이 이 지경이 됐지?" "예방할 수는 없었을까?" "이 일이 해결되고는 있을까?" 같은 질문이었죠 풀 커버리지를 만들어서 이 모든 것을 한 자리에서 이해할 수 있게 해 봤습니다 무슨 일이 일어났는지 알려주는 주요 표제들부터 시작했습니다 그리고 실시간 사건 이해를 이용해서 중요한 이야기 측면에서 정리를 해 나갔습니다 이 일처럼 몇 주, 몇 달에 걸쳐서 발생하는 사건의 뉴스의 경우에는 우리의 주요 사건 시간대를 봄으로써 사건 전개를 파악할 수 있습니다 그리고 복구가 시작되었지만 아직 가야 할 길이 멀었음을 분명히 알 수 있었습니다 아직 남은 사건에 대한 질문들을 끄집어냈습니다 여러분이 직접 답을 찾으러 나갈 필요가 없게요 우리가 사건의 전후사정과 다양한 시각을 알고 있으므로 관련 인물의 트윗이나 여론 분석, 사실 확인 등을 보여주고 한 단계 깊게 이야기를 이해할 수 있도록 돕습니다 각각의 경우에서 왜 이 정보가 중요한지 어떤 특별한 가치를 지녔는지를 우리 AI가 강조해줍니다 제가 풀 커버리지를 사용하면서 제가 관심 있는 주제에 대해서 방대한 양의 지식을 쌓을 수 있다는 것을 알았습니다 360도의 시각을 가질 수 있었습니다 표제 몇 개를 훑어봤을 때보다 훨씬 나은 결과죠 그 무엇보다도 우리 연구 결과에 의하면 건설적인 대화나 토론을 위해서는 모두가 같은 정보를 얻을 수 있어야합니다 그게 바로 풀 커버리지에서 같은 주제에 대해 모두가 같은 내용을 보는 이유입니다 신뢰 할만한 신문사에서 여과 없이 사건에 대한 시각을 보여드립니다 감사합니다 이 말은 꼭 하고 싶었는데 저는 이 새로운 기능들을 사랑합니다 이것들은 우리가 새로운 구글 뉴스를 더 재미있게 만들기 위해 구상한 것 중 일부분에 불과합니다 하지만 아까 말씀드렸다시피 이 모든 건 대단한 언론이 매일 만들어내는 것이 없었다면 존재할 수 없습니다 이것은 바로 우리의 마지막 목표인 여러분이 좋아하는 신문사를 즐기고 후원하게 돕는 것으로 이어지죠 앱의 전면 중앙에 신문사를 위치시켰습니다 그리고 뉴스스탠드에서는 좋아하는 신문사를 찾아서 팔로우하거나 새로운 신문사를 검색하고 찾기 쉽습니다 천여개가 넘는 잡지도 있는데요 와이어드, 내셔널 지오그래픽, 피플 같은 잡지로 모두 제 휴대폰에서 보기에는 아주 멋있네요 USA 투데이같은 출판물을 팔로우하려면 별 모양을 직접 탭하면 됩니다 만약 구독하고 싶은 출판물이 있다면 예를 들어 워싱턴 포스트를 구독하고 싶다면 이를 매우 쉽게 만들었습니다 양식도 신용카드 번호도 새로운 비밀번호도 필요 없습니다 구글 계정으로 가입하기 때문에 이미 준비가 되어있죠 출판사를 구독하면 어디에서나 쉽게 컨텐츠를 볼 수 있어야 한다고 생각합니다 그리고 이게 구글을 통한 구독을 개발한 이유입니다 구글을 통한 구독은 구글 계정으로 로그인한다면 이미 지불한 컨텐츠를 어디에서든 이용 가능하게 합니다 어떤 플랫폼이나 장비든지 구글 써치나 구글 뉴스, 출판사의 사이트에서 지불한 것이라면요 전세계 60개가 넘는 출판사들과 공동으로 작업했습니다 다가오는 주에 출시될 예정입니다 감사합니다 언제 어디서든지 가장 중요한 신뢰할 수 있는 고품질의 정보에 쉽게 접근할 수 있게 하기 위해서 우리가 나아가야 할 수많은 단계 중 하나였습니다 그게 새로운 구글 뉴스였죠 관심 있는 뉴스를 계속 볼 수 있고 브리핑과 뉴스캐스트를 제공해주고 이야기 전체를 이해할 수 있으며 풀 커버리지를 사용할 수 있고 좋아하는 신문사를 읽고 팔로우하고 구독함으로써 즐기고 후원할 수 있게 해줍니다 이제 발표할 제일 좋은 뉴스는 127개국의 안드로이드와 iOS, 그리고 웹에서 오늘부터 이 기능을 사용할 수 있다는 겁니다 저도 그렇게 생각해요 정말 멋진 일이죠 다음 주부터는 누구든지 사용할 수 있을 겁니다 구글에서는 정확한 적시의 정보를 사람들에게 제공하고 양질의 언론을 만들고 후원하는 게 그 어느 때보다 바로 지금 중요하다는 것을 알고 있습니다 우리의 역할을 수행하기 위해 최선을 다하겠습니다 이 여정을 여러분과 함께 하게 되기를 고대합니다 이제 제가 소개할 데이브는 안드로이드의 최신 소식을 알려줄 겁니다 안드로이드는 단순한 목표를 가지고 시작했습니다 모바일 산업에 공개된 표준을 만들자는 것이었죠 오늘날 안드로이드는 전세계에서 가장 유명한 모바일 운영 체계입니다 학습을 위한 개방 지원을 위한 개방 변화를 위한 개방 차이를 위한 개방 모두를 위한 개방 새로운 한계를 향한 개방 새로운 친구를 위한 개방 세상을 향한 개방 미래를 향한 개방 만약 당신이 개방성을 믿는다면 선택을 믿는다면 모두의 혁신을 믿는다면 안드로이드에 오신 것을 환영합니다 10년간 감사했습니다 모두들 안녕하세요 2018 개발자 회의에 참가하게 되어 영광입니다 안드로이드 엔지니어링 담당 부사장 데이브 버크 십년 전에 첫 번째 안드로이드 휴대폰인 T 모바일 G1을 출시했습니다 간단하지만 대담한 아이디어였습니다 모두에게 열려 있는 무료 모바일 플랫폼을 만들자 그리고 오늘날 그 아이디어는 빛을 발하고 있습니다 우리 동업자들이 수만개의 스마트폰을 출시해서 전세계 수십억의 사람들이 이를 사용하고 있습니다 이 여정을 통해서 우리는 안드로이드가 단순한 스마트폰 운영 체계를 뛰어넘었다는 것을 알 수 있었습니다 웨어러블 기기나 TV, 자동차, AR, VR, IoT 등의 새로운 컴퓨팅 분야에 힘을 불어넣어 주고 있습니다 지난 십년간 안드로이드의 성장은 데스크탑에서 모바일로의 컴퓨팅의 변화를 도왔습니다 피차이CEO가 말했듯이 세계는 새로운 변화에 직면해 있습니다 AI가 산업을 크게 변화시킬 겁니다 건강 관리나 교통같은 분야에서요 우리 산업 역시 이미 바뀌고 있습니다 그 결과 우리가 작업하고 있는 새로운 안드로이드인 안드로이드 P가 나왔습니다 안드로이드 P는 AI를 운영 체계 핵심으로 하는 새로운 비전의 중요한 첫 걸음입니다 사실 AI는 이번 출시의 세가지 테마의 첫 번째 테마를 뒷받침해줍니다 세가지 테마는 지능 단순함 디지털 웰빙입니다 지능부터 시작해보겠습니다 우리는 스마트폰이 더 똑똑해져야 한다고 믿습니다 스마트폰은 여러분에게서 배우고 여러분에게 적응해야 합니다 내장된 머신 러닝같은 기술은 여러분의 사용 패턴을 익히고 자동적으로 다음 행동을 예상해서 여러분의 시간을 절약해줍니다 기기에서 운영되기 때문에 데이터가 휴대폰에서 비공개로 저장됩니다 몇몇 예시를 통해서 이 기술을 어떻게 안드로이드에 적용시켜 더 똑똑한 운영 체계를 만들었는지 직접 확인해보시죠 거의 대부분의 설문조사에서 스마트폰 사용자들은 제일 걱정되는 것으로 배터리 수명을 꼽았습니다 여러분에게도 적용될 지 모르겠지만 이건 제 버전의 매슬로의 욕구 단계입니다 배터리, 와이파이, 생리적 욕구 안정, 애정, 존경, 자아 실현 다 겪어보신 적 있으시잖아요 배터리가 충분한 것 같았는데 집 밖을 나서기만 하면 평소보다 빠르게 사라지면서 충전기로 달려가야만 하죠 안드로이드 P는 딥 마인드와 협력하여 적응형 배터리라는 새로운 기능을 만들었습니다 여러분에게 좀 더 지속되는 배터리를 선사하기 위해 설계되었습니다 적응형 배터리는 내장된 머신 러닝을 사용하여 다음 몇 시간 동안 당신이 어떤 앱을 사용할지 어떤 앱을 오늘은 전혀 사용하지 않을지를 예측할 수 있습니다 그리고 그 예측과 운영 체계가 적응한 당신의 사용 패턴을 결합하여 당신이 쓸만한 앱과 서비스에만 배터리를 소모합니다 결과는 굉장히 탁월했습니다 전체적으로 켜진 앱에 쓰이는 CPU를 30% 감소시킬 수 있었습니다 작은 CPU 코어를 이용하여 작동하는 백그라운드 프로세서같은 다른 수행 능력 향상과 결합되어 많은 사용자들에게 배터리 사용 시간을 늘려주었습니다 꽤 멋지죠 OS가 사용자에게 적응하는 또 다른 예시는 자동 밝기 조절입니다 대부분의 현대 스마트폰은 밝기를 자동으로 조절합니다 주변의 밝기 조건을 따져서요 하지만 한 방식으로만 작동하죠 여러분의 개인적 기호나 환경은 고려하지 못합니다 그래서 여러분이 직접 밝기를 조정하는 일이 자주 일어나게 되고 나중에는 화면이 너무 밝아 보이거나 너무 어둡게 보이게 됩니다 그래서 안드로이드 P에서는 새로운 내장 머신 러닝 기능인 적응형 밝기를 씁니다 적응형 밝기는 주변 조명에 따라 여러분이 어떻게 밝기 조절을 하는지 습득해서 그대로 조절을 해줍니다 에너지 효율적인 방법으로요 휴대폰이 여러분의 기호에 적응함에 따라 여러분은 밝기가 말 그대로 자동 조절되는 것을 볼 수 있습니다 놀랍도록 효율적이죠 실제로 시험 사용자 중 약 절반이 이전 안드로이드 버전들에 비해서 직접 밝기 조절을 덜 하게 되었습니다 우리는 UI 역시 좀 더 지능적으로 만들었습니다 작년에 예상 앱이라는 개념을 소개했습니다 여러분이 평소에 앱을 사용하는 흐름에 맞춰 OS가 다음으로 여러분이 필요로 할 앱을 예상하고 보여주는 기능입니다 매우 효율적이죠 거의 60%의 예상률을 보여줬습니다 안드로이드 P는 단순히 다음에 실행할 앱을 예상하는 수준을 벗어나서 여러분이 다음에 취할 행동이 무엇인지 예상합니다 이 기능은 앱 액션이라고 합니다 어떤 기능인지 한 번 보시죠 런처의 맨 위에 두 가지 액션이 보이시죠 하나는 제 여자동생인 피오나에게 전화하는 것이고 다른 하나는 스트라바 앱을 사용해 저녁 조깅을 시작하는 것입니다 그러니까 액션들이 제 사용 패턴에 따라 예상되는 거죠 휴대폰이 저에게 맞춰서 제 다음 일을 하도록 돕는 겁니다 더욱 빠르게 할 수 있게요 다음 예시입니다 제가 헤드폰을 연결하면 안드로이드는 제가 듣던 앨범을 다시 틀어줍니다 앱 액션을 지원하기 위해 개발자들은 앱에 actionsxml을 추가해주기만 하면 됩니다 그러면 액션이 런처에서 뿐 아니라 스마트 텍스트 선택, 플레이스토어, 구글 검색 그리고 어시스턴트에서까지 작동할 겁니다 구글 검색을 보시죠 우리는 다른 방식들로 액션이 나타나게 실험을 하고 있습니다 설치해서 많이 쓰는 앱들을 위해서요 예를 들면 저는 판당고를 아주 자주 씁니다 그래서 제가 새로운 어벤져스 영화인 인피니티 워를 검색하면 보통의 제안에 더해서 판당고 앱에서 표를 사는 액션까지 받게 됩니다 꽤 멋있죠 액션은 간단하지만 대단한 아이디어로 여러분의 상황에 맞게 앱에 깊은 연결고리를 제공해줍니다 하지만 그보다 더 대단한 것이 있습니다 앱 UI를 그때그때 적절하게 사용자에게 제공하는 겁니다 이걸 슬라이스라고 부릅니다 슬라이스는 새로운 API로 개발자들이 앱 UI에서 상호작용되는 정보를 분명히 하게 해 줍니다 OS에서는 다른 곳에서 나타날 수도 있습니다 안드로이드 P에서는 슬라이스를 검색에서 가장 먼저 보여주는 준비 작업을 해 두었죠 한 번 보실까요? 제가 밖에 나와 있는데 출근하기 위해 차를 타야 한다고 합시다 제가 구글 검색 앱에 리프트를 입력하면 제 휴대폰의 리프트 앱에서 만든 슬라이스를 볼 수 있습니다 리프트는 슬라이스 API를 이용해서 UI 템플릿의 다양한 배열을 보여줍니다 검색하는 중에 리프트 앱의 슬라이스를 만들기 위함이죠 그러고 나면 리프트가 제 직장까지의 비용을 보여주고 슬라이스가 상호작용할 수 있기 때문에 저는 바로 거기서 택시를 부를 수 있죠 아주 좋습니다 슬라이스 템플릿은 다용도로 개발자들이 모든 곳에 쓸 수 있습니다 영상 재생부터 호텔 체크인까지요 또 다른 예들 들어볼가요 제가 하와이를 검색하면 구글 포토에서 제 휴가 사진 슬라이스를 보여줍니다 우리는 놀라운 파트너들과 함께 앱 액션과 슬라이스를 작업했습니다 개발자들을 위한 얼리액세스가 다음 달에 좀 더 광범위하게 열릴 예정입니다 지금까지 액션이 그 중에서도 슬라이스가 역동적인 양방향 경험을 가능하게 해 주는 것을 보셨습니다 앱의 UI가 상황에 맞게 지능적으로 나타나서 가능한 일이죠 지금까지 우리가 안드로이를 사용자에 맞추게 하기 위해 운영체계를 가르쳐 좀 더 지능적으로 만들고 있는 방법들을 소개했습니다 머신 러닝은 강력한 도구입니다 하지만 개발자들이 배우고 적용하기에 어렵거나 비싸게 느껴질 수 있죠 우리는 이런 도구가 머신 러닝에 대해 전문지식이 없거나 적은 사람들에게도 접근 가능하고 쓰기 쉽게 되기를 원했습니다 그래서 제가 오늘 발표할 것은 ML 키트입니다 새로운 API 세트로 파이어베이스를 통해 사용 가능합니다 ML 키트는 여러분에게 내장 API를 줘서 문자 인식, 얼굴 탐지 영상 표지 등등에 쓸 수 있게 합니다 ML 키트는 구글의 클라우드 기반 ML 기술에 다가갈 수 있는 능력을 지원해줍니다 시스템 구성상으로 ML 키트는 사용 준비가 완료된 모델을 제공하고 텐서플로우 라이트를 기반으로 하며 모바일에 최적화되어 있습니다 가장 좋은 점은 ML 키트가 공통 사용이 가능해서 안드로이드와 iOS 모두에서 작동하는 기능이라는 겁니다 구글은 ML키트를 통해 굉장히 좋은 결과를 얻은 협력사들과 함께 일하고 있습니다 예를 들면 유명한 칼로리 계산 앱인 루즈 잇!은 우리의 문자 인식 모델을 써서 영양 정보를 검사하고 ML 키트 맞춤형 모델 API를 써서 카메라를 통해 수집한 200가지의 다른 음식들을 자동적으로 분류합니다 오늘 오후 개발자 기조 연설에서 ML 키트에 대해 더 들으시게 될겁니다 스마트폰을 더 지능적으로 만들 수 있어서 너무 좋지만 우리에게는 유행이 지나간 기술도 중요합니다 우리의 지난 몇 년간 주요 목표는 안드로이드 UI를 현재의 사용자들과 다음 안드로이드 사용자 10억 둘 모두에게 좀 더 간단하고 접근 가능하게 진화시키는 것이었습니다 안드로이드 P에서는 단순함을 특별히 강조했습니다 우리가 생각하고, 여러분이 말씀 해주신 불만 사항들 즉, 원안 보다 더욱 복잡했던 경험들을 다루면서말이죠 이러한 개선사항은 구글 버전의 안드로이드 UI를 적용한 기기에서 찾아 보실 수 있는데 구글 픽셀이나 안드로이드 원 기기들이죠 제 휴대폰에서 라이브 데모 버전을 몇 개 실행해보겠습니다 원형 극장에서 칠천명이 저를 주시하는데 뭐가 잘못되겠어요? 그렇죠? 안드로이드 P를 통해 새로운 시스템 탐색 방법을 소개합니다 우리가 일년 넘게 연구한 결과죠 새로운 디자인이 안드로이드의 멀티태스킹을 좀 더 접근하기 쉽고 이해하기 쉽게 했습니다 가장 먼저 눈에 띄는 것은 하나의 깨끗한 홈 버튼입니다 더 적은 베젤을 원하는 디자인 트렌드를 인식해서 화면 가장자리의 여러개의 버튼보다는 제스처에 강조를 둔 디자인입니다 제가 화면을 밀어 올리면 바로 오버뷰가 생성 되고 최근에 사용했던 앱을 다시 사용할 수 있습니다 화면 하단에는 예상 앱 다섯개가 있어서 시간을 절약할 수 있습니다 계속해서 화면을 밀어 올리면, 즉, 두 번 위로 밀어올리면 모든 앱을 볼 수 있습니다 그러니까 시스템 공학적으로 우리가 한것은 것은 모든 앱과 오버뷰 공간을 하나로 합친 것입니다 밀어 올리는 제스처는 어디에서는 통합니다 어떤 앱을 사용하고 있든지 모든 앱과 오버뷰로 빠르게 돌아올 수 있는 거죠 제가 하고 있던 것들을 없애지 않고서도요 그리고 만약 원하신다면 퀵 스크럽 제스처를 사용하실 수도 있습니다 홈 버튼을 옆으로 슬라이드해서 최근 사용한 앱들을 스크롤하는 거죠 이 커진 수평 오버뷰의 장점 중 하나는 앱 컨텐츠를 알아 보기 쉬워서 이전에 사용한 앱의 정보를 다시 보기 편하다는 겁니다 심지어 우리는 스마트 텍스트 선택을 오버뷰까지 확장시켰습니다 예를 들면 제가 밴드 더 킬러스의 설명 중 한 곳을 탭하면 문구가 선택되어지고 스포티파이 같은 앱에서 들어볼 수 있는 액션이 보입니다 스마트 텍스트 선택은 또한 신경망까지 확장되어 좀 더 많은 개체를 인식할 수 있습니다 스포츠 팀이나 음악가, 항공편 번호들까지도요 이 뷰 탐색 시스템을 지난 달에 사용해보면서 정말 좋았습니다 훨씬 빠르고 효율적으로 끊임없이 멀티태스킹을 할 수 있죠 탐색 작업을 바꾸는 것은 굉장히 어려운 일입니다 하지만 가끔씩은 작은 변화가 큰 차이를 가져오기도 하죠 음량 조절이 한 예입니다 다들 그런 경험 있으시잖아요 영상이 재생되기 전에 음량을 줄이려고 했는데 그 대신에 벨소리를 작게 하고 영상의 음성이 주변에 있는 모두에게 울려 퍼졌던 경험이요 이걸 어떻게 고칠 수 있을까요? 여기 새롭게 나온 간편해진 음량 조절이 있습니다 수직으로 되어 있고 하드웨어 버튼 옆에 있어서 직관적이죠 주요 차이점은 이제 슬라이더가 미디어 음량만을 조절한다는 겁니다 그게 제일 자주 조절하는 거니까요 벨소리 음량에 있어서 제일 자주 쓰이는 것은 키거나 무음이거나 끄는 것이잖아요 간편하죠 우리가 회전도 굉장히 간편하게 바꿨습니다 저와 같다면 기기가 원하지 않을 때 회전되는 걸 싫어하실 텐데요 그렇다면 이 기능을 좋아하실 겁니다 지금 저는 회전 잠금 모드입니다 앱을 켜 보죠 그리고 기기를 회전시키면 새로운 회전 버튼이 탐색 바에 뜬 것을 볼 수 있습니다 그러면 그걸 탭해서 회전을 조절할 수 있습니다 꽤 멋진 기능이죠 지금까지 안드로이드 P에서의 사용자 경험을 간편화시킨 방법들에 대해 빠르게 훓어봤습니다 아직 많이 남아있어요 작업 분석 재설계부터 더 나은 스크린샷이나 개선된 알림 관리 등등 말이죠 알림 관리 말이 나왔으니 말인데 우리는 여러분이 원하신다면 더 많은 통제권을 드리고 싶습니다 피차이CEO가 이전에 암시한 디지털 세상과 현실 세상을 쉽게 이동할 수 있게 하겠다는 개념에서 중요한 부분입니다 이 중요한 영역과 우리의 세 번째 테마를 좀 더 자세히 알아보기 위해 사미르에게 마이크를 넘기겠습니다 감사합니다 모두들 안녕하세요! 최근에 가족과 휴가를 다녀왔는데 부인이 제 휴대폰을 봐도 되냐고 물었습니다 호텔 방에 들어서자마자요 저에게서 휴대폰을 가져가서 호텔 금고로 걸어가더니 안에 넣고 잠가버리더군요 그리고 돌아서서 제 두 눈을 보며 말했습니다 "칠일 뒤에 우리가 집으로 돌아갈 때 다시 줄게" 와! 전 충격을 받았죠 살짝 화가 나기도 했습니다 하지만 몇 시간이 지나자 근사한 일이 일어났습니다 휴대폰에서 오는 방해가 없어지자 제가 실제로 세상과 떨어져서 현재에 충실해질 수 있었고 멋있는 가족 휴가를 즐길 수 있었죠 저에게만 해당되는 일은 아닙니다 우리 팀은 기술과의 적절한 균형을 찾으려는 사람들의 이야기를 많이 들어왔습니다 피차이CEO에게서 들으셨 듯이 디지털 웰빙을 돕는 것이 어느 때보다 중요한 시기입니다 사람들은 휴대폰을 사용하는 시간이 정말 유용한 시간이라고 말하곤 합니다 하지만 가끔씩은 다른 일을 하면서 시간을 보내고 싶다고 하죠 사실 우리는 70%가 넘는 사람들이 이 균형을 맞추기 위해 도움을 필요로 한다는 것을 발견했습니다 그래서 열심히 연구한 끝에 안드로이드에 주요 능력을 더했습니다 사람들이 원하는 기술과의 균형 찾기에 도움을 주는 능력이죠 우리가 첫 번째로 주목한 것은 여러분의 습관을 이해하는 데 도움을 주는 것입니다 안드로이드 P는 대시보드를 통해 여러분이 기기에서 어떻게 시간을 보내는 지 보여줍니다 아까 보셨다시피 어떤 앱에서 얼마나 시간을 보내는지 오늘 하루 얼마나 자주 기기를 열었는지 그리고 알림을 얼마나 많이 받았는지 같은 것들이죠 이런 것들 중 무엇이든지 한 층 더 분석해 볼 수 있습니다 예를 들어보겠습니다 제 토요일 G메일 데이터입니다 이걸 보면 제가 주말동안 이메일을 꼭 봤어야 했는지 의문이 들긴 하네요 그게 대시보드가 있는 이유니까요 언제 사용하는 지는 이를 이해하는데 중요하지만 앱에서 뭘 사용하는 지도 못지 않게 중요하죠 TV를 보는 것과 같아요 기나긴 하루 끝에 좋아하는 쇼를 보는 건 꽤 기분 좋은 일이잖아요 하지만 교양 방송을 보는 건 왜 내가 다른 걸 하지 않았을까 의문이 들게 하죠 많은 개발자들이 이 개념을 '의미있는 일'이라고 부릅니다 많은 개발자들과 가깝게 일하면서 사람들이 건강한 방식으로 기술을 사용하게 돕자는 목표를 공유했습니다 그래서 안드로이드 P에서는 개발자들이 좀 더 세밀하게 앱에서 쓰는 시간을 분석해서 새로운 대시보드를 만들었습니다 예를 들어보겠습니다 유튜브는 딥 링크를 추가해서 모바일과 데스크탑을 통합한 총 감상 시간과 피차이CEO가 이전에 언급했던 유용한 도구들을 이용할 수 있게 할 겁니다 이해하는 건 좋은 시작이죠 하지만 안드로이드 P는 여러분에게 통제권을 줍니다 어떻게 그리고 언제 휴대폰을 쓸 지 여러분이 관리할 수 있게 돕습니다 좋아하는 앱이 있으시겠죠 하지만 여러분이 그 앱에 쓰는 시간은 느끼시는 것보다 훨씬 많습니다 안드로이드 P는 앱에서 쓸 시간을 제한할 수 있고 그 제한이 다가오면 여러분에게 살짝 알려줍니다 다른 걸 할 시간이라구요 그리고 남은 하루 동안 그 앱 아이콘은 비활성화되어 여러분의 목표를 상기시켜 줍니다 사람들이 말했던 또 다른 것은 참석한 식사자리나 회의에 완전히 집중하기가 어렵다는 겁니다 기기가 보여주는 알림이 방해가 되지만 거부하기 힘들다는 거죠 그렇죠? 다들 경험 있으시잖아요 그래서 우리가 만든 개선사항은 방해금지 모드입니다 전화나 문자뿐 아니라 시각적인 방해를 하는 화면 팝업도 없애줍니다 방해금지 모드 사용을 더 간편하게 하기 위해 새로운 제스처를 만들었습니다 애정을 담아 쉿이라고 이름지었죠 만약 휴대폰을 탁자에 뒤집어두면 자동으로 방해금지 모드에 들어갑니다 현재에 집중하고 핑 소리나 진동, 다른 방해가 없게요 당연히 응급상황을 대비해서 우리 삶의 주요 인물들의 연락은 받고 싶잖아요 배우자나 아이 학교같은 곳이요 안드로이드 P가 연락처 목록을 만들어드립니다 언제나 전화가 울려서 방해금지 모드에도 금지되지 않는 연락처들이죠 마지막으로 많은 사람들이 보통 잠자리에 들기 전에 휴대폰을 확인한다는 이야기를 들었습니다 그러면 알아차리기도 전에 한 두시간이 금방 지나가버리죠 솔직히 저도 최소한 일주일에 한 번은 그렇습니다 숙면을 취하는 건 중요하잖아요 기술은 그걸 도와줘야지 방해해서는 안 됩니다 그래서 와인드 다운 모드를 만들었습니다 구글 어시스턴트에게 잠 잘 시간을 말해놓으면 그 시간이 되었을 때 방해금지 모드로 바뀝니다 화면도 흑백 모드로 바뀌게 됩니다 뇌에 훨씬 적은 자극을 주죠 그리고 여러분이 휴대폰을 내려놓는 데 도움을 줄 겁니다 간단한 아이디어지만 컬러 TV 이전으로 돌아간 앱들을 보면서 제가 얼마나 빨리 휴대폰을 내려놓는 지 보면 놀라운 일이죠 걱정 마세요 아침에 일어나면 색은 다시 돌아옵니다 지금까지 디지털 웰빙과 관련한 기능을 몇 개 훑어 봤습니다 안드로이드 P는 이번 가을에 구글 픽셀과 함께 나올 예정입니다 디지털 웰빙은 우리에게 장기 테마가 될 겁니다 앞으로도 많이 기대해 주세요 지능, 단순함, 디지털 웰빙이라는 데이브와 제가 말한 세 가지 테마 뿐만 아니라 말 그대로 수백개의 개선사항들이 다가오는 안드로이드 P에서 보여질 겁니다 특히 플랫폼에 더한 보안 개선이 제일 기대되네요 그것에 대해서는 목요일에 열리는 안드로이드 보안 세션에서 자세히 알게 되실 겁니다 여러분의 가장 큰 의문은 '다 좋아' '근데 이걸 내가 어떻게 해 볼 수 있지?'일 겁니다 그래서 오늘 안드로이드 P 베타 버전이 발표됩니다 안드로이드 오레오에서 한 노력으로 OS 업그레이드를 쉽게 할 수 있어서 안드로이드 P 베타 버전은 구글 픽셀에서 이용 가능합니다 또한 일곱 개의 제조사 주력 기기에서도 오늘부터 이용 가능해질 겁니다 이 링크에 가셔서 여러분의 기기에 베타 버전을 받는 법을 알아 보시고 우리에게 여러분의 생각을 알려주시기 바랍니다 그럼 안드로이드의 새로운 것들 소개를 마치고 지도에 대해 얘기할 수 있게 젠을 소개하겠습니다 감사합니다 지도는 우리를 안내하고 연결시킵니다 구글은 그들이 한 번도 가보지 않은 곳의 지도를 만듭니다 그것이 어디이든 모든 사람들을 위해 덕분에 나이지리아가 변화했고 여러분도 여기에 함께 할 수 있습니다 목적지에 대한 지식으로 무장할 수 있다는 것은 당신도 다른 사람들처럼 목적지에 다다를 수 있다는 뜻입니다 두 번의 지진이 연속적으로 멕시코 시티를 강타했습니다 구글 지도가 이런 응급상황에 대처할 수 있게 도와줬죠 허리케인이 휴스턴을 섬으로 만들고 길은 수시로 바뀌었습니다 우리는 "구글이 있어서 다행이다"라고 계속 말했습니다 없었으면 우리가 뭘 할 수 있었을까요? 정말 멋진 일인 것 같아요 사람들이 좋아하는 일을 할 수 있게 그리고 해야 할 일을 할 수 있게 그들을 도와준다는 것은요 구글 지도 책임자 젠 피츠패트릭 기술을 만드는 것은 현실의 사람들의 일상을 돕기 위해서입니다 이것이 구글이 누구이고 무엇에 주력하는지를 결정하는 지에 있어서 처음부터 주안점이었습니다 최근 AI과 컴퓨터 비전의 발전은 우리의 오랜 상품들에도 극적인 진전을 가져왔습니다 구글 지도같은 상품이죠 또한 새로운 상품을 만드는 데도 도움을 줬는데 구글 렌즈같은 상품입니다 구글 지도부터 시작해봅시다 지도는 모두를 돕기 위해 만들어졌습니다 세계 어느 곳에 있든 상관없이요 우리는 220개의 국가와 영토를 지도화하고 수억개의 회사와 장소들을 지도에 표시했습니다 그 작업을 하면서 십억이 넘는 사람들에게 길을 잃어버리지 않고 세계를 여행할 수 있다는 자신감을 심어주었습니다 하지만 아직 끝은 멀었습니다 우리는 지도를 좀 더 똑똑하고 좀 더 상세하게 하려고 노력했는데 AI의 발전은 이를 가속화시켜줬습니다 이제는 거리 뷰와 위성 사진에서 새로운 주소, 회사, 건물들을 자동으로 추출하여 지도에 직접 추가할 수 있습니다 정식 주소가 없는 시골이나 여기 라고스처럼 빠르게 변하는 도시에서는 중요한 일이죠 지난 몇 년 동안 말 그대로 지도를 아예 바꿔야만 했어요 안녕하세요 나이지리아 만약 새로운 사업을 시작하시려고 한다면 얼마나 붐비는지 대기 시간이 어느 정도인지 심지어 사람들이 얼마나 오래 머무는지까지 알 수 있습니다 나가기 전에 주차가 쉬울지 어려울지를 알려주고 주차 공간을 찾는 데 도움을 줄 수도 있죠 이제 교통수단에 따라서 다른 길을 안내할 수 있습니다 오토바이를 타는지 차를 운전하는지에 따라서요 각 교통수단의 속도를 이해함으로써 모두에게 더 정확한 교통 예측를 해 줄 수 있게 됐죠 이건 지도가 할 수 있는 것의 겉핥기일 뿐입니다 원래 우리가 지도를 설계한 것은 여러분이 스스로의 위치를 파악하고 목적지로 가는데 도움을 주기 위해서였습니다 하지만 지난 몇 년간 사용자들이 지도에 점점 더 많은 것을 요구했습니다 그들 주변의 세상에 대해 점점 더 어려운 질문들을 물어왔죠 그리고 더 많은 일을 하려고 했습니다 오늘날 우리 사용자들은 목적지로 가는 최단거리 뿐만 아니라 주변에는 무슨 일이 있는지 새로운 장소는 어떤지 그리고 현지인이 자주 가는 곳이 어디인지 같은 것까지 궁금해합니다 세상은 신나는 일들로 가득합니다 스포츠 바에서 좋아하는 팀을 응원하거나 동네 식당에서 편안하게 친구나 가족과 저녁을 먹는 일들이죠 세상이 제공하는 일들을 여러분이 쉽게 알아보고 경험할 수 있도록 해 주고 싶습니다 구글 지도를 업데이트하면서 여러분이 관심 가지는 지역에서 새로운 것이나 유행을 계속 알 수 있게 하도록 열심히 노력했습니다 여러분에게 최적화된 장소를 상황과 관심사에 맞게 찾아드립니다 어떤 모습일지 예시들을 보여드릴텐데 소피아의 도움을 좀 받아보겠습니다 첫 번째, 포 유라는 탭을 추가했습니다 여러분이 관심 가지는 동네에 관해 알아 둘 만한 것들을 알려주도록 설계되었습니다 새로 개장하는 곳이나 지금 유행하는 것들 그리고 맞춤형 추천장소 같은 거요 여기 보시면 저한테 주변에 막 개장한 카페를 알려주네요 스크롤을 내리면 이번 주에 인기가 많은 식당 목록이 보이네요 굉장히 유용하죠 아무 힘을 기울이지 않고도 지도가 일상에서 벗어나 새로운 것을 시도하도록 자극하는 아이디어를 주니까요 하지만 이 장소가 저에게 맞다는 걸 어떻게 알 수 있을까요? 좋은 평가를 받은 장소들을 둘러보면서 내가 분명히 좋아할 만하고 꽤 괜찮은 것들이 많겠다고 생각했지만 정확히 어떤 게 좋은지 말할 수 없었던 경험이 있지 않나요? 우리가 유어 매치라는 점수를 만들었습니다 여러분이 좋아할 만한 장소를 찾는 데 도움을 주기 위해서죠 유어 매치는 머신 러닝을 사용하여 내가 추가해 놓은 정보들과 구글이 알고 있는 수억개의 장소들을 결합해줍니다 내가 평가한 식당들, 내가 좋아한 요리들, 내가 가 봤던 장소들 같은 정보죠 매치 숫자를 클릭하면 왜 당신에게 이것을 추천하는지 그 이유를 알려줍니다 당신만을 위한 장소 점수인 거죠 초기 테스터들이 정말 좋다고 평가했습니다 이제 여러분은 최고의 장소를 자신감 있게 고를 수 있습니다 미리 계획을 했든 그냥 떠나서 바로 결정을 해야 하든 상관 없이요 소피아 고마워요 포 유 탭과 유어 매치 점수는 여러분이 잘 알고 있게 해 주고 자신감 있게 장소를 선택하게 해 주는 방법의 좋은 예시입니다 사용자들에게서 자주 듣는 또 다른 불만사항은 다른 사람과 계획을 짜는 것이 진짜 힘들다는 거죠 그래서 함께 장소를 고르기 쉽도록 만들었습니다 쓰는 방법은 이렇습니다 최종 명단에 올리고 싶은 어떤 장소든 길게 누릅니다 저는 언제나 라멘을 추천하지만 제 친구들은 각자 다른 의견이 있다는 것을 알고 있습니다 그래서 선택권을 주기 위해 다른 선택지들을 추가하죠 좋아하는 장소들을 충분히 더했다면 목록을 친구들과 공유해서 친구들 의견을 더합니다 몇 번 탭하기만 하면 쉽게 공유할 수 있슴니다 여러분이 선호하는 어떤 플랫폼에서든 가능하죠 그리고 나면 친구들이 원하는 장소를 추가할 수도 있고 한 번의 간단한 클릭으로 투표하여 모임 장소를 빠르게 결정할 수 있습니다 이제는 링크들을 복사하고 붙여넣기 하는 대신에 서로 문자를 주고 받으면서 결정을 빠르고 쉽고 재미있게 내릴 수 있습니다 이건 새로운 지도 기능들을 일별한 것 뿐입니다 새로운 지도는 이번 여름 늦게 안드로이드와 iOS 모두에서 출시됩니다 우리는 이것이 주변 지역부터 머나먼 세계의 구석까지에서 여러분이 계속 더 나은 결정을 내리고 새로운 시각으로 세상을 경험하는 데 도움을 주기 위해 지도가 할 수 있는 일들의 시작점일 뿐이라고 생각합니다 이런 발견은 소규모 가게들이 없었다면 불가능했을 겁니다 왜냐하면 사람들이 새로운 장소를 발견하도록 도와줄 때 새로운 소비자들이 그 지역 사업을 발견하는 것도 돕고 싶거든요 주변 지역의 빵집이나 구석진 곳의 이발소같은 가게입니다 이런 가게들은 우리 공동체의 근간입니다 진심으로 그들이 구글과 함께 성공할 수 있게 도울 것을 약속합니다 매달 우리는 사용자들을 주위의 가게들과 90억 번이 넘게 연결해줍니다 10억 번의 전화와 30억 번의 길 찾기 요청을 포함한 숫자입니다 지난 몇 달간 우리는 심지어 몇몇 도구를 더했습니다 지역의 가게들이 의미 있는 방식으로 소비자들과 의사소통하고 관계를 맺게 해 주는 도구입니다 당신이 좋아하는 가게들의 이벤트나 제안들에 대한 일일 포스트를 볼 수 있습니다 조만간 그것에서 더 업데이트되어 새로운 포 유의 흐름을 볼 수 있을 겁니다 여러분이 준비가 되었다면 간편하게 한 번의 클릭으로 예약을 하거나 주문을 할 수 있습니다 기술이 모두에게 기회를 주는 것을 보면 언제나 고무됩니다 지난 13년간 우리가 모든 길, 모든 건물, 모든 가게들을 지도화하는데 투자한 이유는 이게 중요한 일이기 때문입니다 우리가 세계 지도를 만들었을 때, 지역 사회는 살아 숨쉬고 우리가 절대 불가능하리라 생각했던 장소들에서의 기회가 생겼습니다 컴퓨팅이 진화함에 따라 우리는 새롭게 생각하도록 계속 스스로 도전해왔습니다 현실에서 여러분의 일을 돕기 위해서였습니다 무대로 아파르나를 모셔서 우리가 구글 지도나 다른 곳에서 어떤 일을 하는지 알려드리겠습니다 구글 VR·AR 부사장 아파르나 첸나프라가다 우리 스마트폰의 카메라는 우리를 주변 세상과 굉장히 직접적으로 연결해줍니다 순간을 저장하고, 추억을 포착하고, 의사소통하게 도와줍니다 하지만 피차이CEO가 말했듯이 컴퓨터 비전과 AI의 진보에 따라 우리는 질문하게 되었습니다 "카메라가 더 많은 것을 할 수 있다면 어떨까?" "카메라가 질문에 대답하는 데 도움을 줄 수 있을까?" 그 질문들은 "어디로 가는 거지?"나 "내 앞에 뭐가 있지?"같은 거죠 익숙한 광경을 그려볼게요 당신은 지하철을 빠져나왔습니다 이미 약속시간이나 기술 회사 회의에 늦어버렸죠 종종 있는 일들이잖아요 그 때 휴대폰이 말하죠 '마켓가에서 남쪽으로 가세요' 그럼 어떻게 해야 하죠? 한 가지 문제는 어느 쪽이 남쪽인지 알 수 없다는 거죠 그러면 휴대폰을 내려다보고 지도상의 파란 점을 보죠 걸으면서 그 점이 옳은 방향으로 움직이는지 확인합니다 그렇지 않다면 반대 방향으로 걸어야죠 우리 모두 그런 적 있잖아요 그래서 우리는 자문했습니다 "카메라가 이걸 도와줄 수 있을까?" 우리 팀은 정말 열심히 작업했습니다 카메라와 컴퓨터 비전의 힘과 거리 뷰와 지도를 통합하여 걸어다니는 내비게이션을 재구상했습니다 구글 지도에서 보여질 모습을 한 번 보시죠 카메라를 켜면 여러분은 바로 어디에 있는지 알 수 있습니다 휴대폰과 싸울 필요가 없죠 지도상의 모든 정보나 거리 이름과 방향들은 여러분 바로 앞에 있을 겁니다 지도도 볼 수 있어서 계속 위치를 확인할 수 있죠 주변 장소들도 볼 수 있어서 주변에 뭐가 있는지 알 수 있죠 그리고 재미를 위해서 우리 팀이 유용한 가이드를 더하자는 아이디어를 냈어요 지금 보시는 거 같은 거죠 방향을 알려줄 겁니다 저기 지나가네요! 아주 멋있죠 이제 이런 경험들이 가능해졌지만 GPS 혼자서는 이것을 편집할 수 없습니다 그래서 우리는 VPS에서 작업을 해왔습니다 시각 위치 확인 서비스로 정확한 위치와 방향을 측정해줍니다 여기에서 주안점은 여러분이나 저나 익숙하지 않은 장소에서는 시각적인 랜드마크를 찾는다는 거죠 가게 앞이나 건물 정면 같은 걸요 그것과 같은 아이디어죠 VPS는 주변 환경의 시각적인 특징을 사용해서 같은 일을 합니다 정확히 어디 있는지 알려주고 정확히 어디로 가야 할 지 알려줘서 우리가 여러분을 돕게 해줍니다 아주 좋죠 우리가 지도에서 카메라를 이용해서 여러분을 도와주는 방법이었습니다 하지만 우리는 카메라가 여러분이 보는 것을 통해 더 많이 도울 수 있다고 생각했습니다 그게 바로 우리가 구글 렌즈 연구를 시작한 이유입니다 사람들은 이미 많은 답을 찾기 위해 구글 렌즈를 사용하고 있습니다 특히 질문이 말로는 설명하기 어려운 종류일 때는 더 그렇죠 '공원에서 본 그 귀여운 개는 뭐지?' 같은 질문에 대한 답입니다 래브라두들이죠 아니면 시카고에 있는 이 건물은 리글리 빌딩이고 높이는 130미터입니다 아니면 요새 제 9살 아들이 말하듯 할 수 있겠죠 "케빈 듀란트가 60명 넘게 서 있는 거랑 같네?" 오늘날의 렌즈는 구글 제품에서 사용할 수 있습니다 포토나 어시스턴트같은 제품이요 하지만 다음 주부터는 렌즈가 카메라 앱에 바로 삽입되어 픽셀이나 새로운 LG G7, 그리고 더 많은 기기들에서 사용 가능해질 겁니다 이렇게 하면 훨씬 더 쉽게 카메라로 바로 앞에 있는 것에 구글 렌즈를 사용할 수 있습니다 아주 많이 기대되네요 이와 비슷하게 비전은 컴퓨팅에 있어서 근본적인 변화입니다 많은 시간이 필요로하겠지만 우리는 이미 많은 진보를 이루었습니다 그래서 오늘 제가 구글 렌즈의 세 가지 새로운 기능을 보여드리겠습니다 더 많은 유형의 질문에 더 많은 답을 더 빠르게 줄 수 있을 겁니다 한 번 보실까요? 좋아요! 자, 첫 번째입니다 렌즈가 단어를 인식하고 이해할 수 있습니다 단어는 어디에나 있죠 생각해보면 교통 표지판, 포스터 식당 메뉴, 명함같은 것도요 하지만 스마트 텍스트 선택과 함께라면 보이는 단어들을 필요로 하는 답과 행동으로 이어줄 수 있죠 그래서 복사하고 붙여넣기를 현실에서 바로 휴대폰으로 할 수 있죠 바로 이렇게요 아니면 이걸 보고 있다고 합시다 단어가 가득한 페이지들을 답이 가득한 페이지로 바꿀 수 있죠 예를 들어서 식당 메뉴를 보다가 빠르게 탭을 해주면 모든 요리들을 알아낼 수 있습니다 어떻게 생겼고 어떤 게 들어가는지 같은 걸요 그건 그렇고 채식주의자로서 라따뚜이에 주키니와 토마토만 들어간다는 걸 알게 되서 좋더군요 진짜 좋죠 이런 예시들을 통해서 렌즈가 시각적으로 기호나 글자의 모양을 이해할뿐만 아니라 단어 뒤의 문맥을 이해하려고 노력한다는 것을 알 수 있습니다 거기서 바로 스콧이 말했던 모든 언어가 이해된다는 것이 진짜 도움이 되는 거죠 제가 다음으로 말할 기능은 스타일 매치라는 기능입니다 아이디어는 이렇죠 가끔 여러분이 하는 질문은 "오, 이 정확한 사물은 뭐지?"보다는 "이런 게 뭐지?"에 가깝습니다 친구 집에 있는데 이 유행하는 램프를 봤습니다 그리고 이 스타일과 비슷한 것들을 알고 싶습니다 이제 렌즈가 여러분을 도와줄 수 있습니다 시선을 끄는 옷을 봤다면 그저 카메라를 켜고 어떤 아이템이든 클릭하세요 그러면 당연히 구체적인 정보를 찾아낼 수 있을 겁니다 그 특정 물건에 대한 후기같은 거죠 하지만 그 외에도 그 스타일과 비슷한 모든 것들을 보고 찾을 수 있습니다 두 가지 부분이 있습니다 렌즈는 수백만 개의 물건을 검색해야만 하죠 하지만 우리는 검색을 어떻게 하는지 알고 있잖아요 하지만 다른 부분은 사실 복잡한 것들입니다 질감이나 모양, 크기, 각도, 조명같은 것들이 다를 수 있잖아요 기술적으로 어려운 문제입니다 하지만 우리는 기쁘게도 이 부분에서 많은 진보를 이루었습니다 이제 제가 오늘 말할 마지막은 어떻게 렌즈가 실시간으로 작동하게 만들었냐는 겁니다 스타일 매치의 예시에서 보셨다시피 카메라를 켜서 보기 시작하면 즉각적으로 렌즈가 모든 정보를 주도적으로 보여줍니다 심지어 여러분이 보는 것들의 정보를 고정시켜 놓기도 합니다 이런 것들은, 수십억 개의 단어, 구문, 장소, 물건들을 샅샅이 조사하는 것들은 여러분이 필요로 하는 것을 실시간으로 제공하기 위한 것으로 머신 러닝이 없다면 불가능하죠 우리는 기기의 지능만이 아니라 클라우드 TPU의 힘까지 두 개 모두를 사용합니다 클라우드 TPU는 작년 개발자 회의에서 발표한 것으로 이를 완성했죠 정말 신나네요 시간이 지나면서 우리가 하고 싶은 것은 모든 것들 위에 직접적으로 생생한 결과를 오버레이하는 것입니다 가게 앞이나 거리 표지판, 콘서트 포스터같은 것들 위에요 그래서 휴대폰을 찰리 푸스의 콘서트 포스터에 그저 대기만 하면 뮤직 비디오가 바로 재생되는 것처럼 그런 일들을 하고 싶어요 카메라가 단순히 질문의 대답을 해주는 것뿐만 아니라 질문이 있는 곳에 대답을 넣어주는 예시입니다 매우 흥미로운 일이죠 스마트 텍스트 선택 스타일 매치, 실시간 결과들이 몇 주 안에 렌즈에서 출시됩니다 계속 지켜봐 주세요 구글이 어떻게 카메라에 AI를 적용시켜 여러분 주변의 일을 해결할 지에 대한 예시들이었습니다 AI와 지도 제작, 컴퓨터 비전을 현실의 문제 해결에 적용시키려면 자율주행차량보다 더 현실적인 것은 없을 겁니다 여기에 대해 말씀드리기 위해 웨이모의 CEO인 존 크라프시크씨를 모시겠습니다 감사합니다 모두들 안녕하세요! 웨이모CEO 존 크라프시크 오늘 구글의 친구들을 무대에서 만나게 되어 너무 즐겁네요 저는 이번에 쇼어라인에 처음으로 오게 됐지만 우리 자율주행차는 처음이 아닙니다 2009년에 이 씨어터 바로 바깥 주차장에서 처음으로 자율주행기술의 시험들이 이루어졌습니다 구글의 기술자들, 로봇 연구가들과 연구자들이 있는 이 곳에서 차들이 스스로 운전할 수 있다는 것을 실제로 검증하기 위한 말도 안 되는 미션이 시작되었습니다 그 당시에는 대부분의 사람들이 자율주행차에 대해서 공상 과학일 뿐이라고 생각했습니다 그러나 이 헌신적인 몽상가들은 자율주행차량이 모두에게 교통을 더욱 안전하고 간편하고 접근 가능하게 할 것을 믿었습니다 그렇게 구글의 자율주행차량 프로젝트가 시작되었습니다 빠르게 2018년으로 돌아와서 구글의 자율주행차량 프로젝트는 이제 웨이모라고 불리는 독립적인 알파벳의 자회사입니다 손보고 연구하는 것을 넘어서 발전해왔습니다 오늘날 웨이모는 전세계에서 유일하게 공공 도로에서 운전석에 아무도 없이 운전하는 완전한 자율주행차량 군단을 갖췄습니다 애리조나주 피닉스의 사람들은 이미 완전한 자율주행을 경험해 봤습니다 한 번 보시죠 자율주행 첫 날입니다 준비됐나요? 갑시다! 기분이 좀 이상하네요 이것이 미래입니다 저 여자분을 보세요 "아무도 운전 안 하고 있는데?" 알고 있었어! 이걸 기다렸지 아무도 운전을 안 한다는 걸 전혀 몰랐어요 요! 자동차! 셀카찍자! 자동차야, 고마워 자동차야, 고마워 아주 멋있죠 여기 나오신 분들은 웨이모의 초기 탑승 프로그램 참가자들입니다 일상에서 우리 자율주행차를 사용한 일반인들이시죠 작년 한 해 동안 이 초기 탑승자들과 얘기를 나눌 기회가 있었습니다 그 분들의 이야기는 굉장히 고무적인 것들이었습니다 초기 탑승자들 중 한 명인 네하는 어렸던 십대 시절에 비극적인 사고를 목격했습니다 네하가 운전면허를 따기 무섭게 만들었습니다 하지만 이제 네하는 매일 웨이모를 타고 출근합니다 짐과 바바라는 더 이상 늙어서 돌아다닐 힘이 없을 때를 걱정할 필요가 없습니다 그리고 잭슨 가족이 있습니다 웨이모는 빽빽한 잭슨 가족의 스케쥴을 진행시켜 줍니다 카일라와 요셉을 학교 통학과 친구들과의 연습이나 만남에 데려다줍니다 이제 공상 과학이 아니죠 자율주행기술을 만들 때 우리가 목표로 한 사람들이 바로 이런 사람들입니다 2018년에 들어서 자율주행차량은 벌써 사람들의 삶과 행동을 바꿨습니다 피닉스가 웨이모의 운전자 없는 교통 서비스의 첫 번째 무대가 되어 올 해 하반기에 출시될 것입니다 조만간 누구나 우리 앱을 사용해서 웨이모를 부를 수 있게 될 겁니다 완전한 자율주행차량이 멈춰 서면 아무도 운전석에 없지만 목적지까지 데려다줄 겁니다 이건 그저 시작일 뿐이죠 왜냐하면 웨이모에서 우리는 단지 더 나은 차를 만드는 것이 아니라 더 나은 운전자를 만드는 것이기 때문입니다 그리고 그 운전자는 모든 앱에서 사용될 수 있을 것입니다 택시 요청, 물류, 개인 차량이나 대중 교통수단과 사람들을 연결시켜주는 데까지도요 우리의 기술은 이 모든 다른 산업들에서 사용 가능하다고 생각합니다 많은 회사들과 동업하여 자율주행의 미래가 모두의 현실이 되도록 하겠습니다 그리고 이 미래는 우리가 AI에 했던 투자와 AI의 약진으로 가능해졌습니다 옛날을 돌아보면 구글은 아마도 그 당시에 이 세상에서 유일하게 AI와 자율주행기술에 동시에 투자한 기업일 겁니다 구글이 음성 인식, 컴퓨터 비전, 이미지 검색 등을 통해서 머신 러닝에 주요 진보를 만들기 시작했을 때 웨이모는 그 수혜를 받을 특별한 위치에 자리했습니다 예를 들면, 2013년에 우리는 보행자 탐지의 돌파구가 될만한 기술을 찾고 있었습니다 다행스럽게도 구글은 딥 러닝이라는 새로운 기술을 이미 효율적으로 사용하고 있었습니다 딥 러닝은 머신 러닝의 한 종류로 다양한 층에 신경망을 만들어 좀 더 복잡한 문제를 해결할 수 있게 합니다 그래서 우리의 자율주행 기술자들은 구글 브레인 팀의 연구원들과 팀을 이루어서 겨우 몇 달만에 보행자 탐지의 오류 발생률을 100배 줄였습니다 네 100%가 아니라 100배요 그리고 오늘날

감사합니다 오늘날 AI는 자율주행 시스템에서 더욱 큰 역할을 하고 있습니다 우리의 능력을 개방하여 진정한 자율주행을 만들어냈습니다 머신 러닝이 현재 길거리에서 보이는 안전하고 능숙한 웨이모의 운전자들을 어떻게 머신 러닝이 만들어냈는지 더 자세히 알려드리기 위해 드미트리를 소개하겠습니다 감사합니다 웨이모 자율주행 기술 총괄 드미트리 돌고프 좋은 아침입니다 이 자리에 서게 되어 영광입니다 웨이모에서 AI는 우리 시스템의 모든 영역을 관장합니다 인지에서 예측으로, 의사 결정으로, 지도 제작으로 그리고 더 많은 것들까지도요 유능하고 안전한 운전자가 되기 위해서는 우리 차량은 주변 세상을 의미론적으로 깊게 이해해야만 합니다 우리 차량은 물체를 이해하고 분류해야만 하고 물체의 움직임을 분석하고 그 의도를 판단하고 앞으로 뭘 할 것인지 예측할 수 있어야 합니다 각각의 물체들이 다른 것들과 어떻게 상호작용할 지 이해해야만 합니다 그리고 마지막으로 우리 차량은 모든 정보를 이용해서 안전하고 예측가능한 방식으로 작동해야만 합니다 그래서 말할 필요도 없이 자율주행차량을 만드는 데는 많은 것들이 요구됩니다 오늘 제가 말 할 두 영역은 AI가 큰 영향을 준 영역으로 인지와 예측입니다 첫 번째, 인지입니다 물체를 탐지하고 분류하는 건 운전에 있어서 중요한 부분입니다 특히 보행자들은 특별한 시련을 만들어주는데 다양한 형태와 자세, 크기로 나타나기 때문입니다 예를 들어서 건설업 종사자가 맨홀 밖을 쳐다보고 있습니다 몸의 대부분은 보이지 않겠죠 여기는 길을 지나는 보행자가 나무 판자에 가려져있네요 그리고 여기를 보시면 보행자가 공룡 옷을 입고 있네요 우리는 차에게 쥬라기 시대에 대해서 가르쳐주지 않았습니다 하지만 여전히 차는 그것들을 올바르게 분류할 수 있습니다 이 보행자들을 탐지하고 분류할 수 있는 이유는 딥 넷을 적용하여 센서 데이터를 통합했기 때문입니다 전통적으로 컴퓨터 비전에서 신경망은 카메라 이미지와 영상에서만 이용되었습니다 하지만 우리 차는 카메라보다 훨씬 많이 가지고 있죠 물체의 형태와 거리를 짐작할 수 있는 레이저와 물체의 속도를 계산할 수 있는 레이더도 장착되어 있죠 머신 러닝을 이 통합된 센서 데이터에 적용시킴으로써 어떤 형태의 보행자든 실시간으로 정확하게 탐지할 수 있습니다 머신 러닝이 웨이모를 위해 놀랍게 큰 일을 해 준 두 번째 영역은 도로 위의 사람이 어떤 행동을 할 지 예측하는 것입니다 사람들은 보통 우리의 예측대로 행동하지만 가끔씩은 그렇지 않습니다 여기 빨간불에 달리는 차의 예시를 보시죠 불행스럽게도 우리는 이런 일을 생각보다 자주 봅니다 이것을 자동차의 시점에서 분석해보겠습니다 차가 교차로에서 직진을 하려고 합니다 분명히 초록불이죠 그리고 교차로는 빨간불로 멈춰 있네요 하지만 교차점에 막 진입하는 순간 오른쪽에서 빠르게 다가오는 차량이 보이네요 우리 모델은 이것을 감속해야 할 차량의 이상 행동이라고 이해했습니다 차량이 빨간 불에도 계속 달릴 것으로 예측하고 우선 속도를 줄였습니다 여기 붉은 장애물에서요 빨간불에서도 달리는 차량에게 우리 앞으로 지나갈 공간을 준 거죠 다른 차량을 치는 걸 막기는 거의 불가능해 보이지만요 이런 종류의 변칙을 탐지할 수 있는 건 우리 ML 모델을 다양한 예시로 훈련시켜왔기 때문입니다 현재 우리 군단은 공공 도로에서 6백만 마일이 넘게 자율주행을 해봤습니다 실제 상황을 수억 개 이상 지켜볼 수 있었던 거죠 그런 관점에서 볼 때 우리는 매일 보통 미국인의 일 년 주행량보다 더 많이 운전을 한다는 거죠 그저 좋은 알고리즘보다는 더 많은 것이 자율주행차량에 필요합니다 굉장히 튼튼한 기반 시설도 필요하죠 웨이모에서는 텐서플로우 생태계와 TPU를 포함한 구글 데이터 센터를 이용하여 신경망을 훈련시켰습니다 이제 TPU를 이용해서 우리는 신경망을 15배 더 효율적으로 훈련시킬 수 있습니다 또한 이 튼튼한 기반시설을 이용하여 시뮬레이션에서 우리 모델을 입증했습니다 이 가상 세계에서 우리는 매일매일 이만 오천대의 차와 동일하게 주행을 했습니다 다하면 시뮬레이션에서 50억 마일 넘게 주행을 했죠 이 정도의 규모를 통해 우리 모델의 훈련과 입증 모두에서 빠르고 효율적으로 차량에 새 기술을 가르칠 수 있습니다 우리가 다루기 시작한 새 기술은 어려운 날씨에서의 자율주행입니다 여기 보시는 것처럼 눈이 오는 것 같은 날씨에서요 그리고 오늘 최초로 눈 속에서 자율주행하는 우리 차량이 어떤 모습인지 그 비밀에 가려진 모습을 보여드리겠습니다 이게 어떤 필터도 거치지 않았을 때 자율주행차가 보는 장면입니다 눈보라 속 주행은 어렵습니다 눈송이가 우리 센서에 많은 방해를 하기 때문이죠 하지만 머신 러닝을 이 데이터에 적용함으로써 우리 차량이 보는 것은 이런 모습입니다 우리는 분명하게 각 차량을 구분할 수 있습니다 센서가 방해되는 데도 불구하고요 이런 진보된 능력들을 빨리 공개할수록 우리 자율주행차량들이 더 빠르게 전세계의 더 많은 도시들과 여러분 인근 도시에 보급될 겁니다 우리 자율주행차량이 더 많은 사람들에게 보급되고 도로가 모두에게 더 안전하고 쉽고 접근하기 편한 곳이 될 미래로 우리를 데려다줄 날이 기다려집니다 여러분 감사합니다 이제 젠을 다시 무대로 불러서 우리의 아침 세션을 마치도록 하겠습니다 드미트리 고마워요 AI가 언제나 새로운 방식으로 사람들을 돕는 일에 대해 알아볼 수 있어 좋았습니다 제가 구글에 기술 인턴으로 입사한 게 거의 19년 전이네요 첫 날 문을 열고 들어갔을 때부터 제가 항상 생각하는 것은 기술의 영역과 기술의 가능성 확장에 헌신할 것이었습니다 사람들의 실제 삶에 영향을 줄 제품들에 주력하는 것과 함께요 그리고 세월이 지나면서 저는 여러번 목격했습니다 어떻게 기술이 실제로 변화된 역할을 수행하는 지를요 검색이나 지도같은 제품 초기에서 구글 어시스턴트같은 새로운 영역으로 변화했죠 오늘날의 구글을 보면 그 초기의 가치가 여전히 살아 숨쉬고 있는 것을 볼 수 있습니다 우리는 계속해서 여러분과 함께 모두를 위한 제품과 중요한 제품을 만드는데 전념하겠습니다 우리 스스로의 목표를 더 높이고 책임감 있게 사회와 세상에 공헌하도록 지속적으로 포부를 품겠습니다 진짜 모두를 위한 제작을 하려면 다양한 관점들이 혼합되어야 합니다 그게 바로 우리가 올해 개발자 회의를 확대하여 더 많은 목소리들을 들으려고 한 이유입니다 남은 삼일간 추가 연설자들을 초대하여 디지털 웰빙 촉진에서부터 NGO의 미션 달성을 돕는 것까지 모든 분야에서 확장된 역할을 수행하는 기술에 대해서 모두 말해드리겠습니다 물론 그 뿐만 아니라 여러분이 개발자 회의에서 기대한 수백개의 기술 얘기도 있습니다 여러분이 즐기시고 배워가셨으면 좋겠습니다 2018년 개발자 회의에 오신 것을 환영합니다 부디 즐겨주세요 다음 며칠간 자극을 얻으셔서 모두를 위해 좋은 것을 만드는 일을 지속하시기를 바랍니다 감사합니다

Android Developer Story: Zabob Studio — Growing revenue with Google Play (Korean)

내 이름은 권대현 나는 현재 게임 회사를 운영하고있다

'Zabob Studio' 우리 회사는 단 두 명의 회원, 나의 아내 그리고 나 자신 나는 내 아내와 결혼했을 때이 회사를 설립했다 2013 년 11 월에 이전 회사에서 물러났습니다 우리는 지금까지 약 10 게임을 만들었습니다

그 중 대표 게임은 "ZOMBIE 판단 데이 (JUDGMENT DAY) '와'인피니티 던전 (INFINITY DUNGEON) '을 선보였습니다 마케팅 예산을 많이 쓰지는 못했지만, 우리는 그것을 홍보하려고합니다 나는 모든 개발자가이 문제에 직면 해 있다고 생각한다 우리는 저렴한 비용으로 게임을 효율적으로 마케팅 할 수있는 방법을 찾으려고 노력했습니다 훌륭한 아이디어는 우리가 개발하거나 경쟁 할 여력이 없기 때문에 우리의 경쟁 우위입니다

대규모 게임 우리는 알아 내기 힘들게 노력했습니다 어떤 게임 유형이이 아이디어를 기반으로이 경쟁에서이기는 데 도움이 될 것입니다 다행히도, 우리 게임은 "Play Picks" 글로벌 사용자에게 게임을 홍보하는 데 도움이되었습니다 Google의 지원을 받아 약 2 개월 동안 약 40 만 건의 다운로드를 기록했으며, 우리의 판매 수익은 약 1 억 4 천만에 도달했습니다

원 물론, 한국은 우리 게임을 가장 좋아했습니다 그러나 다운로드 및 판매 수익은 다른 미국을 포함한 지역도 약 60 %를 차지했다 Android 게임 개발의 장점 중 하나는 Google Play 게임 서비스입니다 이 서비스를 통해 개발자는 필요한 즉시 사용할 수있는 기능에 쉽게 액세스 할 수 있습니다

순위, 업적 및 퀘스트를 포함한 게임, 물론 우리는 서비스에서 많은 혜택을 얻었습니다 Google Play 개발자 콘솔에서 다양한 통계를 확인할 수도 있습니다 가장 중요한 부분은 개발자가 개발자에게 직접 응답 할 수 있다는 것입니다 리뷰, 그리고 이것은 확실히 콘솔을 차별화합니다 다른 사람들로부터

"ZOMEBIE JUDGMENT DAY"의 성공과 Google Play 스토어의 'INFINITY DUNGEON'으로 많은 돈이되었습니다 따라서 우리는보다 합리적인 환경에서 게임을 개발할 수 있다는 것에 만족합니다 게임의 완성도를 보장하는 것이 중요하지만, 어느 정도 게임이 시작되면 게임을 빨리 풀어 놓는 것이 유리합니다 완료 및 사용자로부터 피드백을 받고 업데이트 그것의 서비스를 개선하는 것을 계속한다 Zabob Studio가 "커플 러닝" 이 전략을 추구함으로써 글로벌 게임 개발자