100MB – Call Of Duty Modern Warfare 3 Android – Dolphin Emulator 2019

정확히 안드로이드를 위해 만들어진 게임이 아닙니다 왜냐하면 그것을 할 수있는 유일한 방법이기 때문입니다

안드로이드 장치에서 실행되는 것은 Nintendo Wii 에뮬레이터 인 Dolphin을 통해 이루어집니다 Android에서이 콘솔의 게임을 할 수 있으므로 게임이 잘 작동합니다 당신은 좋은 장치를 가지고 있어야합니다 그렇지 않으면 많은 사람들이 이미 알고있을 것입니다 Modern Warfare 3는 PS3, Xbox 360, Nintendo Wii, Nintendo DS 및 PC에서만 출시되었습니다

이미이 정보가 나온 후에는 게임 플레이로 시작해 보겠습니다

Modern Android Notifications (Android Dev Summit ’18)

[음악 재생] JINGYU SHI : 안녕하세요 최신 Android 알림에 오신 것을 환영합니다

내 이름은 징이다 나는 파트너 개발자 팀의 개발자 옹호자입니다 Paul Matthews : 저는 Paul Matthews입니다 저는 런던에서 파트너 개발자 옹호자입니다 그래서 3 년 전이 단계에서, 시스템 UI의 안드로이드 엔지니어 인 크리스 렌 (Chris Wren) 이 따옴표를 썼다

그리고 그것은 빛나는 것이다 "사용자를 괴롭히지 마십시오 그들을 존경하십시오 능력을 키워라 그들을 기쁘게합니다

그들이 관심있는 사람들과 연결하십시오 " 그리고 이것은 오늘날에도 여전히 매우 사실입니다 채널을 살펴보고이를 사용하는 방법에 대해 알아 보겠습니다 앱에서 알림의 새로운 기능 및 마지막으로 디지털 웰빙,하지만 먼저 사용자를 존중하는 방법 따라서 사용자의주의를 존중하십시오

사용자를 괴롭히지 마십시오 그들을 존경하십시오 유용한 팁 – 사용자 설정을 존중하십시오 따라서 앱에서 나와 연락 한 경우 그들이 당신의 통보를위한 특정 설정을 원한다고, 그렇다면 그것을 존중해야합니다 시도하지 말고 무시하십시오

시도하지 말고 무시하십시오 보내는 알림을 확인해야합니다 막히지 않았고, 그들이 여전히 원하지 않는다 이러한 알림을 듣기 마지막으로 앱에서 역량이 있다면, 당신은 그들이했던 모든 설정을 백업해야합니다

알림에 대해 이야기했습니다 그리고 동기화되었는지 확인해야합니다 설치 및 장치 이상 잘 구조화 된 알림을 사용해야합니다 앱에서 우리가 제공하는 스타일을 사용하므로, MessagingStyle, InboxStyle, BigPictureStyle과 같은 메시지 형식입니다

알림을 확인해야합니다 적절하고시의 적절합니다 좋은 예는 우선 순위가 높은 FCM 메시지를 사용하는 것입니다 사용자가 의도 할 때 알림을 받도록하십시오 그 (것)들은 당신의 통지를 얻는다

알림 우선 게시 우선 순위를 정한 다음 더보기 좋게 만들어 다운로드하기 자산과 그런 종류의 것 일부는하지 말고 일부는 기본하지 말아야합니다 이러한 알림을 보내지 마십시오 그리고 그들에 대해 잊어 버리는 종류 따라서 우리는 플랫폼 기능을 사용하기를 원합니다

너를 돕기 위해있다 예를 들어, 자동 취소, 확인 당신이해야 할 때 당신의 통지가 사라진다 시간 초과는 알림입니다 4 시간 후에 관련이 있니? 그리고 장치를 통해 동기화 – 사용자가 여러 기기에서 앱을 사용한다는 것을 알고 있다면, 태블릿 및 데스크톱과 마찬가지로 그들이 하나를 기각하는 알림 또는 다른 사람을 가로 질러 읽습니다 실행할 수없는 알림을 보내지 마십시오

알림의 요지는 그들이 사용되어야한다는 것입니다 정의에 따르면, 사용자는 무엇인가, 그들은 일반적으로 무언가를해야한다는 것을 의미합니다 알림을 보내지 마세요 이봐, 그냥 우리에게 알려주지 백그라운드에서 몇 가지

이것은 최고의 알림 사용이 아닙니다 그리고 마지막으로 사용자를 괴롭히지 마십시오 그래서 당신이 그 (것)들에게 통지를 게시 할 때, 한 번 경고를 사용하고 그들이 미친 듯이 윙윙 거리지 않는다고, 그들이 무대에 서서 발표에 관해 발표 할 때 그룹 알림을 확인해야합니다 행동은 당신이 원하는 것을 대표합니다

채팅 앱인 경우 어린이 그룹 알림 행동, 요약 등을 포함 할 수 있습니다 따라서 사용자를 존중하십시오 그렇지 않으면 알림을 사용 중지 할 수 있습니다 그리고 나서 그들에게 의사 소통 할 수있는 방법이 없습니다 앱을 제거하도록 선택할 수 있습니다

훨씬 더 악화 될 것입니다 의도적으로 사용할 수있는 일부 플랫폼 기능이 있습니다 알림이 꺼져 있습니다 예를 들어 게시 된 알림을 여기에서 볼 수 있습니다 그리고 사용자는 그것을 계속 스쳐 지나갈 수도 있습니다

이제 P에서 우리는 사용자에게 프롬프트합니다 이 통지에 정말로 관심이 있으십니까? 이 콘텐츠를 정말로보고 싶습니까? 이것은 채널에서 작동합니다 따라서 채널을 정확하게 설명하지 않으면 그러면 이것은 약간의 혼란을 가져올 수 있습니다 일부 손실 된 알림 사용자 관점에서 알림 채널에 대해 더 자세히 이야기 해 봅시다

알림에 대한 세부적인 제어 기능을 제공합니다 사용자를위한 따라서 사용자에게 권한을 부여해야합니다 그리고 채널은 채널에 힘을 실어주는 방법입니다 그럼 어떻게 사용하는지 살펴 보겠습니다 무엇보다 먼저 모든 앱에서 필수 요소입니다

API 26에 필요합니다 그리고 그 모든 곳에서 널리 퍼져 있어야합니다 그들은 사용자가 도움이되는 알림을 분류하는 데 도움이됩니다 사용자가 그들과 상호 작용할 수 있습니다 그러나 곧 그것에 관해서

마지막으로 사용자가 설정을 사용자 정의 할 수 있습니다 그래서 사용자는 마지막 말을했습니다 그래서 뭔가가 중요하다고 생각한다면 그리고 그들은 그것이 있다고 생각하지 않습니다, 그들은 당신에게 이것을 말할 수 있습니다 그럼 모범 사례를 살펴 보겠습니다 다시 말하지만, 사용자에게 채널 생성을 통해 알림을 관리 할 수 ​​있습니다

어쩌면 설정에 딥 링크 할 수있게해야합니다 이러한 것들을 바꾸기 그들이 관심을 표명하는 경우 알림 채널 작업, 아마 그들은 변화 할 수 있기를 원한다 무언가의 중요성 따라서 알림의 올바른 중요도 수준 설정 채널이 명백한 것처럼 보입니다

간과하기 쉽습니다 마지막으로 사용자 설정 – 앞서 말했듯이 사용자 설정을 존중해야합니다 그러나 당신이 할 수있는 곳에 그들을 백업하고, 그들을 시도하고 학대하지 마라 삭제 및 재 작성 다른 사용 금지는 하나의 채널 만 사용합니다

원한다면 이것은 분명히 알려주는 냄새입니다 애플리케이션에 하나의 채널 만 있다면, 아마 당신이보고 있어야 할 다른 것이있을 것입니다 사용자에게 잘못된 설명을 제공하는 경우 그래서 그들은 정말로 이해하지 못한다 채널의 목적이 무엇인지, 그러면 그들은 최선을 다할 수 없을 것입니다 결정

또는 잘못되었거나 차단 된 채널을 사용하는 경우, 그러면 아마, 아마, 그들은 당신에게 그들이 이 콘텐츠가 마음에 들지 않습니다 그리고 당신은 그것을 존경해야합니다 마지막으로 알림 채널을 사용하여 사용자를 스팸 처리합니다 계속 진행하는 가장 좋은 방법은 아닙니다 따라서 채널 선택은 실제로 가능합니다

도움을 받아 채널을 신중하게 선택하십시오 당신은 정말로 사용자를 생각해야합니다 애플리케이션을 만들지 않고 채널을 만들 때 너의 건축 사용자와 사용자의 생각 앱과 상호 작용하고 싶습니다 예를 들어, 시도하고 생성하는 것은 나쁜 생각입니다

중요도 수준의 알림 채널 당신은 중요하다고 느낍니다 이봐,이게 가장 중요한 일이야 알림 채널이 아닌 것입니다 범주별로 그룹화해야합니다 예를 들어, 사진에서 태그 지정, 또는 좋아하는 게시물

사용자가 나와 다시 대화하게하십시오 해당 유형의 알림을 보는 방법 또한 알림을 작성할 때 더 많은 통제가 필요합니다 예를 들어, 채팅 앱을 사용 중입니다 그리고 모든 채팅 알림에 대한 일반 채널이 있습니다

온다 그러나 나는 통제에 관심을 나타내고, 가족 채팅 그룹처럼 그 지점의 채널을 표시하고 사용자가 더 깊이 잠수 할 수있게합니다 더 세밀하게 제어 할 수 있습니다 그리고 마지막으로, 게으른 생성, 그래서 다시 온다 너무 많은 채널이나 그룹을 만들지 않아야합니다

그리고 징우가 직접 메시지를받지 못한다면 앱을 통해, 아마도 당신은 필요 없어 그것을위한 채널을 만들 수 있습니다 그런 다음 사용자가 의견을 제공 할 수 있습니다 말하자면, 이것은 유용하거나 유용하지 않습니다 그리고 그 말을 들어야합니다

