마아아아아아아아아아아안약에, 만약에 웹뷰의 특정 이벤트를 네이티브에서 받아서 메시지를 보여주고 싶다면 어떻게 해야할까? 여러 방법이 있겠지만 JavaScript 함수를 호출하는 방법을 써보고자 했다. 동작이 되는 웹서비스를 만들 수 없으니 로컬에 HTML 파일을 두고 테스트할 수 있도록 샘플앱을 만들었다. (착하지?) 내 Github에서 모든 코드를 확인할 수 있다. (정말 착하지?) var handler = Handler() inner class AndroidBridge { @JavascriptInterface fun sendData(msg: String) { handler.post(Runnable { var message = msg if (message.isEmpty()) { message = "입력..
수직 스크롤 안에 수직 스크롤 되는 뷰가 또 있다면 꽤 피곤하다. 보통 이럴 때 사용하는 것이 nestedscrollview이다. 이런건 수직 스크롤에서 발생하는 이슈. 그렇다면 수평인 경우에도 이렇게 골치 아픈 일이 있지 않을까? 문제는 다음과 같다. MainActivity 내부에 ViewPager가 있다. ViewPager의 스와이프 기능은 오버라이드된 canScroll()에서 막았다. ViewPager에는 여러개의 Fragment가 동적으로 붙는다. Fragment 중 일부는 WebContainer로 구성되어 있고 이 WebContainer는 WebView를 갖는다. WebView에는 수평 스크롤 View를 가질 수 있다. Fragment 중 일부는 완전한 네이티브로 구성되어 있고 수평형 Recyc..
일단 뽕(?)을 좀 넣어봤다. 최고인지는 이 글을 보시는 분들이 판단할 것이고. 개발자와 디자이너의 연합동아리인 넥스터즈(NEXTERS)가 16기 회원을 모집중이다. 넥스터즈는 개발자와 디자이너가 함께 2개월간 프로젝트를 수행하면서 경험치를 쌓을 수 있는 동아리이다. 2번의 기수를 거쳐서 수료를 한 회원으로서 넥스터즈 활동을 되돌아보고 나의 경험을 공유해보고자 여기에 기록을 남겨본다. 대학생도, 사회초년생에게도 열려있는 기회 서류지원부터 면접, 합격까지의 과정은 별도의 포스팅으로 기록할 예정이다. 여기에 쓰고 싶은 것은 합격한 사람들의 이야기이다. 쉬는 주차를 포함하여 9주간의 활동이 계획되어 있다. 활동을 여는 첫주는 OT. 이 때 만난 사람들은 개발자 혹은 디자이너라는 것을 제외하고는 다양한 사람들이..
11월의 어느날, Play store에 릴리즈를 하려고 APK를 Console에서 업로드를 했는데... "자세히 알아보기"를 클릭해보면 "Google Play의 대상 API 레벨 요구사항 충족하기"라는 구글 문서가 나온다. 앱 업데이트는 2019년 11월 1일부터 Android 9.0(API 레벨 28) 이상을 타겟팅하도록 요구하기에 이 시점부터는 해당 레벨 미만의 앱은 업데이트가 안된다는 뜻이다. (왓더) 그래서 SDK를 업데이트를 했다. minSdkVersion = 16 targetSdkVersion = 28 // Update : 26 to 28 compileSdkVersion = 28 buildToolsVersion = '28.0.3' 이제 빌드를 해야지 했는데... 설치가 안되는 경우 설치가 되었..
안드로이드 코딩만 하는 나에게 함수형 프로그래밍은 두루뭉실한 개념이다. 객체지향 프로그래밍만 코딩이라고 생각하고 작업을 해왔으니... 알고리즘만 있는 명령형 프로그래밍은 목표가 없기 때문에 "지향"이라는 단어를 쓰는게 아닐까 싶다. 하지만 함수형 프로그래밍은 선언형이라고 부르며 무엇(What)을 하겠다는 선언할 대상인 목표가 생긴다. 이를 잘 정리한 블로그를 통해 추가 학습을 하길 바란다. 리액티브라고 부르는 이 프로그래밍은 Rx(Reactive extension) 혹은 FRP(Functional reactive programming)에서 파생된 말이다. 비동기적, 반응형, 고차함수 등의 특징을 가지는 프로그래밍이기에 함수형 프로그래밍을 설명하였다. 보시다싶이 FRP에는 함수(Function)도 들어가 ..
샘플 이미지가 필요한 경우, 그것도 많이, 왠만하면 검색도 가능하게. 그럴려면 돈을 지불해서 구글 검색이나 상용화 API를 떠올릴 수 있다. 하지만 Flickr API로 간단하게 구현도 가능하다. 오늘은 Flickr에서 이미지를 가지고 오는 방법을 기록해본다. Flickr는 야후가 인수한 이미지 공유 서비스로 자세한 설명은 나무위키 링크로 대체한다. 샘플용 앱 링크는 아래와 같다. conquerex/SearchKoreanFood 이미지와 비디오 리스트를 볼 수 있는 Sample App. Contribute to conquerex/SearchKoreanFood development by creating an account on GitHub. github.com 일단 통신을 할 수 있는 상황은 세팅 되었다고..
쓰레드가 뭔지 알고 싶다면 앞글부터 읽어보자. https://devvkkid.tistory.com/119 안드로이드에서 Thread가 중요한 이유 쓰레드, 쓰레드, 쓰레드... 말은 무지하게 많이 들어봤지만 제대로 들여다본 적은 없는 1인 그래서 알아봈다. 쓰레드가 뭐고 당췌 왜 중요한가... 쓰레드가 뭐시당가 먼저 프로세스(Process)를 이해해봅시다. 간.. devvkkid.tistory.com 뭐, 잘은 아니더라도 대애애애애충 쓰레드가 뭔지 알았다면 이제 사용을 해볼 차례. 특히 백그라운드 쓰레드에서 UI 변경을 하기 위해 UI쓰레드에 접근하는 방법을 알고 싶을텐데. 그것부터 해보자., 쓰레드 간 작업을 전달하고 싶다면?? 안드로이드 개발문서를 보면 아래와 같은 안내가 있다. UI 스레드를 차단하..
쓰레드, 쓰레드, 쓰레드... 말은 무지하게 많이 들어봤지만 제대로 들여다본 적은 없는 1인 그래서 알아봈다. 쓰레드가 뭐고 당췌 왜 중요한가... 쓰레드가 뭐시당가 먼저 프로세스(Process)를 이해해봅시다. 간단히 얘기해서 메모리 상에 실행되고 있는 프로그램이 프로세스입니다. 이 프로세스가 간단하다면 하나의 연산만 진행하고 대기상태에 머물겠죠. 텍스트 한줄만 있는 앱이 있다면 텍스트만 보여주기만 하면 되니깐 그럴 수 있습니다. 하지만 보통 2개 이상의 연산을 해야됩니다. UI를 보여주면서 서버와 접속도 해야되고 현재 상태도 확인해야하는 등의 상황이 있죠. 이렇게 독립적으로 실행이 되는 흐름/줄기/가닥을 쓰레드(Thread)라고 부릅니다. 안드로이드 쓰레드 Java를 공부하면 눈에 익숙한 함수가 나온..
2개 이상의 언어 혹은 2개 이상의 나라에 App을 출시할 때 앱 내 코드 뿐만 아니라 구글 플레이에도 언어에 맞게 정보를 세팅해야 한다. 그중 매 릴리즈마다 작성하게 되는 릴리즈 노트도 그 대상 중 하나. 기본적으로 한국어는 지원이 되고 그럼 다국어니깐 다음과 같이 하면 되지 않을까? "지원되지 않는 다음 1개 언어의 번역이 발견되었습니다. en-US. 이 언어의 번역을 삭제하거나 앱의 스토어 등록정보에 지원되는 언어로 추가하세요." 왜 안될까. 이것 외 다국어 세팅이 더 필요하기 때문이다. [앱정보 -> 스토어 등록정보]에서 오른쪽 상단에 "변역 관리"라는 것이 있다. 여기서 본인이 원하는 언어를 선택하고 해당 언어로 앱 정보를 입력하면 릴리즈 노트에도 해당 언어로 반영할 수 있다. 이렇게. 이제 글..
로컬DB와 친하지 않는 나에게 Realm은 조금 신세계.시작이 어렵지 막상 조작하다보면"오호라. 이렇게 쓸 생각을 하다니."라면서 감탄을 하게 된다.감탄만 했다면 Realm 초보 중 초보.내가 그랬으니깐. 정말 쉬운 방법인데 다만 모를 수 있다.(사실 나만 모르는게 아닌척 하고 싶었다.)알고보면 쉬운 Realm 파일 꺼내는 법을 남겨본다. 내가 예상한 데이터가 계속 나오지 않는 문제를 발견했다.그래서 데이터 파일을 직접 열어보고 싶어졌다.나의 상황은 이렇다. Android 디바이스 내부 Data, 시뮬레이터 아님로그를 찍어서 보는게 아니라 Realm 스튜디오로 조회 검색을 해보니 ADB로 Data 파일을 Pull을 하는 방법이 있었다.시도해 보았으나 여기서 permission denied이 등장했다.디바..
Comment