일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 생성자
- svn
- git
- Checkout
- IntelliJ
- 특징
- syntax
- Android Studio
- VCS
- sourcetree
- intellij 연동
- gradle
- Class
- constructor
- cherrypick
- 캡슐화
- install
- Branch
- commit
- TortoiseSVN
- 문법
- 상속
- 자바
- terms
- SSL
- IntelliJ IDEA Community
- java
- Android
- Subversion
- error
- Today
- Total
목록Android (9)
Jay's Developer Note
Jetpack Compose - Layout 이번 게시글에서는 가장 기본적인 밑바탕이 되는 Layout에 대해 알아보겠다. Compose의 Layout은 기존의 Layout과는 사뭇 다른 양상을 보인다. Cross Platform인 Flutter와 유사하다고 할 수 있다. 앞으로 RelativeLayout, LinearLayout, ConstraintLayout, 뭐 다른 Layout은 잊게 될 것이다. 무식하게 많던 Layout XML들아, 안녕 Compose의 Layout에도 여러 종류가 있다. Grid, Scroll 등 있지만 이번 게시글에서는 가장 Basic한 Row, Column, Box 에 대해 서술하겠다. 간단하게 알아보면 Row : LinearLayout(android:orientation..
Jetpack Compose에 쓰인 Kotlin 특징 part. 2 지난번에 이어 Kotlin의 특징을 마저 서술하겠다. 이 특징들은 아주 신박하다. 특히 Destructuring은 진짜 예술이다. 처음 이 친구를 봤을 때 필자는 머리를 한 대 맞은 듯 얼얼했다. 그럼 얼른 써내려가보겠다. 범위(Scopes) 이게 무슨 말인가 싶을 텐데, 쉽게 얘기하자면 어떠한 함수나 속성값은 특정 범위에서만 사용이 가능하다는 것이다. 백문이 불여일견! 코드로 확인해 보자. Row { Text( text = "Hello There", // modifier = Modifier.align(Alignment.CenterHorizontally) // Error modifier = Modifier.align(Alignment.C..
Jetpack Compose에 쓰인 Kotlin 특징 지난 게시글에서는 Jetpack Compose의 장점에 대해 알아보았다. 끝을 맺으며 Jetpack Compose는 Kotlin을 중심으로 빌드되었다고 언급했다. 이번 게시글에서는 Jetpack Compose에 쓰인 Kotlin의 특별한 특징을 서술해 보도록 하겠다. 특별해봤자 얼마나 특별하겠어? 라는 생각은 접어두자. Java보다 훨씬 더 간결한 Syntax와 다양한 기능들을 기반으로 만들어진 엄청난 녀석이니까.. 기본값 인수 / 명명된 인수 Kotlin은 Method를 Overloading 할 때 Default Parameter를 설정할 수 있다. 그리고 호출할 때는 명명된 인수에 직접 값을 입력할 수 있다. 이건 진짜 혁신적으로 코드의 양을 줄..
Jetpack Compose Jetpack Compose는 Android UI를 쉽고 효율적으로 만들 수 있는 Tool Kit이다. 이름에서 이 툴킷의 용도를 얼추 유추해 볼 수 있다. Compose(조립하다, 구성하다 등 -> 대략 '작은 것들로 큰 것을 만든다' 라는 의미로 해석할 수 있다.) MSA처럼 작은 단위로 UI Components를 쪼갠 뒤에 적재적소에 알맞은 녀석들을 끼워 넣어 UI를 구성한다는 의미다. 그래서 XML을 두고 굳이 왜..? 이런 생각을 할 수 있다. 필자도 처음에는 그랬다. 굳이 잘 쓰던 XML을 버리고 Compose로 개선해야 하는가? 정답은 It's up to you. 새로운 것이 무조건 좋은 것은 아니다. 이 글을 읽은 후에 판단은 본인에게 맡기겠다. 적은 소스 코드..
AWS S3 Pre-Signed URL 로 Streaming 하기 프로젝트 중 난관에 봉착한 사건이 있었다. S3 에 있는 영상을 스트리밍 해야 하는데 그 Bucket 이 private 으로 설정되어 있어서 public 한 URL 접근이 힘들다는 것이었다. 기존 Util 을 사용한다면 무조건 다운로드를 한 후 재생을 해줘야 하는,, 그래서 스트리밍이 불가능한 사건이었다. 구글링으로 주섬주섬 모아서 private Bucket 에도 유효기간이 있는 public URL 을 생성할 수 있는 코드를 완성시켰다. 가져들 가서 유용하게 쓰이길 바란다.. 기타 S3 설정은 이전 글을 참고하면 된다. https://fall-in-it.tistory.com/46 [Android] AWS S3 Upload 하기(Util 소..
AWS S3 Download 하기 밤낮 쉴 틈 없이 프로젝트를 진행하다 보니 어느새 반년이 훅 지나갔다. 아무래도 프로젝트 내에서 안드로이드를 혼자서 맡아하다 보니 블로그를 관리할 물리적인 시간이 없었다.. ㅠㅠ 그래도 덕분에 배운 것들도 많고 리마인드 된 것들도 많다. 이제 어느 정도 시간이 나서 슬슬 정리하는 시간을 가져볼까 한다. 마지막 게시글에 이어 이번엔 S3 에서 다운로드를 하는 코드를 공유해볼까 한다. 기타 S3 설정은 이전 글을 참고하면 된다. https://fall-in-it.tistory.com/46 [Android] AWS S3 Upload 하기(Util 소스 코드 有) 프로젝트 진행 중에 클라이언트에서 주기적으로 AWS S3 에 파일을 올려야 하는 상황이 생겼다. 그래서 Util 을..
AWS S3 Upload 하기 프로젝트 진행 중에 클라이언트에서 주기적으로 AWS S3 에 파일을 올려야 하는 상황이 생겼다. 그래서 Util 을 만들었고 기록용으로 글을 작성하려 한다. 나중에 git 화 해야겠다. 소스코드는 공개해놨으니 가져가서 입맛대로 사용하시길 바란다. AWS S3 를 사용하려면 2개의 선행 작업이 필요하다. 1. IAM 생성 2. S3 Bucket 생성 S3 Bucket 은 프로그래밍으로 동적 생성할 수도 있지만, 클라이언트에서 생성하고 관리하는 컨셉이 아니기 때문에 생성된 버켓에 올리는 프로세스로 진행했다. AWS 설정 IAM 생성 AWS Console 에서 IAM 으로 들어가서 Add User 를 진행한다. Type 을 Access key Type 으로 선택해야 한다. 권한은..
다국어 지원 하기 요즘 같은 글로벌 시대에 맞춰 애플리케이션은 다국어를 지원해야 한다. 그렇다면 다국어를 어떻게 관리해야할까? 글자가 들어가는 곳에 전부 분기 처리를....? 하는 미친 짓을 해서는 안된다.(절대!) 가만히 생각해보면 프로젝트를 처음 만들 때 mipmap 안에 기본적인 안드로이드 Launcher Icon 이 존재한다. DPI 별로 총 5개가 생성이 된다. 그렇다면 여기서 약간의 힌트를 얻을 수 있다. 글자를 관리하는 strings.xml 을 언어 별로 생성해 놓는다면?? 바로 정답이 되시겠다. 안드로이드는 디바이스에 설정된 Language 값에 따라 자동으로 언어를 맵핑하여 해당 언어에 맞는 strings.xml 파일을 읽어와서 UI 에 뿌려준다. 가장 먼저 다른 언어의 strings.x..
MQTT 통신 시 중요사항(SSL/TLS) 발생원인 간단한 네트워크 통신을 가능케하는 MQTT(Message Queuing Telemetry Transport)를 사용하다가 보안성의 이슈가 생겼다. 그건 TLS(Transport Layer Security)를 사용하여 통신을 하던 도중 클라이언트에서 발생한 뜬금없는 이슈였다. 원인는 KeyStore 타입인데, JAVA에서는 SSL 통신 시에 기본적으로 JKS(Java KeyStore)를 사용하게 되는데, 이 JKS 알고리즘이 Android에서는 적용이 안되는 문제다. Android 에서는 JKS 대신 BKS(Bouncycastle KeyStore)를 사용한다. java.security.KeyStore.getDefaultType() 으로 확인해보면 BKS가..