목록전체 글 (103)
우찬쓰 개발블로그
일반 자바와 상식적으로 다르게, foreach 문에서는 break를 다르게 구현해야 한다. 아마 대부분 이 글을 찾아왔다면, 아래와 같은 문제를 겪었을 것이다. 예시를 들어보자. '1', '2'와 '끝'을 찍고 싶어서 다음 메소드를 만들었다고 치자. fun testForeach() { val testList = arrayListOf(1,2,3,4,5) testList.forEach { if(it == 3) return println(it) } println("끝") } 슬프게도 이 메소드는 '1', '2'만 찍히고 '끝'은 찍히지 않는다. 왜냐하면 여기서 return 은 메소드를 리턴시키기 때문이다. 그렇다면 당신은 이것도 시험해 봤을 것이다. fun testForeach() { val testList ..
필자와 같은 경우는 거의 없겠지만, 스마트폰용 안드로이드앱을 키오스크에 설치해서 전시하고 싶다는 요청이 들어왔다. 아마 타블렛 앱을 개발해 본 사람은 알겠지만 타블렛 용 안드로이드앱으로 모두 레이아웃 작업을 해주어야한다 그 이유를 간단하게 예를들어 설명해 보겠다. 필자가 작업한 키오스크 터치스크린은 1080x1920 이다. 사용한 보드는 ODROID c2이다. 그리고 타블렛을 작업해본 안드로이드 개발자라면 알겠지만, 무조건 density가 mdpi로 os세팅이 잡힌다. 그리고 설정에서 변경이 불가하다. 이게 우리가 가장 골머리를 앓는 부분이다. 그래서 타블렛 용 앱으로 레이아웃 작업할때 dp값도 전부 다르게 늘려줘야한다. 하지만 언제까지나 만드는 앱마다 전시를 위한 타블렛용 레이아웃을 노가다해서 작업하는..
SNS와 관련된 기능을 구현할때 필요하게되는 key hash. 디버그용일 경우 keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64 릴리즈용일 경우 keytool -exportcert -alias androiddebugkey -keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64
안드로이드 스튜디오의 단축키는 많지만, 필자도 실제로 사용하고 있는 단축키는 많지 않다. 필자가 실제로 사용하고 있는 단축키 위주로 정리해 보고자 한다. 1. option + command + 방향키 좌우 방향키 좌키일 경우 이전 작업하던곳(같은 파일내 이든, 다른 파일 이든)으로 돌아간다. 방향키 우키일 경우 돌아가기 전으로 다시 간다. 2. Fn + Shift + F6 이름(변수명, 클래스명 등)을 바꾼다. 참조하고 있는 모든 이름을 한번에 바꿔준다. 3. Fn + 방향키 위아래 현재 화면의 맨 아래 혹은 맨위로 커서의 위치를 변경한다. 4. command + d 현재 코드줄을 바로 아래줄에 복사하여 끼워넣는다. 6. command + BackKey 현재 줄을 전부 삭제한다. 8. command + ..
보통 프로젝트에서는 해당 프로젝트 내에 .git 폴더만 지우면 끝이지만(실제로 대부분의 검색에서 그렇게 나온다.) 안드로이드 스튜디오로 만든 프로젝트는 이렇게 하면 git과 관련된 내용이 완전히 지워지지 않아 Version Control에 오류가 생긴다. 그렇다면 간단히 안드로이드 프로젝트의 git을 지우는 방법을 알아보자. 1. 안드로이드 스튜디오 메뉴의 Preferences.. 로 들어가자. 2. 목록에 Version Control을 클릭한다. 3. VCS가 Git인 것을 클릭하고 Remove 한뒤 Apply 한다. 이렇게 하면 Git이 깨끗하게 프로젝트에서 사라진 것을 확인할 수 있다.
안드로이드에 블루투스 기능을 붙여야하는 개발자들의 고통을 줄여주기위한 라이브러리를 소개하고자 한다. (RxJava를 모르면 더 고통스러워 질수 있으니 RxJava에 대한 지식이 있는 사람만 보기를 권장한다.) 구글에서 자체적으로 안드로이드에 지원하는 BLE라이브러리가 있지만, BLE 기능을 개발해본 개발자들은 알다시피 BluetoothGattCallback에서 전부 분기처리를 해주어야하니,, 여간 고통스러운일이 아닐 수 없다. 잠시 이 글과는 관계없는 다른 이야기를 하자면 자바에도 함수형 프로그래밍 바람이 불면서 OnClickListener등도 Activity class에 상속하거나 따로 변수로 생성하여 분기처리 하는 것이 아닌 람다로 간단히 해당 뷰에 set하는 형식으로 트랜드가 바뀌어 가고있다. 필자..
현업에서 안드로이드 개발을 하면서 log를 불편하게 사용하는 사람들을 많이 보았다. 그나마 짬밥(?)이 오래된 사람들은 로그 유틸 클래스를 만들어서 사용하거나, 자기만의 규칙을 만들어서 쓰곤한다. 물론 그들이 틀린것은 아니지만 알다시피 다른사람들이 본인만의 방식으로 만든 코드를 유지보수 하기란 여간 힘든 일이 아니다. 하지만 이런 문제를 가볍게 해결해 주면서 Stack Trace 출력, Release로 배포시 로그를 출력 안하게 해주는 기능까지 있는 라이브러리가 있으니, 바로 로거(Logger)이다. https://github.com/orhanobut/logger 위 링크에서 볼 수 있는 예제 스크린샷을 보자. 깔끔하게 구분되어 나오는 것을 볼 수 있다. 로거의 라이센스는 Apache-2.0이므로 안심하..
안드로이드 aar을 쉽게 추가하는법. 1. 안드로이드 스튜디오 좌측 project를 android에서 project로 바꿔준다. 에서 로 바꿔주면 된다. 2. libs 폴더에 aar파일을 넣어준다. 3. app 수준 gradle에 다음과 같이 추가한다. android { compileSdkVersion 27 defaultConfig { applicationId "com.woochan.example" minSdkVersion 19 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { mini..
보통 TextView에 부분 BOLD 처리를 하기위해 val sourceString = "" + text1 + " " + text2; textview.test = Html.fromHtml(sourceString) 이렇게 많이 쓴다. 하지만 strings와 xml 수준에서 처리할 방법은 없을까? 답은 있다. ""연습용 텍스트""텍스트 텍스트 이렇게 한 후 xml TextView에 text 에 넣으면 미리보기상으로는 bold처리가 되지 않은 것처럼 보인다. 하지만 실제 빌드시 정상 동작하는 것을 볼 수 있다.
git clone으로 tar파일 받아서 make하면서 장시간 기다리는 뻘짓을 반복하다가 쉬운 방법을 찾아서 공유합니다. 순서대로 커맨드를 입력하세요. $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash$ nvm install node끝. 여기서 node 버전을 원하는 버전으로 바꿔봅시다. $ nvm install v6.11.3 $ nvm use v6.11.3 $ nvm alias default v6.11.3 끝. PS. 혹시 nvm을 못찾아서 다음과 같은 오류를 뱉을경우 command not found: nvm .bash_profile 에 다음을 추가해주자. [[ -s $HOME/.nvm/nvm.sh ]..