그래서 안드로이드 P에서 우리는 브로드 캐스트를 추가했습니다 차단 또는 변경 상태 청취를위한 알림 채널의 당신은 그것들을 이해해야합니다 그리고 당신은 그들에게 반응해야합니다 다음에 백업 할 때까지 백업해야합니다 다른 장치에 채널을 만들면 의미가 있습니다

마지막으로 런타임에 이러한 API를 쿼리 할 수 ​​있습니다 또한 사용자가 채널과 상호 작용하는 방식을 알아볼 수 있습니다 이제 알림의 새로운 기능을 살펴보십시오 JINGYU SHI : 폴 감사합니다 알림에서 새로운 점이 무엇인지 살펴 보겠습니다

Android 9에서 먼저 시각적 업데이트를 추가했습니다 알림을 더 쉽게 읽고 스캔 할 수 있도록합니다 아마 눈치 챘을 때, 더 많은 패딩을 추가했습니다 단일 통지

그리고 우리는 둥근 모서리를 사용하여 돌아갔습니다 상단과 하단에 우리가 정말로 좋아하는 또 다른 개선점 이 부드러운 앱을 여는 애니메이션입니까? 당신이 여기 슬라이드에서보고 있습니다 알림을 닫는 대신 앱을 열면 알림이 표시됩니다 앱으로 부드럽게 변환되어 속도를 높입니다

전환은 두 번 이상 그리고 당신은 물을 수도 있습니다, 이것을 갖기 위해 당신은 무엇을해야합니까? 당신이해야 할 일은 당신이 직접 활동을 시작한다는 것을 귀하의 활동이 빨리 시작됩니다 대부분의 사용자는 알림 그들은 가장 신경을 쓴다 그들이 관심을 가진 사람들과 그래서 우리는 메시징 스타일, 메시징을 향상 시켰습니다 새로운 사람을 추가하여 경험 클래스를 사용하면 API 28을 사용할 수 있습니다

알림에서 MessagingStyle을 사용하는 경우, 우리는 이제 사람들의 아바타를 옮겼다는 것을 알 수 있습니다 통지의 왼쪽에 그리고 당신은 setIcon 메서드를 사용하여 그 아바타를 설정할 수 있습니다 이미지와 스티커에 대한 지원도 추가했습니다 메시징 알림에서 사이트 데이터를 사용하여 이미지를 추가 할 수 있습니다 귀하의 메시징 통보에 직접 기재하십시오

안드로이드에서 내가 좋아하는 또 다른 특징은 바로 답장이다 하지만 때로는 알림에 회신 할 때, 우연히 알림을 탭합니다 그러면 앱이 열립니다 그리고 내 반응은 사라집니다 그러나 Android 9에서는이 기능을 사용하여 사용자를 도울 수 있습니다

이 여분에서 초안을 검색함으로써, 앱에서 응답을 채울 수 있습니다 따라서 사용자 경험을 더 좋게 만들고 즐겁게 만드십시오 이미 앱에서 스마트 답장을 지원하는 경우, setChoices API를 사용하는 것이 좋습니다 알림에 표시 할 수도 있습니다 알림에 회신하는 대신, 사용자는 이제 그 중 하나를 눌러 회신 할 수 있습니다

좋아, 여기에 우리가 만든 예제가있다 새로운 API를 사용하는 MessagingStyle 알림 먼저 인스턴스, person 인스턴스를 만들고, 이리 그래서 우리는 사람 제작자를 사용할 것입니다 보시다시피, 우리는 이름, URI, 이 사람을위한 아이콘

그리고 이것은 메시지에서 발신자를 나타낼 것입니다 그리고 나서 우리는 이것을이 메시지에 전달할 것입니다 우리가 여기서 만들고있는 것 보시다시피, 우리는 그 사람의 인물을 지나가고 있습니다 이전처럼 우리가 지나가던 곳이 아니야

그 사람의 이름 그리고이 메시지에서 우리는 또한 이미지를 포함하기를 원합니다 그래서 우리는 setData 메소드를 사용하여 그 이미지를 포함시킵니다 그 다음에는이 메시지를 추가합니다 또 다른 메시지

그래서이 MessagingStyle에 두 개의 메시지를 추가합니다 공고 그런 다음 스타일을 알림으로 설정합니다 좋아요, 그럼 여기에 몇 가지 사항을 간략히 요약하면 다음과 같습니다 MessagingStyle을 사용하고 있습니다

먼저 메시지에 MessagingStyle을 사용하십시오 그리고 이것은 여러분이 Android Auto 또는 Android Wear 용 건물 메시지 알림을 보내는 경우, MessagingStyle을 사용하십시오 과거에는 개발자를 보았습니다 MessagingStyle과 다른 스타일 간의 전환, 큰 이미지를 만들려면 BigPictureStyle처럼 확장 프리젠 테이션 하지만 이제 setData 메소드로 그렇게 할 필요가 없습니다

MessagingStyle 만 사용할 수 있습니다 그리고 이것은 일관된 경험을 창출 할 것입니다 사용자를위한 사람들을 위해 아이콘을 추가하는 것이 좋습니다 통지에 따라서 setIcon을 사용하여 해당 아바타를 추가하는 것이 좋습니다

아이콘을 설정하지 않으면 그 사람의 이름으로 이니셜을 사용합니다 시각적 인 프리젠 테이션을 만들 수 있습니다 마지막으로 앱이 스마트 응답을 지원하는 경우, 알림에 추가하십시오 그래서 당신은 사용자에게 더 나은 경험을 제공합니다 여기에 피해야 할 몇 가지 사항이 있습니다

자동차에는 많은 이유가 있습니다 사용자에게 깨끗한 상태를 제공하기 위해 알림을 취소하십시오 현재까지 통지 항아리 그러나 사용자가 알림에 응답하면 메시지 알림,이 경우 중 하나가 아닙니다 당신은 거기에 그 통보를 유지하기를 원할 것입니다

따라서 사용자가이 대화로 돌아가고 싶다면 그 후에 답장하십시오 그러니 그걸 취소하지 마세요 사용자가 언제든지 스 와이프하도록하세요 대화로 끝났다 우리가 과거에 본 다른 나쁜 행동 일부 개발자는이 빈 이름을 설정하고 있으며, 시각적 인 프리젠 테이션을 달성하기 위해 하지만 Android 9에서는 제발하지 마세요

두 가지 이유가 있습니다 하나는 프레젠테이션에서 Android 9에서 중단 될 것이기 때문입니다 그리고 다른 이유는 이름이없는 사람 진짜 사람이 아니야 그래서 지금까지 우리는 어떻게 당신은 사용자에게 다가 갈 수 있습니다 – 사용자가 사람들과 연락하는 데 도움을 줄 수있는 방법 그들은 관심을 가지며 알림을 더 잘 만들 수있는 방법 사용자를위한 경험 하지만 여기서 일시 중지하고 앱 사용을 살펴보고 싶습니다

다른 쪽에서 그 알림을 받고 싶어하는만큼 내 친구와 가족으로부터, 나는 아직도 장치에서 멀리 떨어져 있어야합니다 따라서 사용자를 돕기 위해 Digital Wellbeing I / O에서 올해 Android 9를 실행하는 [INAUDIBLE] 기기가있는 경우, Play에서 다운로드하는 것이 좋습니다 베타를 저장하고 가입하십시오

이것이 디지털 웰빙이 우리에게 보여줄 것입니다 앱 사용에 대한 개요를 제공합니다 시간 소비를 보여주는 대시 보드를 제공합니다 각 앱 및 알림 수에 대한 정보 우리가받은 것 나는 개인적으로 Digital Wellbeing을 배우는 것을 좋아한다

나는 내 시간을 보내고있다 하지만 때로는 그 하나 또는 두 개의 앱 예기치 않게 많은 알림을 보내고 있습니다 네가 가질 수있는 한 가지 질문은, 이러한 알림은 어떻게 계산됩니까? 아직 베타 버전이므로 계산 방법이 변경 될 수 있습니다 그러나 목표는 사용자 중단을 추적하는 것입니다 따라서 일반적으로 새로 생성 된 모든 알림 하나로서 계산됩니다

그리고 사용자가 볼 수있는 모든 업데이트 또한 1로 간주됩니다 차단 채널에 알림을 보내는 경우 여기에 계산되지 않습니다 그래서이 경우에이 앱이 나를 보내고있는 것을 보았습니다 많은 알림 그래서 나는 호기심이 생겼다

나는 대시 보드에 들어갔다 그리고 시간별 분석을하기 위해 그것을 열었습니다 여기에서 볼 수 있듯이 매시간 알림을받습니다 그 날 아침 4시에도 나는 8 통의 통보를 받았어

따라서 이러한 알림이 매우 중요하다면, 나는 한밤중에 깨어났다 그러나 고맙게도, 그렇지 않습니다 그러나 이러한 알림이 푸시 알림 인 경우, 우선 순위가 높은 FCM 메시지를 사용하여 전송됩니다 이 응용 프로그램이 지속적으로 깊은 복용량 장치를 깨우고 있다는 것을 의미합니다 아침에 좋은 배터리를 갖고 싶으면, 이 앱을 제거해도됩니다

그러나 지금 당장은 국방성 (DND), 방해 금지 (Do Not Disturb) 그래서 나는 방해받지 않는다 디지털 웰빙은 사용자를위한 길을 제공합니다 인터럽트를 분리하고 줄입니다 Pixel 3에서는 DND를 사용할 수도 있습니다 장치를 뒤집어서 편리하게 사용할 수 있습니다

그러나 이것이 매우 중요한 알림 인 경우에는 어떨까요? 사용자가 실제로 받기를 원한다면? 그래서 그 분들을 위해 몇 가지 조언을 드리겠습니다 먼저 알맞은 카테고리를 알림에 설정하십시오 do not disturb 설정에서 여기서 볼 수 있듯이, 사용자는 차단할 항목과 허용 할 항목을 선택할 수 있습니다 또한 통화, 메시지, 미리 알림, 및 이벤트 귀하의 통지가 그들 중 하나에 속하는 경우, 귀하의 신고서에 그러한 내용을 표기하십시오

