한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
#AndroidDevSummit에서 방금 들어온 소식!
2018년 11월 13일 화요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 번역 리뷰에는
정승욱
(Android GDE)님이 참여해 주셨습니다.>
게시자: Stephanie Cuthbertson, 제품 관리 이사
오늘 우리는 캘리포니아 마운틴 뷰의 컴퓨터역사박물관(Computer History Museum)에서
Android Dev Summit
의 막을 올렸고, 이 자리에서 Android가 걸어온 지난 10년의 발자취를 뒤돌아보고 Android 개발자를 위한 몇 가지 중요한 새로운 기능을 살펴보는 시간을 가졌습니다. 이 자리에서 어떤 이야기를 함께 나누었는지 살펴보세요!
Android를 새로운 환경으로 전개
일찍이 Android 1.6부터 Android와 파트너들은 다양한 화면 크기와 밀도를 고려하여 개발해왔고, 그 덕분에 Android 플랫폼이 Android TV, Android Auto, Wear OS, 심지어 Chromebook에서의 Android 앱과 같이 폭넓은 범주의 폼 팩터와 새로운 사용 환경을 지원할 수 있었습니다. 휴대폰 화면은 Android 파트너가 업계를 선도하며 기준을 세우는 영역으로, 휴대폰 화면이 아직은 작던 시절에 '패블릿'을 도입한 바 있습니다. 패블릿이 이제는 그냥 휴대폰 중 하나로 여겨지는 현재 시점에서 보자면, 사용자들의 마음을 사로잡아 표준이 되다시피 한 크기가 바로 패블릿 크기입니다.
그런데 이제는 Android 기기 메이커들이 새로운 범주의 기기를 만들어내는 걸 볼 수 있습니다. 바로
Foldables
말이죠. 새로운 플렉서블 디스플레이 기술을 이용해 화면을 말 그대로 구부려 접을 수 있습니다.
이런 기기로는 대체로 투 스크린 기기와 원 스크린 기기의 두 가지 변형이 있습니다. Foldables는 접으면 보통 스마트폰처럼 보이고 주머니나 파우치에 넣고 다니기에 꼭 맞는 크기가 됩니다. Foldables를 폈을 때 가장 뚜렷한 특징은 화면이 연속성을 띠며 펼쳐진다는 점입니다. 예를 들어, Foldables를 접은 상태에서 작은 화면으로 동영상을 시작한 후 그냥 펼치기만 하면 태블릿 크기의 큰 화면으로 전환되면서 훨씬 높은 몰입감을 느끼며 시청할 수 있습니다. 화면을 펼칠 때 앱 화면이 한순간도 빠짐없이 큰 화면으로 완벽하고 자연스럽게 넘어갑니다. 우리는 이 새로운 폼 팩터에 맞춰 Android를 최적화하고 있습니다. 그리고 개발자가 어디에서든 이 기술의 무한한 가능성을 활용하여 Android에 변화를 줌으로써 사용자에게 탁월한 몰입감과 즐거움을 주는 새로운 방식과 놀라운 경험을 창출할 수 있습니다. 이번 주 Dev Summit에서 열리는 Foldables 세션을 꼭 챙겨 보시고 더 자세히 알아보시기 바랍니다. 오늘 삼성에서 내년 출시 예정인 Foldables를 프리뷰 형식으로 선보인 것을 비롯하여, 여러 Android 제조업체에서 선보이는 Foldables를 보실 수 있습니다.
Kotlin: 가장 빠르게 성장 중인 언어로 업데이트
우리는 2017년에
Kotlin
을 Android에서 일류급 언어로 만들었습니다. 통계 자료를 공유하기로 옵트인한 사용자로부터 얻은 정보를 기준으로 볼 때, 이번 달만 하더라도 Android Studio에서 Kotlin을 사용하는 신규 프로젝트가 118,000여 건이나 시작된 것을 확인할 수 있습니다. 작년에 비하면 무려 10배나 급증한 수치입니다. Kotlin은 GitHub의 기고자 수 성장세의 관점에서 볼 때 가장 빠르게 성장 중인 언어가 되었고, Stack Overflow에서 가장 사랑받는 언어를 뽑는 투표 결과 2위를 차지하는 기염을 토했습니다. 우리가 실시한 설문조사에서는 Kotlin을 사용하는 개발자가 많아질수록 만족도도 높아진다는 점을 알 수 있습니다.
지난주, JetBrains는
최신 버전인 Kotlin 1.3을 출시
했는데, 이 버전에는 다음과 같이 새로운 언어 기능, API, 버그 수정, 성능 개선 사항이 포함됩니다.
인라인 클래스
를 사용하면 boxed 형식이 아닌 경우에는 할당되지 않는 유형을 생성할 수 있습니다. Android 앱이 대상으로 삼는 제한된 기기의 경우, 유형의 안전을 유지하는 동안 할당을 회피하는 것이 큰 이점입니다.
부호 없는 숫자
는 이제 UInt, UByte, ULong을 비롯한 Kotlin 표준 라이브러리에 포함됩니다. 이러한 새로운 유형은 인라인 클래스를 사용하여 빌드됩니다.
이전에는 Android 또는 JVM용으로 작성했던
다중 플랫폼
코드가 이제는 자바스크립트 또는 네이티브도 대상으로 삼을 수 있습니다. 이에 따라 훨씬 더 많은 플랫폼에서 코드베이스 중 일부를 재사용할 수 있는 가능성이 열립니다.
코루틴
이 이제는 안정적으로 지원됩니다. 언어 및 라이브러리 지원이 결합되어 비동기 작업과 상호 작용하고 모든 Android 앱에 필수적인 동시 작업을 수행하는 방법이 간소화되었습니다.
Kotlin 1.3의 이런 모든 새로운 특징을 우리가 제공하는 Kotlin 고유 API에 통합할 예정이며, 그중 다수는 Jetpack의 일부로서 KTX 확장 프로그램을 통해 제공됩니다.
Android Jetpack: Navigation, Work Manager, Slices
Google I/O에서 우리는 Android 애플리케이션 개발을 가속화하기 위한 차세대 도구이자 Android API인
Jetpack
을 발표했습니다. Jetpack은 Support Library와 Architecture에 의해 레이아웃되는 기초를 토대로 합니다. 이미 상위 1,000대 앱 및 게임 중 80%가 프로덕션 환경에서 새로운 Jetpack 라이브러리 중 하나를 사용하고 있습니다.
올해 여름에 우리는 원래 Android Support Library를 Jetpack에 적합하게 발전시킨
AndroidX
를 공개 AOSP로 이전했습니다. 즉, 실시간으로 구현되는 각종 기능과 버그 수정을 보고 AndroidX 라이브러리에 기여할 수 있다는 의미입니다. 기여에 관한 자세한 내용은
여기
에서 알아보실 수 있습니다.
우리는 두 가지 새로운 Architecture Component 라이브러리인
Navigation
과
Work Manager
에서 가능한 한 많은 피드백을 받고 구체화하는 작업을 진행하기 위해 노력해오고 있으며, 이번 달에 둘 모두 베타 단계로 옮길 계획입니다. Navigation Architecture Component는 단일 Activity를 사용하여 개발자의 애플리케이션에 Android의 네비게이션 원칙을 간단하게 구현할 방법을 제공합니다. 그 밖에도, 새로운 Android Studio의 Navigation Editor로 네비게이션 아키텍처를 생성하고 편집할 수 있습니다. 이에 따라 네비게이션 상용구가 제거되고 원자성 네비게이션 작업이 제공되며 애니메이션 전환이 더 쉬워지는 등의 이점이 있습니다. WorkManager를 사용하면 애플리케이션 상태와 기기 API 레벨을 기준으로 가장 알맞은 솔루션을 선택할 수 있으므로, 가장 효율적인 방식으로 백그라운드 작업을 수월하게 수행할 수 있습니다.
Navigation Editor
Android Slices가 공개 Search 실험 단계로 넘어가게 된 점도 기쁜 일입니다! 올해 I/O에서 우리는 개발자의 앱으로 사용자를 안내하는 새로운 방법인 Slices를 선보였습니다. Slices는 콘텐츠와 작업을 노출할 수 있는 앱의 미니 스니펫과도 같은 것입니다. 그래서 항공편을 예약하거나 동영상을 재생하거나 콜택시를 부를 수 있습니다. Slices는 가급적이면 일찍 공개하고 싶지만 올바르게 작동하도록 확인할 시간을 갖고 싶은 또 다른 사례이기도 합니다. 우리는 이번 달에 Doist, Kayak 등과 함께 공개 EAP로 이동할 예정입니다. Google 검색결과에 Slices를 노출하는 실험을 실행할 것입니다. 오늘 Dev Summit에서 열린 한 세션에서 이에 대한 자세한 정보와 모범 사례를 다루었으므로, 더 자세한 내용은 이 세션을 확인해 보시기 바랍니다.
Android Studio: 생산성, 빌드 속도, 품질 및 기본에 주력
Android Studio
는 Android 개발을 위한 Google의 공식 IDE입니다. 우리는 개발자가 어디서 가장 많은 시간을 보내는지 궁금했습니다. 그래서 Android Studio의 옵트인을 선택한 사용자로부터 데이터를 수집해 봤더니, 새로운 버전이 출시될 때마다 빌드 시간이 점점 빨라지고 때로는 20%나 빨라지는 사례도 확인할 수 있었지만, 시간이 흐르면서 빌드 시간이 점점 느려지는 현상도 목격했습니다. 도대체 이 두 가지 현상이 어떻게 동시에 일어날 수 있는 걸까요? 우리는 이 상황을 이해하려고 끈질기게 물고 늘어졌습니다.
그 결과, 빌드의 세계는 무척이나 복잡한 생태계인 것으로 드러났습니다. 개발자가 어떤 선택을 하느냐에 따라 엄청난 차이가 생기는 세계입니다. 개발자들은 매우 폭넓고 다양한 OS, 맞춤형 플러그인, 주석 프로세서 및 언어 조합을 사용하고 있고 그 범위가 더욱 넓어지고 종류도 증가하고 있다는 사실을 알았습니다. 이 모든 요인이 시간에 중대한 영향을 미칠 수 있습니다. 한 사례를 보자면, 일부 사용자가 추가하고 싶어하는 플러그인이 암암리에 빌드 속도를 최대 45%나 느리게 만드는 것으로 밝혀졌습니다. 이러한 사실을 알게 된 우리는 개발자가 빌드 시간이 점점 늘어나게 만드는 요인을 쉽게 파악할 수 있도록 프로파일링 및 분석 도구를 빌드할 필요가 있다는 점을 깨달았습니다. 우리는 또한 코어 빌드의 성능을 계속 향상하기 위해 성능을 가속화하는 자체 플러그인에 더 많이 투자하고 있습니다.
오늘 Android Studio 3.3의 베타 3을 출시합니다
.
향후 출시 버전에서는 매우 충실하게
품질과 기본 사항
에 초점을 맞춘 모습을 기대하셔도 좋습니다. 즉, 장애 및 중단 횟수 감소, 메모리 사용량 최적화, 사용자에게 영향을 미치는 버그 수정에 주력할 것입니다. 오늘 우리는 내년 초에 Chrome OS에서 Android Studio를 공식 지원 IDE로 삼겠다는 계획도 발표했습니다. 자세한 내용은
여기
에서 확인해 보세요.
Android App Bundle과 동적 기능
2012년 이래로 앱 크기는 극적으로 증가해 최대 5배까지 커졌습니다. 그러나 이처럼 앱이 커지면 설치 전환율과 업데이트 비율이 낮아지고 제거 비율은 높이지는 단점이 있습니다. 사용자가 특정 기기에서 앱을 실행하는 데 필요한 코드와 리소스만 제공하는 새로운 게시 형식인
Android App Bundle
을 빌드한 이유가 바로 이 때문입니다. 그 덕분에 평균적인 앱에서는 범용 APK에 비해 35%의 크기 감소 효과를 볼 수 있습니다. 앱 번들 덕분에 다중 APK와 같은 불완전한 솔루션을 사용할 필요가 없으므로 새로 출시될 때마다 소요 시간과 작업도 줄어듭니다.
Android Studio 3.2
에는 앱 번들의 전체 IDE 지원 기능이 포함되었는데, 현재 프로덕션 환경에서 사용되는 앱 번들만 수천 가지에 이르러 YouTube, Google 지도, Google 포토, Google 뉴스 등의 Google 앱을 비롯하여 총 수십억 회의 설치 회수를 기록 중입니다.
앱 번들은 현재 개발자가 추가적인 작업을 수행할 필요 없이
비압축 네이티브 라이브러리
를 지원하고, 앱 번들 덕분에 네이티브 라이브러리를 사용하는 앱의 다운로드 크기는 평균 8% 작아지고 M+ 기기의 디스크 공간은 평균 16% 덜 차지합니다.
앱 번들로 전환하면 앱 모듈화를 시작할 수도 있습니다.
동적 기능 모듈
을 사용하면 설치 시점이 아니라 필요할 때 어떤 앱 기능이든 로드할 수 있습니다. 모든 기기마다 한 번만 사용되는 큰 규모의 기능을 계속 유지할 필요가 없습니다. 앱에서 요청할 때 동적 기능을 유동적으로 설치하고 제거할 수 있습니다.
In-app Updates API
개발자는 사용자가 개발 앱의 최신이자 최대 버전을 올바로 실행할 수 있도록 하기 위해 더 많은 컨트롤을 선호한다는 점을 우리는 익히 들어서 잘 알고 있습니다. 이러한 요구에 부응하고자
In-app Updates API
를 출시할 예정입니다. 우리는 사전 체험판 파트너들과 함께 이 API를 테스트하는 중이며, 모든 개발자에게도 곧 선보일 예정입니다.
이 API를 사용하면 두 가지 옵션 중에서 선택할 수 있게 됩니다. 첫 번째 옵션은 사용자가 업데이트가 즉시 적용되기를 기대하며 기다릴 것으로 여겨질 때 중요한 업데이트를 전체 화면으로 표시하는 옵션입니다. 두 번째 옵션은 업데이트가 다운로드되는 동안에도 사용자가 앱을 계속 사용할 수 있는 유연한 업데이트 옵션입니다. 업데이트 흐름이 마치 앱의 일부인 것처럼 느껴지도록 완전히 맞춤설정할 수 있습니다.
순간 검색
우리는 또한 그 어느 때보다도 쉽게
빠른 실행 앱
을 채택할 수 있도록 할 예정입니다. 최근에는 웹 URL 사용을 선택 사항으로 만들었는데, 이를 통해 기존의 Play Store 딥 링크 트래픽을 이용해 가능한 상황이 되면 사용자를 빠른 실행 앱 환경으로 보낼 수 있습니다. 뿐만 아니라, 우리는 Play Store와 웹 배너의 Try Now 버튼에 대한 빠른 실행 앱 크기 제한을 10MB로 올려 빠른 실행 앱을 훨씬 더 쉽게 채택할 수 있도록 했습니다.
Android Studio 3.3 베타에서는 이제 빠른 실행 기반의 앱 번들을 빌드할 수 있습니다. 즉, 이제는 단일 Android Studio 프로젝트에서 빠른 실행 앱 환경과 설치 앱 환경을 둘 다 빌드하고 배포할 수 있고, 이들을 단일 Android App Bundle에 포함할 수 있다는 의미입니다. 빠른 실행 앱과 설치 앱 모두에 대해 단 한 개의 아티팩트만 업로드해야 합니다.
개발자의 피드백은 우리가 투자해온 이러한 분야에서 최종 결과물을 결정하는 데 있어 결정적으로 중요한 역할을 해왔습니다. 첫 아이디어 제시 단계부터 EAP와 카나리아 버전, 베타 버전, 그리고 출시 후의 반복 단계까지, 우리가 일하는 방식에서 개발자 여러분은 결코 빼놓을 수 없는 중요한 존재입니다.
라이브스트림을 통해 30개 이상의 세션을 시청
하시든, 소셜 미디어로 참여하시든, 마운틴 뷰에 직접 오셔서 우리와 함께하시든, 모든 개발자께서 앞으로 이틀 동안 진행되는 Android Dev Summit에 함께 참여하시길 바라겠습니다. 우리 팀원 모두가 모든 개발자 여러분의 사려 깊은 피드백과 헌신적인 공헌에 진심으로 감사의 마음을 전합니다. Android Dev Summit이 유익한 이벤트가 되기를 바랍니다.
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed