[go: up one dir, main page]

작성자: Eric Bahna (제품 관리자)

이 글의 원문은 여기서 확인 가능하며, 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다. 



저희 팀은 3월에 Jetpack의 일부로 자동차용 Android 앱 라이브러리를 게시했고 대부분의 개발자들은 이미 구현을 이 라이브러리로 마이그레이션했습니다! 훌륭한 파트너의 앱이 등장했으며 새로운 앱에 대한 운전자들의 반응 역시 뜨거웠고 내부 품질 측정 항목(quality metrics) 상의 결과도 긍정적이었습니다. 


Jetpack 라이브러리에서 실행 중인 파트너 앱(좌측 상단부터 순서대로): T map, Chargepoint,

Sygic, Flitsmeister, PlugShare, 2GIS, A Better Route Planner



여러분께 Android Auto 내비게이션, 주차 및 충전 앱을 프로덕션에 출시할 수 있다는 점을 알려드리게 되어 기쁩니다! 이 과정에 이르기까지 라이브러리, Android Auto, 게시 프로세스 안정화를 위해 많은 노력을 기울였습니다. 이제 프로덕션 출시로 운전자는 베타 프로그램에 가입할 필요 없이 자동차 화면에서 Android Auto 앱을 사용할 수 있습니다. 그 방법은 아래와 같습니다.  


Android for Cars App Library 1.0에 대해 의견 보내주시고 도움주셔서 정말 감사드립니다. 그동안 Android Auto 사용자로부터 가장 많이 받았던 요청 중 하나는 앱 카테고리를 더 늘려 달라는 것이었는데요. 이번 라이브러리와 관련된 저희 목표는 앱 품질 가이드라인(app quality guidelines)을 충족하면서도 500여 종 이상의 Android Auto 호환 차량 모델에 여러분의 앱을 쉽게 설치하여 사용할 수 있도록 하는 것입니다. 이 라이브러리는 복잡한 화면 폼 팩터(screen form factors)와 입력 모드(input mode)를 일반화했기 때문에, 여러분은 앱을 한층 돋보이도록 만드는데 더욱 집중하실 수 있습니다.  


이렇게 프로덕션 단계에서 내비게이션, 주차 및 충전 앱을 활성화하는 것은 큰 진전이자, 또 앞으로 이어질 긴 여정의 시작이기도 합니다. 앞으로 개발자 여러분께서 얼마나 멋진 앱을 만들어 주실지, 그리고 저희 역시 개발자 여러분들과 함께 얼마나 근사한 차량 내 경험을 제공하게 될지 많은 기대가 됩니다.


작성자: Anna-Chiara Bellini(Product Manager), Nick Butcher(Developer Relations)

이 글의 원문은 여기서 확인 가능하며, 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다. 

Android Show: Jetpack Compose, 2월 24일 오전 9시(PT)

Google은 모든 Android 플랫폼에서 네이티브 앱을 더 빠르고 쉽게 빌드할 수 있도록 디자인된 새로운 UI 도구 키트 Jetpack Compose의 베타 릴리스를 출시했습니다. Compose는 최신 선언형 Kotlin API를 제공해 훨씬 적은 코드만으로 보기 좋은 반응형 앱을 빌드하는 데 도움이 됩니다. 기존 Android 앱과 Jetpack 라이브러리와 통합하도록 빌드되어 있어, Android Views와 Compose를 결합해 자신에게 맞는 속도로 Compose 작성을 채택할 수 있습니다.

이번 베타 릴리스가 나오면서, Compose는 API까지 완비해 프로덕션 준비가 완료된 앱을 빌드하는 데 필요한 모든 기능을 갖추게 되었습니다. 베타는 API가 안정적이라는 의미이기도 하므로, API를 변경하거나 제거하지 않을 것입니다. 바로 지금이 Compose를 배우고, 또 올해 Compose가 1.0단계 이상에 이르면 향후 프로젝트나 기능에 어떻게 활용할 지 계획을 세우기 좋은 시점입니다.

베타 버전의 내용

