한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
Google Play에서 홍보 그래픽을 국가별로 현지화하세요.
2012년 12월 21일 금요일
작성자: Ellie Powers, Google Play팀
Product Manager
작성일: 2012년 12월 20일
원문참고:
http://android-developers.blogspot.kr/2012/12/localize-your-promotional-graphics-on.html
Google Play는 자신이 개발한 앱을 전 세계 수많은 안드로이드 사용자에게 소개할 수 있는 통로입니다. 서비스가 시작된 2011년 이래, Google Play에서 앱을 판매할 수 있는 국가는 30 개국에서 최근에 이스라엘, 멕시코, 체코, 폴란드, 브라질, 러시아 등에서 유료 앱 서비스가 시작된 것을 포함하여 130 개국 이상으로 증가하였습니다. 또한 Google Play 앱에서 발생하는 수익 3분의 2 이상이 미국 밖에서 창출되고 있습니다.
이처럼 증가하는 국제 무대를 활용하기 위해서 이제 Google Play가 지원하는 49 개국 언어별로 Google Play 스토어 목록에 이미지와 동영상 URL을 추가하여 전 세계 사용자에게 자신의 앱을 훨씬 쉽게 선보일 수 있게 되었습니다. 현지화된 텍스트를 추가할 수 있게 된 것처럼 말이죠.
현지화된 추천 이미지에서 번역된 텍스트를 보여주거나 현지 국가의 명절을 반영하는 테마를 바꾸는 등, 현지의 기호를 가미할 수 있습니다. 반드시 추천 이미지는
다른 사이즈로도 동작해야 한다
는 것을 명심하세요.
자신의 앱을 현지화했다면, 모든 언어로 사용자에게 자신의 앱이 어떠한 동작을 하고 무슨 혜택을 주는지 알려주어야 합니다.
이미지 가이드라인
을 확인하시고 현지화 이미지 작업을 시작하세요.
현지화된 스크린샷을 통해서 사용자는 해당 앱이 자신이 쓰는 언어로 사용이 가능하다는 사실을 확실히 알게 됩니다. 현지화된 스트린샷을 이용하고자 할 때, 많은 사람들이 명절에 새 태블릿을 장만해서 새로운 앱을 설치한다는 사실을 기억하세요. 따라서 태블릿 레이아웃을 선보이기 위해서 태블릿 스크린샷을 위한 현지화 작업도 포함하는 것이 좋습니다.
이제 현지화된 동영상에 언어별로 목소리 더빙이나 텍스트를 포함할 수 있고, 사용자의 언어로 앱이 동작한다는 것을 보여줄 수도 있습니다.
Google Play 스토어 목록에 현지화된 이미지나 동영상을 추가할 준비가 되셨나요? 현지화된 이미지 및 동영상을 앱에 추가하려면,
Google Play 개발자 콘솔 프리뷰
를 사용해야 합니다. 현지화된 이미지를 추가하면 이전 버전을 사용해서 앱을 수정할 수가 없습니다. APK 확장 파일을 사용하는 분들은 해당 기능이 포함되어 있는 새로운 개발자 콘솔을 사용하는 것이 좋습니다. 조만간 Multiple APK도 지원을 추가할 예정입니다. 새로운 개발자 콘솔에 앱을 저장하면 추가 작업 없이도 웹이나 디바이스에서 사용자가 자동 번역 기능을 사용할 수 있습니다.
전 세계 사용자들에게 앱을 선보이기 위해서 여러분은 어떤 노력을 하고 계시나요?
간단하면서 더욱 강력해진 새로운 유튜브 Data API 출시!
2012년 12월 18일 화요일
작성자:
Raul Furnică
,
Vladimir Vuskovic
,
Pepijn Crouzen
(YouTube API Team)
2007년 처음 소개된 이후, YouTube Data API는 개발자 분들이 만든
멋진 앱들
덕분에 구글 제품 중에서도 요청(request) 양으로 볼 때 가장 인기있는 API 중 하나가 되었습니다. 여러분께 보다 더 통합된 동영상 경험을 제공해 드리기 위해서
YouTube API 3.0
이 출시되었습니다. YouTube API 3.0에서는 풍성한 클라이언트 라이브러리를 지원하고 개선된 툴, 레퍼런스 문서 및 구글의 일반 API 인프라와 통합된 서비스를 제공하여 보다 쉽게 사용하실 수 있습니다. 버전 3.0은 효율성을 높이기 위해 요청한 내용만 반환하며 XML 인코딩보다는 JSON을 사용합니다. 또한 주제를 통한
Freebase
연동과 유니버설 검색을 등 새로운 핵심 기능을 도입하였습니다. 소셜 미디어 관리 앱을 개발하고 있는 분들이라면 이번 출시에서 새롭게 소개된 채널 게시판과 전체 구독자 리스트 관리 기능을 아주 좋아하실 것입니다. API 버전 3.0이 지금까지 가장 대규모로 재정비 된 버전입니다. 지금
바로 확인
해 보세요!
신규 기능: 토픽, 유니버설 검색, 시청자 참여 지원
유튜브 동영상을 키워드로 검색을 했는데 애매모호한 결과만 보여준 적이 있나요?
Freebase
기능 덕분에 이제 새로운 Topics API로 검색 키워드가 아닌 Freebase 토픽 ID를 명시해서 자신이 원하는 정보를 정확하게 찾을 수 있습니다.
예를 들어, 미국 밖에서 이 포스팅을 읽고 있는데 미식 축구와 연관된 콘텐츠를 검색하고 싶다면,
/m/02vx4
가 자신이 원하는 토픽 ID일 것입니다. 새로운 API의
유니버설 검색
기능은
링크의 내용과
같은 요청을 통해서 주제와 부합하는 채널, 재생 목록, 동영상을 받을 수 있게 해줍니다. 자세한 내용은
Topics API 가이드
에서 확인하세요.
버전 3.0에서는 유튜브 시청자들이 참여하고 소통할 수 있는 보다 더 좋은 툴을 도입하였습니다. 새로운 기능으로 이제 소셜 미디어 관리 앱에서는 게시판
포스팅
을 통해서 콘텐츠 제작자들이
채널 구독자
들과 소통할 수 있는 장을 열어줄 수 있습니다.
유용성, 클라이언트 라이브러리, 개선된 툴 등등!
앱의 대역폭 요구를 줄이기 위해서 버전 3.0에서는 “
part
” 파라미터로 명시된 대로 요청한 정보만 반환합니다.
3.0 버전에서 디폴트 JSON 인코딩이 2.0 버전의 XML 보다 더욱 효율적이긴 하지만, JSON 파싱에 익숙하지 않으시다면 .NET, Dart, Go, Java, JavaScript, Objective-C, PHP, Python, Ruby를 위한
클라이언트 라이브러리
를 확인하세요. 라이브러리들은 OAuth 2.0 인증을 사용하며 YouTube API 및 기타 모던
구글 API
들과도 동작해서 여러분의 애플리케이션을 더욱 간소화시켜 줍니다.
API 콘솔
과 같이 익숙한 Google API 툴은 추가적인 번거로운 작업 없이도 YouTube API 버전 3.0과 동작합니다. 또한 API 레퍼런스 문서는 해당
페이지 하단
에서 API를 사용해 볼 수 있도록 스크롤됩니다. 그리고 지원되는 방식 목록 리스트를 둘러보기 위해서 독립형
API 탐색기
를 이용하실 수 있습니다.
앱 예제
3.0 버전이 실험단계에 있기는 하지만, 이미 상당수의 흥미로운 신규 앱들이 새로운 버전을 사용하고 있습니다 몇몇 사례들을 살펴 보겠습니다.
Showyou
는 인터넷을 더욱 쉽게 볼 수 있도록 만드는 앱입니다. Topics API를 연동하여 Showyou 피드와 관련된 토픽을 사용한 이후 사용자가 관련 동영상을 찾을 수 있게 해 줍니다.
아르헨티나에 기반을 둔
Interesante
는 Topics API를 연동하여 공유되고 있는 동영상의 Freebase 토픽을 결정합니다. Interesante는 인터넷 기반 동영상 추천을 위해서 해당 기능을 사용합니다.
FanBridge
는 팬 층을 성장시키고 관리하는 것을 전문으로 하는 기업으로, 최근에
스케줄 포스팅 기능
과 함께
채널 게시판
기능을 도입하였습니다.
Tubular Labs
는
유튜브 시청자 개발에 초점을 두고 있으며,
구독자 리스트
를 사용하여 콘텐츠 제작자가 시청자에 대한 이해를 높일 수 있도록 해주었습니다.
Pixability
는 유튜브 마케팅 소프트웨어를 전문으로 하고 있는 기업으로 새로은
Python 클라이언트 라이브러리
덕분에 빠르게
Online Video Grader
를 YouTube API 버전 3.0에 포팅할 수 있었습니다.
자세한 내용
YouTube API 버전 3.0에 대해서 자세히 알고 싶으시면,
API 문서
외에도
플레이리스트
에 소개된 내용으로 시작하세요. 최신 뉴스 업데이트를 받으시려면
개발자 채널용 유튜브
를 구독하세요.
소스를 사용하세요!
여러분이 직접 작업해 보실 수 있도록
Python
과
JavaScript
에 몇몇 코드 예제가 있으니 바로 시작해 보세요. 소스 코드는
code.google.com
에서 확인하실 수 있습니다.
GDE(Google Developers Expert) Summit 참가 후기
2012년 12월 18일 화요일
김용욱
GDE란?
구글에서는 구글 기술에 관심이 많은 개발자를 “
Google Developers Expert (GDE)
”로 선정하여, 개발자 커뮤니티 구성원들이 구글 엔지니어들과 소통하여 새로운 기술을 익히고 다양한 개발 경험을 공유하는 장을 마련하고 있습니다. GDE 선정 프로그램은 올해부터 도입된 것으로, 구글 개발자 커뮤니티에서 좋은 성과와 영향력을 보이는 개발자를 대상으로 매년 GDE를 선정합니다.
전 세계 GDE가 한자리에 모인 GDE Summit!
저는 이번에
Google Developers Expert
로 선정되어, GDE Summit에 다녀오게 되었습니다. 처음 GDE들을 만나게 되었을 때는 조금 놀랐습니다. 유럽, 아시아, 남미 등 여러 지역에서 온 다양한 개발자들이 한 자리에 모여 있었죠. 많은 개발자가 한 자리에 모이게 되자 조금은 긴장되고 흥분되더군요. 이렇게 다양한 인종의 개발자가 모이는 것도 처음이었고 각자 다른 기술을 가지고 있는 개발자인 것도 처음이었죠. 우리는 함께 셔틀 버스를 타고 들뜬 마음으로 구글로 이동했습니다.
많은 지역에서 다양한 인종의 개발자들이 모였습니다.
저는 아시아인들과 있었습니다. 제 뒷 열은 프랑스, 이탈리아 개발자들입니다.
그 다음으로 미국, 이스라엘, 인도 개발자들이 있네요.
한 시간 쯤 달려 구글 파트너 플렉스에 도착했습니다. 건물만 봐도 ‘아 딱 여기가 구글이구나’라는 정체성(?)이 느껴지는 건물이었는데요, 구글 파트너 플렉스를 보고 들뜬 사람은 저 혼자가 아니었던 것 같습니다. 많은 사람들이 사진을 촬영하고 SNS나 증강 현실 프로그램을 사용하더군요. 특히 잉그레스(Ingress)를 사용하시는 분들이 많았습니다. 참고로, 잉그레스는 구글이 만든 위치 기반 증강 현실 프로그램으로 건물이나 지형상에 있는 조형물로 점령하여 점수를 쌓는 일종의 게임입니다. 사람들이 부지런히 돌아다니며 사진을 찍거나 건물과 조형물들에 체크인 하더군요. 기술 선도 기업인 구글에서 첨단 기술의 앱을 사용하는 사람들을 보니 신기하고 재밌었습니다.
구글 파트너스 플렉스에 들어가 자리를 잡고 가방을 풀고 있으니 구글러 마이크 윈턴 (Mike Winton)이 들어왔습니다. 그가 자기 소개를 하면서 행사가 시작되었죠. 마이크 윈턴이 구글에 처음 온 것은 6년 전이라고 합니다. 그 때는 안드로이드도 없었고 크롬과 앱 엔진도 없었습니다. 구글은 사실 검색 엔진 회사라고 말하는게 가장 적합한 상황이었습니다. 그 후 6년 동안 어머어마한 변화를 겪은 것 같습니다. 구글이 만든 플랫폼인 크롬과 안드로이드, 그리고 그 위에 형성된 생태계. 수많은 구글 기술과 사용자, 개발자들이 함께 만들어내는 다양한 사용자 경험 속에서 지내게 되었습니다. 구글이 만든 플랫폼과 여러 기술들을 사용자와 개발자가 다양한 방식으로 사용함에 따라서 구글과 커뮤니티 간의 소통의 중요성이 대두된 것 같습니다. 한국에서도 구글 개발자 그룹 (
GDG - Google Developers Group
)의 형태로 구글 기술에 대한 커뮤니티들이 형성되고 있습니다.
운전사가 필요없는 자동차.
구글 드라이버리스 카에 대한 설명을 듣고 있습니다.
다음으로 구글러 아미르 시베트(Amir Shevat)의 주도로 자기소개 시간을 가졌습니다. 아미르를 시작으로 자신을 소개하고 직업 및 관심 분야 등을 설명하는 시간이었습니다. 정말 재미있는 분들이 많았습니다. 소개를 하면서 서로의 관심사와 지역을 물어보고 더 친해질 수 있는 계시가 되었습니다. 저는 제가 쓰는 영문 이름 리어나도 (Leonard) 때문에 많은 일이 있었습니다. 어떤 사람들은 제 이름이 디카프리오라고 농담을 하고 이탈리아인들은 저를 이탈리아 패밀리에 끼워주기도 하였습니다. 자기소개를 하고 나니 서로 서먹서먹함이 조금씩 줄고 조금 더 자신의 이야기를 쉽게 공유할 수 있었습니다.
일본에선 온 친구들 (왼쪽부터) 켄, 토루, 마샤입니다.
일본은 다양한 모임을 전국적으로 진행하고 있었습니다.
벤치 마킹! 일본 개발자 커뮤니티
아미르는 커뮤니티의 가치를 이야기하며 커뮤니티는 일방적으로 생기거나 뭔가를 주는 것이 아니라 서로 돕고 도우며 이루어지는 관계라고 이야기를 하였습니다. 그리고 일례로 일본의 커뮤니티를 소개하였습니다.
일본에서 커뮤니티와 행사가 어떻게 발전되었는지 일본 구글러 푸미 야마자키(Fumi Yamazaki)가 이야기를 이어갔습니다. 먼저 그녀는 GDE의 역사에 대해 이야기하여였습니다. GDE의 전신은 구글 API 전문가 과정으로 2008년 6월 10일에 시작되었습니다. 구글의 기술을 보다 개발자와 사용자 가까이에서 전하기 위해 시작한 이 프로그램은 성공적이었습니다. 이후에 이 프로그램을 확대하기 위해 이스라일에서 파일럿 과정을 거치고 그 이후에 전세계적으로 프로그램이 확장되었습니다.
일본의 개발자 커뮤니티를 소개했는데 인상적인 점이 두 가지 있었습니다. 첫째는 여러 기술을 함께 다룬다는 것이었습니다. 일본에는 2만 명이 넘는 개발자들이 커뮤니티에 참여하고 있는데, 특정 기술을 중심으로한 시간을 가진 다음에 다 같이 모여서 여러 기술을 경험할 수 있는 자리를 가집니다. 그러한 형태로 모임을 유지하여 관심 기술에 대한 깊이 있는 이해와 전체 기술에 대한 조감을 살펴 볼 수 있는 기회를 가진다고 합니다.
Google Developers Expert의 발표도 있었습니다.
케빈 무어는 익살스럽게 웹 기술의 차이를 소개하였습니다.
또한 전국의 커뮤니티가 같이 활동하는 점도 재미있었습니다. 보통 일반적인 모임은 사람이 많은 곳에서 주로 열립니다. 한국이라면 서울을 중심으로 열리고 다른 지역은 보통은 아무런 행사가 없거나 참관자로 함께 하죠. 일본의 모임은 구글의 행아웃 기술을 이용한 화상 연결을 기본으로 하고 있었습니다. 각 세션을 다른 지역에 있는 발표자가 행아웃으로 발표하고 그 내용을 서로 공유하고 함께 참여했습니다.
푸미의 케이스 소개를 마치고 나니 모두들 서로 지역에 있는 커뮤니티를 어떻게 운영해야 할지 많은 이야기를 나누더군요. 저도 일본의 커뮤니티 경험에서 많은 것을 배울 수 있었던 것 같습니다. 한국에서의 행사는 보통 세션별로 다른 방을 배정하여 진행하는 경우가 많아 구글 기술에 관심이 많은 사람들이 모여도 서로 어떤 기술이 있는지 다른 사람들이 관심을 가지는 기술을 이해하기 어려운 점이 있었습니다. 다트(Dart), 고(GO), 크롬, 안드로이드 개발자들이 모여도 서로 다른 장소에 있기 때문에 서로의 기술을 이해할 기회가 없었습니다. 같이 만날 일이 있어도 ‘저 기술은 모바일 기술이다, 시스템 프로그래밍 언어다, 웹 기술이다’ 라고 이야기하며 가끔은 동떨어진 기술인 양 이야기할 때도 있었습니다. 반면 일본의 경우에는 다양한 기술들을 함께 공유할 수 있는 기회를 가지고 있었습니다. 일본의 케이스는 우리의 활동에 대해서도 다시 생각해볼 수 있는 계기가 되었습니다.
서로의 피드백을 받으며 프레젠테이션도 연습하였습니다.
본격적인 GDE 프로그램, 구글의 기술을 살펴보자.
그 다음으로 본격적으로 GDE가 참석할 수 있는 시간이었습니다. 그 첫 번째는 프레젠테이션 스킬에 관한 시간이었습니다. 저는 프레젠테이션에 있어 중요한 것은 자료의 전달이기 때문에 어떤 형태로 어떤 내용을 담아 전달하는 것이 중요할까 생각했었습니다. 하지만 이 세션에서 이야기하는 것은 전혀 다른 내용이었습니다. 다른 사람에게 감정과 에너지를 어떻게 전달하느냐를 이야기했죠. 몇몇의 자원자를 각각 다른 기분으로 걷게 하고 기분을 느끼게 하는 것이나 각자 다른 기분일 때 말을 하는 연습과, 서로의 비음성 에너지에 대해 피드백을 하는 연습을 하였습니다. 저는 머리를 망치로 맞은 기분이었습니다. 어떤 감정과 어떤 에너지를 전달하느냐 그런 것에 대해 고민해 본적은 거의 없었습니다. 색다른 경험이라서 재밌게 참여할 수 있었습니다.
다음 날 행사는 두 가지 형태로 이루어졌습니다. 첫째는 전체 기술에 대한 조망이었습니다. 구글이 가진 다양한 기술에 대한 대체적인 설명과 근황을 소개했습니다. 두 번째로는 각 기술별로 구글 직원들과 모여 실제 해당 기술에 대한 깊이 있는 이야기를 나눌 수 있는 시간이었습니다.
프로페셔널 안드로이드 애플리케이션 개발로 유명한 리토 마이어입니다.
안드로이드 4.2의 변화를 자세하게 설명하고 있습니다.
첫 번째 소개된 기술은 역시나 안드로이드였습니다. 안드로이드는 요즘 정말 많은 사람들이 관심을 가지고 있습니다. 최신 버전 4.2의 변화들을 설명해주었습니다. 이전까지 굵직한 업그레이드가 주였다면 이번에는 운영체제 구석구석까지 사용자의 가려움을 긁어주더군요. 여러 국가용 폰트, 여러 국가용 사전, 다중 사용자, 더 나아진 위젯, 프래그먼트, 프레젠테이션 지원 등이 추가되었습니다. 안드로이드는 이제 디테일한 부분에 신경을 써 더 매끄러운 운영체제가 되어가는 것 같습니다.
다음으로 크롬 팀의 발표가 이어졌습니다. 크롬팀에서는 관점을 크롬 웹 브라우저 보다는 웹 생태계에 비중을 맞추고 있었습니다. 리얼타임으로 소리와 영상을 주고 받을 수 있는 WebAudio, WebRTC와 같은 기술도 중요했으며, 개발자를 편하게 할 기술과 도구에 대해서도 중요하게 생각하고 있었습니다. 자바스크립트 개발을 쉽게 해주는 AngularJS, 백엔드 통합을 쉽게 해주는 Yeoman, 크롬 앱스토어, 확장 기능, 강력한 웹 언어 다트(Dart)를 소개하였습니다. 앞으로의 웹 개발은 더 쉽고 강력하겠더군요.
다음으로 크게 할당된 세션은 구글 클라우드 세션이었습니다. 널리 알려졌던 클라우드 기술인 구글 앱 엔진부터 이야기를 시작했습니다. 앱 엔진을 사용하면 관리와 배포 문제에서 자유로워져서 웹 애플리케이션의 개발에만 집중할 수 있었습니다. 많은 웹 서비스에서 관리와 배포에 많은 비용과 인력이 들어가고 있는데, 구글 앱 엔진은 개발 단계를 조금 더 끌어올려줄 수 있겠다는 생각이 들었습니다. 또 구글 컴퓨트 엔진을 사용해서 더 쉽게 가상 머신을 이용한 분산 처리 환경을 쉽게 마련할 수 있게 되었습니다. 빅 쿼리(Bigquery) 기술도 흥미로왔습니다. 600기가 이상의 데이터에 대한 데이터를 SQL 언어로 30초만에 정규식 연산을 처리하는 것이 인상적이었습니다.
안드로이드에서 가장 큰 변화가 있었던 허니콤입니다.
몇 가지 기술들에 대한 종합적인 설명이 이어진 다음에 각 기술에 대한 모임을 가졌습니다. 저는 안드로이드 기술에 관심이 많아 안드로이드 팀과 대화를 했는데 흥미로운 시간이었습니다. 안드로이드는 다양한 하드웨어와 환경을 지원하기 위해 고도로 추상화된 환경입니다. 다양한 환경에 운영체제 서비스를 제공하는 것은 많은 사용자에게 훌륭한 경험을 주지만 반면에 개발자에겐 언제나 쉬운 일은 아니었죠. 다행히도 구글의 기술자들은 안드로이드의 다양한 도전에 대해 인지하고 있었습니다. 앞으로 안드로이드 개발자에 대한 지원은 점차 더 나아질 것 같습니다. 그들은 일관된 환경, 다양한 언어 사용자를 위한 문서화, 더 좋은 앱을 만들기 위한 생태계와 교육 문제에 대해 관심이 많았습니다.
전 세계 개발자들과 아이디어 공유
그 이후로는 많은 개발자들과 자유롭게 이야기하는 시간들을 가졌는데요, 정말 유익한 시간이었습니다. 제가 관심있는 기술에 대해 이야기를 나누면서 기술을 고도화할 수 있었습니다. 저는 개인적으로 씬 그래프 엔진에 대해 관심이 많습니다. 씬 그래프는 3D의 모델이 화면에 보이고 변화할 수 있도록 계층 구조를 만든 것입니다. 아르헨티나의 개발자 마티아스 모리나스 (Matias Molinas)와 안드로이드에서의 씬 그래프 엔진에 대해 깊은 이야기를 나누고 웹에서 3D 그래픽을 다루는 기술인 WebGL 영역에서도 여러 이야기를 나누었습니다.
또 제가 잘 모르던 기술에 대해서 도움을 받을 수 도 있었습니다. 저는 구글 맵스의 API를 직접 사용해 본적이 없었는데 프랑스의 개발자 시릴 모티어(Cyril Mottier)는 짧은 시간동안 안드로이드에서 맵을 사용할 때 어떤 점을 주의해야 하는지 어떤 것을 중심으로 해야하는지 설명해주었습니다. 이렇게 서로 정보를 교류하면서 기술을 고도화시켜갈 수 있는 것은 정말 놀라운 경험이었습니다.
전 세계의 Google Developers Expert가 한자리에 모여 사진을 찍었습니다.
GDE Summit, 그 이후
저는 이번 Google Developers Expert Summit을 통해 수많은 기술들을 쉽게 접근할 수 있었습니다. 제가 잘 모르는 기술에 대해 많은 개발자들에게 도움을 받을 수 있었습니다. 이를 통해 영감을 얻고 더 높은 기술에 대한 이해를 얻을 수 있었고 많은 친구도 사귈 수 있었습니다.
한국에서 많은 개발자들이 서로가 가진 유사한 기술에 대해서도 이야기를 나누며 답을 찾고 모르는 기술에 대해서도 소개할 수 있는 장을 만든다면 훨씬 더 나은 기술 문화를 만들 수 있을 것 같습니다. 이번 행사를 바탕으로 기술 커뮤니티의 더 나은 방안을 고민해보고 시도해보려 합니다. 다양한 기술들을 교류할 기회를 만들면 더 재미있는 것을 많이 할 수 있을 것 같습니다.
많은 이야기를 하면서 기술을 발전시키고 보다 더 나은 커뮤니티를 만들어 나가면 개발자의 입장에서도 시간을 절약하고 보다 좋은 앱을 만들 수 있을 것 같습니다. 앞으로 한국 커뮤니티에서도 더 많은 이야기를 나누고 보다 더 좋은 개발을 하고, 나아가 더 나은 세상을 함께 만들 수 있기를 바랍니다. 감사합니다.
* 한국 GDE 김용욱님은?
팅크웨어에서 일하고 있는 안드로이드 개발자로,
OpenGL ES를 이용한 모바일 그래픽에 관심이 많고 렌더스크립트 기술을 연구했습니다.
현재
GDG Android Korea
를 운영하며 많은 개발자와 안드로이드 기술을 교류하고 있습니다.
HackFair 출품작 소개 9탄! 언제 어디서든 우리는 개발한다, 구름 IDE
2012년 12월 17일 월요일
Anytime, Anywhere Development : 구름 IDE
1. 소개
‘구름 IDE’는 클라우드 통합 개발 환경을 제공하는 node.js 기반의 오픈 소스 프로젝트 입니다. 플랫폼과 브라우저에 구속받지 않고
언제(Anytime)
,
어디서든(Anywhere)
웹브라우저에서 일관된 개발 환경을 제공하는 것을 목표로 진행되고 있습니다. 구름 IDE를 통해 C/C++, Java, Go, Dart, Node.js, PHP, JSP등 다양한 언어를 이용하여
웹상에서 빌드, 디버깅, 실행 등의 개발
을 할 수 있으며, 플러그인 기능을 통해 얼마든지 확장 가능합니다. 또한 UI 작성 및 UML 작성 도구를 지원하고 실시간 협업 환경을 제공함으로써 개발 효율성을 극대화할 수 있다는 장점이 있습니다.
소개 동영상 :
http://www.youtube.com/watch?feature=player_embedded&v=xTJOa8sGfq0
▶ 홈페이지 :
http://goorm.io
▶ 페이스북 :
http://www.facebook.com/goormIDE
▶ 트위터 :
https://twitter.com/goormIDE
2. 사용한 구글 관련 기술
Chrome
HTML5
Go
Dart
3. goorm의 특징
1) 웹 브라우저만 있다면 어디서든지 개발
언제, 어디서든 웹을 통하여 곧바로 개발이 가능합니다!
2) 복잡한 개발환경 구성? 협업? 한 번의 설정으로 끝
단 한번의 설정으로 어디에서나 일관된 협업 개발 환경을 제공합니다.
3) 다양한 언어 지원, 확장성 있는 플러그인
C/C++, Java, Go, Dart, Node.js, PHP, JSP등 다양한 프로그래밍 언어를 지원하는 플러그인 뿐만 아니라 추가적인 기능을 제공하는 다양한 플러그인을 쉽게 설치/관리할 수 있습니다.
4) 실시간 협업을 통한 효율적인 개발
실시간 협업 기능을 통해 다른 팀원들과 함께 개발 할 수 있습니다. 또한 채팅, 슬라이드 공유 기능을 통하여 효율적인 의사소통을 할 수 있습니다. UML을 통해 SW를 함께 설계하는 것도 가능합니다.
5) 웹기반 터미널 기능
터미널 기능을 통하여, 구름에서 제공하는 기능 뿐만 아니라 터미널 명령어를 통하여 빌드 스크립트를 실행하거나 서버환경을 즉석에서 변경하는 등 더욱 자유로운 개발환경 구성이 가능합니다. 물론 금지명령어 설정이나 권한 제한을 통해 보안 설정도 가능합니다.
http://www.slideshare.net/jeg0330/goorm-15035830
Goorm
from
Eun-Gwi Jo
4. 설치방법 및 튜토리얼
http://goorm.io/community/tip?article_id=2
5. 앞으로의 계획
goorm은 통합 개발 환경을 지향하고 있습니다. 따라서 Python, Android 개발 등을 지원하기 위한 플러그인과 프로젝트 파일의 쉬운 접근, 관리를 위한 google drive / dropbox / ftp 지원 기능 등 클라우드 환경을 적극 이용한 goorm IDE만의 특별한 기능들을 준비하고 있습니다. 이런 기능 들을 묶어서 1월 말에 버전 1.1(코드명 뭉게구름)으로 정식 릴리즈할 계획입니다.
6. 라이센스
goorm은 GPL v3를 라이센스로 사용하고 있는 오픈 소스 프로젝트입니다. 어느 누구나 소스코드를 열람하고 사용할 수 있으나, GPL v3의 제약사항을 지켜주셔야 합니다. 대표적인 제약사항은
GPL
v3
의 소스코드를 특정한 제품에 포함시키거나 혹은 그와 함께 배포하는 경우에 해당 소스에 설치 정보(Installation Information)를 함께 제공해야 한다는 것입니다. 즉, 소스코드를 수정하시고 재배포 하신다면, 수정하신 소스코드도 공개하셔야 한다는 것입니다.
GPL v3에 대해, 좀 더 자세한 사항을 알고 싶으시다면,
http://www.gnu.org/licenses/gpl-3.0.html
를 참조하시기 바랍니다.
7. 이 글을 마치며
구글 헥페어를 통하여 많은 분들이 goorm을 기다리고 있다는 것을 알게 되었습니다. 저희의 공식적인 첫 자리임에도 불구하고, 오시는 분마다 관심을 가져주셔서 매우 놀랐고, 뿌듯했습니다. 이번 자리를 통해 보다 프로젝트에 애정과 열정이 실리지 않았나 생각됩니다.
goorm은 구글 헥페어에서 느낀 관심과 열정을 발판 삼아 계속 발전해 나갈 것입니다. 시간, 장소에 구애받지 않고 우리 모두가 개발을 할 수 있는 그런 날이 올 때까지 goorm! 화이팅!
8. 팀원 소개
류성태 (
sungtae.ryu@goorm.io
) ▶
Founder / Main Developer
성균관대학교 대학원생입니다. 리눅스 파일 시스템을 연구하고 있으며, 이외에도 node.js, 새로운 웹 기술, 클라우드 컴퓨팅 등에도 관심이 많습니다. goorm 프로젝트가 널리 이롭게 쓰였으면 좋겠습니다.
김누리 (
noori.kim@goorm.io
) ▶
Main Developer / Contributor
성균관대학교 컴퓨터공학과 학생입니다. 클라우드 기술과 Node.js, 모바일 프로그래밍 등에 관심이 있습니다. goorm의 기능 개발 및 버그 픽스를 맡고 있습니다.
안병웅 (
bu.ahn@goorm.io
) ▶
Main Developer / Contributor
성균관대학교 컴퓨터공학과 학생입니다. 클라우드 기술, 웹개발 및 최신기술에 관심이 많습니다.
조은귀 (
eungwi.jo@goorm.io
) ▶
Main Developer / Contributor
성균관대학교 컴퓨터공학과 학생입니다. 클라우드 기술, 웹개발 등에 관심이 있습니다.
(아래의 팀원들은 핵페어 신청 이후에 추가된 멤버들입니다.)
남유석 (
youseok.nam@goorm.io
) ▶
Main Developer / Contributor
성균관대학교 컴퓨터공학과 학생입니다. Node.js, Android, System Security에 관심이 있으며, goorm에서 전체적인 버그 체크와 버그 픽스를 맡고 있습니다.
최윤섭 (
yoonseop.choe@goorm.io
) ▶
Main Developer / Contributor
곧 졸업하는 김누리군의 학교 동기입니다. 국내 IT관련 N사에 취업할 예정입니다. / 안드로이드, 웹개발, 서버언어, SNS에 관심이 많습니다. / 홈페이지 유지보수, DB연동 등을 담당하고 있습니다.
HackFair 출품작 소개 8탄!~ 멀티 플랫폼/모바일 환경의 약점을 극복한다, IRCTalk~!
2012년 12월 14일 금요일
IRCTalk 소개
IRCTalk
은
지금까지 IRC가 단순한 서버-클라이언트 구조를 취하며 가져왔던 문제점인
멀티 플랫폼/모바일 환경
에서의 약점을 극복하였습니다.
기존 IRC
는 서버와 클라이언트가 직접 연결을 맺고 있어 연결이 끊어지는 경우 유저가 들어가 있던 채널에서 모두 퇴장하게 되고 이후의 대화 내용들을 놓칩니다. 특히 모바일 기기에서 3G/LTE 와 같은 모바일 네트워크를 이용할 경우 모바일 네트워크의 특성상 접속이 자주 끊어져 사용성이 크게 저하됩니다.
사람들은 자신이 창을 보고 있는 시간 외에 사람들이 나누었던 대화를 보기 위해서 자신이 가진 서버에서 IRC를 접속해두거나, 회사나 집을 오가며 여러 대의 컴퓨터를 사용하기 때문에 같은 채널에 불필요하게 여러 개의 닉네임으로 접속하는 경우가 있습니다. 뿐만 아니라 요즘에는 모바일 기기도 늘어나 한 사람이 한 채널에 여러 개의 닉네임으로 접속하는 경우가 늘어났습니다.
저희는 위와 같은 문제를 해결하기 위해 중간에서 IRC 연결을 안정적으로 유지해주는 시스템을 기반으로한 서비스를 목표로 프로젝트를 시작하게 되었습니다.
Why IRCTalk?
IRC 연결이 항상 유지됩니다.
컴퓨터를 켜지 않아도, 잠을 잘 때에도 IRC에 항상 접속해 있을 수 있습니다. 유저가 직접 접속하는 것이 아니라 IRCTalk서버가 IRC에 접속을 맺고 있습니다. 유저는 IRCTalk 클라이언트에서의 접속 유지에 신경을 쓰지 않아도 됩니다. 대화 내용은 저장되어 나중에 놓친 대화를 살펴볼 수 있습니다. 대화 내용은 일정 기간 보관 후 폐기됩니다.
멘션이 왔을 때 모바일 클라이언트에 푸시로 전달해 드립니다.
기존의 IRC 바운서 서비스들은 IRC연결이 서버상에서 접속되어 있더라도 클라이언트가 접속되어 있을 때만 멘션 알림을 받을 수 있었습니다. 멘션 알림이란 특정 상대방에게 꼭 봐야 할 내용이 있을 경우 상대방의 닉네임을 명시하면 클라이언트에서 알림을 표시해주는 기능입니다. 하지만 IRCTalk에서는 클라이언트가 접속되어있지 않더라도 푸시가 지원되는 플랫폼(Android 등)에서 푸시 알림을 전송하여 중요한 메세지를 놓치지 않게 해줍니다.
멀티 플랫폼을 지원합니다.
안드로이드, 웹(HTML5) 클라이언트가 현재 활발히 개발 중에 있으며 차후 iOS도 지원 예정입니다.
멀티 디바이스 이용을 지원합니다.
구글 계정을 이용하여 사용자 인증을 하고 있기 때문에 같은 구글 계정을 연동해 놓은 환경에서는 동일하게 동작합니다. 또한 여러 기기에서 동시에 접속해도 모든 디바이스에서 사용할 수 있도록 설계가 되어 있어서 멀티 디바이스를 사용하는 유저들도 아무런 제약없이 사용할 수 있습니다.
IRCTalk의 간단한 구성
IRCTalk 서버는 Go로 구현되어 있습니다. Go는 구글에서 만든 언어로 C++과 많은 점이 닮아 있지만 현대적인 요소들이 가미된 언어입니다. 이번 핵페어를 기회로 Go를 공부하면서 서버를 구현해 보기로 했습니다. 기존에는 App Engine에 적용하는 용도로 Go를 많이 사용하고 있고, Stand-Alone 서버로는 적용 사례가 많이 없기에 도전하는 마음으로 시도해 보았습니다.
IRCTalk 서버는 2개로 구성되어 있습니다. 클라이언트와의 통신을 담당하는 Websocket 서버(Frontend)와 IRC서버들과의 접속을 유지하고 관련된 메시지들을 처리하는 IRC Relay 서버(Backend)로 이루어져 있습니다. DB는 Redis를 사용하고 있습니다. 클라이언트와 Frontend서버와의 통신은 다양한 플랫폼을 지원하고 빠른 반응성을 위해 Websocket을 사용하였습니다. Frontend서버에선 사용자 인증 및 DB로부터 대화목록 정보를 읽어와 클라이언트로 전송하는 기능을 합니다.
클라이언트에서 IRC관련 요청을 할 경우 Frontend서버에서 Backend서버로 메세지를 ZeroMQ를 통해서 전달합니다. Backend서버에서는 Frontend서버로부터 온 메세지를 처리하고 접속된 IRC서버들로부터 온 메세지를 DB에 저장하고 클라이언트로 실시간으로 전송해야할 메세지들은 ZeroMQ를 통해 Frontend서버로 전달해서 접속된 클라이언트로 보내어집니다. 이때 IRC서버로부터 멘션이 왔을 경우 접속된 클라이언트들에게는 Websocket채널로 알림 메세지가 전송이 되며 접속되어있지 않은 등록된 디바이스들에는 PushAgent를 통해서 푸시알림 메세지를 전송합니다.
앞으로...
아직은 개발 단계이기 때문에 미구현 기능들이 많고 잔 버그가 있습니다. 앞으로 몇 주 내에 closed beta
공개를 목표로 기능 구현 및 버그 수정 작업을 하고 있습니다. closed beta 서비스를 통해 확장성 및 안정성을 검증 및 보완해서 정식으로 서비스를 하는 것이 목표입니다. IRCTalk을 통해 모바일 시대에 잊혀져 가는 IRC를 되살리고 Go 언어의 가능성을 보여줄 수 있었으면 합니다. 또한 Hackfair라는 행사를 통해 시작된 프로젝트가 행사 이후에도 계속해서 개발되고 실제로 서비스 되는 의미 있는 사례가 되었으면 합니다. 끝으로 아래 링크에서 베타 참여 신청을 받고 있으니 많은 지원 부탁 드립니다.
Closed beta 참여 신청
-
http://ircta.lk
시연 영상 -
http://youtu.be/hsQHr3DWZo0
IRCTalk 팀원
정주영
(
@iamquadr
)>
서버 개발 및 설계를 담당하였습니다. 게임 개발을 해오다 현재 카카오에서 서버 및 클라이언트 개발을 하고 있습니다. 아직도 게임 분야에 관심이 많으며 주변 개발자들과 취미 코딩 모임을 열고 참석하기도 합니다.
김동우
(
@dongwookim
)>
웹 버전 클라이언트를 담당하였습니다. javascript 및 css에 매우 능숙하며 iPhone개발도 많이 하고 있습니다. 카카오에서 일하고 있으며 많은 프로젝트에 기여하고 있습니다.
박영훈
(
@eie
)>
안드로이드 클라이언트를 담당하였습니다. 카카오에서 일하고 있으며 안드로이드 클라이언트 개발을 하고 있습니다.
인앱 결제 (In-App Billing) 버전 3 출시!
2012년 12월 14일 금요일
작성자: Bruno Oliveira (Android Developer Relations Team)
작성일: 2012년 12월 10일
원문:
http://android-developers.blogspot.kr/2012/12/in-app-billing-version-3.html
인앱 결제는
Google Play(당시 안드로이드 마켓)에서 처음으
로 소개
된 이래로 상당한 진전을 이루어 왔습니다. 1년 반 이후, Google Play에서 최고 수익을 거두는 대다수의 앱에서 인앱 결제를 사용하고 있으며 수천 명의 개발자들이
시험 사용 후 구입을 결정(
try-and-buy
)
, 가상 상품, 구독(subscription) 등
을 통해서 앱을 통하여 수익을 창출하고 있습니다.
인앱 결제는 개발자가 성공적으로 애플리케이션을 개발할 수 있도록 훨씬 강력하고 유연하게 개선되었습니다. 새롭게 소개되는 버전 3에서는 다음과 같은 신규 기능을 도입하였습니다.
간단하게 애플리케이션을 개발, 디버깅, 유지할 수 있도록 디자인 개선. 연동 구현에 필요했던 몇백 라인 코드가 이제는 50줄이면 구현 가능.
거래 손실을 줄이는 강력한 시스템 구조
더욱 빠른 API 호출을 위한 로컬 캐싱
개발자들이 오랫동안 기다려온 관리 구매(managed purchase) 소비 기능 및 상품 정보 쿼리 기능
입앱 결제 버전 3은 인앱 아이템을 사용하는 모든 애플리케이션에서 사용 가능합니다 (구독 지원은 조만간 발표).
Google Play 스토어 최신 버전을 구동하는
Android 2.2 버전 이상의 디바이스에서 지원됩니다 (활성 디바이스 90% 이상).
이전 버전에서 비동기 구조에 의해서 요구되었던 4개의 다른 애플리케이션 컴포넌트 대신, 새 버전의 API에서는 개발자가 단일 Activity 내에서 동기 요청을 하고 응답을 직접 처리할 수 있도록 했으며, 이는 코드 몇 줄로 구현이 가능합니다. 절감된 구현 비용은 새로운 인앱 결제 솔루션을 구현하는 개발자에게 좋은 기회를 제공합니다.
보다 용이한 구현
백그라운드 서비스를 통해서 비동기 노티를 보냈던 이전 모델과는 반대로, 새로운 API는 동기식이며 애플리케이션에 구매 결과를 바로 알려줍니다. 애플리케이션의 라이프사이클로 비동기 구매 결과 처리를 연동해야하는 필요성을 제거하여 인앱 아이템 판매를 위해서 작성해야 했던 코드를 상당히 간소화시켜 줍니다.
구매를 시작하려면 간단히 API로부터 BuyIntent를 받아서 시작합니다.
Bundle
bundle
=
mService
.
getBuyIntent
(
3
,
"com.example.myapp"
,
MY_SKU
,
ITEM_TYPE_INAPP
,
developerPayload
);
PendingIntent
pendingIntent
=
bundle
.
getParcelable
(
RESPONSE_BUY_INTENT
);
if
(
bundle
.
getInt
(
RESPONSE_CODE
)
==
BILLING_RESPONSE_RESULT_OK
)
{
// Start purchase flow (this brings up the Google Play UI).
// Result will be delivered through onActivityResult().
startIntentSenderForResult
(
pendingIntent
,
RC_BUY
,
new
Intent
(),
Integer
.
valueOf
(
0
),
Integer
.
valueOf
(
0
),
Integer
.
valueOf
(
0
));
}
다음으로 Activity의 onActivityResult() 메소드로 전달된 구매 결과를 처리합니다.
public
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
)
{
if
(
requestCode
==
RC_BUY
)
{
int
responseCode
=
data
.
getIntExtra
(
RESPONSE_CODE
);
String
purchaseData
=
data
.
getStringExtra
(
RESPONSE_INAPP_PURCHASE_DATA
);
String
signature
=
data
.
getStringExtra
(
RESPONSE_INAPP_SIGNATURE
);
// handle purchase here (for a permanent item like a premium upgrade,
// this means dispensing the benefits of the upgrade; for a consumable
// item like "X gold coins", typically the application would initiate
// consumption of the purchase here)
}
}
이전 버전과 달리, 이제 모든 구매는 Google Play에서 관리됩니다. 즉, 주어진 아이템의 소유권은 언제든 쿼리될 수 있습니다. 비관리 아이템 (unmanaged item) 메카니즘과 동일하게 구현하기 위해서, 애플리케이션은 구매하는 즉시 해당 아이템 소비가 가능하며 성공적으로 소비되면 아이템의 혜택을 제공할 수 있습니다.
로컬 캐싱
새로운 API는 Google Play 스토어 애플리케이션의 신규 기능을 활용하여 앱 결제 정보를 디바이스에서 로컬로 캐시하여 애플리케이션에서 쉽게 사용하게 해줍니다. 이러한 기능으로 많은 API 호출이 Google Play 네트워크 연결하는 대신 캐시 검색을 통해 이루어져서 API 응답 시간을 상당히 단축시킵니다. 예를 들어, 애플리케이션은 아래와 같은 호출을 통해서 소유한 아이템을 쿼리할 수 있습니다.
Bundle
bundle
=
mService
.
getPurchases
(
3
,
mContext
.
getPackageName
(),
ITEM_TYPE_INAPP
);
if
(
bundle
.
getInt
(
RESPONSE_CODE
)
==
BILLING_RESPONSE_RESULT_OK
)
{
ArrayList
mySkus
,
myPurchases
,
mySignatures
;
mySkus
=
bundle
.
getStringArrayList
(
RESPONSE_INAPP_ITEM_LIST
);
myPurchases
=
bundle
.
getStringArrayList
(
RESPONSE_INAPP_PURCHASE_DATA_LIST
);
mySignatures
=
bundle
.
getStringArrayList
(
RESPONSE_INAPP_PURCHASE_SIGNATURE_LIST
);
// handle items here
}
소유한 아이템을 쿼리하는 것은 이전 API 버전에서는 매우 부담되는 서버 호출이었기 때문에 개발자들이 자주 실행할 수가 없었습니다. 하지만 새로운 버전에서는 로컬 캐싱을 구현하였기 때문에 애플리케에션은 이제 실행할 때마다, 이후에도 필요한 만큼 해당 쿼리를 만들 수 있습니다.
상품 정보
새로운 API에서는 개발자들이 오랫동안 기다려온 기능이 도입 되었습니다. 바로 인앱 상품 정보를 Google Play에서 직접 쿼리할 수 있는 기능입니다. 이제 개발자는 프로그램을 통해서 아이템 타이틀, 설명, 가격 등을 얻을 수 있습니다. 통화 변환이나 표기 변환 등은 이제 더 이상 필요하지 않습니다. 가격 정보는 사용자의 통화로 표기되며 사용 언어에 따라서 표기됩니다.
Bundle
bundle
=
mService
.
getSkuDetails
(
3
,
"com.example.myapp"
,
ITEM_TYPE_INAPP
,
skus
);
// skus is a Bundle with the list of SKUs to query
if
(
bundle
.
getInt
(
RESPONSE_CODE
)
==
BILLING_RESPONSE_RESULT_OK
)
{
List
detailsList
=
bundle
.
getStringArrayList
(
RESPONSE_SKU_DETAILS_LIST
);
for
(
String
details
:
detailsList
)
{
// details is a JSON string with
// SKU details (title, description, price, ...)
}
}
예를 들면, 사용자가 보는 가격 정보를 변경하기 위해서 애프리케이션의 코드를 업데이트할 필요 없이 개발자 콘솔에서 가격을 업데이트하고 API를 호출하여 애플리케이션에서 업데이트 된 가격(특별 홍보나 할인 정보 등)을 보여줄 수 있는 것입니다.
샘플 애플리케이션
신규 API에 추가하여, 인앱 결제 구현법을 보여주는 새로운 샘플 애플리케이션을 발표합니다. 여기에는 JSON 문자열과 번들의 마샬링 및 언마샬링 데이터 구조, 서명 검증, 애플리케이션의 UI 쓰레드에서 개발자가 API를 직접 호출하도록 해주기 위하여 자동으로 백그라운드 작업을 관리하는 유틸리티 등과 같이 자주 사용하는 보일러 판 코드를 구현한 헬퍼 클래스가 포함되어 있습니다. 구현 프로세스를 훨씬 간소화할 수 있기 때문에 인앱 결제를 접해보지 않은 개발자는 샘플에서 코드를 사용하기를 강력하게 권장합니다. 샘플 애플리케이션은 Android SDK Manager를 통해서 다운로드 받을 수 있습니다.
앱 관련 키
인앱 결제 버전 3과 함께 도입된 기타 변경 사항에 따라, 라이센싱과 인앱 결제 키를 관리하는 방법이 개선되었습니다. 개발자가 아닌 각 앱마다 키가 설정되어 있으며
Google Play Developer Console 프리뷰
에서 각 애플리케이션을 위한 “서비스 및 API” 페이지에서 확인 가능합니다. 기존 애플리케이션은 현재 보유한 키로 계속해서 사용이 가능합니다.
시작하기!
새로운 API를 사용하여 애플리케이션에 인앱 결제를 구현하시려면 업데이트된
In-App 결제 관련 문서
를 확인하시고
인앱 상품 판매 교육 강의
를 들어보세요. 인앱 결제 버전 3을 사용하려면, 새로운
Google Play 개발자 콘솔 프리뷰
를 사용하셔야 합니다.
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
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