구글은 모든 사용자에게 모바일 컴퓨팅 경험을 제공하기 위해 안드로이드를 개발하고 사용자가 좋아하는 앱과 게임을 한 곳에서 찾고 즐기고 공유할 수 있는 글로벌 온라인 스토어이자 안드로이드 운영 체제를 위한 앱 스토어인 구글플레이를 출시했습니다. 2012년 출시된 구글플레이는 전세계에서 20억 개가 넘는 안드로이드 기기 사용자들과 개발자를 연결해주는 생태계를 만들고 있습니다. 또한 작년 한 해 동안만 940억개 이상의 앱이 구글플레이에서 다운로드됐습니다.

구글은 구글플레이가 전 세계 사용자들에게 편리한 사용자 경험을 제공할 뿐 아니라 전 세계 모든 개발자가 이용하기에 안전하고 신뢰할 수 있는 플랫폼으로 거듭날 수 있도록 최선을 다하고 있습니다. 또한 올바른 정책과 절차를 통해 구글플레이가 사용자와 개발자 모두에게 유익하며 안정적인 생태계가 될 수 있도록 하며, 모든 개발자가 전 세계 사용자와 소통할 수 있는 공평한 경쟁의 장이 될 수 있도록 노력하고 있습니다. 구글플레이는 다음과 같은 노력을 통해 올바른 앱 생태계를 만들어가고 있습니다.


모든 개발자가 구글플레이에서 손쉽게 앱을 출시할 수 있도록 분명한 가이드라인 제시


모든 개발자는 구글플레이 스토어를 통해 앱을 배포하기 위해 계정 등록을 할 수 있습니다. 구글플레이 개발자 배포 계약개발자 프로그램 정책을 준수하는 한 모든 앱은 구글플레이에 출시될 수 있습니다. 구글플레이는 플레이 스토어에만 앱을 출시하기로 결정한 개발자라고해서 특별한 혜택을 제공하지 않습니다. 마찬가지로 구글플레이 상 모든 앱은 타사 앱 마켓 출시 여부와 관계 없이 사용자에게 노출되고 추천될 수 있는 기회가 제공됩니다.


구글플레이에서 성공적인 앱을 만들기 위해서는 구글 플레이 정책을 준수하는 것에 더해서 훌륭한 디자인과 직관적인 사용자 환경을 필요로 합니다. 이를 구현하기 위해 개발단계에서부터 다양한 잠재 고객과 요구사항들을 염두에 두고, 여러 번의 테스트를 통해 개발된 앱이 핵심 앱 품질 가이드라인을 잘 준수하고 또 고객이 원하는 요구를 모두 충족시키는 뛰어난 품질을 갖추었는지 확인해야 합니다. 이 모든 과정을 지원하기 위해 저희 구글 플레이는 개발자 콘솔 및 고객 센터를 통해 개발자들에게 폭넓은 정보를 제공하고 있습니다. 이를 통해 저희가 제공하는 툴에 대한 이해를 높일 수 있을 뿐만 아니라 구글의 이용약관에 변경사항이 있을 때에도 사전에 통보받을 수 있습니다.


사용자가 원하는 콘텐츠를 쉽게 발견할 수 있는 환경 조성


