작성자: Chet Haase (Google 소프트웨어 엔지니어)
원문은 여기서 확인 가능하며 블로그 리뷰에는 번역 리뷰는 양찬석(Google) 님이 참여해 주셨습니다.
Android 개발 분야의 새롭고 눈에 띄는 소식을 계속 안내해드리는 'Now in Android'시리즈에 오신 걸 환영합니다.
Jetpack Compose는 Android를 위한 미래의 UI 도구 키트입니다. 지금이야말로 Jetpack Compose를 자세히 살펴보고 확인해 본 후 여러분의 의견을 주실 최적의 시기 입니다.
아직은 알파 버전이기 때문에, 베타 버전까지 세부 사항을 가다듬는 과정에서 API가 유동적일 수 있다는 점을 감안해 주세요. 하지만 API와 프로그래밍 모델의 기반은 대부분 결정되고 탄탄한 상태입니다. 여기서 배울 수 있는 내용도 많습니다. 일단 한번 사용해 보시고 여러분에게 잘 맞는지 알려주세요.
새롭게 Compose를 시작하려는 개발자나 이미 기존에 Compose를 살펴본 경험이 있는 개발자 모두 Compose를 익힐 때 도움이 되는 다양한 콘텐츠가 준비되어있습니다. Jetpack Compose를 위한 학습 과정(문서, 영상, Codelab 포함), Leland Richardson의 Compose 방식으로 생각하기 영상과 여러 가지 새로운 코드 샘플, 그 외에도 다양한 참고 링크가 있는 Compose 웹사이트를 살펴보시면 좋을 것 같네요.
Compose와 관련된 비하인드 스토리와 더 자세한 사항에 대해 더 많이 알고 싶으시면 지난주에 게시한 ADB 팟캐스트(영문)를 확인해 보세요.
이 라이브러리는 한동안 알파 및 베타 형식으로 사용되어 왔지만, 마침내 우리 커뮤니티에서 안정적으로 성장할 시기를 맞았습니다. Sean McQuillan가 이번 릴리스의 다양한 기능에 대해서 소개하는 문서를 게시했습니다.
가상 흐름 레이아웃(Flow Virtual Layout): 런타임에 컨테이너에서 사용할 수 있는 공간이 충분치 않을 때 다음 줄로 흘러갈 수 있는 방식으로 여러 항목을 사슬처럼 연결하는 데 유용합니다.
레이어(Layer): 한 번에 여러 뷰를 손쉽게 변환하도록 돕습니다.
: 풍부한 UI 전환 애니메이션을 지원하는 ConstraintLayout의 일부입니다. Android Studio는 MotionLayout을 위한 디자인 도구인 Motion Editor를 제공하며, 강력한 MotionLayout을 간편히 사용할 수 있습니다. Android Studio의 새로운 Motion Editor 도구에 관한 Scott Swarthout의 기사와 Sean의 새로운 샘플을 확인해 보세요.
10주 차에는 새로운 5G 기능과 게임 개발에 대한 여러 가지 정보, 미디어 컨트롤 등등 다양한 주제의 콘텐츠를 다루었습니다. 내용을 살펴보시려면 우선 요약된 블로그 게시물과와 학습 과정을 확인해보세요. 또한 영상 목록에서 영상을 확인하고, Daniel Galpin의 Android Game Dev Show에 채널에서 Android용 게임 기술에 관한 최신 영상을 시청해 보세요.
UI는 11 Weeks 시리즈의 마지막 주제로 매우 흥미롭게 진행됐습니다. 키보드 애니메이션(Keyboard animation)부터 머티리얼 디자인 구성 요소(Material Design Components)까지 모든 것을 아우르는 대단한 콘텐츠가 특별히 많았고, 드디어 Jetpack Compose 알파(위의 첫 번째 항목 참조)의 출시로 대단원의 막을 내리게 되었습니다. 모든 세부 정보와 링크에 대해서는 요약 블로그를 읽어봐주시고, 최신 UI 학습 과정을 따라 문서, 동영상, Codelab을 단계적으로 진행해주시고 11주 차의 영상 목록을 확인해주세요. Jetpack Compose에 대한 더 자세한 내용은 위의 내용을 참고해주세요.
다음 주에는 다른 콘텐츠가 없습니다. 이제 모두 마무리 되었습니다. 잠시 멈춰서 휴식을 취할 시간인 것 같습니다.
먼저 저희는 지난주에 #11WeeksOfAndroid를 마쳤고 올 여름 온라인 행사인 Android 11 Meetup도 마무리 단계에 있습니다. 지난 번에 제가 세어보니 전 세계의 무려 57개의 지역에서 이렇게 유쾌한 행사가 연이어서 열렸더군요. 혹 여러분께서 행사에 실시간으로 참석하지 못하셨더라도 녹화된 여러 VOD 영상을 확인하실 수 있으니 꼭 시청해 보세요. (한국 개발자를 위한 Android 11 Meetup 웨비나 시리즈는 여기서 VOD로 다시 보실 수 있습니다.)
커뮤니티를 조직해주신 분들부터 세션과 라이브 Q&A를 성심껏 진행해주신 분들, 웨비나에 참석해서 Android 개발 분야에서 일어나는 많은 일들에 대해 함께 배우고 살펴봐주신 수천 명의 참가자 여러분까지 모든 분께 감사 드립니다.
평소처럼 최근에도 다양한 버전으로 여러 Android 라이브러리가 출시되었습니다. 그 대부분은 여러 개발 단계에 있는 알파 및 베타 릴리스였습니다. 꼭 확인해 보셨으면 하는 몇몇 눈에 띄는 릴리스는 다음과 같습니다.
Concurrent 1.1.0: 이 라이브러리를 사용하면 ListenableFuture를 Kotlin 코루틴으로 간단하게 변환할 수 있습니다.
Webkit 1.3.0: 이 새로운 버전에서는 ForceDarkStrategy, WebMessageListener API 그리고 WebView가 다중 프로세스 모드에서 실행 중인지 확인하는 기능을 지원합니다.
ConstraintLayout 2.0.0: 이 릴리스에는 제가 앞서 언급한 MotionLayout 같은 새롭고 흥미로운 기능이 많이 있습니다.
Security-Identity-Credential 1.0.0-alpha01: 이 새로운 라이브러리는 API 24까지의 이전 릴리스에 대해 키 저장소가 지원되는 구현으로 Android 11에서 새로운 자격 증명 API에 대한 액세스를 제공합니다.
Alex Light는 ART 팀이 메서드 및 필드 추가를 포함하여, 런타임에 클래스의 구조를 변경할 수 있는 기능을 JVM TI(Java Virtual Machine Tool Interface)에 추가한 방법에 대한 흥미로운 글을 썼습니다. 이 변경을 통해 Android Studio의 변경 사항 적용 기능(어떤 코드와 리소스를 변경했느냐에 따라 앱을 더 빠르게 빌드하고 설치하는 방법)을 훨씬 더 많은 상황에서 유용하게 활용할 수 있습니다.
구조 클래스 재정의
Android Studio 팀은 모션 태그(Motion Tag)라는 새로운 동영상 시리즈를 시작하여, MotionLayout과 함께 풍부한 레이아웃 애니메이션을 위해 사용하는 태그에 대해 상세히 다룹니다. . 지금까지 네 편의 방송을 게시 했는데, 재생목록을 확인해 시청보세요. 앞으로도 다양한 이야기가 준비되어 있으니 계속해서 살펴봐주세요.
<a href="https://medium.com/media/dcbb72b6b101a07e91488942a27d6795/href">https://medium.com/media/dcbb72b6b101a07e91488942a27d6795/href</a>
지난 'Now in Android' 이후로 Android Developers Backstage 팟캐스트의 새로운 에피소드가 게시되었습니다. 아래 링크를 클릭하거나 즐겨 이용하시는 팟캐스트 플랫폼을 통해 이번 에피소드를 확인해보세요.
Romain Guy 님과 필자가 도구 키트 팀(Toolkit team)의 Clara Bayarri, Matvei Malkov, Anna-Chiara Bellini 님과 함께 Compose의 유래, 팀의 API 디자인 접근 방식, 새로운 UI 도구 키트를 빌드할 때의 어려운 점 뿐 아니라 팀의 입장에서 '알파'란 용어는 어떤 의미를 갖는지 등 정말 다양한 주제를 놓고 대화를 나누었습니다.
147화: Jetpack Compose Alpha
작성자: 유민정(Minjung You)/권순선(Soonson Kwon) 구글 DevRel 프로그램 매니저
머신러닝은 여러 다양하고 복잡한 수학에 기반한 알고리즘을 요하는 분야입니다. 따라서 그동안 머신러닝에 관한 연구와 적용은 특화된 학술 지식과 경험을 갖춘 인력을 필요로 해 왔습니다. 지난 수년간 다양한 산업군에서 머신러닝 관련 업무와 개발 과제들이 폭발적으로 증가하고 있지만 이를 수행할 수 있는 기술 인력이 부족하여 거의 모든 회사들이 머신러닝 관련 인력 채용에 어려움을 겪고 있습니다. 그러나 최근 텐서플로우, 클라우드 등 다양한 방면에서 머신러닝의 적용과 활용을 위한 소프트웨어 및 관련 기술들의 진화는 머신러닝 적용에 필요한 장벽들을 지속적으로 낮추어 왔습니다.
이에 구글 코리아에서는 카카오 모빌리티, 보이저엑스, 11번가, 스마일게이트, 당근마켓, 하이퍼커넥트, 코스맥스, 데이블, 노타, 엔비티, 버즈빌, 부릉과 함께 머신러닝 개발자/엔지니어 양성 프로그램인 머신러닝 부트캠프를 준비하였습니다! 선발된 개발자들에게는 딥러닝의 바이블로 불리는 Andrew Ng 교수의 Deep Learning Specialization 교육 코스를 수료하고, 구글의 텐서플로우 자격증, GCP 데이터 엔지니어 혹은 전문 머신러닝 엔지니어 자격증을 취득하는데 필요한 모든 지원을 제공하며, 머신러닝 기술 소개, 머신러닝 관련 전문가와의 만남, 머신러닝 개발자 이력서 첨삭 지도 등을 추가로 제공할 예정입니다. 정해진 기간 이내에 Deep Learning Specialization을 필수로 수료하고 텐서플로우 자격증이나 GCP 데이터 엔지니어 혹은 전문 머신러닝 엔지니어 자격증 중 하나를 취득하면 참가 회사에 인턴 혹은 정규직 채용 기회를 얻게 됩니다.
이번 행사가 참가자들에게는 머신러닝 개발자로 발돋움할 수 있는 기회가 되고, 참가 회사들에게는 검증된 머신러닝 개발자를 발견하는 기회가 된다면 저희에게는 더할 나위 없이 의미있는 일이 될 것입니다. 그리고 궁극적으로는 이를 통해 머신러닝 기술을 활용한 더욱 다양한 혁신적인 제품과 서비스들이 더욱 많이 개발될 수 있기를 희망하고 있습니다.
머신러닝 부트캠프는 파이썬 코딩이 가능한 개발자라면 누구든 지원할 수 있습니다. 참가 신청은 9월 30일까지 행사 홈페이지에서 가능하며, 참가자 발표 및 통보는 10월 중순에 진행되고, 프로그램은 10월 말에 시작하여 총 4개월 동안의 여정을 거쳐 정해진 코스를 이수한 참석자에 대해 참가 회사들과 함께 채용 과정을 진행하며 마무리됩니다. 머신러닝에 관심있고 다양한 참가자들과 함께 열심히, 그리고 즐겁게 공부할 준비가 되어 있는 많은 분들의 참여와 지원 기대합니다!
원문은 이 곳에서 확인하실 수 있고 번역 리뷰에는 김태호(Google)님이 참여해주셨습니다.
게시자: Mickey Kataria, Android for cars 제품 관리 이사
본 블로그 게시물은 #11WeeksOfAndroid 주간 시리즈 중 일부입니다. 우리는 매주 주요 영역에 대해 심층적으로 알아보고 있는데, 이번 주에는 Android Beyond Phone에 초점을 맞춰 보겠습니다. 오늘 우리가 이야기 나눌 주제는 바로 자동차입니다.
2014년 부터 Google은 Android 휴대전화에서 익숙하게 사용되는 다양한 앱과 서비스를 자동차에서도 안전하고 매끄럽게 이용할 수 있도록 하는 작업에 매진해왔습니다. Android Auto와 Android Automotive OS의 모멘텀이 계속 강력히 유지되고 그 채택률도 계속 증가하고 있는 상황에서, 앱 개발자들이 더 많은 자동차 운전자들에게 다가갈 수 있는 기회가 될 새로운 개선 사항을 소개합니다.
Android Auto 모멘텀
사용자가 계속 도로 상황에 집중하면서도 연결 상태를 유지하고, 차량 내 디스플레이를 통해 Android 휴대전화에 더욱 편하게 접근할 수 있도록 해주는 Android Auto를 출시했습니다. Android Auto는 현재 거의 모든 주요 자동차 제조사에 제공되고 있으며 앞으로 몇 개월 내에 1억 대 이상의 자동차에 탑재될 예정입니다. General Motors, BMW, 기아자동차 등 많은 자동차 제조사가 무선 연결 지원 기능을 추가한 덕분에 운전자는 자동차에 타자마자 더 쉽게 Android Auto를 사용할 수 있습니다. 이 뿐만 아니라, 새로운 기능을 계속 추가해 사용 환경을 더욱 완벽하게 만들고 개발자가 차량 내 앱을 통해 더 많은 운전자에게 다가갈 수 있도록 돕고 있습니다.
Android Auto의 앱 생태계 확장
Android Auto와 관련해 가장 많은 요청 중 하나는, 자동차에서 더 많은 앱을 사용할 수 있도록 지원해 달라는 것입니다. 현재 Google Play에는 현재 자동차 운전용으로 특별히 디자인된 차량 내 경험을 제공하는 앱 3,000여 개가 있습니다.
오늘. 내비게이션, 주차, 전기차 충전 등 Android Auto를 위한 새로운 범주에 속하는 앱을 빌드하기 위해 얼리 액세스 파트너들과 함께 일군 결과물을 추가로 소개합니다. Android for Cars App Library에서 새롭게 선보이는 앱들은 화면 주시 혹은 터치를 최소로 하면서 앱 내 모든 작업을 수행합니다.
운전자의 주의 분산을 막기 위해 정부, 업계, 학술 기관과 협업하여 제품 개발 과정의 모든 면에 적용하는 자체적인 모범 사례 지침을 마련했습니다. 운전자 주의 분산 문제의 전문가가 아니더라도, 표준 템플릿과 지침을 유용한 도구로 삼아 자동차용 앱을 손쉽게 최적화할 수 있습니다.
사전 체험판 파트너들은 올해 연말까지 베타 테스터들에게 새로운 앱을 제공할 예정입니다. 추가 테스트와 의견을 기다리면서 모든 개발자가 이러한 범주의 Android Auto 앱을 빌드할 수 있도록 이들 API를 정식 출시할 계획입니다.
Android Automotive OS 채택
더 최근에는 차량 인포테인먼트 시스템을 구동하는 풀 스택, 오픈소스 및 고도의 맞춤형 플랫폼인 Android Automotive OS를 선보였습니다. 자동차 제조업체는 Android Automotive OS를 사용해 Google Assistant, Google Maps, Google Play와 같은 앱과 서비스를 차량에 내장할 수 있으며, 이에 따라 휴대기기가 없어도 내비게이션, 타사 앱 다운로드, 미디어 청취와 같은 일반적인 활동이 가능해졌습니다. 내장된 Google로 Android Automotive OS를 실행하는 최초의 자동차 Polestar 2가 현재 도로를 달리고 있고 전 세계 고객을 상대로 판매되고 있습니다. 그 밖에도, Volvo Cars, Renault, General Motors 등은 Google 앱과 서비스가 내장된 Android Automotive OS로 구동되는 인포테인먼트 시스템을 위한 계획을 발표했습니다.
자동차에 사용되는 미디어 앱의 범위 확장
점점 더 많은 제조사가 Android Automotive OS로 구동되는 인포테인먼트 시스템이 장착된 자동차를 출고함에 따라 개발자들은 자동차에서 Google Play를 사용해 완벽한 미디어 환경을 제공할 기회를 갖게 되었습니다. 이미 Android Auto용 미디어 앱이 있다면 Android Automotive OS를 위한 지원을 추가해 그 범위를 확장할 수 있습니다. 앱을 자동차로 옮겨오는 과정은 이미 대부분의 작업이 완료된 상태이므로 간단하며, 몇 가지 단계만 따르면 됩니다.
Android Automotive OS용 미디어 앱을 개발하기가 더욱 쉬워져
지난 해부터 앱 개발자가 자동차에서 이용할 수 있는 미디어 앱을 디자인, 개발 및 테스트하고 Google Play에 바로 게시할 수 있게끔 작업을 수행해 왔으며, 이제 이것이 가능하게 되었다는 사실을 알리게 되어 기쁩니다.
Android 에뮬레이터용 Polestar 2 및 Google Generic Automotive 시스템 이미지
개발자가 미디어 앱을 위한 지원을 추가할 수 있도록 Android Automotive OS 설계 지침과 개발 문서를 계속 업데이트해왔습니다. 또한 Google Assistant, Google Maps, Google Play를 포함하도록 에뮬레이터에 대한 업데이트를 출시해 개발자가 자동차에서 소프트웨어를 더욱 밀접하게 미러링하는 환경에서 앱을 개발하고 테스트할 수 있도록 했습니다. Polestar 2 시스템 이미지를 사용하면 현재 운전 중에 사용 가능한 유사한 소프트웨어에서 앱을 테스트할 수 있습니다. 마지막으로, Play Console은 현재 Android Automotive OS APK를 허용하므로, 앱을 간단히 업로드하여 품질을 검토하고 게시할 수 있습니다. 이런 변경 사항 덕분에, 개발자는 Android Automotive OS를 위한 전체 개발 과정을 빈틈없이 완료할 수 있습니다.
Google Play에는 현재 Spotify, iHeartRadio, NPR One 등을 포함해 수많은 미디어 앱이 구비되어 있습니다. Android Automotive OS용 앱을 만드는 방법에 대해 자세히 알아보려면 android-automotive 태그를 사용해 automotive-developers Google Group 또는 Stack Overflow에서 업데이트나 게시물을 찾아보세요.
개발자가 Android Auto에서의 새로운 앱 확장과 Android Automotive OS용으로 개선된 개발 도구를 활용해 자동차에 최적화된 앱 경험으로 사용자에게 다가갈 수 있는 기회가 그 어느 때보다 많아 졌습니다. developer.android.com/cars를 방문해 본격적으로 시작해 보세요!
참고 자료
#11WeeksOfAndroid 동영상 콘텐츠의 전체 재생 목록은 여기서 찾아보실 수 있습니다. 각 주에 다룬 내용에 관해 더 자세히 알아보려면 여기를 참고하세요. 우리는 매주 새로운 분야를 계속 집중 조명할 것이므로, 계속 지켜봐 주시고 Twitter와 YouTube에서 팔로우하세요. 여러분과 이러한 경험을 함께 나눌 수 있도록 해주셔서 감사합니다!
원문은 여기서 확인 가능하며 블로그 번역 리뷰에는 노현석(Android GDE)님이 참여해주셨습니다.
게시자: David Winer, 제품 관리자
이 블로그 게시물은 #11WeeksOfAndroid 주간 시리즈 중 일부입니다. 우리는 개발자가 어떤 중요한 정보도 놓치지 않도록 매주 Android의 주요 영역을 다루고 있습니다. 이번 주에는 언어에 관해 집중 조명했으며, 알아두셔야 할 내용을 아래에 간단히 정리했습니다.
최신 Android 개발은 뛰어난 언어 지원으로 시작됩니다. Kotlin, 자바 프로그래밍 언어, C++가 함께 개발자들이 앱 개발에 매일 사용하는 Android의 API와 도구를 위한 기반을 형성하고 있습니다. 이번 주에는 Android의 세 핵심 언어의 최신 뉴스를 모두 살펴봤습니다. Kotlin 코루틴부터 Android 11의 새로운 자바 API와 네이티브 개발을 위해 더 나은 도구까지, 많은 것들이 최신 릴리스에 포함되어 있습니다.
Kotlin과 코루틴
Kotlin은 Android의 독보적인 첨단 API의 핵심입니다. 전 세계 Android 개발자들로부터 Kotlin의 뛰어난 표현력, 더욱 수준 높은 앱 작성에 도움이 되는 측면, 기존 자바 코드 베이스에서 손쉽게 시작할 수 있는 점 등에 매료되어 Kotlin이 정말 마음에 든다는 얘기를 많이 듣고 있습니다. 현재 Play Store에 게시된 상위 1000개 앱 중 70% 이상이 Kotlin을 사용하며, SlashDataTM 는 올해 초에 Kotlin이 지난 2년간 비율로만 보면 가장 빠르게 성장하는 언어 커뮤니티였다고 발표한 바 있습니다. 우리는 Android 11 베타를 선보이면서, Android에서 이루어지는 비동기 작업에 코루틴을 공식적으로 권장함으로써 Kotlin을 더욱 폭넓게 받아들이기로 했습니다.
코루틴을 사용하면 비동기 코드를 쉽게 작성하고 읽고 이해할 수 있습니다. 코루틴 라이브러리는 안정적인 데다, Room, LiveData, WorkManager를 비롯해 개발자들이 사용하고 있는 Jetpack 라이브러리 중 다수와 이미 심층적으로 통합되어 있습니다. 코루틴을 처음 접하는 분이라면, Android ❤️ 코루틴: Kotlin에서 비동기 작업을 관리하는 방법, 최신 코루틴 학습 경로, 새로운 코루틴 개발자 가이드를 확인해 보세요.
Kotlin 시작하기
Android Jetpack의 Kotlin-first 라이브러리부터 Android Studio에 있는 도구와의 긴밀한 통합까지, Android는 Kotlin과 깊숙이 결합되고 있어 지금이야말로 Kotlin를 본격적으로 시작할 최적기입니다. 하지만 우리는 많은 개발자로부터 각자의 개발팀에 Kotlin을 채택하자고 설득하는 게 만만찮은 일이라는 얘기를 듣습니다. Kotlin은 자바 프로그래밍 언어와 100% 상호 운용 가능하지만, 팀원들은 걱정스러운 부분이 있을 수 있습니다. 예컨대, '새로운 언어를 배우는 데 시간을 들일 만한 가치가 있을까?', '우선순위가 높은 다른 제품과 기술을 두고서 Kotlin에 얼마나 우선순위를 부여할 수 있을까?'와 같은 의문이 들 수 있을 것입니다.
우리는 이번 주에 Google Home 팀을 통해 이런 질문에 답하는 데 도움이 될 만한 새로운 사례 연구를 공개했습니다. Google Home 팀은 1년간에 걸쳐 모든 새로운 기능 개발을 Kotlin으로 옮겼는데, 동 기간 중에 null 포인터 예외가 33% 감소한 것을 확인했습니다. 이 점은 Duolingo에서 Zomato와 Cash App까지, 전 세계 곳곳의 Android 팀으로부터 들은 얘기와 일맥상통합니다. Kotlin은 크고 작은 다양한 팀을 위해 생산성과 더 높은 앱 품질이라는 두 가지 형태로 모두 가치를 제공하고 있습니다. Kotlin에 대한 모든 최신 사례 연구와 데이터에 대해서는 새로운 Kotlin 사례 연구 페이지를 확인해 보세요.
우리는 초보자를 위해 Kotlin으로 배워보는 Android 기초라는 새로운 교육 과정을 시작한다고 발표했습니다. 이제 막 프로그래밍 방법을 배우고 계신 분의 경우, Android 기초 교육 과정을 통해 함수, 변수 등의 필수적인 프로그래밍 개념을 익힌 후 Kotlin으로 간단한 'Hello World' 프로그램을 코딩하는 것부터 시작해 전체 Android 앱 모음을 빌드하는 단계까지 나아가게 됩니다.
자바 프로그래밍 언어와 C++
우리는 3년 전에 Kotlin을 공식적으로 지원하겠다고 발표할 때 수많은 자바 및 C++ Android 개발자가 있다는 점을 잊지 않았습니다. Android 11 릴리스에서는 이 두 가지 언어에 대한 지원을 모두 계속 개선하는 방향을 추구했습니다. Android 11 베타를 발표하면서, 우리는 OpenJDK 9, 10, 11에서 다수의 새로운 API와 함께 자바 라이브러리 지원을 업그레이드했습니다. 또한 Android Studio 4.0에서 자바 라이브러리 디슈가링을 선보였는데, 이를 통해 구형 Android 기기에서도 이런 새로운 Java API 중 다수를 손쉽게 사용할 수 있습니다. 우리는 그동안 구형 기기에서 java.time 지원을 요청해오신 개발자들의 목소리를 분명히 귀담아듣고 있었으며, 마침내 그에 대한 응답을 내놓게 되었습니다. 이런 새로운 API를 사용하는 방법에 관한 모든 최신 정보는 최신 Java API 지원에 관한 Murat Yener의 강연을 확인해 보세요. 우리는 Android 11을 내놓으면서 I/O 프리페치로 훨씬 더 빠르게 앱을 시작할 수 있도록 Android 런타임도 업데이트했습니다.
C++ 개발자 경험도 계속 점점 나아지고 있습니다. Android 11에는 네이티브 툴체인 전반에 걸친 업데이트가 포함되었으며, Android Studio 4.0에서 PGO(Profile-Guided Optimization)와 네이티브 종속성 관리 개선 사항을 위한 더 나은 도구가 이에 포함됩니다.
지속적으로 향상되는 툴체인
마지막으로, 우리는 Android Studio에서 D8 및 R8 컴파일러의 개선에 계속 주력하겠습니다. Android Studio에는 앱의 메모리 공간을 작게 유지해 사용자들 사이에서 설치 횟수 증가와 유지 비율 향상으로 이어지는 R8 shrinker에 대한 지원 기능이 내장되어 있습니다. 최근에는 R8과 함께 Kotlin 리플렉션을 사용하는 Kotlin 라이브러리 및 앱을 축소하기 위한 지원 기능도 추가했습니다. 자세한 내용은 Mads Ager 및 Morten Krogh-Jespersen의 최신 Medium 게시물을 확인해 보세요.
품질 개선을 위해 업데이트된 Firebase 플러그인과 Flutter 관련 문서, 코드 스니펫, 동영상 등을 제공하는 새로운 사이트를 소개합니다.
Flutter는 단순히 엔진이나 위젯 세트, 도구 이상의 의미를 가진 앱 개발 프레임워크로, 기본 제공되는 기능을 훌쩍 뛰어넘어 앱에 다양한 기능을 추가할 수 있는 다양한 패키지로 구성된 대규모 생태계도 포함되어 있습니다. 이 중 가장 인기 있는 패키지는 Firebase 제품을 지원하는 패키지 (FlutterFire) 입니다. 최근, Flutter의 모든 측면에 대한 품질에 계속 집중하기 위해 Dart, Flutter, Firebase에 깊은 전문 지식을 보유한 컨설팅 회사 Invertase가 FlutterFire 플러그인의 개발 및 유지 관리 업무를 일괄적으로 인계한다는 소식을 발표했습니다. 발표로부터 오랜 시간이 지나지 않았음에도 불구하고, Invertase는 Core, Authentication 및 Firestore 플러그인에 새로운 기능을 제공하고 API를 다른 Firebase SDK와 더욱 긴밀히 조정하는 등 엄청난 진척을 보였습니다. 이 뿐 아니라, 코드를 이 새로운 버전으로 옮기는 데 도움이 되는 마이그레이션 가이드, 일반적인 시나리오에 대한 설치 안내와 코드 스니펫을 포함하는 Flutter용 Firebase 플러그인 각각에 대한 사이트를 만들었습니다. 마지막으로 그 모든 대단한 작업 외에도, 이 릴리스를 통해 300여 가지의 이슈와 80여 개의 풀 리퀘스트 (Pull request)를 처리했습니다.
역사적으로, Flutter용 Firebase 플러그인은 열정적이고 헌신적인 팀원들 덕분에 성장했습니다. 플러그인 엔지니어링 업무를 Invertase로 넘겨주면서, Flutter 팀과 Invertase는 함께 기초적인 사항을 다시 검사할 기회를 가졌습니다. 이 과정을 통해 다음과 같은 몇 가지 원칙을 세웠습니다.
기능이 기본 Firebase SDK와 일치할 것입니다: (예: 현재 로그인되어 있는 사용자를 비동기 방식 대신 동기 방식으로 반환)
함수 이름을 기본 Firebase SDK와 동일하게 명명할 것입니다(예: getDocuments() 대신에 get()으로 명명).
모든 플러그인은 firebase_core에 의존성을 갖게되며, Firebase.initializeApp()을 사용하여 초기화를 요구할 것입니다.
모든 플러그인은 동일한 버전의 네이티브 Firebase SDK에 의존성을 갖게 됩니다.
모든 플러그인은 페더레이션을 사용하도록 업데이트되어 모바일뿐 아니라 폭넓고 다양한 플랫폼을 지원할 수 있습니다.
모든 플러그인은 새로운 firebase_core버전을 명시적으로 채택해야 하므로, flutter pub update 를 실행하더라도 코드를 손상시키지 않습니다.
플러그인이 이런 원칙에 부응하도록 업데이트될 때 채택이 용이하도록 이전 이름의 지원이 중단됩니다.
중요한 문제가 수정되고 전체 테스트 세트는 플러그인 세트가 업데이트됨에 따라 각각에 대해 생성될 것입니다.
이런 원칙의 목표는 신규 및 기존 Firebase 사용자가 더 나은 Flutter 사용 경험을 누리도록 하는 것입니다. 우리는 플러그인을 출시할 때 개발자가 15개의 플러그인 전체 세트가 업데이트될 때까지 기다릴 필요 없이 각 세트에 대해 변경된 3~4개의 플러그인을 먼저 채택할 수 있도록 노력하고 있기도 합니다.
새로운 Core, Authentication 및 Firestore 플러그인으로의 마이그레이션은 주로 pubspec.yaml 파일에서 버전을 업데이트하는 문제로, flutter pub get으로 버전을 풀다운하고Firebase.initializeApp()에 대한 호출을 추가합니다. 그렇게 하고 나면 이전의 메서드와 속성이 지금도 계속 작동하겠지만 지원 중단된 이름 세트를 처리하도록 선택할 수도 있습니다.
이런 원칙과 관련된 모든 작업이 완료된 것은 아니지만(사실, 이제 막 시작했습니다), 새로운 Core를 채택하면 아직 주요 변경 사항이 적용되지 않은 나머지 플러그인을 계속 사용할 수 있으며, Storage 및 Messaging과 같은 플러그인도 새로운 Core에 종속되도록 업데이트되었습니다. 이는 곧 사용 환경을 더욱 개선해 줄 변경 사항이 더 많이 적용됨에 따라 전반적으로 더욱 일관된 경험을 하게 될 것이라는 뜻입니다.
Core, Authentication 및 Firestore의 새 버전에 대한 변경 사항의 전체 목록뿐 아니라, Firebase 코드를 발전시킬 방법에 관한 자세한 지침은 마이그레이션 가이드를 읽어보시기 바랍니다.
Invertase가 수행하는 작업은 현재 Android와 iOS에 중점을 두고 있으며, iOS와 동일한 코드를 99% 공유하는 macOS도 덤으로 함께 다루고 있습니다. FlutterFire를 위한 새로운 문서 사이트 https://firebase.flutter.dev/에서 Firebase 플러그인에 대한 지원을 살펴볼 수 있습니다.
Flutter용 Firebase 플러그인의 현황
모든 Firebase 플러그인이 모바일 (Android, iOS)을 지원하지만, macOS를 지원하는 것은 아니라는 점을 알 수 있을 것입니다. 하지만, 작업이 계속됨에 따라 지원의 폭도 계속 넓어질 것입니다.
종합적인 마이그레이션 가이드를 제공하고 각 플러그인을 위한 플랫폼 지원을 표시하는 것 외에, https://firebase.flutter.dev/docs에 Flutter를 위한 개발자 문서 초안을 업데이트 했습니다.
이제 더 이상 기본 Android 또는 웹 Firebase 문서를 읽고 그 내용을 이용해 자신이 개발 중인 Flutter 앱에 사용할 동일한 API를 추측하지 않아도 됩니다! 이 사이트에서는 대부분의 Firebase 플러그인(단지 Core, Authentication, Firestore뿐 아니라 훨씬 더 많은 플러그인), Android, iOS, 웹에 특정한 설치 지침, 코드 스니펫을 포함한 일반적인 시나리오의 개요에 대한 문서와 동영상을 찾을 수 있을 것입니다.
이번에는 Core, Authentication 및 Firestore 플러그인에 대한 첫 라운드의 업데이트를 발표했습니다. Flutter 개발자에게 가장 영향력이 큰 플러그인을 계속 개발할 수 있도록, 우리의 다음 라운드는 Crashlytics, Functions, Messaging, Storage가 될 가능성이 높습니다. 그 사항이 구체화되면 여러분께 알려드리고 그 7개의 플러그인에 대한 웹 지원 역시 우리가 세운 원칙을 따르도록 하겠습니다. 이는 Flutter 개발자가 다른 Firebase SDK가 제공해야 하는 모든 서비스를 받도록 보장하기 위한 여정에서 크게 내딛는 첫 발걸음입니다. 그 과정에서 혹시 실수를 발견하게 되는 경우, 여기를 통해 알려주시기 바랍니다.