일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 범물동
- 앱개발
- 파이썬
- 어플개발
- 안드로이드스튜디오
- 안드로이드앱
- 감성카페
- 동성로카페
- 애드몹
- 코딩
- 범물동카페
- 인스타핫플
- 대구인스타핫플
- 안드로이드
- 안드로이드앱개발
- 대구맛집
- 지산동카페
- Android
- 의무경찰
- 안드로이드개발
- 수성구맛집
- 코딩공부
- 대구핫플
- 대구카페
- 동성로핫플
- androidstudio
- 동성로맛집
- 수성구카페
- 개발자
- 애드센스
- Today
- Total
목록전체 글 (141)
Glacier's Daily Log

안드로이드 개발자로 취업하기 회고 2편신입이 경력직에 지원해도 되나요? 본문이 다소 김. 취업 준비 이전 스토리는 1편을 참고해 주세요. 1편에서는 어떻게 해서 코딩을 시작했고 개발자를 꿈꾸게 되었으며, 프리랜서 개발자로 살다가 취업을 준비하게 된 이유까지 다뤄보았다. 이번 편에서는 24년도 하반기 동안 안드로이드 개발자로 취업하기 위해서 약 30개의 기업에 이력서를 내본 경험을 풀어보려 한다.굳어가는 개발자 취업시장, 안드로이드 개발자로의 도전우선 내 목표는 "대기업 or 시리즈 B 이상 수준의 스타트업"에 안드로이드 개발자로 취업하는 것이었다.'개발자'라는 직업은 굉장히 범위가 넓다. 개발자와 소프트웨어 개발자의 정의를 정리해 보면,원래는 모든 분야의 개발을 하는 사람에 대해 사용되는 용어이며, ..

코틀린 작업중 발생하는 제안사항인 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(..

Flow? Coroutine 비동기 작업에서 Suspend 함수를 사용하여 작업이 모두 완료된 후에 값을 리턴받을 수 있다. 하지만 중간에 진행되는 작업 중에 갱신되는 값들도 계속 받을 수 있다면 업데이트를 조금 더 다이나믹하게 진행할 수 있지 않을까? Flow를 사용해서 연속적인 값을 방출하게 구현할 수 있다. LiveData vs Flow 기존에 사용하던 LiveData와 Flow의 차이점? LiveData- 생명주기를 가진 데이터 홀더 - 메인스레드에서 동작. 별도 쓰레드에서 동작해야 하는 상황 (Data Layer에서의 구현 등) 에서는 사용하기 어려움 - 안드로이드 의존성이 밀접하게 결합되어 있어 테스트가 힘들다.- 마찬가지로 안드로이드 의존성이 있기 때문에 코드 분리시에 조심해서 사용해야함 F..