2015년 올해도 안드로이드, 크롬부터 카드보드까지 다양한 구글 기술을 사용한 프로젝트를 선보이고 싶은 개발자 분들을 위해 Google HackFair 행사를 마련했습니다. 기술을 배우고 익히며, 평소 만들어 보고 싶었던 것에 대한 열정을 불태워 보고 싶은 모든 분들을 초대합니다. 지금 당장 준비된 것이 없더라도 걱정하지 마시고 일단 시작해 보세요. 기발한 아이디어와 창의적인 구현을 통해 모바일/웹/클라우드 등 다양한 구글 기술들의 가능성을 느껴 보시고 그 경험을 다른 사람들과 나누어 보세요.



최종 전시 참가자 특전
  • 11월 23일 월요일 오전 10시까지 프로젝트 데모 동영상을 제출하신 팀들 중 최종 참가 팀을 선정합니다. (동영상 관련 사항은 신청서를 제출하신 분들께 별도로 안내해 드립니다.)
    • 전시 프로젝트로 선정되지 않더라도 프로젝트 데모 동영상을 제출해 주신 모든 분들께 행사 티셔츠를 포함한 기념품과 행사 참관권을 가장 먼저 보내 드립니다.
  • 참가 프로젝트로 선정된 팀의 모든 팀에게 Nexus 5X 디바이스를 팀 당 2대씩 드립니다.
  • 참가 프로젝트로 선정된 팀들을 위한 별도의 기념품과 행사 기간 도중의 식사 일체를 제공합니다.
  • 참가 프로젝트로 선정된 경우 서울/경기도 이외의 지역에 계시는 분들께는 행사 기간 동안의 교통/숙박을 모두 지원해 드립니다.


