Programming/Android (28) 썸네일형 리스트형 Android에서 JS를 통해 WebView와 통신하기 안녕하세요. 첫 포스팅을 게재하는 명동콜링입니다. 첫 포스팅인 만큼 간단하게 하이브리드 앱 개발 할 때 필수적인 요소인 Javascript를 통해 Web에서 App으로 데이터를 보내는 방법을 알려드리고자 합니다. 하이브리드 앱도 앱이기 때문에 웹 페이지로 구성이 되어있지만 앱의 기능을 어느 정도는 사용하게 됩니다. 그렇기 때문에 앱에서는 웹에서 어떠한 신호를 받기 위한 로직이 필요했으며, 그에 따라 생겨난 것이 Javascript를 통해 데이터를 주고받을 수 있도록 한, Android Bridge Interface 입니다. 과거에 JS를 통해 교류할 수 없었을 때에는 앱 내에서만 사용할 Scheme을 가지고 URL형식으로 호출을 하게 되었다면, 지금은 완벽하게 Javascript문법을 통해 앱의 API를.. android Multidex 적용 테스트 프로그램을 만들거나 프로젝트 초기에는 별문제 없지만 개발하는 소스와 라이브러리가 많아지면서 꼭 발생하는 오류가 있습니다. LEVEL EXCEPTION: com.android.dex.DexIndexOverflowException: method ID not in 바로 Dex 오류 입니다. 1. 오류 발생 원인 android apk에는 Dalvik Executable이라는 Dex 파일 존재합니다. 1개의 Dex파일 안에는 참조 될수 있는 함수의 개수는 65,536개 라고 합니다. 위의 에러는 함수가 총 65,536개 이상이 되었을때 발생하는 오류 입니다. 난 저렇게 많이 안썼는데 생각 하실수도 있지만 개발에 필요한 라이브러리 파일들의 함수들 까지 생각한다면 저 숫자는 어느정도 납득할수 있을 것입니다. .. android의 SharedPreferences알아보기 android에서 최초실행 여부, 간단한 설정한 값등을 어디에 저장 하면 좋을까요? 로컬DB에 쓰기, 파일에 쓰기, SharedPreferences 사용하기등 다양한 방법이 존재합니다. 그중에 이러한 작업들은 android에서 기본적으로 제공하는 SharedPreferences를 활용하면 쉽게 쓰고 읽을수 있습니다. 1. SharedPreferences란? - 간단하게 말해 xml파일에 필요한 데이터를 저장하여 쉽게 읽고 쓰게 하는 것 입니다. - 경로 : data/data/패키지명/shared_prefs/SharedPreference 에 파일이 저장 2. 객체얻어오기 - getSharedPreferences(String name, int mode) -> 위 함수를 통하여 SharedPrefrences .. Kotlin, Java 그 다음? Kotlin Programming Language2017년 5월에 있었던 Google I/O 에서 안드로이드 공식 언어로 Kotlin 이라는 프로그래밍 언어가 추가되었습니다. 안드로이드 개발 언어로는 보통 Java를 생각하게 되는데 새로운 언어라니, 게다가 공식 언어로 지정까지 하다니 자연스레 호기심이 생겼습니다. 이번 포스팅에서는 Kotlin 프로그래밍 언어가 무엇인지, 어떤 장점이 있길래 공식 언어로 지정까지 되었는지 간략히 살펴보고자 합니다.소개(뒷조사)Kotlin(코틀린)은 JetBrains 라는 회사에서 만든 프로그래밍 언어 입니다. JetBrains하면 각종 IDE로 유명한 회사죠. 저만 해도 IntelliJ, RubyMine, PyCharm, WebStorm 등 여러 제품을 접해보았습니다. .. android Realm 데이터베이스 연동 하기(2) - 활용 지난 시간에 이어서 Realm DB에 대해 알아볼까 합니다. 오늘은 android에서 간단한 활용법을 알아보겠습니다. 모델클래스를 만들어 보도록 하겠습니다. public class User extends RealmObject { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 모델클래스의 형태는 기존의 모델들과 크게 다르지는 않고 RealmObject를 상속 받았는.. android Realm 데이터베이스 연동 하기(1) - 설정 android에서 로컬에 데이터를 저장한다면 어떤 방법을 사용 하시나요? 이 물음에 답을 생각하면 제일 처음 고민 하는 것은 첫번째로 DB를 사용 할까 SharedPreferences를 사용할까를 생각 하게 되는 것 같습니다. SharedPreferences경우에는 간단하게 데이터를 저장하고 불러오기 편하여 많이 사용하지만 구현해야할 사항에 따라 DB를 생각해야 하는 경우가 생깁니다. 기본적으로는 android에서는 SQLite를 제공하여 구현할수 있지만 SQL에 대한 개념이 있다면 쉬울수 있고 모르면 어려울수도 있는 부분들이 생기기 때문에 보다 쉽게 구현할수 있는 방법은 없을까 생각하면서 찾는다면 Realm이란 모바일DB가 쉽게 검색 될 것입니다. 1. Realm 이란? 오픈소스로 모바일에 최적화된 데.. android 뒤로가기 두번으로 앱종료 하기 android의 특징중 하나인 뒤로가기 버튼이 있습니다. 뒤로가기 버튼을 통해 대부분의 앱을 종료 하기 때문에 android사용자들은 앱을 종료 하기 위해서 뒤로가기를 연속적으로 누르는 행동을 많이 합니다. 그렇기 때문에 종료의 의사가 아니고 뒤로가기를 눌렀는데 앱이 종료되는 경우가 종종 생기는데요. 이런 경우에 대비해서 국내 앱들은 뒤로가기를 두번연속으로 누른경우에만 앱을 종료 시키는 방법을 많이 사용 합니다. 해외 앱들은 굳이 이런기능들을 사용하지 않는 경우가 많은걸 보면 국가별 사용하는 방식의 차이가 있나보다란 생각도 하게 됩니다. 뒤로가기 두번연속으로 눌렀을때 종료하는 방법은 쉽게 구현 할수 있습니다. 우선 activity에서 뒤로가기 이벤트를 제어 해야 합니다. @Override public v.. android Webivew에서 새창 띄우기 Webview를 연동시 일반적인 페이지 이동이 아닌 새창이 띄워져야 하는데 아무동작이 없어 당황 스러울때가 있습니다. android에서는 새창으로 띄워지는 동작은 따로 처리가 필요합니다. 기본적으로는 위와같이 새창이 띄워져야 하는경우 WebChromeClien의 onCreateWindow함수가 호출 됩니다. 함수가 호출 되면 새창과 관련 동작을 추가 해주면 아무동작이 없어 당황스러운 상황은 쉽게 해결 됩니다. webview = (WebView) findViewById(R.id.webview); WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true); settings.setSupportMultipleWindows(t.. 이전 1 2 3 4 다음