여기에 몇 가지 카테고리가 나열되어 있습니다 다른 측면에서 이러한 예외에 해당합니다 내가 말했듯이, 귀하의 통지가 속한 경우 이 카테고리 중 하나로 태그를 붙여서 알 수 있습니다 우리가 가진 다른 충고는 다른 사람이 보낸 알림입니다 알림에 태그를 달아주세요

do not disturb 설정에서 여기에서 볼 수 있듯이, 사용자는 알림 수신자를 선택할 수 있으며, 그들의 연락처에서 알림에 해당 사용자를 추가하십시오 가능한 경우 관련 URI를 추가하십시오 이렇게하면 방해하지 않아도 우회 할 수 있습니다 하지만 사용자가 켜는 순간 항상 기억해야합니다

방해하지 말고, 그들은 정말로 방해 받고 싶지 않습니다 알림을 보내고 있다면 기대하지 않는다면, 그것은 정말로 그들을 귀찮게 할 것입니다 따라서 이러한 API를 악용하지 마십시오 우리가 처음에 가지고 있던 견적으로 돌아가서, 알림을 보낼 때마다 이것을 명심하십시오 사용자를 괴롭히지 말고, 존중하고, 권한을 부여하고, 그들을 기쁘게하고 관심있는 사람들과 연결시켜줍니다

고맙습니다 [박수 갈채] [음악 재생]

Android Design in Action: Fitness Apps and Modern UIs

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Modern Android development: Android Jetpack, Kotlin, and more (Google I/O 2018)

[음악 재생] 안녕, 안녕 다른 이야기에 오신 것을 환영합니다

현대 Android 개발에 오신 것을 환영합니다 나는 우리가 시작하기 전에, 이 태양은 나보다 훨씬 밝다 그래서 우리는 이것을해야 할 수도 있습니다 그래서 우리는 안경을 끼울 수 있습니다 슬라이드를 보지 않거나 안경을 착용하지 마십시오

그리고 아무것도 보지 마라 그래서 재미있을 것입니다 CHET HAASE : 오늘이 일이 어떻게 진행되는지 살펴 보겠습니다 현대 Android 개발에 오신 것을 환영합니다 나는 안드로이드 툴킷 팀의 Chet Haase입니다

Romain Guy : 저는 Android 프레임 워크 팀의 Romain Guy입니다 뭔가를 내리십시오 CHET HAASE : 그리고 우리는 많은 것들에 대해 이야기 할 것입니다 이미 알고 계시 겠지만 우리에게 일어났습니다 우리가 당신에게 조언과 정보를 어떻게 제공했는지 오래 동안 안드로이드를위한 좋은 앱을 개발할 수 있습니다

그리고 그 정보는 수년에 걸쳐 변했습니다 새로운 기능, 새로운 API, 플랫폼의 새로운 성능, 모든 종류의 것들 그리고 약간 혼란 스럽습니다 정보 검색을 할 수 있습니다 일부 문서 사이트에서도 가능합니다

정말로 정보를 얻지 못한다 현재 많은 상황에 적용됩니다 그래서 우리는 그것을 모두 함께 포장하고 싶었습니다 2018 년에 중요한 일들에 대한 우리의 견해가 있습니다 Android에 대해 생각해보십시오

ROMAIN GUY : 올해 안드로이드는 10 년, Chet가 말했듯이, 시대에 뒤 떨어진 많은 정보가 있습니다 때로는 스택 오버플로에 대한 블로그를보고, 누군가 뭔가에 대해 정말로 화가났다 우리가 10 년 전에 말했던 화 내지 마 괜찮아 모든것은 변한다

상황이 진화합니다 우리가 당신을 싫어하기 때문이 아닙니다 우리가 틀렸기 때문이 아닙니다 그것은 다른 시간 이었기 때문입니다 – 다른 필요, 다른 장치 그래서 우리는 그 중 일부에 대해 이야기 할 것입니다

차이점을 이해하고 있는지 확인하십시오 사물을하는 현대적인 방법 그리고 일을하는 오래된 방법, 우리는 슬라이드에 약간의 힌트가있다 따라서 슬라이드 중 일부는 이와 같이 보일 것입니다 우리가 시작하자 이제 타임 라인을 살펴 봅시다

이것은 일종의 안드로이드 역사입니다 2008 년에 10이 나왔다가 분명히, 우리는 몇 년 동안 많이하지 않았다 [웃음] 나는 거기에서 무슨 일이 일어나고 있는지 모른다 나는 거기에 넣을 것들을 생각할 수 없었다

최적화, 최적화, 최적화 그리고 나서 Android Studio가 나왔습니다 그게 뭐야? ROMAIN GUY : 웹에 따르면, 우리는 나쁜 API를 개발하는 데 바빴다 [웃음] CHET HAASE : 분명히, 그것들은 당신이 원하는 것이 아니 었습니다 그래서 우리는 지난 몇 년 동안 더 잘 해냈습니다

그래서 Android Studio가 나왔고 Eclipse에서 이제 Android Studio에 더 풍부한 기능을 구축했다 우리가 그 당시에 할 수 있었던 것보다 예술이 나왔다 그것은 KitKat에서 기본적으로 꺼졌으며 Lollipop에서만 실행되는 런타임입니다 우리의 권장 사항 중 일부에서 보게 될 것입니다

정말로 변화했기 때문에 거기에서, 시간이 지남에 따라, 우리가 당신을 바라 보는 방식 코드를 작성해야합니다 사전 Dalvik 정보가 꼭 필요하지는 않습니다 예술 세계에 적용한다 Recycler보기가 해제되었습니다 List의 더 나은 버전이기 때문에 중요합니다

더 많은 유연성을 가진보기 그러나 또한 우리는 부품을 출시하기 시작했습니다 연결 라이브러리에서 연결이 끊어졌습니다 플랫폼 릴리즈에서 이 새로운 기능을 사용할 수 있습니다 모든 릴리스에서 애플리케이션에서 네가 신경 써 줬어

잠시 후, 우리는 Constraint Layout Android Studio에 내장되어 있습니다 반대로 실제로 API를 디자인하는 더 풍부한 방법 XML을 직접 타이핑하는 다양한 방법을 제공합니다 코 틀린 – 작년에 나온 것 같아요 나는 모른다 일부 IO 회의 또는 뭔가

아키텍처 구성 요소 – 이는 작년에 발표되었습니다 가을에 10 새로운 일을하는 방식 해결하려고하거나, 적어도 도움을줍니다

안드로이드와 관련된 많은 복잡한 문제들, 커뮤니티로부터 피드백을받는 것 이 API를 사용하여 당신을 쉽게 해줍니다 그것이 전체 목표입니다 Studio Profilers, 훨씬 더 풍부한 방법 성능 측정 항목이 실제로 무엇인지 알아 내기 위해 귀하의 응용 프로그램에 대한 KTx, 나온 확장 라이브러리 몇 달 전에 코 틀린에게 그리고 최근 페이징 라이브러리가 나왔습니다

이번 주에 10을 기록했습니다 그래서 이것은 일종의 일종의 범위입니다 그것은 시간이 지남에 일어났습니다 나는 2008 년과 2013 년 사이에 더 많은 일이있을 것이라고 확신합니다

나는 그것이 무엇인지를 기억할 수 없다 알았어 우리는 도구로 시작할 것입니다 다음은 당신이 알고있는 도구입니다 이 도구 인 Hierarchy Viewer를 얼마나 많이 사용하셨습니까? 오, 꽤 잘됐다

모두는 아니다 그래서 그것은 Hierarchy Viewer라는 도구였습니다 그것은 SDK의 일부입니다 독립형 애플리케이션이었습니다 그 전에 실제로 다른 버전이있었습니다

그게 내가 원래 주말에 쓴 것이 었어 플랫폼을 최적화하기위한 디버깅 도구가 필요했기 때문입니다 그리고 웬일인지, 우리는 SDK에서 그것을 출하하기 시작했다 가장 빠른 도구는 아니 었습니다 그것은 가장 좋은 도구가 아니 었습니다

사실,이 사람은 우습게도, 실제로 자고있는 시간을 많이 보내고있었습니다 그들의 책상에서 그것은 매우 흥미 롭습니다 전에는 그 기술을 전혀 사용하지 않았습니다 그것은 효과가 없었습니다

이제 우리는 그것을 훨씬 더 나은 것으로 대체했습니다 레이아웃 검사기 (Layout Inspector) Android Studio의 일부입니다 좋은 장점 중 하나는 한 번에 여러 검사 훨씬 더 빠릅니다

따라서이 도구를 사용하지 않았다면 사용하십시오 그것은 당신의 계층 구조를 분석하는 매우 쉬운 방법입니다 임베딩 및 마지 닝과 같은 다양한 디버깅, 심지어는 실적이 좋지 않을 수도 있습니다 서로 겹친다 코드를 프로파일 링하는 오래된 방법이 또 하나 있습니다

이것을 추적보기라고합니다 따라서 Trace View는 이미 존재하는 도구입니다 2007 년에 Android 팀에 합류했을 때 주변에있었습니다 꽤 오랫동안 여기에서 우리는 이클립스 내부의 동작을 봅니다

이전에는 독립형 도구였습니다 Trace View에서 우리가 가진 문제점 중 하나는 원래 버전은 계장 된 프로파일 러였습니다 그래서 많은 오버 헤드가있었습니다 그것은 호출 된 모든 메소드에서 실행 중입니다 그것은 해석 모드에서 실행 중이었습니다

그래서 그 숫자를 정말로 믿을 수는 없습니다 그래서이 방법은 3 밀리 초가 걸렸습니다 그건 사실이 아니야 그 방법은 실제로 그것보다 훨씬 빠르다 당신이 할 수있는 유일한 일은 상대 시간을 비교하는 것입니다

