본문 바로가기

[Android] 안드로이드 스튜디오 3.1 이후에서 JAR 빌드 방법 라이브러리 프로젝트를 만들고 나서 구글링한 결과를 토대로 빌드를 하려고 했더니 jar파일이 생성이 안 되었었다. 그래서 찾아보니 jar 파일을 생성하기 위한 classes.jar의 파일의 경로가 3.1 이상 버전부터 바뀌었다고 한다. 아래에 있는 부분을 참고하면 된다. 위에 있는 부분이 기존에 3.1 미만 버전에 있던 버전에서 jar 파일을 생성했던 코드이고 아래에 있는 것이 3.1 버전 이후부터 동작하는 코드이다.(build.gradle에서 수정) task deleteOldJar(type:Delete) { delete 'release/library.jar' } task exportJar(type:Copy) { from('build/intermediates/bundles/release/') into('r..
[Android] ScrollView 안에 MapFragment 넣기 프로젝트를 진행하던 중에 MapFragment를 ScrollView 안에 넣어야 하는 작업이 있었는데 나중에 똑같은 일이 생길까봐 남겨놓고자 합니다. 지금까지 나와있는 방법들을 살펴보면 원리는 다음과 같다. 1. 실제 Map이 깔리는 View 위에 또 하나의 터치가 가능한 View를 추가한다. 2. 추가된 View의 터치 이벤트에 따라 scrollview의 requestDisallowInterceptTouchEvent를 설정한다. 여기서 추가되는 View는 Fragment의 바로 위에 둘 수도 있고 SupportMapFragment를 상속받은 클래스에서 직접 추가하는 방법도 있는데 여기서는 나중에 사용의 용이성을 위해 SupportMapFragment를 상속받은 클래스로 구현을 하고자 합니다. 1. Su..
[Android] Android Testing Codelab(Java 버전) 기존에 Android Testing Codelab에 있던 Test 샘플 예제가 현재는 존재하는데 커밋 부분으로 돌아가야 하는 번거로움이 있다 (바뀌기 전 마지막 커밋 : https://github.com/googlecodelabs/android-testing/commit/05caa91933674cdbb5286b737eec5fa4eff66b78) 그 당시에 repository를 클론해온 것이 있어 따로 찾을 때 뒤적이지 않도록 올려놓았다. 아래 주소는 현재 codelabs에서 kotlin 버전으로 testable한 프로젝트 구현을 설명하고 있는 것이며 내용은 Java와 거의 흡사하다.(기존 자바 버전은 사라졌다 ㅜㅜ) https://codelabs.developers.google.com/codelabs/a..
[Android] Pie 변경사항 링크 따로 찾기가 귀찮아서 여기에 링크를 남김 여태까지 문제가 되었었던 부분은 다음과 같았음 1. Webview에서 http로 웹페이지 접속할 때 2. Google Maps SDK 쓸 때 apache http client 지원 중단으로 인해 동작 안함 https://developer.android.com/about/versions/pie/android-9.0-changes-28?hl=ko
[Android] ERR_CLEARTEXT_NOT_PERMITTED 해결 방법 부탁받은 웹앱이 갑자기 ERR_CLEARTEXT_NOT_PERMITTED라는 에러와 함께 동작하지 않는 이슈를 발견했다. 원인은 안드로이드 파이로 넘어오면서 웹뷰에서도 https를 강제하도록 한 것이 이유였다. 해결방안은 두 가지가 있는 것 같다. 1. 기존에 쓰던 웹페이지를 https 연결이 되도록 변경할 것(이건 안드로이드 개발자가 어떻게 할 수 없음....) 2. 무시하고 진행이 되도록 안드로이드 매니페스트 설정 변경 웹을 내가 대신 할 수는 없으니.... 2번 방법을 통해서 고쳤다. Manifest에서 태그 안에 android:usesCleartextTraffic="true"라고 하나 더 추가해주면 된다. 아무래도 보안 문제가 현재 큰 화두이다 보니 이런 업데이트를 한 것 같다
[Node.js] Firebase Hosting 때 파일 업로드 기능 구현 시 주의사항 Firebase Hosting 무료 버전에서 파일 업로드를 테스트해볼 때 삽질을 많이 했던 것 같다.(웹 쪽 부분도 오랜만에 보니 너무 생소한 것 같고...) 나중에 똑같은 삽질을 안 하기 위해 정리해 둔다. 체크포인트만 간략하게 정리하면 다음과 같다. 1. 일단 html 쪽에서 Form 부분에 enctype을 안 주면 form-data 형태로 안 넘어가므로 받을 수가 없다. 2. 공식 문서에서 req.rawBody에 제대로 오는지 확인할 것(없다면 req.body에 해당 파일 내용이 오는지 확인) 공식문서 링크 : https://cloud.google.com/functions/docs/writing/http?hl=ko HTTP 함수 | Cloud Functions 문서 | Google Cloud HTT..
[Android] 안드로이드 에뮬레이터에서 로컬호스트 접속하기 안드로이드 에뮬레이터에서 로컬 서버로 접속하려면 http://10.0.2.2 으로 접속시키면 된다.
[Android] MVP 패턴에는 Contract 인터페이스가 꼭 필요할까? Android MVP 패턴 예제 소스(구글꺼)를 보면 항상 Contract 인터페이스가 존재하는 걸 볼 수 있다. 그리고 그 코드들을 보다보니 Contract 인터페이스를 빼도 되지 않을까라는 생각이 들게 되었고 실제로 Contract 인터페이스를 빼고도 구현을 할 수 있었다. 일단 Contract 인터페이스의 역할은 해당 View와 Presenter가 어떤 메소드(기능)들을 가져야한다는 것을 보여주는 것이라고 생각했었고 이러한 기능을 기준으로 Contract 인터페이스를 만들었을 때 좋은 점과 나쁜 점에 대해 생각해보았다. 1. 좋은 점 Contract 인터페이스 자체가 문서로써의 역할이 가능함 Contract 인터페이스가 Presenter와 View 간의 상호작용에 대한 설계를 도와줄 수 있음 큰 프..