주간 안드로이드 뉴스 #188

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 영어 원문에서 볼 수 있습니다.

지난 뉴스가 궁금하다면 아래 링크를 참고해 주세요.

컨텐츠에 대하여

이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.


Eunjoo Im

Realm Asia 팀에서 일하는 임은주입니다. iOS와 안드로이드 개발자로, 현재 Realm의 기술 컨텐츠 생산 및 관리에 주력하고 있습니다.

4 design patterns for a RESTless mobile integration »

close