일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 대구핫플
- 수성구맛집
- 인스타핫플
- 안드로이드개발
- 범물동카페
- 대구카페
- 의무경찰
- 앱개발
- 동성로핫플
- 안드로이드앱개발
- 개발자
- 코딩
- 안드로이드스튜디오
- 수성구카페
- 어플개발
- androidstudio
- 범물동
- 동성로맛집
- 감성카페
- 애드센스
- 대구맛집
- 동성로카페
- 대구인스타핫플
- 지산동카페
- 코딩공부
- 애드몹
- 파이썬
- Android
- 안드로이드
- 안드로이드앱
- Today
- Total
목록Coding (67)
Glacier's Daily Log
코틀린 작업중 발생하는 제안사항인 SAM-constructor 가 뭘까? SAM conversions (Single Abstract Method) 기존 Java에서 클릭 리스너를 만들 때 사용한 익숙한 코드 btnTest.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Do something } }); 람다식을 사용하지 않은 Kotlin으로 만든 클릭 리스너 btnTest.setOnClickListener(object: View.OnClickListener { override fun onClick(v: View) { // Do something } }) 여기서 OnClickListener는 ..
ℹ️ 배경 회사에서 개발 중 기능의 공통화를 위해서 여러 클래스의 상위 클래스를 제작하였다. 작업 중 상위카드인 ~~~~~.kt에 선언된 var root: SomeDto? = null 를 상속받은 클래스에서 사용할 일이 생겼다. ☢️ 이슈 코틀린에서는 간단하게 직접 변수명으로 접근할 수 있지만, Kotlin으로 선언된 클래스를 상속받은 Java 코드에서는 Setter/Getter를 통해서 접근할 수 밖에 없는 문제가 생겼다. 따라서 기존에 root로 접근하던 수많은 코드를 모두 getRoot()로 변경해주어야 하는 상황이 발생했다. ✅ 해결 @JvmField Instructs the Kotlin compiler not to generate getters/setters for this property an..
안드로이드 개발자로 취업하기 회고 1편 워라벨 최상 프리랜서에서 왜 취업준비를? 본문이 다소 김. 안드로이드 개발자 취업 관련 내용은 2편을 참고해주세요. 나는 어릴 때부터 전자기기에 진심이었다. 그중, 초등학교 5학년쯤 활성화되기 시작한 스마트폰 생태계에 정말 많은 관심을 가지고 있었다. 초등학생 시절 IT기기 리뷰 블로그를 운영하고, 보유하고 있던 갤럭시 S2에 일명 '루팅', '커스텀 롬 올리기' 등을 하면서 스마트폰을 내 입맛대로 바꿔가는 다소 전문적인 작업도 스스럼없이 진행하는 공돌이 기질이 강한 어린아이였다. 그렇게 중고등학교 시절을 지나며 자연스레 전자/컴퓨터 분야로 진학을 꿈꾸게 되었고, 경북대학교의 전통 있는 학과인 전자공학부에 학생부 종합전형으로 진학하게 되었다. 어린 시절부터 전자제품..
코틀린에서 vararg로 가변 인자를 지원. vararg를 사용하면 함수를 호출할 때 인자 개수를 유동적으로 관리할 수 있음. // vararg의 사용 예 fun sum(vararg num: Int) = num.sum() fun main(args: Array) { val nums1 = sum(1 val nums2 = sum(1, 2, 3) } 그렇다면 이미 존재하는 배열을 가변인자로 넘길 수는 없나? spread operator * 사용하기 val tester = arrayOf(1, 3, 5) sum(*tester) 와 같은 방법으로 배열을 spread하여 가변인자로 넣을 수 있음. (c의 포인터 개념과는 다름!)
안드로이드에서 UI 요구사항을 작성하는 방법은 크게 3가지가 있다. 동적으로 프로그래머틱하게 View를 생성 XML 파일을 활용해 UI 작성 Jetpack Compose를 활용하여 작성 아직까지 대부분의 구현은 XML 파일을 활용해 UI를 작성하는 방식을 채택하고 있는데, 수많은 ViewGroup중 LinearLayout이나 RelativeLayout을 활용한 구현이 많이 보인다. 현재 안드로이드 권장사항은 ConstraintLayout 사용인데, ConstraintLayout을 활용하면 어떤 장점이 있는지 알아보자. 우리가 XML로 작성한 코드는 실제로 View기반의 구현체로 바뀌어 화면에 그려지게 된다. 그 View 또한 특수한 생명주기를 따른다 (참고 : https://www.charlezz.com..
Kotlin 1.3에 속하는 캡슐화 블록 예외처리시 사용. val targetJob: Result ... if(targetJob.isSuccess){ it: String -> //성공시 호출됨 } if(targetJob.isFailure){ it: Throwable -> // 실패(오류)시 호출됨 } Result 타입에서 가독성 좋게 값 가져오기 targetJob.getOrThrow() → runCatching문 내에서 성공시엔 성공값, 에러가 발생한 경우 해당 에러 리턴 targetJob.getOrDefault(defaultValue = "Unknown") → runCatching문 내에서 성공시엔 성공값, 에러가 발생한 경우 defaultValue 파라미터를 리턴 targetJob.getOrNull(..