다른 방법들 사이 심지어 방법이 네이티브 코드를 호출하면 네이티브 코드가 영향을받지 않습니다 그래서 네이티브 코드를 호출하는 모든 메소드 숫자가 너무 잘못 되었기 때문에 비뚤어졌습니다 수년에 걸쳐 샘플링을 추가했습니다 이 도구에 프로파일 링

하지만 여전히 사용하기가 어려웠습니다 우리 중 몇 명만이 내부적으로 사용하고있었습니다 왜냐하면 그것은 그렇게 위대하지 않았기 때문입니다 몇 년 후 다행히 Systrace를 도입했습니다 따라서 Trace View를 통한 Systrace의 큰 이점 당신에게 포괄적 인 시각을 제공한다는 것입니다

전체 시스템의 추적보기는 얼마나 많은 시간을 알려줍니다 애플리케이션 내부의 모든 코드 라인에 지출하고 있으며, 원래 하지만 때로는 성능 문제 시스템의 다른 곳에서 왔습니다 어쩌면 너는 무언가에 막혔을거야 그것은 다른 과정에 있습니다

그래서 Systrace는 당신에게 필요한 견해를 제공합니다 그 전에 우리는 완전히 눈이 멀었습니다 이제는 새로운 프로파일 러가 있습니다 Android Studio에 도입되었습니다 나는 그들이 3

2 또는 31의 일부라고 생각한다 나는 정말로 기억하지 않는다 그러나 프로파일 러 탭으로 이동하면, 당신은 CPU의 실시간 그래프를 보게 될 것입니다 응용 프로그램과 추억 사용 [INAUDIBLE] 귀하의 응용 프로그램의

그리고 CPU 그래프를 더블 클릭하면, 당신은 그 견해에 도달 할 것입니다 Trace View와 매우 유사합니다 다시 말하지만 훨씬 빠르며 네이티브 코드 프로파일 링, 인스트루멘털 프로파일 링, 샘플링 프로파일 링 및 심지어 Systrace 이것은 지금부터 사용해야 할 도구입니다 이것이이 그래프의 모습입니다

그래서 우리는 이제 4 개의 그래프를 믿습니다 우리는 CPU 1, 메모리 1, 네트워크 1, 에너지 1 내가 네트워크를 사용하지 않아서 무엇을위한 서버인지는 확실하지만 너희들이 그걸 이해하고 그것을 잘 활용할 것입니다 그리고 그것이 마치 CPU 프로파일 러에 들어갑니다 그래서 당신은 화염 그래프를 얻습니다 데이터를 분석하는 여러 가지 방법이 있습니다

제가 좋아하는 것은 화염 그래프입니다 모든 기능을 채색 할 것입니다 서로 다른 색상의 전화 그들이 얼마나 많은 시간을 들여야하는지 붉은 색이나 진한 오렌지색으로 보이는 것들 애플리케이션 내부의 병목 현상입니다 따라서 응용 프로그램 내에서 드릴 다운하는 아주 쉬운 방법입니다

병목 현상을 식별 할 수 있습니다 이것이 네이티브 프로파일 러입니다 Android 80부터 사용할 수 있으며, 그래서 그것을 실행하려면 오레오 이상이 필요합니다 그리고 나는 새로운 메모리 프로파일 러에 대해 간략하게 언급했다

그래서 우리는 메모리 추적을하기 위해 DDMS라는이 도구를 사용합니다 다시 말하지만, 그것은 독립형 도구였습니다 Eclipse 플랫폼에서 빌드되었습니다 그렇지 않기 때문에 사용하기가 정말 어려웠습니다 신분증의 일부

어떤 시점에서 ID에 다시 추가했습니다 그리고 그것은 거의 유일한 좋은 길이었습니다 당신은 당신이 찾고 있는지 여부를 볼 수 있습니다 잘못된 곳에서의 기억 예를 들어, 드로잉을하고 있는지 여부 또는 레이아웃 또는 터치 처리를하고 있는지 여부를 나타냅니다

이제는 Studio의 일부입니다 그래서 당신이 보여주는이 그래프를 볼 때, 실시간으로, 메모리 사용량, 당신 다른 버킷도 볼 수 있습니다 그래서 당신이 얼마나 많은 기억을하는지 말해 줄거야 Java 힙에서 사용하거나 얼마나 많은 기본 메모리 당신이 사용하고있는 그래픽 메모리의 양 따라서 문제의 출처를 정확히 찾아 낼 수 있습니다

화면에서 보듯이 슬라이스를 만들 수도 있습니다 그 시간 동안 모든 할당을 보여줄 것입니다 스택 추적을 볼 수 있으며 참조를 폴드 할 수 있습니다 가장자리 프로파일을 덤프 할 필요가 없습니다 에지 [INAUDIBLE] 사용

jhat을 실행하고 이러한 끔찍한 모양의 웹을 볼 필요가 없습니다 사용하던 UI 아직 모든 일을 처리하지는 못하기 때문에 때때로 jhat에 가야하지만 아주 좋은 방법입니다 기억력이 있다면 시작할 수 있습니다 애플리케이션 내부의 문제

레이아웃 디자인이 이렇게 사용되었습니다 그것은 기사 디자인입니다 흥미로운 이유는 안드로이드가 나왔을 때, 모두에게 XML 로의 전환을 유도하는 것은 매우 어려웠습니다 많은 분노한 개발자를 기억하십시오 UI를 빌드하는 Java 코드를 작성하려고했습니다

그리고 이제, 우리는 당신에게 이것을주었습니다 따라서 이것은 비주얼 레이아웃 비주얼 에디터입니다 이제 화가 많이 들었습니다 누가 시각 도구가 아닌 XML 만 사용하고 싶어하는지 그래서 우리는 단지 새로운 것을 발명해야만한다고 생각합니다

당신이 이것을 사용하기 시작하게하는 미끼로서 CHASE HAASE : 나는 단지 상수라고 생각한다 엔지니어들이 무엇이든 불만 스러울 것입니다 당신이 그들에게주는 새로운 옵션 로망 가이 : 특히 프랑스 인 경우

그리고 도구의 새로운 기능에 대해 이야기하는 경우, 모션 레이아웃을위한 새로운 도구를 살짝 봤습니다 제약 레이아웃을 사용하여 애니메이션을 만들 수 있습니다 Nicola와 John은 다시 그것을 보여줄 것입니다 생각, 내일 또는 목요일 그러니 그 이야기를 찾아보십시오

그래서 우리는이 비주얼 디자이너가 오직 시작 우리가 할 수있는 일은 훨씬 더 많습니다 우리는 아직 모든 것을 구축 할 시간이 없었습니다 그러나이 새로운 모션 레이아웃 편집기는 다음 단계입니다 시각적 인 피드백을 통한 애니메이션 제작 – 실시간 시각적 피드백 – XML을 사용하는 것보다 훨씬 좋음 런타임 및 언어, Chet

잘 지내세요 그래서 달빅 너무 슬퍼하지 마세요 Dalvik은 굉장 했어 그것은 무엇을하도록 설계 되었는가? 공간에 최적화되어 있었습니까? G1이 나왔을 때, 192 메가 였고, 그 중 48 개가 64 세 – 작은 부분이 응용 프로그램에 액세스 할 수있었습니다 CHET HAASE : 매우 적은 양의 메모리 실제로 응용 프로그램에서 사용할 수있었습니다

그래서 Dalvik은 런타임으로, 자체 또는 모든 힙에 대해 많은 메모리를 차지합니다 그리고 물건을 저장해야하는 곳 따라서 장치가 좋아짐에 따라, 기억이 커지면서 반드시 그런 것은 아니었다 도매 방식으로 최적화 할 수있는 능력을 갖추어야한다 우리가 필요했던 것

어떤 시점에서 그들은 기본적으로 시작되었습니다 우리가 말했던 것처럼 Art 런타임의 처음부터, KitKat에서 나왔고 Lollipop에 기본으로 설치되었습니다 그러나 Dalvik 시대에, 우리는 기본적으로 그로부터 나온 권고안을 가지고 있었다 할당과 같은 것들 때문에 정말 비싸다 힙을 걸 으면서이 물건을 넣을 장소를 찾아야했습니다

그리고 힙은 시간이 지남에 따라 파편화되었다 그것은 비록 그것이 많은 공간을 거기에서 가지고 있었다고해도, 그것은 연속적으로 많은 공간을 가질 필요는 없었습니다 그 물건을 넣을 장소를 찾으러 그리고 컬렉션도 정말 비쌌습니다 결국 당신은 시간이 지남에 따라 물건을 배정 할 것입니다

그리고 나서 결국 기억을 잃을 것입니다 그리고 그렇게 할 때 – 당신이 애니메이션의 중간에있을 때, 당신은 UI 스레드를 사용하고 있습니다 비트 맵을위한 공간을 할당해야합니다 공간을 찾을 수 없으므로 GC를 더 잘 실행하십시오 아마 2 ~ 3 개의 프레임을 잃을 것입니다

Dalvik은 실제로 모든 항목을 수집해야했기 때문에 더 이상 참조없이 그래서 우리가 가진 권고 중 일부는 기본적으로 가능할 때마다 물건을 할당하지 마십시오 그것은 틀림없이 우리가 프레임 워크 안에서 삶을 살아가는 방법입니다 우리는 당신의 내적 루프이기 때문에 응용 프로그램 개발자가 그렇게하는 것이 좋습니다 내가 생각하는 권고 중 하나 지역 사회는 타격을 본 적이있다

열거 형을 사용하지 않았습니까? 열거 형 구조가 밝혀 졌기 때문에 – 클래스 구조체는 int 객체보다 훨씬 큽니다 권리? 그리고 우리는 ints를 온통 사용합니다 메모리 양을 최소화하려고하기 때문에 우리는 또한 시간을 최소화하려고 노력한다 우리는 새로운 객체를 만들고 있습니다 원시 타입을 전달하는 것