사용자가 구글 플레이  스토어에 출시된 앱을 찾는 방법은 여러 가지가 있습니다. 구글플레이에서 가장 많이 사용되는 방법은 플레이 검색과 추천, 인기 차트입니다.


  • 플레이 검색은 사용자가 원하는 콘텐츠를 찾을 수 있는 가장 중요한 채널입니다. 이러한 이유로 개발자는 구글플레이 스토어의 앱 목록과 메타데이터가 앱의 내용을 정확하게 반영하도록 해야 합니다. 플레이 검색 키워드가 입력되면, 앱은 개발자가 앱에 대해 등록한 정보와의 관련성에 따라 순위가 매겨집니다. 전체 검색의 절반 정도는 앱 제목에 대한 것으로, 구글플레이는 이를 통해 사용자들이 원하는 콘텐츠에 빠르게 연결할 수 있도록 도와줍니다. 나머지 절반은 카테고리 또는 키워드로 검색되므로 올바른 앱 카테고리 또는 키워드를 선택하는 것이 중요합니다. 또한 앱 설명을 적을 때 핵심 기능과 주요 특징을 포함하여 완벽하게 작성하는 것이 중요합니다. 구글플레이에 앱 또는 게임에 대한 정보를 등록하는 일은 쉬워 보이지만 처음부터 완벽하게 해내는 것은 쉽지 않습니다. 구글은 구글플레이 스토어 등록정보 실험을 제공해 개발자가 각 요소를 세밀하게 정리하고 앱의 제목과 아이콘, 설명 테스트를 거쳐 전 세계 사용자의 반응을 더욱 잘 이해하도록 돕고 있습니다. 상위 개발자의 70% 이상이 등록정보 실험을 활용해 사용자가 자신의 앱을 더욱 잘 발견할 수 있도록 앱을 개선하고 있습니다.

  • 개인화된 맞춤형 추천 제공. 구글플레이는 모든 사용자가 독특하면서 개인화된 플레이 스토어 환경을 경험할 수 있도록 노력하고 있습니다. 구글플레이 홈 및 스토어에서 이루어지는 추천의 대다수는 사용자의 과거 활동 및 흥미도를 바탕으로 해당 사용자가 어떠한 앱을 원할지 알고리즘을 통해 이해하고 이에 맞는 앱을 찾을 수 있도록 지원합니다.


  • 주목할만한 앱 및 게임에 대한 큐레이션 추천 제공. 구글플레이에는 개인화된 맞춤형 추천 기능 외에도 새로 출시되거나 인기있는 타이틀, 주목할만한 프로모션과 이벤트, 에디터 추천 페이지 등을 소개하는 머천다이징팀과 에디터 팀이 있습니다. 머천다이징 팀과 에디터 팀은 다양한 정보를 취합하고, 이를 바탕으로  한국 사용자와 관련성이 높은 재미있는 앱과 게임을 제공하고 있습니다.


  • 최신 트렌드의 인기 앱과 게임을 보여주는 ‘인기 차트’. 구글플레이 인기 차트는 동안의 앱 다운로드 수와 다른 주요 수치 등을 고려해 업데이트되고 있습니다. 또한 계속해서 인기차트가 최신 상태로 유지될 수 있도록 지속적으로 노력하고 있습니다. 충분한 완성도를 갖추지 못한 앱 또는 일반적인 사용자에게 적합하지 않은 콘텐츠를 포함하고 있는 일부 앱의 경우 인기 차트에서 제외될 수 있습니다.

    개발자들은 자신의 앱을 플레이 스토어에만 독점적으로 등록할 필요가 없습니다. 모든 앱은 다른 앱 스토어의 출시 여부와 관계 없이 플레이 스토어에서 검색 및 추천될 수 있는 기회가 있습니다.


    앱과 게임 생태계의 신뢰 기반 구축


    앞서 말씀드린 대로 구글은 개발자 프로그램 정책개발자 배포 계약에 따라 개발자와 사용자에게 모두 도움이 되는 신뢰받는 플랫폼을 만들기 위해 최선을 다하고 있습니다.


    이를 위해 구글플레이는 부적절한 콘텐츠(음란, 혐오발언, 폭력), 불법행위를 돕거나 장려하는 앱, 타인의 저작물을 모방하거나 사용자를 기만하는 앱 등 구글 정책을 위반하는 앱을 삭제합니다.


    또한 구글플레이 정책은 공정한 개발자 간의 경쟁환경을 지키기 위해 앱 순위를 조작하는 행위를 금지하고 있습니다. 여기에는 설치 수 조작이나 평점 및 평가를 대가로 인센티브 또는 금품을 제공하거나 거짓으로 게시하는 등 정당하지 못한 수단으로 제품 평점이나 평가를 왜곡하는  것이 포함됩니다. 이 정책을 위반하면 구글플레이 스토어에서 앱이 삭제될 수 있으며 경우에 따라 개별 개발자 계정이 해지될 수 있습니다.


    저희 구글 플레이가 개발자에게 구글 콘텐츠 정책을 위반에 대해 알려드릴 때 개발자의 계정 이메일 주소로 이의를 제기할 수 있는 링크를 함께 보내고 있습니다. 개발자는 이를 통해 구글플레이 개발자 콘솔에서 직접 이의를 제기할 수도 있습니다.



    앞서 말씀드린 저희의 노력에 더해 구글은 사용자와 개발자가 최상의 환경을 경험할 수 있도록 구글플레이의 기능을 지속적으로 개선하고 추가하기 위해 최선을 다하고 있습니다. 또한 개발자 콘솔이나 구글플레이 인디 게임 페스티벌, 구글 포 모바일과 같은 다양한 이벤트를 통해서 지속적으로 개발자들의 피드백을 받고 이를 반영해나가기 위해 노력하고 있습니다. 전 세계 사용자에게 최상의 콘텐츠를 제공할 수 있도록 국내 모든 개발자 및 콘텐츠 제작자와 계속해서 협력해 나가겠습니다.



    저희의 여행은 sitata.app에서 시작합니다. 이 사이트는 시위 또는 대중 교통 파업과 같은 사건에 관한 실시간 여행 정보를 제공합니다. 날씨가 화창한 날 저희의 첫 번째 목적지는 카리브해이며, 여기서는 thelocal.app을 사용하여 탐험을 시작합니다. 일광욕을 즐긴 후 네덜란드로 날아가는 중에 허기가 느껴졌습니다. 운 좋게도 picnic.app은 저희 호텔까지 식료품을 배달해 줍니다. 푸짐한 식사를 즐기고 이제 인도로 향할 시간입니다. 여기서는 myra.app을 사용하여 챙겨오지 않은 의약품과 위생용품, 유아용품을 주문합니다. 이번 여행이 출장 여행이라고 말씀드렸나요? 다행히 lola.app이 복잡한 여행의 스트레스를 줄여줍니다. 이제 집으로 돌아갈 시간이므로, ov.app에서 구입한 후드티를 뒤집어쓰고 남은 여행을 즐깁니다.

    이러한 앱을 통해 .app에서 여러분의 집도 찾아보시기를 바랍니다! 도메인 등록을 위한 등록 대행 파트너를 선택하려면 get.app을 방문하세요.







    모든 기술 수준을 위한 머신러닝

    상당수 개발자들은 머신러닝을 시작하는 데 어려움을 느낄 수 있습니다. 일반적으로 신규 ML 개발자는 저수준 모델 구현, 프레임워크 사용 등의 복잡성을 학습하는 데 많은 시간을 보냅니다. 아무리 숙련된 전문가라도 휴대기기에서 실행되도록 모델을 적용하고 최적화하는 것은 엄청난 작업이 될 수 있습니다. 머신러닝의 복잡성 이외에도, 특히 글로벌 사용자를 고려하면 교육 데이터 소싱은 상당한 비용과 시간이 소모되는 프로세스입니다.


    ML Kit와 함께 머신러닝을 사용하면 머신러닝에 대한 전문 지식이 없더라도 Android 및 iOS에서 멋진 기능들을 구현할 수 있습니다. 아래에 자세한 정보가 있습니다!


    일반적인 사용 사례를 위한 프로덕션 준비

    갓 시작한 초보자를 위해 ML Kit는 일반적인 모바일 사용 사례를 다루는 5개의 즉시 사용 가능한 "기본" API를 제공합니다.
    • 텍스트 인식
    • 얼굴 검출
    • 바코드 스캐닝
    • 이미지 레이블링
    • 랜드마크 인식

    이러한 기본 API를 통해 데이터를 ML Kit에 전달하기만 하면 직관적인 응답을 얻을 수 있습니다. 예시: 초기 사용자 중 하나인 Lose It!은 최신 버전의 칼로리 추적 앱에 여러 기능을 빌드하기 위해 ML Kit를 사용했습니다. 우리의 텍스트 인식 기반 API와 맞춤 모델을 사용하여, 앱이 제품 레이블에서 영양소 정보를 신속하게 캡처하여 이미지로부터 식품 내용물을 입력할 수 있습니다.




      ML Kit는 온디바이스 API와 Cloud API를 간단한 공용 인터페이스에 모두 제공하므로, 여러분의 요구사항에 가장 적합한 API를 선택할 수 있습니다. 온디바이스 API는 데이터 처리가 신속하며 네트워크 연결이 없을 때도 작동하는 반면, 클라우드 기반 API는 Google Cloud Platform 머신러닝 기술을 활용하여 더 높은 수준의 정확도를 제공합니다.



      이들 API의 실제 사례는 Firebase 콘솔을 참조하세요.


      주의: 몇 개월 내에 2개 이상의 API를 더 출시할 계획입니다. 첫 번째는 앱에서 상황별 메시지 회신을 지원하는 스마트 회신 API이고, 두 번째는 기존 얼굴 검출 API를 바탕으로 고밀도 얼굴 윤곽도 지원합니다. 체험해보려면 여기에서 가입하세요!


      맞춤 모델 배포

      머신러닝에 익숙하지만 자신의 사용 사례에 맞는 기본 API를 찾지 못한 경우, ML Kit를 사용하여 자신만의 TensorFlow Lite 모델을 배포할 수 있습니다. Firebase 콘솔을 통해 모델을 업로드하기만 하면 저희가 앱 사용자에게 호스팅하고 제공할 것입니다. 이런 방식으로 모델을 APK/번들로부터 분리할 수 있으므로 앱 설치 크기가 줄어듭니다. 또한 ML Kit는 모델을 동적으로 제공하므로 앱을 다시 게시하지 않고도 언제든지 모델을 업데이트할 수 있습니다.


      하지만 이게 전부가 아닙니다. 더 많은 작업을 수행하도록 앱이 확장됨에 따라, 앱 크기가 증가하고 앱 스토어 설치 속도에 악영향을 미치며, 데이터 초과 사용으로 인해 사용자에게 비용이 더 부과될 가능성이 있습니다. 모델은 그 크기가 수십 MB에 달할 수 있으므로, 머신러닝이 이러한 상황을 더욱 악화시킬 수 있습니다. 그래서 우리는 모델 압축에 투자하기로 결정했습니다. 특히 학습 데이터와 함께 전체 TensorFlow 모델을 업로드하고 압축된 TensorFlow Lite 모델을 수신할 수 있는 기능을 실험하고 있습니다. 그 이면의 기술이 빠르게 발전하고 있으므로, 이 기술을 체험해보고 피드백을 줄 몇 분의 개발자를 찾고 있습니다. 관심 있으신 분은 여기에서 가입하세요.


      다른 Firebase 제품과 함께 사용하면 더 좋습니다

      ML Kit는 Firebase를 통해 제공되므로, 더욱 방대한 Firebase 플랫폼을 쉽게 활용할 수 있습니다. 예를 들어, 원격 구성A/B 테스트를 사용하여 여러 개의 맞춤 모델을 실험할 수 있습니다. 앱에서 값을 동적으로 전환할 수 있으므로 사용자가 사용하기를 원하는 맞춤 모델을 즉석에서 바꿀 수 있습니다. 심지어 인구분포도를 만들고 여러 모델을 병렬로 실험할 수도 있습니다.


      기타 예시:



        지금 시작하세요!

        여러분이 ML Kit를 사용하여 무엇을 만들지 정말 기대됩니다. 다음과 같은 여러 초기 고객들처럼 여러분도 이 제품이 마음에 드시길 바랍니다.



        지금 Firebase 콘솔을 방문하여 ML Kit 베타를 시작해 보세요. 전하고 싶은 생각이나 의견이 있으면 저희에게 알려주세요. 항상 귀기울이고 있겠습니다!

        게시자: Francis Ma 제품 총괄


        I/O 2016에서 Firebase를 일련의 백엔드 서비스로부터 전체 앱 개발 플랫폼으로 확장했던 것이 겨우 2년 전이었다는 사실이 믿기지 않습니다. 그 때 이후로 개발자 커뮤니티가 Firebase를 수용하는 것을 겸손한 마음으로 지켜보았습니다. 이제는 매달 120만개의 앱이 Firebase를 활발하게 사용하고 있습니다!


        저희가 아무리 크게 성장하더라도 사명은 변하지 않습니다. 바로 앱 빌드, 앱 품질 개선, 비즈니스 성장이라는 개발 주기의 모든 단계에서 모바일 앱 팀이 성공하도록 돕는 것입니다.


        이렇게 멋진 개발자 커뮤니티를 가진다는 것은 크나큰 영광이며 책임 또한 막중합니다. 앱에 관하여 저희를 믿어주셔서 감사합니다. 저희가 Firebase로 빌드했던 앱들에 대한 스토리를 듣고 있노라면 감동이 밀려옵니다. 저희가 매일 열심히 일하는 이유도 바로 여러분의 성공 때문입니다!

        오늘 저희는 Firebase의 여러 가지 개선 사항을 발표합니다. 잠시 살펴보도록 하겠습니다.


        ML Kit 소개 (오픈 베타)

        머신러닝이 모바일 개발자에게 더욱 쉬워졌습니다. Firebase에서 사용 가능한 SDK인 ML Kit를 발표하게 되어 기쁘게 생각합니다. ML Kit를 사용하면 Android이든 iOS이든 그리고 숙련된 ML 개발자이든 초보자이든 간에 상관없이 강력한 머신러닝 기능을 앱에 접목할 수 있습니다.



        ML Kit에는 일반적인 사용 사례에 바로 사용할 수 있는 API 세트가 함께 제공됩니다(텍스트 인식, 얼굴 감지, 바코드 스캐닝, 이미지 레이블 및 랜드마크 인식). 이들 API는 기능에 따라 기기에서 단독으로  실행되거나 클라우드에서 실행될 수 있습니다. 온디바이스 API(기기에서 단독으로 실행되는 API)는 데이터 처리가 신속하며 네트워크 연결이 없을 때도 작동하는 반면, 클라우드 기반 API는 Google Cloud Platform 머신러닝 기술을 활용하여 더 높은 수준의 정확도를 제공합니다. 또한 자신만의 TensorFlow Lite 모델을 사용할 수도 있으며, ML Kit가 호스팅과 서비스를 처리해 주므로 개발자는 앱 빌드에 집중할 수 있습니다.


        이러한 다섯 API는 첫 단계에 불과합니다. 앞으로 더 많은 API를 배포할 예정이며, 초기 테스터로 참여하고 싶으신 분은 등록 양식을 방문하여 대기 목록에 가입하세요.
        Android에서 빌드하든 iOS에서 빌드하든 상관없이 머신러닝을 활용하여 사용자 경험을 개선할 수 있습니다. 또한 ML Kit을 통해 모든 경험 수준의 개발자들이 쉽게 시작할 수 있기를 바랍니다. 자세한 내용은 문서를 참조하세요.


        성능 모니터링 개선

        작년에 열린 I/O에서 저희는 앱 성능을 파악하고 속도와 반응성을 높일 수 있는 성능 모니터링을 베타로 출시했습니다. 그 이후로 성능 모니터링이 엄청나게 채택되었습니다. 전세계에서 가장 큰 앱에 속하는 Flipkart, Ola 및 Swiggy가 성능 모니터링을 사용하기 시작했고, 이제 우리는 매일 1000억개의 성능 측정항목을 보고하고 있으며 이를 통해 개발자가 앱 품질을 개선하고 사용자에게 기쁨을 줄 수 있도록 지원하고 있습니다!


        이제 SDK가 엄격한 테스트를 거쳤으므로 성능 모니터링의 베타를 끝내기로 결정했습니다. 이러한 변화와 함께 몇 가지 기능이 개선되어 오늘 콘솔에 배포될 것입니다.


        첫째로, 이제 문제 피드가 성능 모니터링 대시보드 상단에 나타납니다. 이 피드에서는 앱에서 발생하는 성능 문제 뿐만 아니라 문제의 심각도에 대한 Firebase의 의견을 쉽고 빠르게 확인할 수 있습니다.


        둘째로, 이제 앱의 어느 부분이 버벅거리거나 중단되는지 쉽게 식별할 수 있습니다. 성능 모니터링은 렌더링 문제를 식별하고 앱에서 화면당 몇 개의 프레임이 삭제되었는지 알려주므로, 신속한 문제 해결이 가능합니다. Play 스토어에 앱이 있는 분은 이 멋진 방법을 사용하여 Android Vitals에 보고된 렌더링 문제에 대한 상세 정보를 구할 수 있으며, 추가적인 코드를 작성할 필요가 없습니다. 지금 성능 모니터링을 시작하려면 Google 문서를 방문하세요.


        더 나은 분석 및 액세스 관리 컨트롤

        Firebase용 Google 애널리틱스를 사용하면 프로젝트의 각 앱에 대한 분석을 언제든지 볼 수 있습니다. 작년에 저희는 StreamView 및 DebugView 보고서를 추가하여 실시간으로 데이터를 볼 수 있는 기능을 추가했습니다. 이제 애널리틱스 보고서에 실시간 카드를 추가했기 때문에 사용자가 지금 어떤 작업을 수행 중인지 더욱 정확하게 파악할 수 있습니다.




        또한 프로젝트 수준 보고와 유연한 필터를 추가하여 애널리틱스에서 두 가지 업그레이드를 추가로 제공합니다. 프로젝트 수준 보고를 사용하면 프로젝트의 모든 앱에서 어떤 일이 발생하는지 확인할 수 있으므로, 앱 비즈니스를 보다 전체적으로 파악할 수 있습니다. 한편, 유연한 필터를 통해 데이터를 보다 정밀하게 분류하여 키 통계를 생성할 수 있습니다. 이들 업데이트는 향후 몇 주 안에 배포될 예정입니다.


        오늘 저희는 Firebase 콘솔의 또 다른 업데이트를 출시합니다(개선된 사용자 및 액세스 관리). 이를 통해 여러분은 프로젝트에서 협업을 수행하도록 다른 사람들을 더욱 쉽게 초대할 수 있고 그들의 액세스 권한을 제어할 수 있으며, 이 모든 작업을 Firebase 콘솔 내에서 수행할 수 있습니다.




        Firebase Test Lab을 iOS로 확장

        Firebase에서는 Android와 iOS 모두에서 개발에 사용되는 제품을 빌드하는 것이 항상 매우 중요했습니다. 이러한 이유로 Android와 함께 iOS를 포함하도록 Test Lab 확장을 발표하게 되어 매우 기쁩니다.


        Test Lab은 실제 사용 환경을 시뮬레이션하기 위해 테스트를 실행할 수 있는 물리적 기기와 가상 기기를 제공합니다. iOS용 Test Lab이 추가됨에 따라 이제 여러분은 앱을 출시하기도 전에 Android와 iOS 모두에서 고품질의 앱을 구현할 수 있습니다.


        iOS용 Test Lab은 향후 몇 달 안에 배포될 예정입니다. 제품의 초기 테스터가 되고 싶으시면 지금 이 양식에 등록하여 대기 목록에 올려주세요.


        시작에 불과합니다

        지금까지 Firebase와 멋진 여정을 함께 해왔으며 이것은 단지 시작에 불과하다고 생각합니다. 저희는 Google Cloud Platform과의 통합을 끊임없이 강화해 나갈 것이며, 방대한 규모의 Google 인프라를 쉽게 활용할 수 있도록 만들 것입니다. 또한 여러분과 같은 개발자의 역량을 강화하는 머신러닝의 가능성에 대해 대단히 기대가 됩니다. Predictions 및 ML Kit는 처음 두 단계이지만 훨씬 더 많은 일을 할 수 있기를 기대합니다.

        언제나처럼 저희의 여정에 동참해 주셔서 감사드립니다. 이러한 여러 발표와 기타 내용에 대해 자세히 들어보시려면, Google I/O에서 열린 모든 토론 녹화를 YouTube 재생목록에서 확인하세요. 아직 Firebase 알파 프로그램에 가입하지 않으신 분은 지금 가입하셔서 플랫폼의 미래를 예측하는 데 도움을 받으세요.



        더 빠른 Android 앱 개발을 위해하기 위한 차세대 컴포넌트, 도구 및 아키텍처 지침인 Android Jetpack을 소개합니다.


        Android Jetpack은 새로운 Android 기능을 쉽게 활용하면서도 이전 버전과의 호환성을 유지하도록 해주는 컴포넌트 세트인 지원 라이브러리로부터 영감을 받았으며, 현재 Play Store 앱의 99% 가 사용하고 있습니다. 이러한 성공에 뒤이어 저희는 앱 수명 주기의 변화와 복잡성에도 불구하고 데이터를 더욱 쉽게 처리할 수 있도록 설계된 아키텍처 컴포넌트 를 소개했습니다. 겨우 1년 전에 I/O에서 이러한 컴포넌트가 소개된 후로 수많은 분들이 적용해 주셨습니다. LinkedIn, Zillow, iHeartRadio 등의 회사에서 버그 수가 더 줄었고, 더 많이 테스트할 수 있게 되었으며, 멋진 앱을 만드는 데 시간을 더 집중할 수 있었습니다.


        Android 개발자 커뮤니티는 명확했습니다. 개발자는 저희가 작업했던 기존의 컴포넌트를 좋아할 뿐만 아니라 더 많은 컴포넌트를 원한다는 것을 알게 되었습니다! 그래서 여러분에게 더 많은 것을 제공하는 것입니다.





        Android Jetpack이란?


        Android Jetpack은 멋진 Android 앱을 만들기 위한 컴포넌트, 도구 및 지침 세트입니다. Android Jetpack은 기존의 지원 라이브러리와 아키텍처 컴포넌트를 하나로 모아서, 다음과 같은 네 가지 범주로 배열합니다.




        Android Jetpack은 기본 Android 플랫폼에 속하지 않는 "별도의" 라이브러리로서 제공됩니다. 즉, 여러분이 원하는 속도와 원하는 때에 각 컴포넌트를 채택할 수 있습니다. 새로운 Android Jetpack 기능이 나올 경우 이 기능을 자신의 앱에 추가하고, Play 스토어에 배포하고, 새로운 기능을 사용자에게 제공할 수 있으며, 이 모든 과정을 단 하루만에 수행할 수 있습니다! 개별로 제공되던 Android Jetpack 라이브러리는 모두 새로운 androidx.* 네임스페이스로 이동되었습니다(이 게시물에 자세히 설명).


        또한 Android Jetpack은 특정 버전에 관계없이 기능을 제공하도록 빌드되고 이전 버전과의 호환성을 제공하기 때문에, 다양한 버전의 플랫폼에서 앱을 실행할 수 있습니다.


        게다가 Android Jetpack은 Kotlin 통합과 같은 생산성 기능뿐만 아니라 관심사와 테스트 가능성의 분리와 같은 현대적인 디자인 관행을 기반으로 빌드됩니다. 이렇게 하면 강력한 성능의 고품질 앱을 더 적은 코드로 훨씬 더 쉽게 빌드할 수 있습니다. Android Jetpack의 컴포넌트는 함께 작동하도록 빌드됩니다. 예를 들어, 수명 주기 인식 및 라이브 데이터의 경우 이 모두를 사용할 필요가 없으며, 문제를 해결하는 Android Jetpack의 부분들만 통합하고, 이미 잘 작동 중인 앱 부분들은 그대로 유지할 수 있습니다.


        아래와 같은 피드백 때문에 이러한 혜택이 여러분에게 중요하다는 사실을 알고 있습니다.


        "저희는 저희 코드 베이스에서 MVVM을 적용해볼 생각이었으며, Android 아키텍처 컴포넌트는 그 구현을 위한 쉬운 템플릿을 제공했습니다. 또한 코드의 테스트 가능성이 더욱 좋아졌고, ViewModel을 유닛 테스트하는 기능 덕분에 코드의 견고성이 확실히 향상되었습니다."


        -- Sumiran Pradhan, 선임 엔지니어, Zillow


        회사들이 Android Jetpack 컴포넌트를 어떻게 사용 중인지 자세히 알아보려면, Android 개발자 사이트에서 개발자 스토리를 읽어보세요.


        마지막으로, 위의 Android Jetpack 다이어그램에서 볼 수 있듯이 오늘 저희는 새로운 컴포넌트도 함께 발표합니다.






        새 소식


        Android Jetpack에는 다섯 가지 새로운 컴포넌트가 제공됩니다.
        • WorkManager 알파 릴리스
        • Navigation 알파 릴리스
        • Paging 안정적 릴리스
        • Slices 알파 릴리스
        • Android KTX(확장 프로그램) 알파 릴리스


        WorkManager



          WorkMananager는 제약 조건 기반의 백그라운드 작업(실행 보장이 필요한 작업)을 위한 원스톱 솔루션을 제공하는 강력한 성능의 새로운 라이브러리이며, 작업 또는 SyncAdapter 등을 사용할 필요가 없습니다. WorkManager는 단순화된 최신 API를 제공하며, Google Play 서비스가 있든 없든 상관없이 기기에서 작업하는 기능, 작업 순서를 생성하는 기능 그리고 작업 상태를 쿼리하는 기능을 제공합니다. 초기 피드백은 매우 고무적이지만 여러분의 사용 사례도 함께 다루고자 합니다. WorkManager에서는 지금까지의 내용을 확인할 수 있고 알파 릴리스에 대한 피드백을 보낼 수 있습니다.




          Navigation



          액티비티는 시스템에 앱의 UI에 대한 진입점을 제공하는 반면, 서로 간에 데이터를 공유할 때 유연성이 부족하므로 전환은 인앱 탐색을 구성하기에 이상적인 아키텍처가 아닙니다. 오늘 저희는 인앱 UI를 구성하기 위한 프레임워크로서 Navigation 컴포넌트를 발표했으며, 단일 액티비티 앱에 적용할 수 있는 아키텍쳐를 만드는데 초점을 맞췄습니다. 바로 사용할 수 있는 Fragment 지원을 통해 아키텍처 컴포넌트의 모든 이점(예: 수명 주기 및 ViewModel)을 누릴 수 있으며 Navigation이 FragmentTransactions의 복잡성을 자동으로 처리해 줍니다. 또한 Navigation 컴포넌트는 자동으로 처리되는 전환을 개발자가 선언할 수 있고, 올바른 Up 및 Back 동작을 자동으로 빌드하고, 딥 링크의 완벽한 지원을 포함하고, 적절한 UI 위젯(예: 탐색 창 및 하단 탐색)에 Navigation을 연결하기 위한 도우미를 제공합니다. 그러나 이게 전부가 아닙니다. Android Studio 3.2의 Navigation Editor를 사용하여 다음과 같이 탐색 속성을 시각적으로 확인하고 관리할 수 있습니다.




          Navigation 컴포넌트도 알파 버전이며 여러분의 피드백을 환영합니다.




          Paging


          앱에 표시되는 데이터가 대용량이고 로드 시간이 오래 걸릴 수 있으므로, 너무 많은 데이터를 한꺼번에 다운로드하거나 생성하거나 표시하는 것을 피하는 것이 중요합니다. Paging 컴포넌트 버전 1.0.0에서는 RecyclerView의 빠른 무한 스크롤을 통해 대용량의 데이터 세트를 쉽게 로드하고 표시할 수 있습니다. 또한 페이징된 데이터를 로컬 저장소, 네트워크 또는 둘 모두로부터 로드할 수 있으며, 콘텐츠가 로드되는 방법을 정의할 수 있습니다. 이 컴포넌트는 Room, LiveData 및 RxJava에서 바로 사용할 수 있습니다.




          Slices


          끝으로, Android Jetpack에 처음 선보이는 새로운 기능 세트인 Slices 컴포넌트입니다. "슬라이스"는 여러분의 앱 UI를 Google 어시스턴트 내에 검색 결과로 표시하는 방법입니다.




          Android 개발자 웹사이트에서 Slices 컴포넌트에 대한 모든 정보와 이 컴포넌트를 자신의 앱에 통합하는 방법을 배울 수 있습니다.




          Android KTX


          마지막으로, Android Jetpack의 목표 중 하나는 생산성을 더욱 높여주는 Kotlin 언어 기능을 활용하는 것입니다. Android KTX에서는 다음과 같은 Kotlin 코드를


          view.viewTreeObserver.addOnPreDrawListener(
           object : ViewTreeObserver.OnPreDrawListener {
             override fun onPreDraw(): Boolean {
               viewTreeObserver.removeOnPreDrawListener(this)
               actionToBeTriggered()
               return true
             }
          });


          보다 간결한 다음과 같은 Kotlin 코드로 변환할 수 있습니다.


          view.doOnPreDraw { actionToBeTriggered() }


          이것은 Kotlin 지원을 Android Jetpack 컴포넌트에 제공하기 위한 첫 단계에 불과하며, 저희의 목표는 Kotlin 개발자를 위해 Android Jetpack을 멋지게 만드는 것입니다(물론 Java 개발자도 함께!). Android 개발자 웹사이트에서 Android KTX에 대해 자세히 알아보세요.




          시작하기


          developer.android.com/jetpack에서 Android Jetpack을 시작할 수 있습니다. Android Jetpack용 문서와 동영상을 찾아보시고 Android Jetpack 컴포넌트의 새로운 기능에 대해 알아보세요. 또한 커뮤니티에 참여하여 저희에게 피드백을 보내주세요. 또한 저희가 만든 Android Jetpack 전용의 YouTube 재생목록에서 Android Jetpack, 컴포넌트, 도구 및 모범 사례에 대한 정보를 찾아볼 수 있습니다.


          Android Jetpack 시작하기에서는 Android Jetpack 컴포넌트를 기존 앱으로 가져오는 방법에 대해 알려주며, 새로운 Android Jetpack 앱을 시작하도록 도와줍니다. Android Studio 3.2에는 Android Jetpack을 위한 훌륭한 도구 지원이 있습니다. 새로운 앱을 빌드할 경우, Activity & Fragment+ViewData 액티비티를 사용하세요. 이 액티비티는 Android Studio의 File | New | New Project에서 찾을 수 있습니다.






          다음 단계


          Android Jetpack으로 저희는 지원 라이브러리와 아키텍처 컴포넌트의 이점을 활용하고 있으며 새로운 컴포넌트, Android Studio 통합 및 Kotlin 지원을 통해 한 단계 더 발전시키고 있습니다. Android Jetpack은  더 빠른 Android 개발을 위한 차세대 컴포넌트, 도구 및 지침을 제공하지만, 저희는 훨씬 더 많은 일들을 하고 싶고 그러려면 여러분의 도움이 필요합니다. developer.android.com/jetpack으로 가서 더 나은 Android 앱 빌드 환경을 만들기 위해 저희가 무엇을 할 수 있는지 알려주세요.