오픈소스 실행 및 활용 후기 (1)

Susanna Jung·2020년 3월 15일
2
post-thumbnail

다운받은 소스를 실행하면 처음에 에러가 뜬다.

Compiler message:
../AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/cached_network_image-1.1.3/lib/src/cached_network_image_provider.dart:42:24: Error: The method 'CachedNetworkImageProvider.load' has fewer positional arguments than those of overridden method 'ImageProvider.load'.
  ImageStreamCompleter load(CachedNetworkImageProvider key) {
                       ^
Target kernel_snapshot failed: Exception: Errors during snapshot creation: null
build failed.

FAILURE: Build failed with an exception.

대충 이런 에러가 나올텐데 당황하지 말고 프로젝트에서 pubspec.yaml 파일을 찾아

 cached_network_image: ^2.0.0-rc

이렇게 업데이트 해주면 아래와 같은 화면이 잘 실행되는것을 확인할 수 있다.

이제 Google Photos Library API 를 설정해 주어야 한다.
글이 너무 길어질 것 같으니 API 설정하는 방법은 다른 포스트에서 다루도록 하겠다. Google Photos Library API 설정하는 법은 다음글에서 확인 하길 바란다.

[Google Photo Library API 설정 방법]

설정이 완료되면 응용 프로그램을 다시 실행하고 "Google 포토에 연결"을 선택한다. 사용자 계정을 선택하고 인증 범위를 수락하라는 메시지가 표시된다.

코드에는 에러가 없지만 처음에 계속 로딩 화면만 뜨고 다음 화면으로 넘어가지 않는 문제가 발생했다.

그 이유인 즉슨 signIn이나 signInSilently async 가 불러진 다음에 onCurrentUserChanged 가 _currentUser를 업데이트 하기 때문이다.
lib > model > photos_library_api_model.dart 파일을 수정해줘야한다 :

class PhotosLibraryApiModel extends Model {
  PhotosLibraryApiModel() {
    _googleSignIn.onCurrentUserChanged.listen((GoogleSignInAccount account) {
      _currentUser = account;
      if (client == null) {
        client = PhotosLibraryApiClient(_currentUser.authHeaders);
        updateAlbums();
      } else {
        notifyListeners();
      }
    }); 
  }

모든 것이 성공적으로 설정되었다면 다음 화면에 빈 목록이 나타난다.

여행 앨범을 새로 만들어보도록 하자.

나는 작년 겨울방학때 친구들과 함께 놀러갔던 베트남 여행을 기록하기 위해 "Trip to Vietnam" 이라는 앨범을 만들었다.

iOS 시뮬레이터는 카메라를 사용할 수 없어 내가 사진을 올리지는 못했지만 사진을 올리면 이런 모습이 된다.

앱 실행 결과는 여기까지이다.
이제 소스코드에 변환을 줘서 오픈소스를 활용해 보는건 2탄에서 다뤄보겠다.

0개의 댓글