우리는 또한 원시 타입이 멋지다고 말했다 침대는 시원하고, 수레는 시원합니다 대문자 I 정수, 그렇게 차갑지 않다 또한 차가운 것이 오토 박싱입니다 표준 콜렉션 클래스를 사용할 때, 이 정보에 많은 정보가 저장되어 있다면 원시 타입과 그것들은 autoboxed in and out되고 있습니다

또는 다른 패턴과 접근 방식을 사용하는 경우 이러한 것들을 객체로 생성하게하고, 너는 우리가 가진 도구에서 볼 수있다 그 시간에, 너는 오토 박싱과 즉석 배정 그리고 결국에는 GC가 시작됩니다 너는 조금 더 싫어한다 현대 세계에서 우리는 이제 예술을 가지고 있습니다

성능에 최적화되어 있습니다 그것은 메모리 최적화를 위해 처음부터 만들어졌지만, 성능을 위해 최적화 할 수 있습니다 그리고 이것은 메서드 호출 항목 측면에서 성능입니다 할당 및 컬렉션에 최적화되어 있습니다 빠른 할당 및 수집 몇 가지 이유가 있습니다

그 중 하나는 대형 물체를 위해 별도로 마련된 것입니다 그래서 모든 것을 같은 힙에 놓는 대신에, 큰 물체를위한 공간을 찾아야 만한다 모든 작은 것들 중에, 그것은 모든 비트 맵을 넣습니다 별도의 힙에 모든 큰 개체가 전체적으로 표시됩니다 큰 오브젝트를위한 공간을 찾는 것이 더 쉽습니다

그러면 작은 개체가 별도의 힙에 들어갑니다 또한, 정말 멋지다, 그것은 조각 모음을 할 수 있습니다 Dalvik은 조각 모음을 할 수 없으므로 시간이 지남에 따라 할당됩니다 결국에는 충분한 공간이 없었습니다 당신이 필요로하는 것을 위해서

그래서 당신은이 애매한 오류 메시지를 얻을 것입니다 그곳에는 메가 바이트가 없기 때문에 단지 48 메가 바이트 무료 당신이 깨닫기 전까지는 많은 의미를 갖지 않습니다 아마도 힙이 조각난 것 같습니다 우리는 그것에 대해 많은 것을 할 수 없습니다

이제 할 수 있습니다 Art에서는 힙을 조각 모음합니다 이전 릴리스에서는 응용 프로그램이 조각 모음을 수행 할 때 조각 모음을 수행했습니다 백그라운드에 있었다 이제 응용 프로그램이 실제로 조각 모음을 수행 할 수 있습니다

뿐만 아니라 전경에 있습니다 그래서 더 좋은 방법 이제 우리가 가진 권고 사항은 필요한 경우 할당하고 할당하십시오 괜찮아 사실 열거 형을 사용하면 걱정하지 않습니다

어서 [CHEERING] 분명히, 당신은 돌보아, 그래서 당신이 그들을 즐기시기 바랍니다 우리는 여전히 원칙적으로 사용하지 않는 경향이 있습니다 많은 프레임 워크 코드와 API에서 로망 가이 : 나는 그것을 사용한다 CHET HAASE : 그들은 때때로 거기에있다

그러나 내가 말했던 것처럼, 우리는 여전히 내부 루프입니다 그래서 우리는 더 보수적 인 경향이 있습니다 반드시 애플리케이션 코드에 있어야합니다 적절한 유형을 사용하십시오 나는 여전히 원시적 인 타입이 정말로 멋지다고 생각한다

하지만 그걸 알아? 오브젝트 유형이있는] 렉션을 사용해야하는 경우에는 정상입니다 그러나이 휴대 전화는 여전히 제약이있는 기기라는 점에 유의하십시오 메모리는 48 또는 64 메가 사용할 수 없습니다, 하지만 다른 모든 것들과 여전히 공유되고 있습니다 사용, 해당 시스템에서 실행 중 또한 배터리는 정말 중요합니다

배터리를 사용하는 것이 중요합니다 가능한 한 오랫동안 언제나 끊임없이 일을하고 있다면 만약 당신이 끊임없이 쓰레기를 만들고 그것을 모으고 있다면, 아트는 훨씬 빠릅니다 그러나 예술은 여전히 ​​실제로 작업을해야합니다 할당하고 수집하고, 모든 것들은 힘을 사용합니다

따라서 배터리가 전력을 사용한다는 것을 기억하는 것이 좋습니다 어쩌면 네가 보수적 인 태도로 너는하려고하는거야 또한 프레임 워크처럼 내부 루프를 인식해야합니다 병목 현상 단단한 루프에서 일을하지 마십시오

성능에 문제가 발생할 수 있습니다 ROMAIN GUY : 안드로이드가 시작되었을 때, 팀은 자바 프로그래밍 언어 응용 프로그램을 만들려면 그 많은 이유가있었습니다 주요한 것은 매우 인기있는 언어였습니다 수백만 명의 개발자가 이 언어를 사용하는 방법을 알고있었습니다 훌륭하고 자유로운 도구가 많이있었습니다

따라서 빠른 채택을 위해 정말 도움이되었습니다 Android 플랫폼의 시간이 지남에 따라, 우리는 때때로, 새 버전의 언어를 채택하는 데 약간의 시간이 걸립니다 우리는 최근 자바 프로그래밍 언어 버전 18 나는 그들이 1

10에 달하고 있다고 생각한다 그러나 그것은 수년 동안 우리를 섬겼습니다 작년에 다행히도 우리는 완전한 지원을 발표했습니다 Kotlin 프로그래밍 언어 용 얼마나 많은 사람들이 지금 그것을 사용하고 있습니까? [CHEERING] 괜찮아

CHASE HAASE : 그들을 지켜라 하나 둘 셋 넷 ROMAIN GUY : 거의 모두 5 번 이상 이었어 로망 가이 : 우리는 몇 가지 슬라이드를 유지할 것입니다

그래서 우리는 작년에 그것을 2017 년에 발표했습니다 우리는 JetBrains와 긴밀히 협력하고 있습니다 우리는 도구가 Kotlin과 잘 작동하는지 확인합니다 우리가 필요한 기능에 액세스 할 수 있는지 확인하십시오 전반적으로, 우리는 그것을 좋아하기 때문에 코드를 읽고 쓰기가 더 즐겁다

우리는 코드를 읽고 쓰는 데 너무 많은 시간을 소비합니다 그건 중요합니다 여기에 몇 가지 예가 있습니다 그들은 읽기가 어려울 것입니다 그러나 여러분 모두가 Kotlin을 작성하는 방법을 알고 있기 때문에 괜찮습니다

이러한 예제는 Kotlin 확장에서 가져온 것입니다 그래서 나는 그들을 정말로 빨리 지나갈 것이다 나는 명명 된 매개 변수를 좋아한다 메소드의 오버로드를 여러 개 만들 필요가 없습니다 또는 빌더 모든 시간

정말 유용한 인라인 함수를 사용할 수 있습니다 확장 프로그램을 만들 때 또는 그래픽을 만들 때도 코드, 예를 들면 우린 그걸 봤어 연산자 운영자에게 과부하가 걸릴 수 있습니다

당신은 그것에 조심해야합니다 이 문제를 상당히 악용 할 수 있습니다 일단 X로 불리는 고정 연산자를 만들었습니다 왜냐하면 그것은 벡터에 대한 교차 곱처럼 보이기 때문입니다 그러지 마

그것은 끔찍한 생각입니다 나는 끔찍한 생각이기 때문에 그것을 GitHub에 넣었습니다 소멸 할당을 할 수 있습니다 따라서 POJO가 있으면 컴포넌트 1, 2, 3 등으로 불리는 메소드 그런 다음 여러 개의 과제를 수행 할 수 있습니다

한 줄의 코드로 이것은 Android KTx의 예입니다 우리는 정수를 파기합니다 따라서 이동 및 마스킹을 수행 할 필요가 없습니다 바이트와 ​​정수의 데이터 클래스가 있습니다

모든 게터와 두 개의 문자열을 만드는 매우 쉬운 방법 같음 및 해시 코드 그래서 당신은 할 필요가 없습니다 IntelliJ에 알려주기 위해 바로 가기를 입력해야합니다 그것은 우리가 저지르는 게으름의 수준입니다 Kotlin에 도달했습니다 그래서 환상적입니다

그리고 마지막으로 그렇습니다 나는 그저 나에게, 내가 할 수있는 일을 부르고 싶었다 너무 매력적 Kotlin은 매우 영리하다 그들이 언어로 내린 의사 결정 그리고 그들 중 하나는, 예를 들면, lambda가 함수의 마지막 매개 변수 일 때, 그들은이 특별한 구문을 사용할 수 있습니다 너는 람다를 통과 할 필요가 없다

함수에 대한 매개 변수로 중괄호를 열 수 있습니다 바로 코드를 입력하십시오 외모와 느낌이 훨씬 자연 스럽습니다 우리가 새로운 것을 디자인 할 때 지금하고있는 일 중 하나입니다

플랫폼의 API – Android P로 시작 – 우리는 Java API가 이러한 규칙으로 가득 차 있음을 확인합니다 단일 추상 메소드 인터페이스가있을 때, 우리는 인터페이스를 사용하는 매개 변수 매개 변수 목록의 끝 부분에있다 Kotlin 개발자가 이익을 얻을 수 있도록 언어의이 특정 기능에서 그리고 우리는 점점 더 많은 것을 할 것입니다 지원 라이브러리 및 향후 API에 대한 정보를 제공합니다 그래서 아직 Kotlin을 사용하지 않는 당신들에게는, 프로젝트에는 Kotlin과 Java가 모두 포함될 수 있습니다

모든 신청서를 Kotlin으로 전환 할 필요는 없습니다 응용 프로그램에 추가하는 다음 클래스는 Kotlin, 또는 기존 클래스를 변환 할 수 있습니다 우리는 1 톤의 린트 수표를 가지고 있습니다 누락 된 것이 있으면 Tor에게 알려주십시오 그것은 당신 앞에서 꽤 많이 쓸 것입니다

