일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 안드로이드 스튜디오
- studio
- 코루틴
- viewpager
- RecyclerView
- Android
- dart
- 레트로핏
- 웹뷰
- 코틀린
- 안스
- 안드로이드
- Retrofit
- 의존성주입
- Kotlin
- error
- ADB
- image
- 에러
- MVVM
- 깃헙
- Github
- WebView
- coroutine
- 유튜브
- build
- Gradle
- 스튜디오
- 안드로이드스튜디오
- GIT
- Today
- Total
목록안드로이드 (148)
코딩하는 일용직 노동자
기존에 잘되던 앱에서 Retrofit으로 api를 호출하면 아래의 오류가 발생했다. Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ 구글에 검색을 해보니 GsonConverterFactory.create() 안에 GsonBuilder를 객체를 만들어 넣어주면 해결되는 문제였다. 나말고도 이런 오류를 경험한 사람이 많은가보다. https://stackoverflow.com/questions/39918814/use-jsonreader-setlenienttrue-to-accept-malformed-json-at-line-1-column-1-path Use JsonReader.setLenient(true) to ..
# ReactiveX란? 프로그래밍에는 다양한 패러다임이 있습니다. 오래전 순차처리부터 OOP(객체지향), Function(함수형) 등.. 기존의 프로그래밍은 클라이언트가 서버에게 정보를 요청하면 서버는 요청받은 작업을 처리한 후 돌려줄때까지 클라이언트는 계속해서 결과를 기다리는 동기식 처리가 많았습니다. 하지만 프로그래밍의 규모가 커지고 복잡해지면서 동시에 다양한 작업을 하면서 비동기식 처리의 수요가 많아지게 되었습니다. ReactiveX란 비동기식 처리를 가능하게 하는 프로그래밍 이라고 생각하면 될듯합니다. 상태를 관찰하고 그에 반응하는 처리를 한다고 생각하면 이해가 쉬울것입니다. 다양한 언어에서 ReactiveX를 이용할수 있습니다. RxJava, RxKotlin, RxSwift, RxScala....
# Coil은 무엇인가? 이번 포스팅은 새로나온 이미지 로딩 라이브러리 Coil에 대해 알아보겠습니다. 요즘 실무에서 가장 많이쓰이는 이미지 라이브러리라면 Glide를 꼽을 수 있겠습니다. 하지만 Coil은 Glide 보다도 더 가볍게 만들어져 있기에 간단한 앱에 사용해보기에 괜찮을 듯 합니다. Coil은: Coroutine Image Loader의 약자입니다. Coil은 Kotlin Coroutines으로 만들어진 Android 백앤드 이미지 로딩 라이브러리입니다. 코루틴 자체가 내장이 되어있기 때문에 코루틴을 별도로 생성하지 않아도됩니다. 공식 사이트에서 소개하는 Coil 장점은 아래와 같습니다. 빠르다: Coil은 메모리와 디스크의 캐싱, 메모리의 이미지 다운 샘플링, Bitmap 재사용, 일시정지..
※ 추가 안내 안드로이드 초기부터 xml 파일의 뷰들과 연결하기 위해 findViewById를 해왔습니다만 매우 불편했습니다. kotlin-android-extensions 덕분에 findViewById를 하지 않는 편리함이 있었습니다. 하지만 서로다른 xml 파일에서 동일한 id를 사용할 경우가 많기 때문에 kotlin-android-extensions를 사용할 경우 코드가 헷갈릴 수 있었습니다. 때문에 구글에서는 안드로이드 스튜디오 4.1 버전부터 kotlin-android-extensions의 지원을 중단하고 ViewBinding 을사용하도록 안내하고 있습니다. 안드로이드 스튜디오 4.1 업데이트 후 kotlin-android-extensions를 수동으로 추가해야하는 번거로움이 생겼습니다. 우선..
10월12일 안드로이드 스튜디오 4.1버전이 릴리즈 되었습니다. 4.1버전은 개발자가 코드를 더 빨리 작성하도록 Android Jetpack 라이브러리를 사용하는 동안 생산성을 높이는 것이라 밝혔습니다. Material Design Components updates 머터리얼 디자인 컴포넌트가 업데이트 되었습니다. [New Project]에서 새로운 프로젝트를 생성할때 머터리얼 디자인 컴포넌트를 사용하고 테마 및 스타일에 대한 최신 UI기능을 지원합니다. Database Inspector Database Inspector를 사용하여 앱의 데이터베이스를 검사, 검색 및 수정할 수 있습니다. 사용하려면 API 레벨을 26이상으로 설정되어야 합니다. 메뉴 표시줄에서 [View > Tool Windows > Da..
안드로이드 퍼미션 라이브러리가 여럿 있습니다. 오늘 소개해드릴 라이브러리는 Dexter입니다. 박상권님이 만드신 TedPermission 만큼이나 사용이 편리합니다. 우선 gradle 에 아래처럼 추가해줍니다. dependencies{ implementation 'com.karumi:dexter:6.2.1' } Single Permission인 경우 아래처럼 처리합니다. -Java Dexter.withContext(this) .withPermission(Manifest.permission.CAMERA) .withListener(new PermissionListener() { @Override public void onPermissionGranted(PermissionGrantedResponse respo..
2018년 구글은 Android Jetpack을 공개했습니다. Jetpack 은 더욱 쉽고 빠르게 앱을 만들 수 있도록 도와주는 도구를 모아 놓은 라이브러리입니다. 또한, 이 시기 주변의 안드로이드 개발자들 사이에서도 코틀린을 이용한 개발이 급증하기 시작했고 저도 부랴부랴 코틀린을 공부했던 기억이 있습니다. 구글은 Jetpack을 공개하면서 개발자들이 고품질 애플리케이션을 더 쉽게 만들 수 있도록 했습니다. 하지만 제대로 해결하지 못한 영역이 UI였습니다. Jetpack Compose는 바로 이 UI영역을 획기적으로 개선하기 위해 만들어지는 것입니다. 지금의 안드로이드 UI는 xml로 레이아웃과 뷰들을 만들어 배치하고 소스에서 뷰들의 id를 바인딩하여 이벤트를 붙이고 사용하는 방식이었습니다. 하지만 Je..
깃헙에 새로 레파지토리를 생성하고 안드로이드 프로젝트를 생성해서 작업을 하려는데 빌드 할때마다 .gradle/, .idea/ 폴더들의 파일이 계속 unstaged 상태로 표시되었다. 파일이 한두개도 아니고 빌드 할때마다 10개 정도의 파일이 계속 unstated 에 표시되니깐 미칠지경이었다. 우선 .gitignore 파일을 살펴보니 .gradle/ 나 .idea/ 는 기본적으로 등록은 되어 있었다. 검색해보니 git 의 캐쉬를 날려주면 적용되는것을 알 수 있었다. 터미널을 열어서 .gitignore 파일이 있는 위치로 가서 아래의 명령어를 입력했다. $ git rm -r --cached . 이렇게 하니깐 .gitignore 파일에 적용된 내용이 깃프로그램에 걸러지는 것을 확인했다. 또는 조금더 확..
#0 들어가며 새로운 프로젝트를 위해 bitbucket 에 초대를 받아 해당 레파지토리를 클론하고 이용하려고 하니 이런 오류가 발생했다. 내가 Git을 이용할때 사용한 GUI 툴은 Gitkraken 인데 아래의 경고가 보이고 pull 이든 push 든 다 안됐다. Sourcetree 에서도 비슷한 현상이 발생했다. 알고보니 ssh 인증키가 맞지 않아 bitbucket이 명령을 받아주지 않는 것이었다. GitKraken 은 해당 툴에서 다시 ssh 인증키를 생성하고 편하게 등록할 수 있었는데 소스트리는 어떻게 해야하는지 알수가 없어서 한참 헤맸다. 일단 GitKraken과 Sourcetree가 bitbucket을 접근할 수 있도록 SSH 인증키를 등록해보자. #1 Sourcetree SSH key 생성 후..
기존 안드로이드 로컬 데이타베이스를 사용할땐 SQLite를 이용했습니다. 하지만 사용방법이 매우 불편하기 때문에 ORMLite 나 greenDAO 같은 별도의 ORM(Object-relational mapping)을 이용하거나 Realm을 이용합니다. Room은 SQLite를 편리하게 사용하도록 구글이 공식적으로 내놓은 ORM이라고 생각하시면 됩니다. (왜 이걸 이제야 내놓는지... 만들어줄거면 진작에 나왔어야 하는거 아닌가 싶으ㄴ... -_-;;) 이번 포스팅에선 Room을 어떻게 사용하는지 기초적인 방법을 확인해보겠습니다. #1. Room의 기본구성요소 Entity : 데이타베이스의 테이블 이라고 생각하면 됩니다. DAO(Data Access Object) : 데이타베이스를 조작하는 함수들을 여기서 ..