본문 바로가기

Android 공부

(67)
안드로이드 인앱결제 - 구매 로직 안녕하세요!- '담다' 시간표를 개발하는 감자튀김입니다. 개인 개발을 하면서 광고를 보여주기에는 UI/UX가 불편할 것 같고, 어떻게 하면 좋을까? 하다가 '인앱결제'로 광고제거를 하면 좋겠다라는 생각으로 인앱결제 기능을 만들기 시작했습니다. 안드로이드 개발자 사이트(https://developer.android.com/google/play/billing/billing_library_overview?hl=en)에서는 이와 같이 친절하게 알려주고 있습니다만, 봐도 모르는게 초보 개발자의 특징이겠죠. 그래서, 이렇게만 하면 된다는 한글 가이드가 필요할 것 같아서 짧게 블로그 씁니다. 0. 종속성부터 추가하자. 깔끔하게 종속성을 부여해줍시다. 1234dependencies { ... implementation..
RecyclerView in SwipeRefreshLayout with CoordinatorLayout 1. 고민 고민- NestedScrollView가 싫다.- 그래서, Coordinator Layout을 통해서 다양한 뷰와 리사이클러 뷰의 성능상 이점을 갖는 구조를 만들었다.- 새로 고침 기능이 필요해졌다.- SwipeRefreshLayout이 필요하다. - SwipeRefreshLayout은 CoordinatorLayout에서는 어떻게 사용할까?- RecyclerView의 behavior는 어떻게 해야할까? 지난 글과 같이, NestedScrollView를 사용하지 않고, 리사이클러뷰에 다양한 뷰홀더를 만들어서 뷰 구조를 잡았다.그 과정에서, CoordinatorLayout을 이용해서 리사이클러뷰의 재활용과 백드롭 등, 다양한 이점을 가져오고 있었다. 그리고, 새로 고침 기능이 필요해졌다. 그러면 어..
NestedScrollView 없이 RecyclerView를 사용해보자. 0. 요약- 최근 고민은 리사이클러뷰의 재활용과 함께, NestedScrollView를 사용하지 않고, 뷰 구조를 잡기 위해서 고민을 했다.- 고민 끝에, Coordinator Layout 내부에 각종 View를 셋팅하게 되면, 리사이클러뷰의 구조를 살린채, 레이아웃 구조를 잡을 수 있을 것이라고 생각을 했다.- 하지만, Coordinator Layout에서 자유롭게 사용되어지는 뷰는 behavior를 받는 뷰 뿐만이 자유롭게 움직일 수 있다는 것을 알았다.- 그래서, 리사이클러뷰를 만들고, 어댑터에 여러 개의 뷰홀더를 만들어야만 해결이 된다는 것을 알게 되었다.1. NestedScrollView & RecyclerView- 리사이클러뷰의 장점은 뷰홀더를 통해서 뷰를 재활용해서, 앱의 퍼포먼스를 향상시키..
서울시 공공데이터 API를 활용한 Paging Library 사용하기 - 2 0. Paging- Data : Room 혹은 Retrofit과 같은 라이브러리를 이용해서 데이터를 가져오면 된다. Paging 라이브러리는 만능이라기 보다는, 정형화된 틀을 제공해주는데, Data를 가져오는 부분에서도 사용자는 Paging의 규격에 맞게 데이터를 가져올, 인터페이스를 형성해야 한다. 예를 들면, 10개씩 데이터를 가져와서 리스트에 보여준다고 할 경우에는, getFetch(startIndex, endIndex)와 같이 틀을 만들어줘야만 한다. 그렇게 되면, PagedKeyedDataSource를 통해서 loadInitail(), loadBefore(), loadAfter()로 관리할 수 있다.- PagedList : PagedKeyedDataSource를 통해서 데이터를 획득하면, cal..
서울시 공공데이터 API를 활용한 Paging Library 사용하기 - 1 0. 페이징을 공부해보자. https://developer.android.com/topic/libraries/architecture/paging역시 시작은 Developer를 참고하자. 간단한 소개에 따르면, 페이징은 한 번에 데이터를 작은 단위로 로드하고, 보여주기 위해서 사용하는 라이브러리고 소개를 하고 있다. 1. 페이징알고 있는 페이징의 개념은 아래와 같다. data를 별도의 통신을 통해서 뭉텅이로 가져온다면, 그것을 보여줄 때, 우리는 무한 스크롤링, 페이지 단위, 앞 뒤 단위 등으로 해서 보여주는데, 페이징 라이브러리는 우리가 이러한 것을 RecyclerView를 통해서 만드는 것을 일정한 규칙을 만들어서, 통신을 제어하고, 보여주고, 데이터를 관리하는 행위들을 처리할 때, 페이징 라이브러리를..
플러터 001 - 안드로이드 스튜디오에서 Flutter plugin 설치하기 1. 플루터를 설치합니다.https://flutter.dev/docs/get-started/install 2. 안드로이드 스튜디오를 설치합니다.https://developer.android.com/studio/index.html 3. 안드로이드 스튜디오 실행[ ctrl + alt + s ] 를 눌러서, Settings를 실행시켜줍니다.그리고, Plugins을 검색한 후에, Marketplace에서 Flutter를 다운로드 받습니다. 4. 새로운 플루터 프로젝트 만들기[File - New - New Flutter Project]를 통해서 새로운 프로젝트를 만들고, 구체적인 프로젝트를 등록시키면, 새로운 플루터 프로젝트를 만들 수 있습니다.
테스트 코드로 Retrofit 테스트 해보기 Junit4으로 Retrofit 테스트 해보기 0. 주저리 주저리예전부터 해보고 싶은 것중 하나는 테스트 코드를 작성해보고 싶었고, 그것을 빌미로 프로젝트를 진행해보고 싶었다. 이런 방법을 TDD라고 하는 것 같았고, 항상 그런 정보를 접할 때마다 공부를 하고 싶었다. 그래서, TDD 방법론까지는 아니지만, 테스트 코드를 맛보기 위해서RxJava + Retrofit2 => Test based Junit4 으로 작성된 테스트 코드를 만들어보려고 한다. 1. 1단 해야할 것들1-1. 참고 사이트보고 진행한 사이트는 AndroidDeveloper와 vogella의 tutorial입니다.https://developer.android.com/training/testing/unit-testing/local-unit..
RxJava 공부 4 - fromCallable -1. 이전글 2018/12/10 - [rxJava 공부] - RxJava 공부 3 - Map과 FlatMap, Timer와 interval, FlatMap과 ConcatMap2018/12/10 - [rxJava 공부] - RxJava 공부 2 - AsyncSubject, BehaviorSubject, PublishSubject, ReplaySubject2018/12/10 - [rxJava 공부] - RxJava 공부 1 - just, create, fromArray, interval, range, fromIterable, filter, map 0. 고찰 Room을 다루던 도중에, Room을 이요해서 db값을 꺼내보니까, 쓰레드를 이용해서 값을 변경하고 ui를 변경해야 했다.그래서 쉽게 생각할 수 있는게..