전시 프로젝트 선정 우대 사항
  • 실용적이고 재미있는 프로젝트인 경우
  • 두 개 이상의 구글 기술을 이용하여 개발한 경우 (예: YouTube+Firebase, Cardboard+Beacon+etc.)
  • Android 앱 개발시에는 Google Play Store에 앱 등록을 완료한 경우 (유료/무료 관계 없음)
  • 프로젝트 홈페이지를 만들고 운영하는 경우
  • 일찍, 자주 릴리즈하고 진행 경과를 홈페이지, SNS 등을 통해 계속해서 공유한 경우 (공식 해쉬태그: #ghackfair)
  • 소스코드를 오픈소스로 공개한 경우


Google HackFair 일정
  • 프로젝트 신청 마감 : 11월 20일 금요일 밤 12시
  • 프로젝트 데모 동영상 제출 마감 : 11월 23일 월요일 오전 10시
    • 데모 동영상 제출 관련한 자세한 사항은 신청서를 제출 하신 분들께 별도로 자세히 안내 드립니다.
  • 최종 전시 참가 팀 발표 : 11월 24일 화요일 오전
  • Google HackFair : 12월 5일 토요일


유의 사항
  • 12월 5일(토요일)과 6일(일요일) 행사 당일 최소 1명 이상의 팀원이 행사장에 상주해 주셔야 합니다. (전시품 관리, 관객들에게 프로젝트 설명 등을 위해)
  • 팀 인원 수는 최대 5명입니다. 단 참가 프로젝트로 선정된 경우 증정되는 넥서스 5X는 동일하게 팀 당 두 대씩 입니다.
  • 개인이 아니라 회사나 단체에서 개발한 것도 출품 가능합니다. 단 참석 인원은 5명으로 동일하게 한정합니다.
  • 다른 공모전이나 대회에 출품했던 작품도 출품 가능합니다.
  • 프로젝트 결과물의 저작권/소유권 등 모든 관련 권리는 모두 프로젝트에 참가하신 분들에게 있습니다.
  • 본 공지는 행사 관람객 접수용이 아닙니다. 관람 접수는 추후 별도로 진행합니다.


프로젝트 참여 신청서 제출하기(11월 20일 금요일 밤 12시까지)
  • 이 신청서는 프로젝트 참여를 희망하는 분들께 별도의 안내/연락을 드리기 위한 것으로, 신청서에 적으신 프로젝트 아이디어로 전시 참여 팀이 걸러지는 것은 아닙니다. 지금 가지고 계신 아이디어를 자유롭게 적어 주세요.
  • 최종 전시 참가 팀은 11월 23일 월요일 오전 10시까지 프로젝트 데모 동영상을 제출하신 팀들만을 대상으로 선정 됩니다.


3개의 새로운 Android Marshmallow 샘플 앱이 저번 주에 출시되었습니다. 이 앱은 GitHub의 Google 샘플 리포지토리 또는 Android Studio 샘플 브라우저에서 바로 사용할 수 있습니다.

Android Direct Share 샘플


         

Direct Share는 Android Marshmallow의 새로운 기능으로, 사용자가 보다 빠르고 직관적으로 콘텐츠를 공유할 수 있는 API를 제공합니다. Direct Share를 사용하면 사용자가 연락처 등 다른 앱 내의 대상과 콘텐츠를 공유할 수 있습니다. 예를 들어, 직접 공유 대상이 소셜 네트워크 앱에서 액티비티를 시작하면 사용자가 해당 앱에 있는 특정 친구와 직접 콘텐츠를 공유할 수 있습니다.

이 샘플 앱은 더미 메시징 앱으로, 다른 메시징 앱과 마찬가지로 일반 텍스트 공유용 인텐트를 수신합니다. 이 앱은 공유 인텐트 후보 목록에 일부 옵션을 직접 표시하는 방법을 보여줍니다. 사용자가 다른 앱의 일부 텍스트를 공유하면 이 샘플 앱이 옵션으로 나열됩니다. 또한 이 앱은 Direct Share 기능을 사용하여 선택기 대화 상자에 직접 일부 연락처를 표시합니다.

Direct Share를 사용하려면 앱에서 ChooserTargetService를 확장하는 서비스를 구현해야 합니다. OnGetChooserTargets() 메서드를 재정의하고 Direct Share 옵션 목록을 반환합니다.

AndroidManifest.xml에서 인텐트를 수신하는 액티비티에 meta-data 태그를 추가합니다. android:name을 android.service.chooser.chooser_target_service로 지정하고 android:value로 Service를 선택합니다.


Android MidiSynth 샘플


Android 6.0은 MIDI를 지원합니다. 이 샘플은 MIDI API를 사용하여 부착된 입력 장치(MIDI 키보드)에서 MIDI 메시지를 수신하고 재생하는 방법을 보여줍니다.

Android MIDI API(android.media.midi)를 통해 개발자는 MIDI 장치를 Android 장치에 연결하여 해당 장치에서 들어오는 MIDI 메시지를 처리할 수 있습니다.

이 샘플은 다음과 같은 MIDI API의 일부 기본 기능을 보여줍니다.

  • 현재 사용 가능한 장치 나열(이름, 공급업체, 기능 등의 정보 포함)
  • MIDI 장치가 연결되거나 연결이 끊기면 알림
  • MIDI 메시지 수신 및 처리
  • 간단한 오실레이터 및 노트 재생 구현도 포함되어 있습니다.



Android MidiScope 샘플

이 샘플은 MIDI API를 사용하여 부착된 장치에서 들어오는 MIDI 신호를 수신하고 처리하는 방법을 보여줍니다.

Android MIDI API(android.media.midi)를 통해 개발자는 MIDI 장치를 Android에 연결하여 해당 장치에서 들어오는 신호를 처리할 수 있습니다. 이 샘플은 현재 사용 가능한 장치 나열(이름, 공급업체, 기능 등의 정보 포함), MIDI 장치가 연결되거나 연결이 끊기면 알림, MIDI 신호 수신과 같은 MIDI API의 일부 기본 기능을 보여줍니다. 이 샘플은 수신된 모든 MIDI 신호를 화면 로그에 표시만 하고 사운드를 재생하지는 않습니다.

샘플 앱을 확인하고 Android Marshmallow 개발을 바로 시작해 보세요.

멋진 그래픽의 하드코어 게임에서 생산성 향상을 위한 작업 도구까지 스마트폰은 다양한 기능을 지원합니다. 저희는 하드웨어의 기능을 최대한 활용하는 동시에 빨리 앱을 내려받아 설치하고 실행할 수 있는 앱을 개발하는 것이 어려운 과제라는 것을 이해하고 있습니다. 이 두 가지의 균형을 이루기란 쉽지 않습니다. 특히 전 세계의 사용자들을 대상으로 앱을 만들어야 할 때는 더욱 어렵습니다.

Google Play에서 이전에는 상상하기 힘들었던 품질의 게임과 다양한 기능을 갖춘 앱을 배포하는 개발자들이 갈수록 많아짐에 따라, 저희는 APK 파일 크기 제한을 50MB에서 100MB로 늘리기로 했습니다. 이제 개발자분들은 최대 100MB 크기의 APK를 게시할 수 있게 되고 사용자들은 앱이 100MB 한도를 초과하고 확장 파일을 이용할 경우에만 경고 메시지를 수신하게 됩니다. 사용자들의 기본 업데이트 설정은 여전히 Wi-Fi를 통한 자동 앱 업데이트로 유지되며, 사용자들이 데이터 사용을 절약하면서 더 질 높은 앱과 게임에 액세스할 수 있습니다.

앱을 더 크게 만들 수 있지만, APK 사이즈를 줄이는 것은 여전히 중요합니다. 다음 항목들을 꼭 기억하시기 바랍니다.
  • 모바일 데이터 연결: 사용자들의 모바일 데이터 연결 속도는 가지각색입니다. 특히 개발도상국에서는 미국이나 한국보다 연결 속도가 느린 경우가 많습니다. 이런 국가의 사용자들은 내려받기에 오랜 시간이 걸리는 앱이나 게임을 설치할 가능성이 작습니다.
  • 모바일 데이터 한도: 전 세계적으로 많은 모바일 네트워크가 추가 요금 없이 사용자가 매달 내려받을 수 있는 데이터의 크기를 제한하고 있습니다. 사용자들은 자신의 한도를 초과할까 봐 두려워서 다운로드를 조심하는 경우가 많습니다.
  • 앱 성능: 모바일 디바이스의 RAM과 저장 공간은 한정되어 있습니다. 특히 오래된 장치에서는 앱이나 게임의 크기가 클수록 더 느리게 실행될 것입니다.
  • 설치 시간: 사용자들은 설치 버튼을 탭 한 후 될 수 있으면 빨리 앱이나 게임을 사용하고 싶어 합니다. 기다리는 시간이 길수록 설치를 포기할 가능성이 커집니다.
파일 용량을 상향 조정한 결정이 개발자들이 사용자들에게 더 좋은 경험을 제공할 수 있는 앱과 게임을 더 좋은 품질로 개발할 수 있게 되기 바랍니다.



안드로이드 6.0 마시멜로에는 "Doze (졸음)"라는 새로운 배터리 절약 기능이 도입되었습니다. 장치가 충전 중이 아니고, 화면이 꺼져있는 상태에서 한동안 움직이지 않고 방치되어 있으면, Doze 모드가 시작됩니다. Doze 모드에 진입하면, 배터리를 절약하기 위해 네트워크 사용이 제한되고, 앱에서 미리 등록한 작업들도 뒤로 미루어집니다. 미루어진 작업은 일정 간격마다 idle maintenance 상태에서 묶어서 처리됩니다.


여러분의 앱이 Google Cloud Messaging (GCM)를 사용하고 있는 경우, Doze 모드에서 여러분이 앱이 의도한 대로 동작하는지 다음 사항을 확인해봐야합니다.

GCM 메세지 우선순위에는 “High”와 “Normal” 두 개의 우선순위가 있습니다. “High" 우선순위는 안드로이드 6.0 개발자 프리뷰에서 새롭게 추가되었습니다. 이를 사용하면 GCM 메시지는 즉시 전달되며, 필요한 경우 Doze 모드 상태에서 장치를 깨웁니다. 그러나 우선순위를 별도로 지정하지 않으면, 기본으로 적용되는 "Normal" 우선순위가 사용되면 경우, Doze 상태에서는 다음과 같이 GCM이 동작합니다.

  • 가장 큰 변화로, “Normal” 순위 GCM 메시지는 장치가 Doze 상태에서는 앱으로 전달되지 않으며, idle maintenance 상태에서 한 번에 대량으로 처리됩니다.
  • Doze 모드 중에 time_to_live 값이 만료된 메시지 (TTL = 0 포함)은 삭제됩니다.

Doze 모드는 디바이스의 배터리 사용량을 최소화하기 위해 추가되었습니다. 따라서 꼭 필요한 경우가 아니면 배터리에 미치는 영향을 고려하여 "Normal" 우선순위의 GCM 메시지를 활용할 것을 권장해 드립니다 설명해 드린 것처럼, Doze 모드 중에도 중간중간 GCM 메시지를 수신할 수 있으며, Doze 종료 시에 바로 메시지를 수신할 수 있을 것입니다.

우선순위가 "High"인 GCM 메시지는 채팅 앱 알림이나 전화 수신 등 최종 사용자에게 즉시 알림을 생성해야 하는 앱에서만 선택적으로 사용되어야 합니다.

Doze 모드에서 앱이 잘 동작하기 위한 보다 자세한 방법은 안드로이드 개발자 사이트를 참고하시기 바랍니다. 또한, GCM 메시지의 우선순위에 대한 자세한 내용은 Google 개발자 사이트를 참조하시기 바랍니다.

훈민정음 반포 569돌을 맞이해서 자그마한 선물을 마련했습니다. 

작년 7월에 발표한 Noto Sans CJK 글꼴을 이제 여러분의 웹 사이트에서도 마음대로 쓸 수 있습니다. Noto Sans CJK 글꼴 패밀리 가운데 한국어 전용인 Noto Sans KRGoogle Fonts Early Access를 통해 제공합니다. Noto Sans KR은 현대 한국어 뿐 아니라, 옛한글도 완벽하게 지원하고 총 6가지 굵기(weight) 중에 마음대로 골라 쓸 수 있습니다. ( 데모 페이지 )



구글은 웹과 인터넷에서 한글을 보다 아름답고 다양하게 표현할 수 있도록 많은 노력을 기울여 왔습니다. 그 일환으로 국내 글꼴 제작사가 만든 여러 종류의 한국어 글꼴을 구글 웹 폰트 서비스에 더해 왔습니다.

이제 Noto Sans KR을 11번째 한국어 웹 글꼴로 내놓습니다.

웹 디자이너 여러분, 어떤 플랫폼이나 화면 배율에서도 미려하고, 웹 접근성도 우수하며 검색 엔진 친화적인 웹 사이트 디자인을 원하신다면 웹 글꼴을 적용해 보세요.

어떻게 쓰냐고요? 매우 간단합니다. 여러분의 웹 페이지 스타일 시트에 다음을 추가하시고, 글꼴로 'Noto Sans KR'을 지정하세요.



font-family: 'Noto Sans KR', sans-serif;



한중일 다국어 페이지를 만드신다고요? 문제 없답니다. html에서 콘텐츠의 언어를 'lang' 태그로 명시하고 다음을 스타일 시트에 더하시면 됩니다.



/*  한국어 */
:lang(ko) {
 font-family: 'Noto Sans KR', sans-serif;
}

/* 일본어 */
:lang(ja) {
 font-family: 'Noto Sans JP', sans-serif;
}

/* 중국어 (간체) */
:lang(zh-Hans) {
 font-family: 'Noto Sans SC', sans-serif;
}

... 생략 ...

<body>
.... 생략 ....
<div lang="ko"> ... 한국어 콘텐츠</div>
<div lang="ja"> ... 일본어 콘텐츠</div>
<div lang="zh-Hans"> ... 중국어 간체 콘텐츠</div>

안드로이드 1.4버전이 정식으로 출시되었습니다. 눈에 잘 보이진 않는 부분을 포함하여 많은 점이 향상되었습니다. 그중에서도 개발자 여러분이 앱을 개발할 때 바로 활용할 수 있는 새로운 기능들을 간단히 소개해 드리겠습니다.

시작하기에 앞서, 몇 가지 새로운 기능은 최신 Gradle Plugin 1.4 버전이 필요합니다. 현재 베타 버전을 사용하실 수 있으며, 수 주 내로 최종 버전이 공개될 것입니다.

디자인 도구

Vector Asset Studio

  • Vector Drawables은 API 21 롤리팝 버전에서 추가되었습니다. Vector Drawables 사용하면, 해상도에 따라 서로 다른 이미지 리소스를 제공하는 노력을 줄이고, 화면 해상도와 관계없이 선명하게 이미지를 표현할 수 있습니다.
  • 안드로이드 1.4에서는 SVG 이미지 혹은 머티리얼 아이콘을 프로젝트에 추가하기 훨씬 쉬워졌습니다. Gradle 안드로이드 플러그인을 1.0.0-beta3 버전 이상('com.android.tools.build:gradle:1.4.0-beta3' )으로 올리면, 새롭게 추가된 Vector Asset Studio 기능을 활용할 수 있습니다. 프로젝트 res/drawable 폴더에서 오른쪽 마우스를 클릭하신 후, ‘New → Vector Asset’ 메뉴를 선택해보세요.
  • Vector Drawables을 지원하지 않는 API 20 이전 버전을 위해, 안드로이드 스튜디오는 앱 빌드 시 VectorDrawables을 PNG 포맷의 이미지로 전환하여 res/drawable 폴더에 자동으로 추가해줍니다. 
  • 앱 실행 아이콘의 경우에는 가장 멋지게 앱 아이콘이 표시될 수 있도록 여전히 res/mipmap 폴더를 사용하실 것을 권장해 드립니다. Vector Drawables 지원에 관한 조금 더 자세한 내용이 알고 싶으시면, 새로운 Vector Asset Studio에 관한 DevByte 비디오를 살펴보시기 바랍니다.

테마 에디터

  • 저희도 안드로이드 앱 테마와 스타일을 손 보는 게 약간은 복잡한 일이라는 것을 잘 알고 있습니다. 어려움을 조금이라도 줄일 수 있도록, 안드로이드 스튜디오 1.4에는 프리뷰 버전의 테마 에디터가 포함되어있습니다. 
  • 첫번째 프리뷰 버전은 앱에 적용되는 머티리얼 테마 색상들(colors.xml)을 쉽게 변경하는 기능을 제공하고 있습니다. 이후에는 점진적으로 더 많은 속성들을 확인하고 변경할 수 있도록 기능이 추가될 것입니다. 테마 에디터는 최상위 메뉴에서 'Android → Theme Editor'를 선택하시면 됩니다.

프로젝트 템플릿

  • 안드로이드 디자인 지침을 잘 준수하는 앱을 손쉽게 만들 수 있도록, ‘New Project Wizard’의 앱 템플릿이 AppCompat Support library뿐만 아니라 Android Design Support Library를 포함하고 몇 가지 디자인 패턴을 선택할 수 있도록 개선되었습니다.
  • 템플릿 마법사에서 여러분의 목적에 따라 FAB 버튼을 포함하는 엑티비티, 내비게이션 드로워 혹은 스크롤뷰와 앱바를 포함하는 템플릿등을 선택하실 수 있습니다. 또한, 자동 생성되는 코드가 필요 없는 분들을 위해 'Empty App' 템플릿이 다시 추가되었습니다.
  • 또한, 레이아웃 에디터에서 새로운 넥서스 5X와 넥서스 6P 화면 해상도를 선택해, 여러분의 화면 레이아웃이 새로운 넥서스 기기에서 정상적으로 그려지는지 확인할 수 있습니다.

성능 측정 도구

GPU Rendering Monitor

  • 안드로이드 스튜디오 1.4에서는 GPU 렌더링 성능을 손쉽게 측정할 수 있습니다. 기기 설정의 개발자 옵션 중, '프로필 GPU 렌더링 → adb shell dumpsys gfxinfo에서 사용' 옵션을 선택한 후, 안드로이드 스튜디오의 'Android Monitor' 항목의 GPU 탭을 선택하시면 됩니다. 
  • GPU 렌더링 성능 측정 결과에 관한 더 자세한 내용은 다음 개발자 문서를 살펴보시기 바랍니다.

네트워크 모니터

  • 안드로이드 스튜디오 1.4에서는 앱의 네트워크 사용 통계도 확인할 수 있습니다. 'Android Monitor' 항목의 Network 탭을 선택하면, 시간에 따른 앱의 데이터 전송/수신량을 간편히 확인할 수 있습니다.

Firebase

Firebase를 여러분 앱의 백엔드로 쉽게 추가할 수 있습니다. Firebase는 데이타 저장 공간, 사용자 인증, 정적 파일 호스팅 등의 기능을 제공합니다. 최상위 메뉴에서 'File → Project Structure → Cloud' 항목을 선택하면 Firebase를 사용할 수 있습니다. Firebase에 관한 보다 자세한 내용은 다음 튜토리얼 문서를 살펴보시기 바랍니다.


어떻게 사용할 수 있나요?

현재 안드로이드 스튜디오를 사용하고 계신다면, 메뉴의 ‘Check for Update’ 항목을 선택해 안드로이드 스튜디오를 업데이트할 수 있습니다. 안드로이드 스튜디오를 처음 사용하시는 개발자분들은 제품 개요 페이지에서 안드로이드 스튜디오에 관한 자세한 내용을 확인하실 수 있고, 내려받기 사이트에서 최신 버전의 안드로이드 스튜디오를 내려받으실 수 있습니다.
Share on Twitter Share on Facebook