Android Weekly는 매주 발행되는 안드로이드 뉴스레터입니다. 영어 기사를 정독할 시간이 없는 분을 위해 핵심 꼭지를 요약했습니다.
주간 안드로이드 뉴스를 요약해 드립니다. Android Weekly 188 원문도 읽어보세요.
퍼미션 Part 2
퍼미션은 Marshmallow에서 바뀐 선택적 권한 모델을 적용하고 사용자 경험을 개선하는 방법에 대한 연속 강좌입니다. 퍼미션 Part 1 영어 원문에서 이어지며, 주간 안드로이드 핫 뉴스 #186 우리말 동영상 요약에서 1편의 우리말 설명 영상을 볼 수 있습니다.
Part 2에서는 중복 코드를 많이 사용하지 않으면서 필요 권한을 확인하고 요청하는 방법에 대해 다룹니다.
우선 targetSdk를 targetSdkVersion=23 이상으로 설정합니다. 다음으로 사용자에게 권한을 요청합니다. 이때 사용자가 취소를 눌러 권한을 수락하지 않으면 다시 권한을 요청해야 합니다. 다시 권한을 요청할 경우 ‘다시 묻지 않기’ 체크박스가 생기는 것을 확인할 수 있습니다. ‘다시 묻지 않기’가 체크되면 앱에서는 권한 요청을 더 이상 할 수 없고, 사용자는 언제든지 ‘설정’에서 앱의 권한을 허용하거나 취소할 수 있습니다.
MainActivity에 권한 요청 코드를 추가하고, 권한 요청 관련 코드는 PermissionChecker.java로 분리합니다.
class PermissionsChecker {
private final Context context;
public PermissionsChecker(Context context) {
this.context = context;
}
public boolean lacksPermissions(String... permissions) {
for (String permission : permissions) {
if (lacksPermission(permission)) {
return true;
}
}
return false;
}
private boolean lacksPermission(String permission) {
return ContextCompat.checkSelfPermission(context, permission) ==
PackageManager.PERMISSION_DENIED;
}
}
권한 확인을 컴퍼넌트로 분리해서 액티비티의 부담을 줄이고 캡슐화했습니다.
다음 강좌에서는 PermissionsActivity
를 만들면서 사용자에게 권한을 요청하는 방법과 요청 거절 상황 시의 시나리오를 알아 봅니다.
자세한 내용은 GitHub 소스 코드와 원문 기사를 참고해 주세요.
테스트 가독성 개선
가독성을 높이면 테스트 품질을 향상할 수 있습니다. 이 기사는 Builder 패턴을 도입하여 테스트 가독성을 개선하는 방법을 간단한 예제와 함께 설명합니다.
Builder 패턴을 사용하면 클래스의 세터를 아래 코드와 같이 설정할 수 있습니다.
public Video setUrl(String url) {
this.url = url;
return this;
}
테스트는 다음처럼 개선됩니다.
@Test
public void shouldReceiveCurrentUrlWhenVideoAvailable() {
String url = "http://www.my_video.mp4";
playbackService.setCurrentVideo(new Video().setUrl(url));
String actualUrl = playbackService.playCurrentVideo();
assertEquals("the urls are not the same", url, actualUrl);
}
결과적으로 테스트의 가독성이 높아지고 유지 보수가 편리해질 수 있습니다. 자세한 내용은 원문 기사를 참고해 주세요.
Android DevOps 소개
DevOps는 소프트웨어 테스트, 코드 퀄리스, 기능 개발 및 릴리즈 유지 보수를 쉽게 하는 시스템으로, 빠르고 믿을 수 있는 릴리즈 자동화를 목표로 합니다. 이 기사는 Android 앱에서 DevOps를 적용하는 방법을 공유하며, DevOps를 도와주는 Jenkins 플러그인과 Gradle 플러그인도 소개하고 있습니다. 자세한 내용은 원문 기사를 참고해 주세요.
더 읽을 거리
1월 셋째 주의 기사를 Android Weekly 188 영어 원문에서 볼 수 있습니다.
지난 뉴스가 궁금하다면 아래 링크를 참고해 주세요.
컨텐츠에 대하여
이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.