Android(38)
-
[Kotlin/코틀린] 코틀린 기본 정리(kotlin 값 비교, Const & val & var, Lazy & Lateinit, Object & Companion Object, data class & enum class & sealed class & inner class)
kotlin, java 값 비교 주소값 비교 (동일성) : 같은 주소를 참조하는 지 비교합니다(주소 값 비교, 식별자를 기반으로 객체를 판단) 값 비교(동등성) : 두 개의 객체의 값이 완전히 동일한 것인지 비교합니다(값비교, 내부적으로 equals를 호출) Kotlin === == Java == equals Const & val & var Const - 명명 규칙 : 대문자 & _ (under bar) - java의 static final 대체 가능 - val와 같이 읽기 전용이지만 complie 시 값이 할당되므로 기본 자료형과 문자열만 할당이 가능함 - 함수 내의 지역변수나, 클래스의 속성으로 사용할 수 없음 val(value) - 변경 불가능한 값, java의 final 대체 가능 - 런타임시 할..
2022.02.01 -
Android 개념 정리 - 2 (Activity 4대 컴포넌트, 명시적 Intent & 암시적 Intent, ANR, ContentResolver & ContentProvider, dp & sp & px, Process & Thread, Context & ApplicationContext & ActivityContext)
Android 4대 컴포넌트 Activity - application의 화면 구성 컴포넌트 - 이동시 스택 구조로 쌓임 Service - application의 background로 실행되는 컴포넌트 - 화면이 없음, 네트워크 통신, DB 통신 BroadCast Receiver - application에서 특정한 이벤트를 받아 반응하는 컴포넌트 - 관심 있는 이벤트가 발생할 시 이러한 브로드 캐스트가 전송 - 정적 브로드캐스트란 매니패스트에 등록하여 사용 - 동적 브로드캐스트란 콘텍스트에 등록하여 사용 Content Provider - application내에서 사용할 수 있는 데이터를 공유하기 위한 컴포넌트 - 중앙 저장소의 역할 & 액세스 관리 - 생명주기 없음, 다른 앱의 데이터 변경 가능, 데이터..
2022.02.01 -
Android lifecycle 정리 (activity lifecycle, fragment lifecycle, view lifecycle)
Activity 개념 - 앱과 상용자의 상호작용을 위한 진입점 역할과 동시에 하나의 UI화면을 그리는 container lifeCycle onCreate(): Activity launch 후 최초 한번 실행, 데이터를 목록에 바인딩하고, 활동을 ViewModel과 연결하고, 일부 클래스 범위 변수를 인스턴스 화할 수도 있음 onStart(): 유저에게 보여지기 직전에 표시됨, broadCastReciver 등록, 앱이 UI를 관리하는 코드를 초기화 onResume() : foreground 상태, 앱이 사용자와 상호작용함 : 어떤 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 앱이 이 상태에 머무름. 예를 들어 전화가 오거나, 사용자가 다른 활동으로 이동하거나, 기기 화면이 꺼지는 이벤트가 이에 해당됨 ..
2022.01.31 -
Android 개념 정리 - 1 (객체, 클래스, 자바 컬렉션, 추상 클래스, 인터페이스, 자료구조)
객체와 클래스 객체 - 클래스에 정의한 것을 토대로 실제 메모리에 할당된 것 클래스 - 객체를 생성하기 위한 설계도 또는 틀 - 속성과 행위를 변수와 메소드로 정의한 것 자바 컬렉션 Set - 순서를 유지하지 않고 중복이 허용되지 않는 데이터 집합 - HashSet, TreeSet List - 순서를 유지하고 중복이 허용되는 데이터 집합 - ArrayList : 검색에 용이하며 삽입, 삭제에는 시간이 오래 걸린다. - LinkedList : 삽입, 삭제에는 용이하며 검색에는 시간이 오래 걸린다. - Vector Map - 키, 값의 쌍으로 이뤄진 데이터 집합 - 순서가 유지되지 않으며 키의 중복은 허용하지 않고, 값의 중복은 허용함 - Hashtable, HashMap, TreeMap 추상 클래스와 인터..
2022.01.31 -
프로그래밍 정리 (SOLID 원칙, 객체지향 프로그래밍, 함수형 프로그래밍, 의존성 주입, 스레드 세이프(Thread safe), TDD)
SOLID 원칙 컴퓨터 프로그래밍에서 SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링 하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. SRP(Single Responsibility Principle): 단일 책임 원칙 소프트웨어 모듈은 변경의 이유가 단 하나여야만 한다. OCP(Open Closed Principle): 개방 폐쇄 원칙 모듈은 ..
2022.01.31 -
[Android Studio Proguard 설정] 안드로이드 프로가드 설정 및 multidex 처리 , The number of method references in a .dex file cannot exceed 64K. 에러 대응
Multidex 란? 앱 및 앱이 참조하는 라이브러리에서 메서드가 65,536개를 초과하면 앱이 Android 빌드 아키텍처의 제한에 도달했음을 알리는 빌드 오류가 발생합니다. 이때 여러개의 Dex 파일을 설정할 수 있도록 하는게 MultiDex 입니다. Proguard 란? Java 코드를 축소, 최적화 및 난독화하는 오픈 소스 명령줄 도구 실제 확인했던 빌드 에러 The number of method references in a .dex file cannot exceed 64K. 원인 https://developer.android.com/studio/build/multidex?hl=ko 메서드가 64K개를 초과하는 앱에 관해 멀티덱스 사용 설정 | Android 개발자 | Android Develop..
2021.12.31