728x90
728x90

정리가 필요한 카테고리(추후 정리)/Android, iOS 15

안드로이드] 안드로이드에서 HttpURLConnection을 이용해 POST 방식으로 데이터 전송하기

HttpURLConnection 클래스를 이용하면 URL 요청하고 POST 방식으로 데이터를 전송하여 응답을 받을 수 있다. 기본적으로 Http 통신에서 지원하는 GET, POST 방식 등을 제공한다. try { URL url = new URL(uri); String result = ""; HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Accept-Charset","UTF-8"); conn.setUseCaches(false); conn.setReques..

안드로이드의 이미지버튼(ImageButton)과 이미지뷰(ImageView)의 차이

기본 스타일이 다르다는 것 외에는 둘의 차이는 크게 없다. 성능 차이가 있는지도 의문이고, 기본적인 스타일만 차이나는 것으로 보인다. ImageButton은 non-null 백그라운드가 기본값으로 설정되어 있다.ImageButton.onSetAlpha()는 항상 false를 반환하고, scaleType은 center로 설정되어 있고, 포커싱 방식으로 팽창된다. 사실 이미지 버튼을 만들 때, ImageButton를 사용하는 사람도 있고 ImageView를 사용하는 사람도 있다. 둘 차이에 크게 다른 점이 없다면, 개발자가 어떻게 사용할 것인가 원칙을 정하고 사용하는 것이 좋은데, 스택오버플로우의 개발자들 의견은 이렇다. Button텍스트로 구성되어 있으며 3D 렌더링을 바탕으로 하는 경우 ImageButt..

코틀린(Kotlin)으로 작성한 안드로이드 블루투스 리모컨 예제

https://twinparadox.tistory.com/132 위 링크에 올린 블루투스 리모컨으로 조종하는 아두이노 선풍기에 어플리케이션 코드가 없었다. 프로젝트를 정리해 올리면서 아두이노 스케치 코드는 올렸는데, 어플리케이션 코드는 찾지 못해서 올리지 못한 상태였는데 최근 코틀린을 배우면서, 코틀린도 연습할 겸, 잃어버린 프로젝트의 주권(?)을 되찾을 겸, 리모컨을 다시 만들었다. 소스에 대해 간략히 설명하자면, SelectDeviceActivity는, 블루투스 장치를 검색 및 선택하는 액티비티고, ControlActivity는 해당 장치를 컨트롤하는 액티비티로, 여기서는 리모컨 역할을 하는 액티비티다. 깃허브 주소 : https://github.com/Twinparadox/ArduinoFan-wit..

코틀린(Kotlin) 조건문(When, if)

코틀린에서의 기본적으로 사용할 수 있는 조건문은 크게 두 가지, if와 when이다. if-elseif-else 구문은 기존의 언어들의 형태와 동일한 방식으로 사용할 수 있다. if(조건문) {내용...}else {내용...} whenwhen이라는 표현이 조금 색다른 표현처럼 느껴질 수 있는데 이는 다른 언어의 switch-case 구문이다.switch-case 구문에서 변수의 범위를 지정하는 일이 귀찮은데, 코틀린에서는 이 부분을 많이 개선한 것 같다. when(x) {1 -> { 내용... }2 -> { 내용... }else -> { 내용... }} when(x) {1, 2 -> { 내용... }in 10..30 -> { 10에서 30까지 }!in 10..30 -> { 10에서 30까지에 포함되지 않..

코틀린(Kotlin)을 이용하면 findViewById()를 사용할 필요가 없다

코틀린에서는 더 이상 findViewById()를 사용하지 않아도 된다.정확히는 Kotlin Android Extension만 적용시키면, 레이아웃을 import 시키는 것만으로도 XML에서 정의내린 위젯들을 Id로 읽어들여 하나하나 변수로 만들어줄 필요가 없어졌다. textviewID라는 ID를 가지는 요소를 XML에서 정의했다고 치자.자바에서는 말할 것도 없이 findViewById()를 사용하는 방법부터 써먹을 것이고, 코틀린에서도 전통적인 자바의 방식을 사용하는 사람들이 많을 것이다. TextView textViewID = findViewById(R.id.ui_text_hello) as TextView textViewID.text = "기존의 방식"이 방식이 아예 틀린 방식이거나 구 시대의 잔재라..

안드로이드 예제 - 코틀린으로 로그인-메뉴 화면 만들기

코틀린으로 처음 모바일 프로그래밍을 입문하는 사람들은 관련 책을 참고하는 것을 추천한다.필자가 참고하는 책은 Do It! 안드로이드 앱 프로그래밍으로, 꽤 오래 전에 산 책이라서 코틀린이 아닌 자바로 써진 책이다. 코틀린으로 써진 책은 아니지만 이렇게 간단한 어플 만들기 예제들이 많이 있어서 예제 아이디어를 얻는 용도로 사용하고 있다. 책으로 코틀린 관련 지식들을 습득할 수 없으니, 부족한 부분들은 자바의 소스들을 가져다 넣고 코틀린으로 바꿔서 해당 기능이 어떻게 사용되는지 확인하거나, 구글링으로 해결하고 있다. 이번 예제는 '로그인 화면과 메뉴 화면 간단 만들기'라고 되어 있다. 서버/클라이언트 통신을 통해서 로그인 확인을 하지는 않고, 앱에 미리 저장해둔 아이디와 비밀번호를 비교하는 작업으로 간단하게..

Kotlin] lateinit과 lazy

lateinit과 lazy는 지연 초기화를 위해 사용함.클래스 생성 동시에 사용하지 않는 변수에 대해서는 늦게 초기화할 때 사용하며, null은 필요한 경우에 한해서 명시. lateinitvar에 사용하고, var이기 때문에 초기화 값을 변경할 수 있음.null을 통해서 초기화하지 않고, 초기화 전까지 해당 var 변수에는 접근하지 못함.변수에 대해서 getter, setter를 정의할 수 없음.모든 변수에서 가능한 것은 아니며, primitive type에 대해서는 사용 불가능. lazyval에 사용하고, 호출 시점에 by lazy 정의로 초기화.val에서만 사용하기 때문에 불변이며, 초기화를 위해서 함수명을 한 번이라도 적어줘야 함.lazy을 사용하는 경우 기본 Synchronized로 동작. 값의 ..

코틀린(Kotlin) 함수, 변수 정의

코틀린을 입문하는 사람들이 기존 Java로 안드로이드 개발을 하던 사람이거나, C#을 이용해 자마린을 쓰는 사람 등 다양한 사람이 있을 것 같다. 앞서 말한 두 언어와 코틀린의 가장 큰 차이점이라면 아무래도 세미콜론(;)을 사용하지 않는다는 것이다. 함수 정의 방법함수는 fun 키워드로 정의하며 함수 몸체 자체가 식(Expression)일 때는 return을 생략할 수 있음. fun sum(a: Int, b: Int) Int {return a + b}fun sum(a: Int, b: Int) = a + b 리턴 타입을 지정하는 방식이나, 기존의 인자 선언 방식이 C++, Java 같은 언어와는 방식이 약간 다르지만 형식 지정이 없는 것은 아니다. 경우에 따라서 함수의 리턴 값이 없는 경우에는 Unit(O..

[Android] Xamarin으로 카메라 플래시 사용하기

우리나라에는 아직까지(혹은 앞으로도) 자마린 관련한 한글 가이드가 없다.앞으로는 어떻게 될지 모르겠지만, 이런저런 이유로 국내에서는 자마린 활용도가 떨어지는 편인데, 그럼에도 불구하고 C#과 Visual Studio를 포기할 수 없다면서 자마린을 시도하려는 사람들에게 작은 도움이 되고자 계속 글을 올리고 있다. 나 또한 배우고 있는 입장이고, 이런저런 자투리 정보들을 끌어모은 결과물을 바탕으로 글을 쓰고 있다. 앞으로 선 보일 예제 등에서도 파워포인트로 도형 그리기를 해서 자작한 버튼으로, 디자인 쪽에서의 퀄리티가 다소 떨어질 수 있으나, 예제에 사용할 목적으로 만들었으니 신경쓰지 않았으면 한다. 제목에 적혀 있듯, 오늘 만들어 볼 예제용 앱은 카메라 플래시를 켜고 끄는 앱(속칭 손전등 앱)이다. 아래처..

[Android] 자마린 안드로이드 가이드 따라가기 #2

지금까지 애플리케이션을 구동시키는 소스를 작성했다.이것이 정상적으로 작동하게 하기 위해서는 한 가지 해줘야 하는 작업이 있는데, 바로 '퍼미션 설정'이다.앱 개발을 해본 사람들은 알겠지만, 스마트폰의 어떤 것에 접근하기 위해 권한 요청을 하는 작업이다. 참고로, 접근 권한에 대해서 좀 더 엄격해졌다. 과거에는 앱이 설치되는 즉시 명시해놓은 접근 권한에 대해서는 암묵적으로 동의하는 것으로 간주하고 앱 설치 이후에는 명시해놓은 정보들에 무차별 접근했으나, 최근 법이 바뀌어, 사용자가 설치하더라도 해당 권한에 접근하려는 경우 반드시 거기에 따른 권한 허가를 받아야만 한다. 퍼미션에 대한 것은 안드로이드 스튜디오에서와 마찬가지로 AndroidManifest.xml에서 관리한다. 이외에도 xml에 직접 코드를 넣..

728x90