그리고 바로 저지하십시오 보푸라기 수표를 쓸 때 일종의 기계입니다 Android 확장 프로그램을 확인하십시오 다시 한번 Jake Wharton의 이야기가 있습니다 나는 목요일 아침에 그것에 대해 생각한다

흥미로운 점에 대해서 이야기 할 것입니다 스타일 가이드도 만들었습니다 그래서 아직 자바 가이드를 사용하고있는 여러분 – 내 말은, 우리는 실제로 하나도 가지지 않았다는 것입니다 하지만 소스 코드를 따르고 있다면, 당신은 아마 당신의 들판에 M의 접두사를 붙일 것입니다 우리가 그렇게하지 않는다는 것을 알면 행복하게 될 것입니다

더 이상 Kotlin 첫째, 우리가 정말로 그것을 좋아하지 않기 때문에, 그리고 네가 정말로 할 수 없기 때문에 어쨌든 Kotlin의 속성 구문 때문입니다 우리는 또한 상호 운용성 가이드가 있습니다 코드를 작성하려고한다면 그것은 두 자바 개발자 모두가 소비하기위한 것이다 및 Kotlin 개발자, [INAUDIBLE] 자바 코드 또는 코 틀린 코드 작성 우리는 당신에게 설명 할 수있는 가이드가 있습니다

API 작성 방법 그래서 그들은 두 언어로 자연스럽게 사용될 수 있습니다 그리고 그것들은 우리가 스스로 따라가는 지침입니다 플랫폼 및 지원 라이브러리에 포함 된 새로운 API CHASE HAASE : API에 대해 이야기 해 봅시다 우선 Android의 레이아웃, 그 (것)들의 낱단이있다, 그러나 이들 사람들이 시간이 지남에 따라 다루는 중요한 것들입니다 우선 AbsoluteLayout이있었습니다

그리고 사용하기 쉽습니다 왜 그렇지 않습니까? 그럼 정확히 어디서 볼 수 있을까요? 너는 그걸 원해, 그렇지? LinearLayout, 당신은 그 것들을 중첩 할 수 있습니다 원하는만큼 깊게 UI를 정확하게 얻을 수 있습니다 너 찾고있어 FrameLayout, 괜찮습니다

당신이 그것을 곁눈질로 본다면, AbsoluteLayout과 같은 것입니다 로망 가이 : 그게 우리가 말할 수있는 가장 좋은 것입니다 괜찮아 GridLayout, 밝혀졌습니다 그것은 사용하기에 조금 복잡합니다

그러나 우리는 그것을 이해할 수 있으며 유연성이 매우 뛰어납니다 그곳에 그리고 RelativeLayout, 우리는 그것이 비싸다고 들었습니다 우리가 사용해야 할 것인가 아닌가? 그래서 현대 세계 다음은 AbsoluteLayout에 대한 우리의 생각입니다

우리는 단지 그것을 분명히하고 싶습니다 [LAUGHTER AND APPLAUSE] CHET HAASE : 이것이 더 이상 사용되지 않는 유일한 이유 하나의 중요한 클래스가 있기 때문입니다 하위 클래스는 – ROMAIN GUY : 아니, 더 이상 사용되지 않습니다 사용되지 않습니다 CHET HAASE : 더 이상 사용되지 않습니다

승인 글쎄, 우리는 그걸 사용하지 않았고, 그 정도면 충분하다 웹보기가 AbsoluteLayout에 있기 때문에 우리가 취할 수있는 것처럼 죄송합니다 사용하지 마십시오

잘하면, 당신은 아니에요 LinearLayout, 여전히 실제로 사용하는 것이 좋습니다 특히 간단한 경우 네가 깊고 깊게 중첩되어 있다면, 그때 당신은 깊고 깊게 틀렸고, 더 나은 해결책이 있습니다 우리는 슬라이드의 맨 아래에 그것을 올릴 것입니다

FrameLayout, 간단한 사용 사례에서도 괜찮습니다 너는 거기에 그 한가지를 넣어야한다 적절한 패딩과 마진을 유지해야합니다 그것은 그곳에있는 일종의 것입니다 ROMAIN GUY : 그리고 FrameLayout의 더러운 비밀 이 경우 AbsoluteLayout이라는 것입니다

여백을 올바르게 사용하면 기본적으로 AbsoluteLayout을 가지고 있지만 그렇게하지 마십시오 그것들을하지 마십시오 그러지 마 GridLayout– 사실은 문제를 제외하고 도구와 함께 사용하도록 의도 된 실제로 도구를 썼다 로레인 가이 : 우리가 잊은 것 같아

아마도 가장 좋은 레이아웃이 아닐 것입니다 당신의 상황을 위해 그 주위에 머리를 감쌌다 승인 거기에 더 나은 해결책이있을 수 있습니다 RelativeLayout– 우리는 ConstraintLayout이, 일반적으로 더 나은 해결책입니다

나는 그것을 능력의 부분 집합으로 생각할 것이다 RelativeLayout 그것은 많은 기능을 가지고 있습니다 아이들의 상대적 위치 선정, 서로에 대해 그러나 그것은 상대적인 위치 지정 방법을 더 많이 가지고 있습니다 가이드 라인 및 그들이 수행 한 새로운 기능 중 일부 ConstraintLayout에서 작업

제가 설명하기를 좋아하는 방식은 ConstraintLayout입니다 작동하는 RelativeLayout입니다 CHET HAASE : 또한 그것에 대해 가장 좋은 점은 도구와 밀접하게 통합되어 있습니까? 그것은 같은 사람들에 의해 직렬로 작성되었습니다 도구를 사용하면 디자인 도구가 실제로 작동 함을 의미합니다 잘 레이아웃, 그 반대, 잘, 그들은 API를 만들었고 도구는 결코 따라 잡지 못했습니다

그건 거기에 해당하지 않습니다 우리는 20을 언급했다 아직 20이 아닙니다

나는 그것이 곧 20이라고 말할 것이다 그래서 20에 등장 할 것을주의 깊게 살펴보십시오 이번 주 존과 니콜라의 이야기 아마도 그 물건들 중 일부는 넘어갈 것입니다

AbsoluteLayout에 대한 최종 생각 로레인 가이 : 그냥 알기 쉽습니다 그래서 UI 툴킷에 클래스가 있습니다 AdapterView는 여러 위젯의 기본 클래스입니다 그래서 ListView, GridView 및 갤러리

그리고 그들은 수년 동안 우리를 잘 봉사했습니다 그들은 몇 가지 문제가있었습니다 그들은 유지하기가 어려웠다 GridView는 사용되지 않았다고 생각합니다 꽤 많은 앱으로 꽤 오래 동안, 어쩌면 응용 프로그램에 대한

갤러리는 수평 ListView와 비슷합니다 오랫동안 사용하지 않을 것이라고 확신합니다 그리고 우리는 잠시 그것을 확실히 보지 못했습니다 어쨌든 내가 너라면 네가 사용하지 않을거야 아마 작동하지 않습니다

여기에 몇 가지 문제가 있습니다 따라서 AdapterView에는 어댑터가 있으며, 어댑터가 데이터 세트간에 인터페이스됩니다 및보기 자체 어댑터에서 할 수있는 일 중 하나 데이터 세트의 변경 사항을 뷰에 알립니다 문제는 당신에게만 알릴 수 있다는 것입니다 거친 변화의 당신이 할 수있는 말은, 어이, 뭔가 바뀌 었습니다

너무 불합리하게도 ListView에서 우리는 변경된 사항을 파악하려고하는 많은 코드가 있습니다 네가 우리에게 말할 수 있다면 좋지 않을까? 너 아마 알고 있기 때문에? 우리에게 말할 수없는 API를 만들었습니다 그래서 그것은 바보 같은 짓입니다 우리는 당신에게이 패턴을 따르라고 말하기도했습니다보기 보유자

그래서 View Holder – 그리고 그것은 하나입니다 내가 많은 사람들을 보았던 것들 중 View Holder에 대한 온라인 미친 제품이기 때문에 당신이 써야 할 번호판 그것은 실제로 매우 중요했습니다 나는 돌아가서 우리의 오래된 회담 중 하나를 들여다 보았다 보기 홀더 패턴을 사용하면 초당 10 프레임 추가 당신은 T-Mobile G1에서 ListView를 스크롤하고있었습니다

그 당시에는 많은 문제가있었습니다 더 이상 필요하지 않습니다 그러나 RecyclerView 덕분에 API의 일부로, 이제 어쨌든 무료로 받으실 수 있습니다 그리고 마지막으로 애니메이션 AdapterView에서는 애니메이션을 사용할 수 있습니다

그래서 예를 들어, ListView 항목이 데이터 세트에서 사라졌습니다 그리고 아이템을 사라지게하고 싶습니다 나머지 항목은 붕괴되어 갭을 닫습니다 ListView를 사용하여이 작업을 수행 할 수 있습니다 이 코드를 약간만 작성하면됩니다

Chet는 몇 년 전에 블로그 포스트를 썼습니다 [웃음] ListView 애니메이션 중 하나였습니다 우리는 당신에게 보여주는 일련의 비디오를 가지고있었습니다 다른 것들을하는 법 ROMAIN GUY : 이것은 코드의 일부입니다

미래 옵저버 만 이해하면됩니다 과도 상태 및 측정 및 메모 및 애니메이션이 포함됩니다 다소 어려웠습니다 그래서 이제 대신 RecyclerView가 있습니다 감사하게도

그래서 이것은 단지 바보 같은 응용 프로그램입니다 처음 RecyclerView를 실제로 사용했을 때 몇 달 전 이었어 그것은 훨씬 쉬웠다 정말 좋았어요 RecyclerView의 다른 버전을 만들 수있었습니다