저희 팀은 커뮤니티의 적극적인 피드백과 참여를 통해 Compose를 개발해오고 있습니다. 2019년에 오픈소스 개발을 시작한 이후로, 30회의 공개 릴리스를 발표하고 700여 건의 외부 버그를 해결했으며 외부 기여자로부터 200여 건의 제안을 받아들였습니다. 저희 팀은 개발자 여러분이 Compose로 무엇을 빌드하고 있는지 굉장히 궁금해하고 있으며, 보내주신 의견과 기능 요청을 사용해 API를 다듬고 작업의 우선순위를 정했습니다. 알파 릴리스 이후로 다음과 같은 여러 가지 새로운 기능을 추가하고 개선했습니다.

  • 🆕 코루틴 지원(Coroutines support)
  • 🆕 Talkback을 위한 접근성 지원 - 다른 기술을 위한 지원은 Stable 단계로 들어설 것임(Accessibility support for Talkback - support for other technologies will be in Stable)
  • 🆕 알파 릴리스 이후로 완전히 새로운 API와 함께 사용하기 쉬운 Animations.(Easy to use Animations, with a completely new API since alpha.)
  • Views와의 호환성(Interoperability with Views)
  • @Sampled 코드가 있는 Material UI Components(Material UI Components, all with @Sampled code)
  • Lazy List - Jetpack Compose에서의 RecyclerView(Lazy Lists - Jetpack Compose's take on RecyclerView)
  • DSL 기반 Constraint Layout(DSL-based Constraint Layout)
  • 한정자(Modifiers) 
  • 테스트(Testing)
  • Dark 모드와 Light 모드를 손쉽게 지원하는 Theming과 Graphics(Theming and Graphics, with easy support for Dark and Light mode)
  • 입력 및 제스처(Input and gestures)
  • 텍스트 및 편집 가능한 텍스트(Text and editable text)
  • 창 관리(Window management)

베타 릴리스를 위해 저희 팀은 API의 완성도를 보장하는 데 주력해왔습니다. 즉, 1.0 이상에서 계속 기반으로 삼아 빌드할 수 있도록 모든 기초적 API를 마련하는 데 주안점을 두었습니다. 앞으로는 앱 성능과 접근성에 특히 초점을 맞춰 1.0 릴리스까지 이들 API의 안정화 작업을 진행할 예정입니다.

Compose Beta는 다음과 같은 많은 새로운 도구를 갖춘 최신 Canary 버전인 Android Studio Arctic Fox의 지원을 받습니다.

🆕 Live Literals: 미리보기와 실제 기기 또는 에뮬레이터에서 실시간 리터럴 업데이트
🆕 Animation Preview: 애니메이션 검사 및 재생
🆕 Layout Inspector에서 Compose 지원
🆕 Interactive Preview: 격리된 상태에서 Composable 검사 및 상호 작용
🆕 Deploy Preview: 완전한 앱을 필요로 하지 않고 기기에 Composable 배포

Android Emulator의 Live Literals
Jetpack Compose용 Layout Inspector


기존 앱에서 작동 

Jetpack Compose는 Android Views와 원활히 작동하도록 설계되어 있으므로, 자신의 페이스에 맞춰 채택할 수 있습니다. Compose UI를 Android Views 내에 삽입하고 Compose 내에서 Views를 사용할 수 있습니다. 팀에서는 상호 운용성 문서(interoperability documentation)에 여러 가지 채택 전략을 마련해두고 있습니다.

View 상호 운용성 외에, 공통 라이브러리와 통합하여 기존 애플리케이션에 Compose를 추가하도록 지원하며, 이때 앱을 다시 작성하거나 다시 설계할 필요는 없습니다. 다음과의 통합 기능을 제공합니다.

  • Navigation
  • ViewModel
  • LiveData/Rx/Flow
  • Paging
  • Hilt

MDC-Android Compose Theme AdapterAccompanist 라이브러리는 MaterialAppCompat XML 테마와의 통합을 제공하므로, 테마 정의(theme definitions)를 복제할 필요가 없습니다. Accompanist는 공통 이미지 로딩 라이브러리(image loading libraries)를 위한 래퍼(wrappers)도 제공합니다.

Compose 방식으로 생각하기

Jetpack Compose는 선언형 UI 도구 키트로, 주어진 애플리케이션 상태에 대해 UI를 어떻게 만들 것인가가 아니라, UI가 어떤 모습이어야 할지 설명한다는 점에서, 현재의 View 시스템에서 패러다임의 전환이 이루어진 도구 키트입니다. UI를 원하는 상태로 조작하는 것은 지루하고 오류 발생 가능성도 많을 수 있는 일인데, 앱 상태가 바뀔 때 Compose가 UI 업데이트를 처리해주므로 이처럼 UI를 조작할 필요가 없습니다.

전적으로 Kotlin으로 빌드된 Compose는 Kotlin의 훌륭한 언어 기능(launguage features)을 이용해 강력하면서도 간결하고 직관적인 API를 제공합니다. 예를 들어 코루틴(Coroutines)을 사용하면 제스처(gestures), 애니메이션(animation) 또는 스크롤(scrolling)과 같이 훨씬 더 간단한 비동기 API를 작성할 수 있습니다. 따라서 애니메이션으로 전달하는 제스처와 같은 비동기 이벤트를 전부 구조화된 동시성(structured concurrency)에 의해 제공되는 취소 및 정리와 결합하는 코드를 작성하기가 더 쉬워졌습니다.

Compose 학습

개발자 여러분께서 Jetpack Compose을 좀 더 수월하게 시작할 수 있도록 관련 영상, 실습 코드랩, 주요 문서를 정리하여 학습 경로를 업데이트했습니다. Compose를 사용해 빌드하는 방법을 더욱 자세히 알아보실 수 있도록 신규 및 업데이트된 문서 가이드, 다양한 스크린캐스트(screencasts), 새로운 Animation Codelab을 발표합니다. 아키텍처(architecture), 접근성(accessibility), 테스트(testing)에 관한 지침부터 애니메이션, 목록 또는 Compose 방식으로 생각하기에 관해 심화된 내용까지, 빠르게 배우는 데 도움이 되는 가이드를 마련해두고 있습니다.

Compose가 실제로 사용되는 사례를 바로 확인하고 싶으신 분들을 위해 8가지의 공식 샘플 애플리케이션도 제공해 드립니다. 간단한 것부터 복잡한 것까지, 제각기 다른 API와 사용 사례를 샘플을 통해 살펴보실 수 있습니다. 더 자세한 내용은 readme를 읽어보세요.

작성자: Rohit Sathyanarayana (Software Engineer) 

이 글의 원문은 여기서 확인할 수 있으며 블로그 리뷰에는 김태호(Google)님이 참여해주셨습니다.


지금까지 DataStore를 프로토콜 버퍼(Protocol Buffer) 또는 Preferences와 함께 사용하는 방법을 공유해 드렸습니다. 실제로는 두 DataStore 버전 모두 프로토콜 버퍼를 사용하여 데이터를 직렬화합니다. 이 뿐만 아니라, Kotlin Serialization과 커스텀 데이터 클래스(data class)를 활용하여 DataStore를 사용할 수도 있습니다. 그러면 데이터를 위한 스키마(schema)를 계속 제공함과 동시에, 프로토콜 버퍼 라이브러리를 사용 혹은 학습하지 않아도 번잡한 코드(boilerplate code)를 줄일 수 있습니다.

 

수행해야 할 작업은 다음과 같습니다.

  • 데이터 클래스 정의하기
  • 데이터 클래스의 불변(immutable) 확인하기
  • Kotlin Serialization을 사용하여 DataStore Serializer를 구현합니다.
  • DataStore Serializer 사용합니다.

데이터 클래스 정의

Kotlin 데이터 클래스는 Kotlin Serialization과 원활하게 작동하므로, DataStore와 함께 사용하기에 매우 적합합니다. DataStore를 사용하려면 equals와 hashCode 메서드가 필요한데요, 데이터 클래스는 이를 자동으로 생성해줍니다. 이 뿐만 아니라, 데이터를 디버깅하고 업데이트하는 데 유용한 toString 함수와 copy 함수도 생성해줍니다.

https://gist.github.com/rohitsat13/3d69af889f718cd5c265bc433b15aa88

 

데이터 클래스의 불변(immutable) 확인하기

DataStore는 가변(mutable) 유형과 호환되지 않으므로, 반드시 불변(immutable) 형태의 클래스를 사용해야 합니다. 만약 가변 유형 클래스를 사용하는 경우, 버그와 경쟁 상태(race conditions)를 포착하기 어려워집니다. 


하지만, 데이터 클래스라고 해서 반드시 변경 불가능한 것은 아닙니다.

 

var는 변경 가능하므로, val을 대신 사용해야 합니다.

https://gist.github.com/rohitsat13/03fb3811251db0818d96436b059a1f86

 

배열(arrays)은 변경 가능하므로, 배열을 노출하면 안 됩니다.

https://gist.github.com/rohitsat13/db8142ea04bc2e67afd8375d30c787c0

 

읽기 전용 List를 데이터 클래스의 멤버로 사용하더라도 클래스는 변경될 수 있습니다. 그러므로 그 대신 변경 불가능(immutable)하거나 영속적인 컬렉션(persistent collections)의 사용을 고려해야 합니다.

https://gist.github.com/rohitsat13/6eac5886bf05931add6f4debb5a01fd9

 

데이터 클래스 멤버로 가변 유형 클래스를 사용하는 경우, 클래스가 변경될 수 있습니다. 그러므로 반드시 모든 멤버가 변경 불가능한 유형이 되도록 해야 합니다.

https://gist.github.com/rohitsat13/1896fa8a799403bf780c78ae645d8af9

 

DataStore Serializer 구현

Kotlin Serialization은 JSON 및 프로토콜 버퍼를 포함한 여러 형식을 지원합니다. 무척 흔하고 사용하기 쉬울 뿐 아니라 일반 텍스트로 저장되어 디버깅하기도 쉽기에, 저는 JSON을 사용하려 합니다. 더 작고 빠르며 protobuf-lite와 호환되는 프로토콜 버퍼를 선택하는 것도 좋습니다.

 

Kotlin Serialization을 사용하여 데이터 클래스를 읽고 JSON에 쓰려면 @Serializable로 데이터 클래스에 주석을 달고 Json.decodeFromString<YourType>(string) 및 Json.encodeToString(data).를 사용해야 합니다. 다음은 UserPreferences를 사용하는 예입니다.

https://gist.github.com/rohitsat13/137270aac38bf01d788d3ffccdd60f28

 

⚠️ Android 버전 간에 데이터 형식이 바뀔 수 있으므로 Parcelable을 DataStore와 함께 사용하기에는 안전하지 않습니다.

Serializer 사용

DataStore를 만들 때, 앞에서 만든 Serializer를 넣어줍니다.

https://gist.github.com/rohitsat13/1dc3f56de1e5b131aca628bb2a5224a6

 

프로토콜 버퍼에서 데이터를 읽는 방식과 동일해 보입니다.

https://gist.github.com/rohitsat13/1bf30e6da22072fd52ab8554e8a8f54f

 

생성된 .copy() 함수를 사용하여 데이터를 업데이트할 수 있습니다.

https://gist.github.com/rohitsat13/edc2bcaec09d55e37c45a2be4d3afaf6

 

결론

Kotlin Serialization과 데이터 클래스와 함께 DataStore를 사용하면 번잡한 코드(boiler plate)를 줄이고 코드를 간결하게 만들 수 있지만. 하지만, 변경 가능성(mutability)을 통해 버그가 발생하지 않도록 주의해야 합니다. 데이터 클래스를 정의하고 Serializer를 구현하기만 하면 되므로, 여러분도 직접 시도해 보세요!

 

DataStore에 관해 더 자세히 알아보려면 저희 팀에서 작성한 문서를 확인해 보시고, Proto DataStore Preferences DataStore 코드랩을 통해 경험을 쌓아보세요.

 작성자: 유민정(Minjung You)/권순선(Soonson Kwon) 구글 머신러닝 개발자 생태계 프로그램 매니저


머신러닝/인공지능이 더욱 많은 분야에 적용되면서 머신러닝 관련 인력에 대한 수요도 크게 증가해 왔습니다. 이에 머신러닝 개발자를 양성하고 이들이 관련 분야에서 경력을 쌓을 수 있도록 하기 위해 구글 코리아와 11번가, 버즈빌, 코스맥스, 데이블, 당근마켓, 하이퍼커넥트, 카카오 모빌리티, 엔비티, 노타, 스마일게이트, 보이저엑스, 메쉬코리아가 함께 지난 2020년 10월 중순부터 약 3개월 동안 머신러닝 개발자 양성 및 채용 프로그램인 ‘머신러닝 부트캠프'를 진행하였습니다. 텐서플로우, 클라우드 등 다양한 소프트웨어 및 관련 기술의 진화로 머신러닝의 장벽이 낮아지고 있어 일반 개발자들도 교육을 통해 머신러닝 개발자로 성장하기에 충분한 환경이 만들어졌다고 판단하였기 때문입니다.


이 프로그램에 함께한 보이저엑스의 남세동 대표는  “수포자라는 말이 있을 정도로 많은 사람들이 수학을 어렵게 생각합니다만 초등학생도 수학을 배울 수 있고 실제로도 배웁니다. 머신러닝도 어렵다고 생각하고 멀리하는 분들이 많습니다. 저는 한 사람의 개발자로서 그리고 인공지능 스타트업의 대표로서 그것이 대단히 안타까웠습니다. 이번 머신러닝 부트캠프를 통해 더 많은 분들이 더 쉽게 머신러닝과 인공지능을 이해하게 되기를 기대한다" 며 참여의 뜻을 전했습니다. 



머신러닝 부트캠프 참가자 모집이 시작되자 약 3천여 명의 개발자가 지원할 정도로 많은 분들이 관심을 보여 주셨습니다. 이후 프로그래밍 퀴즈와 서류 전형을 통해 선발된 참가자들은 딥러닝의 바이블로 불리는 Andrew Ng 교수의 Deep Learning Specialization 코스를 공통으로 수료하고, 구글의 텐서플로우 자격증 또는 구글 클라우드 머신러닝 엔지니어 자격증 중 하나를 취득하였습니다. 그리고 이후 구직 활동을 한 참가자들은 보이저엑스, 11번가, 스마일게이트, 하이퍼커넥트, 데이블, 노타 등 국내  IT 회사의 머신러닝 개발자 직군에 채용되는 성과를 얻었습니다. 


스마일 게이트  AI 센터 이경환님 (좌) / 보이저엑스 인턴 정영준님 (우)


참가자에 대한 지속적인 관심과 학습 분위기 조성 

스마일게이트 AI센터 AI전문가 직무에 최종합격한 이경환님은 재미있는 이력의 소유자입니다. 학부에서는 영어영문학과를 전공하였으나 웹개발자를 희망했고, 이후 대학원에 진학하여 데이터 사이언스를 공부하였습니다. 더 많은 경험을 위해 머신러닝 부트캠프를 선택하였을때 가장 큰 난관은 혼자서 온라인 강의를 수료해야 한다는 것이었습니다. 혼자서 공부하게 된다면 이 프로그램에 참여하는 의미가 없을 것이라고 생각하였지만 머신러닝 부트캠프에서는 매주 공부할 분량을 선정해 주고 일정을 관리해주어 참가자들의 원활한 학습이 이뤄지도록 하였습니다. 이경환님은 이렇게 학습분위기가 조성되었던 것이 포기하지 않고 끝까지 완주하는데 큰 도움이 되었고, 탄탄한 지식을 갖출 수 있게 해준 것 뿐만 아니라 정량적으로도 좋은 성과를 얻을 수 있게 해준 계기가 되었다고 이야기하였습니다. 




공동의 목적 달성을 위한 커뮤니티

편리한 삶을 돕는 인공지능 소프트웨어를 개발하고 있는 보이저엑스에 취업하게 된 성균관대학교 시스템경영공학과 3학년 정영준님은 함께 공부하는 참가자들과 소통하는 온라인 커뮤니티가 이 프로그램의 가장 큰 장점으로 뽑았습니다. 정영준님은 독학으로 머신러닝을 학습하면서 정보를 나누거나 함께 학습할 동료가 없어 어려운 점이 많았는데 이 프로그램에서 Slack을 통해 함께 동료들과 학습한 내용을 나누며 처음에 혼자 학습하였을 때 어렵거나 이해하지 못했던 것들을 배우게 되어 머신러닝 역량이 크게 향상함을 느꼈다고 합니다. 특히 텐서플로 개발자 자격증 또한 강의를 듣고 먼저 합격하신 분들의 후기를 통해 여러 팁을 얻어 합격할 수 있던 것도 커뮤니티의 도움이 컸기 때문이라고 전하였습니다.


현업의 생생한 경험을 듣는 커리어 세션

머신러닝 부트캠프에서는 매주 현업에 종사하고 있는 머신러닝 개발자와의 만남, 참가 회사들의 머신러닝 기술 소개,  비즈니스 소개 등 머신러닝 개발 현장을 간접적으로 경험할 수 있는 커리어 세션을 진행했습니다. 또한 레주메 클리닉을 통해 지원서 작성 방법 부터 포트폴리오 관리팁까지 장기적인 개발자 커리어 관리에 대한 노하우도 공유했습니다. 본 프로그램을 통해 11번가에 채용된 제인님은 이 세션들로 인해 각 참가 회사들과 채용 직무에서 어떤 일을 하는지 자세히 파악할 수 있었고, 이를 기반으로 관심 있는 회사를 선정하고 본인의 장점을 고려하여 지원 기업을 선택하여 좋은 결과를 얻을 수 있었습니다.  


더 많은 머신러닝 개발자를 양성하기 위해 머신러닝 부트캠프는 올해도 계속됩니다. 자세한 공지는 돌아오는 하반기에 구글 코리아 블로그와 구글 개발자 블로그를 통해 안내될 예정이니 많은 관심과 기대 부탁드리겠습니다! 


작성자: Manuel Vivo (Developer Programs Engineer)

이 글의 원문은 여기서 확인 가능하며, 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다. 

 

MAD Skills WorkManager, AndroidX, 오디오, UX, Wear OS Tiles, Jetpack Compose, 코루틴, #AndroidDevChallenge, 팟캐스트

Android 개발 분야의 새로운 소식을 안내해드리는 'Now in Android'에 오신 것을 환영합니다.

동영상 및 팟캐스트 형식의 NiA36

이번 회 Now in Android  역시 영상과 팟캐스트 형식으로 제공됩니다. 내용은 동일하지만 읽어야 할 분량은 더 적습니다. 이 콘텐츠에 정리된 링크를 클릭하시면 더 자세한 내용을 확인하실 수 있습니다.


팟캐스트

아래 링크를 클릭하거나 즐겨 사용하시는 팟캐스트 앱에서 구독해주세요. 

Now in Android : 36 - MAD Skills WorkManager, AndroidX, #AndroidDevChallenge 외 다수!


MAD Skills: WorkManager

WorkManager에 관한 시리즈는 앞으로 두 편 더 이어질 예정입니다!

백그라운드에서 작업: Android 앱에서 해서는 안 되는 작업이 있다면 그건 바로 UI 스레드 차단입니다. 이번 편에서는 Ben Weiss가 WorkManager를 사용하여 백그라운드 작업을 수행하는 방법을 설명하고, 활용 가능한 다양한 접근 방식도 소개합니다. WorkManager에서 사용하는 API는 실행자(Executors), 코루틴 또는 RxJava의 사용 여부에 따라 달라집니다. 이번 편에서는 작업 완료 시 결과를 반환하는 방법도 다룹니다. 그 밖에도, Ben은 필자가 지금까지 MAD 동영상에서 본 최고의 “Let’s go” 해석을 수행합니다.


고급 구성과 테스트
: 또한, Ben은 WorkManager의 초기화 사용자 설정 방법, 여러 프로세스에 걸쳐 사용되는 앱을 지원하는 방법, Worker를 테스트하는 방법을 설명하고, 몇 가지 유용한 디버깅 기술을 공유해드립니다.



AndroidX 릴리스

이번 AndroidX 릴리스는 대부분 버그 수정에 관한 것이었습니다! 정말 좋은 소식이죠! 개발자 여러분께서 라이브러리의 문제점을 찾아주시면 저희가 수정합니다. 서로에게 윈윈 이라고 할 수 있죠.

아시겠지만, 저는 Hilt 에서 작업합니다. 다른 섹션으로 넘어가기 전에 Hilt베타 단계로 승격되었다는 사실을 꼭 언급해야겠군요. ViewModel, WorkManager, Navigation을 지원하는 모든 Hilt API와 AndroidX 전용 API는 안정적입니다. 이미 알고 계실 수도 있지만, Hilt는 Android에서 Dependency injection을 위한 Jetpack의 권장 솔루션입니다. 그 일환으로, 서로 다른 Hilt와 Dagger annotation의 역할 과 그 사용 방법 을 빠르게 볼 수 있도록 요약본을 공개했습니다. 

한편, Jetpack Compose와 Navigation 구성요소를 사용하기 시작하는 분들을 위해 방금 hilt-navigation-compose라는 새 라이브러리를 출시했습니다. 이를 통해 Navigation Compose로 생성된 탐색 그래프의 대상으로 범위가 지정된 Hilt 제공 ViewModel을 검색할 수 있습니다. 자세한 내용은 이 문서를 읽어보세요.

기사, 문서, 동영상Android의 오디오 지연 시간에 관한 업데이트

Don Turner가 Android의 오디오 지연 시간에서 개선된 점과 이 지연 시간이 실시간 오디오 앱에 미치는 영향을 설명합니다. 이 기사에서는 생태계에서 변경된 사항과 향후 계획 및 Oboe 라이브러리로 지연 시간이 짧은 오디오 앱을 빌드하는 방법을 살펴봅니다.

Android의 오디오 지연 시간에 관한 업데이트 (국문본) 

Compose Preview의 UX 둘러보기

Jetpack Compose는 항상 사용자를 염두에 두고 개발되었습니다. 주 사용자는 저희에게 너무나 소중한 개발자 여러분들입니다. Preethi SrinivasParis Hsu가 Android Studio에서 Compose Preview 기능을 어떻게 설계했으며 다양한 UX 연구가 UX의 설계와 기능에 어떤 영향을 미쳤는지 설명합니다.

Compose Preview의 UX 둘러보기

Wear OS Tiles 알파 버전 발표

Wear OS 타일을 처음부터 새로 개선하고 있습니다! 아직 알파 버전인 새 Jetpack Tiles 라이브러리를 사용하면 앱을 열 필요 없이 Wear OS의 정보와 작업에 쉽게 액세스할 수 있는 맞춤형 타일을 만들 수 있습니다. 이런 기능은 향후 공개되는 Wear OS 플랫폼 업데이트를 통해 사용자에게 제공될 예정입니다. 이 라이브러리로 지금 바로 프로토타입 제작을 시작할 수 있습니다.

Jetpack Tiles 라이브러리로 Wear OS by Google에서 맞춤 Tile 만들기

Jetpack Compose의 API 지침

Jetpack Compose 팀이 관용구를 이용한 자연스러운 Jetpack Compose API를 작성하기 위한 패턴, 모범 사례, 스타일 지침 등의 API 지침을 공개했습니다. 관용적인 Compose 코드를 작성하는 데 유용한 가이드로, Compose API에 대한 전반적으로 이해하시는데에도 도움이 됩니다.

함께 Android 코드 배워보기: 코루틴

Caren Chang과 필자가 Android에서 코루틴을 사용하는 방법을 설명하는 라이브 세션에 함께 출연했습니다. 저희는 코루틴 문서기본 코드랩을 살펴보면서 실시간 질의 응답 시간을 가졌습니다. 코루틴을 배우고 싶으면 Android Studio를 열고 이 영상을 보며 저희와 함께 코드를 작성해보세요!



팟캐스트 에피소드

또 한 편의 Android 개발자 백스테이지 에피소드가 지난번 Now in Android 이후로 새로 업데이트되었습니다. 아래 링크를 클릭하거나 즐겨 이용하시는 팟캐스트 앱에서 이번 에피소드를 확인해보세요.

ADB 158: Jetpack Compose… 이제는 베타!

Chet Haase, Romain Guy, Tor Norbye가 Jetpack Compose 팀의 4인방 Nick Butcher, Clara Bayarri, Leland Richardson, Adam Powell과 만나 “Compose 베타 버전”의 의미와 함께 Jetpack에서 제공하는 기능(예: 코루틴, 머티리얼 디자인 구현, ConstraintLayout)을 놓고 함께 토론을 진행했습니다.

158화: Jetpack Compose... 이제는 베타!

Android Developer Relations에서 인재 채용 중

Android Developer Relations 팀의 사명은 사람들이 훌륭한 앱을 빌드하도록 돕는 것입니다. 저희 팀과 함께하고 싶으신가요? 현재 전 세계를 대상으로 직원을 모집 중입니다. 여러분의 관심을 끌 만한 자리가 있을지 모르니 확인해 보세요. 저희 업무에 대해 잘 모르는 분들은 Jacob Lehrbaum의 블로그 게시물을 보시면 도움이 될 겁니다. 현재 구인 중인 일자리에 대한 설명되어 있으니 참고해 주세요.

Android Developer Relations에서 인재 채용 중

마무리아쉽지만 오늘은 여기까지 하죠. 지난번 MAD Skills 시리즈에서 다룬 WorkManager에 관한 정보는 MAD를 참조하세요! 오디오 지연 시간, Compose Preview UX 둘러보기, 팀 채용 정보, 새로운 Wear OS Tiles 라이브러리, Jetpack Compose의 API 지침에 관한 기사를 읽어보세요! 코루틴에 관한 함께 Android 코드 배워보기 에피소드를 시청하세요! 최신 ADB 팟캐스트를 청취하세요! 저희 DevRel 팀에 합류하세요! 곧 다시 돌아와 Android 개발자 커뮤니티의 다음 업데이트 정보를 확인하세요.