안드로이드35 [Android] kotlin 뷰바인딩 ViewBinding 1. build gradle (Module:app)에 추가하기 android { ... viewBinding { enabled true } } 2. 사용하려는 뷰에서 접근 두 가지 방법이 있다. 첫 번째는 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding = ActivityMainBinding.inflate(layoutInflater); setContentView(binding.root) } } 두 번째는 class MainActivity : AppCompatActivity() { val binding.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 4. 3. [Android] JetPack https://developer.android.com/jetpack/androidx/explorer?hl=ko 유형별 Jetpack 라이브러리 살펴보기 | Android 개발자 | Android Developers 유형별 Jetpack 라이브러리 살펴보기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 카테고리 선택: 모두 인기 휴대전화 이상 데이터 그래픽 수명 주기 미디 developer.android.com 구글에서 발표한 라이브러리와 도구 모음집 개발을 빠르고 쉽게 할 수 있도록 도와주는 라이브러리 모음이다. AndroidX라는 이름의 라이브러리로 사용되어 진다. jetpack Compose Jetpack Compose UI 앱 개발 도구 키트 - Android 개발자.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 16. [Android] 디자인 패턴 (MVC, MVP, MVVM) 소프트웨어 공학에서 특정 문맥에 공통적으로 발생하는 문제에 대해 재사용이 가능하게 만든 해결책 코드를 효율적으로 작성하기 위한 방법론 궁극적으로 건강한 소프트웨어 개발을 위한 방법론 MVC, MVP, MVVM 💡 MVC (Model View Presenter) View 사용자에게 보이는 UI를 나타낸다. Model로부터 Data를 박아 사용자에게 보여준다. 애플리케이션에서 사용되는 Data를 처리한다. View에 의존적이지 않기 때문에 재사용이 가능하다. Controller 사용자의 입력(action)을 받고 처리한다. 주로 Activity나 Fragment로 표현된다. Model의 Data변화에 따라 View를 선택한다. 동작 사용자의 Action이 Controller에 들어온다. Controller는.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 16. [Android] List View와 Recycler View의 차이 정리 RecyclerView ListView ViewHolder ViewHolder 패턴 이용 ViewHolder 패턴 이용 필요 x Item Layout 가로/세로/지그재그 모두 지원 세로만 지원 Item Animation 아이템 애니메이션 처리 클래스 O 아이템 애니메이션 처리 클래스 x Adapter 데이터 제공을 위해 직접 구현 다양한 소스에 대한 어댑터 존재 Decoration 많은 구분선 설정 쉽게 구분 가능 Click Event 개별 터치 이벤트 관리O, 클릭 처리 기능 X 이벤트에 바인딩 하기 위한 인터페이스 존재 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 16. [jetpack compose] 제트팩 컴포즈로 탭 만들기 유튜브에서 한 외국인의 강의를 듣고 만들었다. 에스파냐어를 사용해서 무슨 말인지는 못 알아 들었지만.. 직접 공부하면서 코드를 분석해서 만들어봤땅. 1. 메인 액티비티 : MainActivity.kt Tabs_principle함수는 탭을 어떻게 구성할지를 작성한 코드이다. 호출해서 적용한다. class MainActivity : ComponentActivity() { @SuppressLint("ResourceAsColor") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { StickyMemoryTheme { Surface { Tabs_principle() } } } } } .. 안드로이드 앱 개발 공부/jetpack Compose 2023. 3. 7. [Android] LayoutInflater 란? 💡 LayoutInflater XML에 미리 정의해 둔 틀을 실제 메모리에 올려주는 역할을 한다. XML에 정의된 Resource를 VIew 객체로 변환해 주는 역할을 한다. 절대 직접 사용하지 않는다. 대신 Activity.getLayoutInflater()또는 Context#getSystemService를 사용하여 현재 콘텍스트에 이미 연결되어 있고 실행 중인 장치에 대해 올바르게 구성된 표준 LayoutInflater 인스턴스를 검색한다. 이 클래스는 스레드로쿠터 안전하지 않으며 지정된 인스턴스는 단일 스레드에서만 액세스 해야 한다. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 7. [Android] Rx (RxJava, RxAndroid,...)란? 반응형 프로그래밍 데이터를 관찰할 수 있고, 데이터 스트림으로 처리한다. ReactiveX 관찰 가능한(Observable) 스트림을 사용하는 비동기 프로그래밍을 위한 API이다. RxJava ReactiveX(Reactive Extensions)를 Java로 구현한 라이브러리 RxAndroid RxJava에 안드로이드용 스케쥴러 등 몇 가지 클래스를 추가해 안드로이드 개발을 쉽게 해주는 라이브러리이다. RxKotlin RxJava에 Kotlin의 extension function을 이용하여 사용하기 편리하도록 만든 경량 라이브러리이다. RX = Observable + Observers + Schedulers Observable: Observable은 데이터 스트림입니다. Observable은 하나의 스.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 7. [Android] Context 응용 프로그램 환경에 대한 전역 정보에 대한 인터페이스. Android 시스템에서 구현을 제공하는 추상클래스. Context가 없으면 액티비티를 시작할 수도, 브로드캐스트를 발생시킬 수도, 서비스를 시작할 수도 없다. 리소스에 접근할 때도 Context를 통해서만 가능하다. Context는 여러 컴포넌트의 상위 클래스이다. context 직업 상속한 것 : ContextWrapper, MockContext 쉽게 말하면 애플리케이션의 현재 상태를 갖고 있다. 시스템이 관리하고 있는 액티비티, 어플리케이션의 정보를 얻기 위해 사용한다. 안드로이드 시스템 서비스에서 제공하는 api(리소스, DB, Shared Preferences 등)에 접근하기 위해 사용한다. 예> getResources() Activity.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 7. [android] avd 애뮬레이터 작동 안 할 때 코드 작성 후 Run 하면 새로 업데이트된 코드를 가지고 avd에서 실행이 새로 되는데, 간혹 Error while waiting for device 어쩌구 하면서 이미 동작중이라고 어디 경로 가서. lock파일 다 삭제하라고 하면서 안되던가 아무 말도 없이 그냥 안 되는 경우가 있다. 그럴 때. lock 파일 삭제해도 안되면 안드로이드 스튜디오 껐다가 다시 켜서 avd실행시키지 말고 바로 deviceManager 들어가서 해당 avd를 Clod boot Now 하면 해결된다. 지금까지 이 방법으로 항상 해결 했당ㅎ 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 3. 6. [Android] Dialog, Toast, Snackbar 💡 Dialogs 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는 작은 창 대화 상자는 화면을 채우지 않고 일반적으로 사용자가 진행하기 전에 조치를 취해야 하는 모달 이벤트에 사용된다. ialog 클래스는 dialogs의 기본 클래스이지만 Dialog를 직접 인스턴스화하지 않고, AlertDialog/[DatePickerDialog] or [TimePickerDialog](이 들 중 하나를 사용해야 한다. AlertDialog⇒제목, 최대 3개의 버튼, 선택 가능한 항목 목록 또는 사용자 정의 레이아웃을 표시할 수 있는 대화 상자 DatePickerDialog/TimePickerDialog⇒사용자가 날짜 또는 시간을 선택할 수 있는 미리 정의된 UI가 있는 대화 상자 💡 Toast 작.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 6. [Android] ANR ANR | Android 개발자 | Android Developers ANR | Android 개발자 | Android Developers ANR 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 앱의 UI 스레드가 너무 오랫동안 차단되면 'ANR(애플리케이션 응답 없음)' 오류가 트리거됩니다. 앱이 developer.android.com 💡 ANR : Application Not Responding 안드로이드 앱이 UI 스레드가 너무 오랫동안 차단되면 ANR오류가 나타난다. 다음 조건 중 하나가 발생하면 앱과 관련한 ANR이 트리거된다. 입력 전달 타임아웃: 앱이 입력 이벤트(예: 키 누름 또는 화면 터치)에 5초 이내에 응답하지 않은 경우 서비스 실행: 앱에.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 6. [Android] Main Thread(UI Thread ) 와 Worker Thread UI는 멀티스레드에서만 가능하도록 설계되어 있다. 오래 걸리는 작업은 worker Thread에서! public void onClick(View v) { new Thread(new Runnable() { public void run() { Bitmap b = loadImageFromNetwork(""); mImageView.setImageBitmap(b); // 여기서 오류 발생!! } }).start(); } →해결방법 public void onClick(View v) { new Thread(new Runnable() { public void run() { final Bitmap bitmap = loadImageFromNetwork(""); mImageView.post(new Runnable() { p.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 6. 이전 1 2 3 다음