RecyclerView에 대한 좋은 점 여러 위젯을 사용하는 대신 데이터 세트에 대해 효과적으로 다른 레이아웃입니다 단일 RecyclerView에 대한 레이아웃을 지정할 수 있습니다 이 코드는 레이아웃이 다른 동일한 코드입니다 RecyclerView의 관리자 CHASE HAASE : 나는 또한 그것들 모두가 수직적 이었지만 실제로는 가로 배치

몇 년 동안, 사람들은 우리에게 수평을 어떻게 할 것인지를 물었습니다 오, 쉽습니다 CHASE : 수평 ListView ROMAIN GUY : ListView에서 회전을 설정하기 만하면됩니다 그런 다음 모든 터치 이벤트를 차단해야합니다

그들을 회전 시키십시오 그리고 아마 몇 가지 더 많은 API가 있습니다 무시할 필요가 있기 때문에 어쨌든 그것은 쉽다 그래, 비밀 가장 쉬운 방법은 휴대 전화를 돌리기 만하면됩니다 90도

시스템의 일부로 더 쉽게 사용할 수 있습니다 최신 릴리스의 UI 향상 ROMAIN GUY : 그리고 RecyclerView에 관한 좋은 점 중 하나 – 훨씬 더 나은 방법으로 많은 일을합니다 우리는 페이징을 가지고 있고 우리는 프리 페칭을 가지고있다 API가 더 좋습니다

레이아웃 관리자를 변경할 수 있습니다 자신의 레이아웃 매니저를 작성할 수 있습니다 그러나 애니메이션 또한 무료로 제공됩니다 그래서 우리가 방금 본 코드와 같습니다 특히 RecyclerView를 사용하면 얻을 수있는 것 세밀한 변경입니다

아이템이 있다면 우리에게 말해 줄 수 있어요 제거 된 항목 항목이 추가되면 어떤 항목이 추가됩니까? 변경된 항목의 범위, 아니면 모든 것이 바뀌 었다고 말할 수 있습니다 이것은 당신과 우리에게 훨씬 좋습니다 좋아

좋아 파편 옛날 우리는 그 파편들 정말 복잡했습니다 또한이 문제를 해결할 것입니다 그래서 우리는 반드시 모든 것이 정확하거나 가지고있는 것은 아닙니다

사람들이 필요로하는 모든 API가 있으므로 개선점을 넣으십시오 플랫폼 릴리스로 그런 다음 응용 프로그램은 해당 플랫폼에 장치가 출시되었습니다 따라서 현대적인 조언은 플랫폼 버전을 사용하지 않는 것입니다 우리는 이후 모든 코드를 이식했습니다

지원 라이브러리에있는 모든 수정 사항을 작성하려면, 우리는 이제 더 이상 사용하지 않는 조각들을 사용했습니다 핵심 플랫폼에서 그래서 거기에 사용하지 마십시오 지원 라이브러리 또는 Jetpack 버전 조각을 사용하십시오 우리는 더 많은 선을 거기에두고 있습니다

그래서 그것들을 사용하고, 우리는 계속하고 있습니다 개선하기 이번 주에 파편에 관한 이야기가 있습니다 – 내일 아침에 CHASE HAASE : 내일은 Adam과 Ian으로부터 그러므로 사물에 대한 더 많은 정보를 듣기 위해 그것을 확인하십시오

우리가하는 일과 길 조각을 사용하는 것이 조금 더 쉬워야합니다 그 중 하나가 새로운 탐색 컨트롤러입니다 그래서 체크 아웃하십시오 그것은 파편에 일종의 빌드입니다 그것은 그들에게 의존하지 않습니다

의존성은 없지만 그렇습니다 만들고 탐색 할 수있는 기능을 구축하십시오 응용 프로그램의 화면 사이 활동은 단편과 매우 밀접하게 관련됩니다 예전에는 기본적으로 Android 애플리케이션 여러 활동들로 구성되었습니다

이것이 모든 안드로이드 애플리케이션의 애플리케이션 흐름이었습니다 우리는 개발자가이 작업을 수행 할 것을 기대했으며 개발자는이 작업을 수행했습니다 앱의 한 화면에서 이동하려는 경우 다른 사람에게, 당신이 의도를 시작하면, 당신은 새로운 창을 얻습니다 거기에 당신을 데려 오기위한 창 애니메이션이 있습니다 거기 있네

새로운 접근법은 가능한 한 단일 활동을 사용하는 것입니다 그것은 사용자에게 훨씬 풍부한 경험을 선사합니다 그 창문 애니메이션들 – 음, 그들은 움직이고 있어요 하지만 그들은 재미있는 일을하지 않습니다 사용자를 돕는 아무 것도하지 않습니다

응용 프로그램의 한 상태에서 다른 상태로 전환합니다 대신 기본적으로 완전히 다른 창 너가 실제로 할 수있을 때 볼 수있게된다 단일 활동 방식을 사용하여 동일한 Chrome 유지 응용 프로그램 주위 같은 행동을 할 수도 있습니다 바에서 콘텐츠가 아래로 바뀌면서 또는 더 풍부한 애니메이션을 사용하십시오

핵심 플랫폼 애니메이션 또는 조각으로 가능 애니메이션 그러니 계속해서 활동을하십시오 신청서에 상황이있을 수 있습니다 다른 진입 점이있는 곳, 특히 누군가가 당신의 신청서에 올 수있는 길이가 길다 와

그런 다음 별도의 활동을하는 것이 적절합니다 그것이 그 정보를 폭로하는 방법입니다 하지만 그렇지 않으면 단일 활동을 사용해보십시오 조각은 단일 활동 응용 프로그램에는 필요하지 않지만, 하지만 그들은 이것에 많은 도움을 줄 수 있습니다 특히 최근 개선 된 점이 몇 가지 있습니다

그리고 네비게이션 콘트롤러도 마찬가지다 건축물 여기 오래된 조언이있었습니다 몇 년 전– OK, 2016 년 기본적으로 2 년 전 Dianne Hackborn이 게시했습니다

G +에서 우리는 대개 응용 프로그램 개발자로부터이 질문을받습니다 여기서 우리는 애플리케이션 아키텍처 그들은 그들의 신청서에서 사용해야합니다 그리고 우리의 대답은 항상, 우리는 상관하지 않습니다 우리는 당신이 아닙니다

우리는 귀하의 신청서가 어떻게 작동하는지 알지 못합니다 우리는 최고의 아키텍처를 모릅니다 귀하의 신청서에 대해서는 귀하가 직접 결정하십시오 그리고 보통 다음과 같은 질문이 있습니다 예, 알 겠어

하지만 어떤 아키텍처를 사용해야합니까? 그래서 Dianne은 기본적으로 이렇게 말했습니다 이 모든 것을 한 번 우리는 상관 없어 우리가 가지고있는 구성 요소들 – 콘텐츠 제공자, 활동, 서비스 – 이들은 시스템 수준의 구성 요소입니다 그들은 주변의 건축물이 아닙니다

당신은 당신의 어플리케이션을 빌드합니다 그러므로 적절한 것을 만드십시오 귀하의 응용 프로그램에 대한 새로운 조언은 실제로, 우리는 당신에게 몇 가지 권장 아키텍처를 제공하게되어 기쁩니다 사람들이 적어도 좋아할 것이라고 밝혀 졌기 때문에 말이되는 몇 가지 일반적인 조언, 우리는 지금 우리가 그것을 가지고 있다고 믿습니다

특히, 아키텍처 구성 요소의 경우, 우리는 우리가 많은 의미가 있습니다 우리는 사용하기 쉬운 API를 가지고 있습니다 당신은 그 주위에 구축 할 수 있습니다 우리는 당신이 이것을 사용하도록 요구하지 않습니다 자신에게 맞는 아키텍처를 사용하십시오

하지만 핵심 아키텍처가 있습니다 우리는 일해야한다고 믿습니다 새로운 애플리케이션을 시작하는 경우, 팀에 새로운 개발자가 있다면 말이됩니다 우리가 일한 이유 중 하나 Android 아키텍처 구성 요소 포함 어려운 문제를 해결하는 것이 었습니다 가장 어려운 문제 중 하나는 Android 수명주기였습니다

그리고 우리의 대답은, 당신이해야 할 모든 것입니다 이 도표를 이해하고 암기합니다 그리고 누군가 외부에서 자신의 버전을 만들었습니다 그 다이어그램은 실제로 이렇게 보입니다 당신이 이것을 보았다면 이해하기가 훨씬 쉽습니다

따라서 기본적으로 알아야 할 모든 것이 있습니다 항상 네 머리 속에 문제는 기본적으로 당신의 활동에 많은 방법들을 만들어라 라이프 사이클을 추적하고 관리 할 수 ​​있습니다 당신은 창조와 시작과 멈춤을 다루고 있습니다

다시 시작하고 일시 중지하면 물건을 다룰 것입니다 뿐만 아니라 파괴에서 Create에서 너무 많이 사용하고있을 것입니다 당신은 아마 경주 조건뿐만 아니라 당신의 시작과 당신의 중지에서 누출, 그리고 당신은 아마 일시 중지 및 이력서에서 그 일을하고있을 것입니다 게다가

그리고 당신은 왜 당신이 파괴에 대해 무시하고 있는지 정확히 알지 못합니다 그러나 누군가는 당신이 아마해야한다고 말했습니다 그래서 우리도 그렇게 할 것입니다 그러는 동안 실제로는 수명주기 상태 만 알고 있습니다 당신이 그 방법들을 오버라이드한다면

우리는 당신에게 그 질문을하는 방법을주지 않았습니다 우리는 그것이 내부적으로 무엇인지 압니다 우린 너를 비밀리에 들여 보내지 않을거야 따라서 쿼리 할 API가 없습니다 그래서 모든 메소드를 오버라이드 할 필요가 있습니다

그리고 나서 당신은 거기에 너무 많은 코드를 집어 넣게됩니다 기본적으로 너무 많은 논리가 모든 곳에서 일어나고 있습니다 새로운 접근 방식은 라이프 사이클이라는 객체가 있다는 것입니다 소유자 라이프 사이클 객체를 요청할 수 있습니다

