본문 바로가기

전체

(71)
[ Android ] 가로/세로 화면 전환 앱을 만들면서 겪는 문제 중 하나가 단말의 방향 전환 문제이다. 단말의 방향이 바뀌었을 때는 가로와 세로 화면의 비율에 따라 화면이 다시 보이게 된다. 이는 액티비티가 없어졌다가 다시 생기는 현상이다. 따라서 onCreate() 함수도 다시 호출되며, 이에 따라 가지고 있던 데이터도 초기화된다. 이러한 문제를 처리하는 방식에는 3가지가 있다. | 액티비티 바뀜 + 가로/세로 레이아웃 가로와 세로 각각의 XML 레이아웃 파일을 생성해두고 화면 방향이 전환될 때, 액티비티는 바뀌면서 방향에 맞는 XML 파일을 화면에 보여주는 방식이다. res폴더 하위에 layout-land (지정된 이름) 리소스 폴더를 추가하고 여기에 가로 XML 레이아웃 파일을 저장해둔다. 이 때, 세로 XML 파일과 가로 XML 파일명..
[ Android ] 안드로이드 무선 디버깅 (adb) adb는 android debug bridge 의 약자로서 기기와 통신할 수 있는 명령어입니다. adb 명령어는 앱의 설치 및 디버깅 등의 작업에 도움이 됩니다. ( 자세한 사항은 맨 아래의 링크를 참조해주세요 ) 이를 통해 기기에 선을 연결하지 않고 디버깅 할 수 있습니다. ( 단, Wi-Fi 연결을 했을 경우에 가능합니다. ) 처음 실행할 때는 USB 케이블을 꽂고 실행해야 합니다. 안드로이드 스튜디오에서 아래의 Terminal 을 클릭합니다. 먼저, 다음과 같이 입력합니다. | TCP/IP 연결 수신 대기 설정 adb tcpip 5555 다음으로는 연결된 기기의 Wi-Fi IP 주소를 알아야 합니다. 설정에서 Wi-Fi 쪽으로 가서 연결되어 있는 와이파이를 클릭합니다. 바로 나와있을 수도 있고, 그..
[ Android ] 앨범에서 사진/동영상 가져오기 안드로이드의 장점 중에 하나는 기본적으로 휴대폰이 제공하는 기능을 사용할 수 있다는 것이다. 그 중에 하나가 카메라 및 앨범 기능이다. 사진이나 동영상을 첨부하고 싶을 때는 다음과 같이 사용하면 된다. | 사진 가져오기 Intent intent = new Intent(Intent.ACTION_PICK, MediaStroe.Images.Media.EXTERNAL_CONTENT_URI); intent.setType("image/*"); startActivityForResult(intent, REQ_PICK_IMAGE); | 동영상 가져오기 Intent intent = new Intent(Intent.ACTION_PICK, MediaStroe.Images.Media.EXTERNAL_CONTENT_URI); i..
[ Android ] unable to open debugger port (localhost:8700) 안드로이드 개발자라면 한 번쯤은 나타나는 에러다. 디버깅 모드로 실행을 하다보면 나온다. error running 'app': unable to open debugger port (localhost:8700): java.io.ioexception "handshake failed - connection prematurally closed" 한 번 뜨면, 실행할 때마다 에러가 뜨면서 프로젝트가 실행되지 않는다. 그럴 경우 다음과 같이 진행하면 된다. 안드로이드 스튜디오에서 아래쪽의 Terminal 클릭한다. > adb kill-server > adb start-server 위와 같이 입력해준다. 다시 실행하면 정상적으로 동작한다.
[ Javascript ] 알아두면 유용한 문법 - Rest 안녕하세요 코띵입니다. 지난번에는 spread에 대해서 알아보았는데요, 어쩌면 그와 반대되는 개념을 포스팅해보겠습니다. | Rest spread와는 다르게 '모아온다' 라고 생각하시면 됩니다. 그 외 '나머지' 같은 의미라고도 할 수 있겠습니다. rest는 객체, 배열, 함수의 파라미터에서 사용할 수 있습니다. 예시를 들어보겠습니다. 먼저 객체의 경우를 보겠습니다. 1 2 3 4 5 6 7 8 9 const Dog = { name: '두부', attribute: 'cute', color: 'white' }; const { name, ...cuteDog } = Dog; console.log(name); // 두부 console.log(cuteDog); // attribute와 color의 값이 들어있음 비..
[ Javascript ] 알아두면 유용한 문법 - Spread 안녕하세요 코띵입니다. 오늘 배운 개념은 C언어 공부할 때 봤던 것 같은데요, 자바스크립트에서도 사용할 수 있길래 포스팅 합니다. | Spread 말 그대로 '펼친다' 는 개념인데요, 객체 혹은 배열을 펼칠 수 있다는 의미로 생각하시면 됩니다. 기존의 객체를 참고해서 새로운 객체를 생성하고, 새로운 객체에 추가적인 값을 넣어줄 때 유용합니다. 예시를 들어보겠습니다. 다음과 같이 3개의 객체가 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 const person = { name: '샛별이' } const woman = { name: '샛별이', gender: 'woman' } const kindWoman = { name: '샛별이', gender: 'woman', character ..
[ Javascript ] 알아두면 유용한 문법 - Template Literal 안녕하세요 코띵입니다. 저는 이 개념을 프로그래밍을 하면서 한 번도 써본 적 없었습니다. 알아두면 쓰이는 일이 있을 것 같아서 포스팅합니다. | Template Literal 이는 변수와 함께 하나의 문자열을 출력할 때 유용하게 쓸 수 있는 개념입니다. 다음과 같이 예시를 들어보겠습니다. 1 2 3 4 const person = { name: 'imcodding', hobby: 'coding' } 1 2 3 4 5 function print(person) { const { name, hobby } = person; const text = '저는' + name + '이고, 취미는 ' + hobby + '입니다.' console.log(text) } 위와 같이 객체가 있고, 객체를 출력하는 함수가 있습니다...
[ Javascript ] 알아두면 유용한 문법 - 비구조화 할당(2) 저번에 비구조화 할당에 대해서 말씀드렸는데요, 오늘은 더 복잡한 객체일 경우 어떻게 사용하는지에 대해서 포스팅을 하겠습니다. 다음과 같이 객체를 선언합니다. 1 2 3 4 5 6 7 8 9 10 11 const Object = { state: { information: { name: 'imcodding', nation: 'korea', languages: ['korean', 'english'] }, isLoading: true, }, defaultValue: 5 } 위의 객체 형태는 객체 안에 또다른 객체를 가지고 있는 형태입니다. 이런 경우일 때도 객체 안의 변수를 사용하는 것처럼 객체를 꺼내면 됩니다. 1 2 3 const { name, nation, languages } = Object.state...

반응형