본문 바로가기

Programming/Android

(44)
Kotlin function 의 return 타입을 void 로 하고 싶어요 callback lambda 를 function의 parameter로 넘겨서 사용하려고 합니다. lambda의 정의는 간단하죠. 함수 정의 fun saveFile(value: Int, callback: (value: Int) -> Void) { } 함수 사용 functionName(10, { value -> }) 이렇게 하면 당연히 될줄 알았습니다. 대부분의 언어에서 return 값이 없으면 void 또는 빈값을 해서요... https://kotlinlang.org/docs/reference/functions.html#unit-returning-functions return 값이 없을 때는 Unit type 으로 return type 을 지정해야 한다고 되어 있습니다. 함수 정의 fun saveFile(..
Kotlin class 가져오기 (Java에서 ClassName.class) 최근에 안드로이드 프로젝트를 새로 시작했습니다.혼자하고 작은 프로젝트라서 Kotlin으로 하고 있습니다. (유지보수는 누가하지...)Swift와 비슷해서 시작했는데 다른 부분이 더 많네요.여러 부분에서 막히고 문서 보고를 반복하다가 방금 찾아 본 것을 남겨봅니다. Android 에서 새로운 Activity를 실행하려고 할때 Activity 의 class type을 넣어줘야 하는데요.Java Intent intent = new Intent(this, MainActivity.Class); Kotlin val intent = Intent(this, javaClass()) 위 방법은 현재 deprecated 입니다. 현재 버전에서는 다음과 같이 사용해야 합니다. Kotlin val intent = Intent(..
[Gradle] local aar 파일 추가하기 빌드해서 aar을 생성했는데… 그냥 dependency에 넣어서는 추가가 안된다. 뭐지;; 일단 duplicate 오류가 나면 aar과 겹치는 리소스가 있어서 그렇다. 그래서 모듈 리소스명 앞에 prefix를 붙여서 해결함. 그후 빌드는 성공했는데 class를 찾을 수 없다!!!!!! 뭐지… compile fileTree(dir: 'libs', include: ['*.jar','*.jar']) compile files('libs/chope-1.0.0.aar') 이 방법 둘다 안 먹힌다. 해결 방법은 다음과 같다. aar은 꼭 repository에서만 추가되어야 하나 보다. 그래서 일단 local repository를 추가해준다. repositories { flatDir { dirs 'libs' } } 그..
[Gradle] Android 모듈 aar파일명 변경 Android Module은 빌드되면 .aar (Android ARchive) 파일로 생성됩니다. 기본으로 build/outputs/aar 위치에 [module].aar 로 생성됩니다. [module]-[version].aar 으로 변경하려면 아래와 같이 설정합시다! android { ..... buildTypes { release { project.archivesBaseName='chope' project.version=defaultConfig.versionName ..... } } }
Android<->Mac Bluetooth 연결하기 Mac 을 Server로 하고 Android를 Client로 하여 서로 데이터를 주고 받도록 하는 것이 1차 목표였다.둘의 통신은 BLE가 아닌 기본 Bluetooth 이다.Mac은 IOBluetooth를 사용하지 않고 Python LightBlue library를 사용하여 작성하였다.아래는 기본 테스트이므로 접속이 완료되면 데이터를 주고 받고 끝난다. Android Codepackage com.yhg.bluetoothclient; import android.annotation.TargetApi; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.Bluetoo..
gradle 로 NDK OpenGL 빌드 android { defaultConfig { ndk{ moduleName "moduleName" ldLibs "GLESv1_CM", "log" } } }
Crashlytics Beta 기능 Crashlytics (https://www.crashlytics.com) 는 crash 정보 수집을 하는 좋은 서비스입니다.몇일 만에 접속하니 새로운 기능이 생겼습니다. Beta (http://try.crashlytics.com/beta) 간단히 봐서는 iOS의 TestFlight (https://testflightapp.com) 와 비슷한 동작을 하는듯 합니다. 이제 직접 체험해 보겠습니다.Crashlytics Plugin 을 실행하고 apk파일을 드래그 합니다. 이 화면 뒤에는 테스터들의 email을 입력하면 끝이난다.테스터들은 초대 메일을 받습니다. 모바일 디바이스에서 Let Me In 을 누르면 Beta 앱이 설치됩니다. 테스트를 원하는 앱을 선택합니다. 앱명, 패키지명, 버전명, 버전코드, 릴..
Galaxy S 시리즈에서 WebView loadData 한글깨짐 WebView 의 loadData 매소드를 이용하여 html을 보여주는데 한글이 깨지는 현상이 발생했습니다.그것도 Galaxy S 시리즈에서만... 구글링을 하다 해결책을 찾아서 적용했습니다.의외로 간단하지만....webview.loadData(content, "text/html; charset=utf-8", "utf-8"); 출처 : http://www.androidpub.com/index.php?mid=android_dev_qna&listStyle=webzine&page=10&document_srl=2344906&sort_index=voted_count&order_type=desc