그런 다음 상태를 쿼리하거나 당신이 어떤 라이프 사이클 상태인지 알고 싶다면, 또는 관찰자를 설정할 수 있습니다 그런 다음 해당 메소드에 콜백을 가져올 수 있습니다 이렇게하면 별도의 장소로 추상화 할 수 있습니다 기본적으로 모든 활동 코드를 포기하지는 않습니다 이 정보

하지만 당신은 그것을 어디에 두는 지 귀하의 응용 프로그램에서 감각 다행히도 우리는 lifecycle owner의 하위 클래스를 오버라이드합니다 또는이를 조각과 AppCompat 모두에서 구현하십시오 활동 그래서 지원 라이브러리에서 이것을 사용하십시오

수명주기 소유자입니다 따라서 기본적으로 수명주기를 얻기 위해 쿼리 할 수 ​​있습니다 그런 다음 거기에서 나가십시오 그래서 우리는 당신이 활동할 모델에서 출발했습니다 기본적으로 모든 라이프 사이클 종속 로직이 포함되어 있습니다

활동이 훨씬 더 작을 수있는 모델로, 그 논리를 꺼내 다른 것으로 추상화하십시오 그곳에는 생명주기 관찰자를 설정하고, 원하는 콜백을 얻으십시오 우리는보기와 데이터에서 비슷한 문제를 겪고 있습니다 우리에게는 활동이 있으며, 우리는이 모든 정보를 가지고 있습니다 거기에 대한 견해에 대해

그리고 우리는 그 견해에 대한 자료를 가지고 있습니다, 우리는 데이터가 언제 바뀌는지를 알아야합니다 또한 라이프 사이클을 추적해야합니다 그래서 우리는 잘못된 시간에 물건을 새거나 물건을 부르지 않습니다 그래서 우리는 결국 너무 많은 것을 가지고 끝납니다 이제는 LiveData에 대한 개념이 생겼습니다

배치 할 수있는 ViewModel 그 물건들 당신은 활동에서 그것을 추출 할 수 있습니다 그 모든 정보를 그곳에 넣을 수 있습니다

그걸 관찰해라 이제 활동에서, 당신은 정말로 보기 및 참조 정보 만 제공 ViewModel에 전달합니다 그런 다음 모든 논리를 ViewModel에 넣으십시오 그것은 LiveData 객체를 사용하고 있습니다 자체 라이프 사이클을 처리하므로 사용자는이를 관찰 할 수 있습니다

훨씬 나아 졌어 덜 버기 데이터의 경우, 당신에 대한 우리의 논쟁은 당신 스스로에 달렸습니다 우리는 귀하의 데이터를 관리하지 않습니다 너가 원하는 것을해라

그리고 많은 데이터베이스 솔루션이 있습니다 우리는 플랫폼에 SQLite를 가지고 있습니다 가서 사용하십시오 너 자신을 노크 해 도대체 무엇이

우리는 그 사업을 시작하고 싶지 않습니다 새로운 접근 방식은 실제로 데이터를 위해 뭔가를 제공한다는 것입니다 SQLite를 기반으로 구축되었지만 실제로는 빌드 시간 확인 기능을 제공하므로 사용자는 이러한 쿼리를 전송 한 다음 런타임에 오류가 발생합니다 그러나 빌드 타임과 통합시이 문제를 볼 수 있습니다 우리가 이전에 본 라이브 데이터 (LiveData) 또는 원할 경우 독자적으로 할 수 있습니다

우리는 데이터베이스 솔루션을 인수하려고하지 않습니다 우리는 더 나은 지역 영구 이야기를 단순히 제공하고 있습니다 우리가 이전에했던 것보다 더 쉽게 당신을 위해 전체 다이어그램은 다음과 같습니다 여기서 유일한 새로운 요소는 저장소에 대한이 아이디어입니다

기본적으로 추상화하는 패턴입니다 데이터의 출처 그래서 그것이 지역이나 웹에서 오는 경우, 나머지 국민들에게는 중요하지 않습니다 그것을 쿼리하고 있습니다 거기에서 추상화를하는 것은 좋은 일입니다 데이터 페이징

그래서 우리는이 것을 CursorAdapter라고 불렀습니다 그것에 대해 좋은 요소가있었습니다 그것은 데이터베이스 커서에 대한 지원을했습니다 좋았어 그러나 그것은 ListView에만 국한되었으며, 기본적으로 비효율적 인 문제가있었습니다

페이징 크기, 그런 것들 우리는 AsyncListUtil을 더 유용하게 사용했습니다 그러나 일을하기에는 너무 비효율적이었습니다 웹 거래를 좋아합니다 그래서 우리는 현대 안드로이드에 새로운 모델을 가지고 있습니다

우리는 데이터 페이징을 가지고 있습니다 이번 주 10 페이징 라이브러리, 그것에 대해 좋은 것들이 있습니다 따라서 RecyclerView와 함께 작동합니다 세분화 된 데이터 변경 사항을 처리합니다

훨씬 효율적으로 백그라운드 스레드를 아주 쉽게 사용할 수 있습니다 변경 사항을 관찰 할 수 있으므로 LiveData와 통합됩니다 그러나 다시 한번, 우리는 당신에게이 아키텍처를 강요하지 않습니다 RxJava2를 사용하고 있다면, 매우 쉽게 또한 유연한 데이터 가져 오기 옵션, 그래서 창 크기를 지정할 수 있습니다

그리고 이런 일들을 원할 때 물론, 항상 상충 관계가 있습니다 나는 데이터 페이징에 대해 나쁜 점을 발견했다 그 이름이 지루하다는 것입니다 ROMAIN GUY : 그래픽

그래서 우리가 안드로이드를 시작했을 때 우리는 OpenGL ES 10 만 가지고있었습니다 셰이더도 없었어요 우리는 소프트웨어 렌더링으로 모든 것을하고있었습니다 그것은 몇 년 동안 쟁점이었습니다

초기 장치에는 충분히 빠릅니다 우리가 타블렛 폼 팩터를 치면 문제가되기 시작했다 이전에는 9 개의 패치를 많이 사용했지만, 너의 일부는 고통 받았다고 확신한다 9 개의 패치를 작성함으로써, 또는 더 나쁜 것은 UX 디자이너에게 설명하려고 시도하는 것입니다 그것들을 만드는 법

검은 점들은 어디에 두 시나요? 그들은 어느쪽에 가야합니까? 나는 아직도 모른다 오늘날까지 TextureView 대 SurfaceView, 우리는 미리보기 토크에서 그걸 만졌어 기본적으로 항상이 문제가있었습니다 당신은 통합 할 수있는 덜 효율적인 TextureView를 사용합니까? ListView 및 애니메이션과 같은 다른보기와 더 좋게, 또는 SurfaceView를 사용합니까? 그리고 비트 맵 관리는 어려웠습니다

많은 사람들이 응용 프로그램을 만들었고 나간다 비트 맵을 만들려고했기 때문에 메모리 오류가 발생했습니다 당신은 캐싱을해야하며, 이것은 어렵습니다 그리고 우리의 대답은 근본적으로, 어, c'est la vie이었습니다 그래서 지금

OpenGL 31 및 32가 있습니다 콘텐츠 쉐이더가 있습니다 Vulcan을 사용하면 저급 그래픽 렌더링을 수행 할 수 있습니다

우리는 어디에서나 하드웨어 가속을 수행합니다 VectorDrawables는 기본적으로 대부분의 드로어 블을 대체했습니다 및 응용 프로그램의 비트 맵 우리에게는 작은 응용 프로그램이 있습니다 당신은 지원할 필요가 없습니다 – 여러 밀도를 지원하는 것이 훨씬 쉽습니다

이전과 같이 많은 배치를 필요로하지 않습니다 우리가 지금하고있는 일 우리가 너와 노력하고 있니? 아주 자주, 응용 프로그램 개발자는 솔루션을 찾기 위해 우리를 찾습니다 그러나 공동체가 – 즉, 너 – 우리가 생각하는 놀라운 도서관을 지어왔다 당신이 사용해야하는 것이 맞습니다 예를 들어 글라이드 (Glide) 또는 피카소 (Picasso) 또는 로티 (Lottie) 그들이하는 일에 뛰어납니다

비트 맵을 관리하려는 경우 또는 Lottie와 함께 미친 복잡한 애니메이션을 만들고 싶습니다 당신은 그것들을 사용해야합니다 우리는 뭔가를 재창조하는 데 시간을 낭비하지 않을 것입니다 이미 거기에 존재하고 우리는 생각합니다 그것이하는 일에 아주 능숙합니다

그러니 그 라이브러리를 사용하십시오 다시 한 번, 이것을 알아라 아마도 SurfaceView를 사용해야 할 것입니다 더 이상 TextureView가 아닙니다 시간이 오래되었습니다

마지막으로 우리는 당신의 코드를 프로파일 링하라는 말을 사용했습니다 우리는 가능한 한 작업을하지 말라고 말하곤했습니다 메모리 소비를 최소화 할 수 있습니다 하지만 이제는 더 나은 장치가 있습니다 우리에게는 많은 코어가 있습니다

우리는 많은 RAM을 가지고 있습니다 우리는 더 나은 언어를 가지고 있습니다 더 나은 런타임입니다 따라서 대신 코드 작성에 필요한 작업을 수행해야합니다 가능한 한 작업을 피하고 또한 최소화 메모리 소비

CHET HAASE : 그 장치가 밝혀지기 때문에 여전히 제약이있다 그 점을 명심해야합니다 배터리 수명은 중요하며 대역폭은 귀중합니다 이 모든 것이 사용자 경험에 기여합니다 따라서 사용자가 실제로 아직도 이런 것들에 대해 보수적이다

애플리케이션에 최상의 성능 제공 그게 맞아 우리는 당신에게 감사하고 싶다 그리고 다른 방법이있다 이것을 말하십시오 그리고 우리는 끝났다고 생각합니다

고맙습니다 [박수 갈채] [음악 재생]