안드로이드 학습/Android 기술면접 대비 코드
-
클린 아키텍처 준비 - 1안드로이드 학습/Android 기술면접 대비 코드 2025. 4. 24. 09:53
클린 아키텍처 준비 :1. 무료 RestApi 사이트 2. 다른 앱들 구조 분석 3. 내가 만들 앱 기초 구성 및 컨셉 구성1. 토큰이나 로그인 없이 RestApi 가능한 사이트들JSONPlaceholder https://jsonplaceholder.typicode.com특징: posts, comments, albums, photos, todos, users 등 다양한 리소스 제공Reqres : https://reqres.in특징: 사용자 관련 CRUD, 로그인 등 다양한 테스트 가능DummyJSON : https://dummyjson.com특징: products, users, posts, comments, quotes, todos GoREST : https://gorest.co.in/public/v2..
-
안드로이드 비동기 처리 2-4 (실시간 검색 with EditText)안드로이드 학습/Android 기술면접 대비 코드 2024. 11. 1. 11:03
이전 내용까지 Rxjava가 무엇인지와 기초적으로 사용하는 것을 알아봤다. 과연 실제로는 어떻게 활용될지가 궁금했다. 그래서 찾아보니 아래와 같은 상황에 사용 가능하다. UI 이벤트 처리 (실시간 검색, 버튼 클릭)네트워크 통신데이터베이스 그 외에 비동기 방식들RxBinding 라이브러리를 사용하면 Button 클릭이나 EditText 텍스트 변경과 같은 UI 이벤트를 Observable로 만들어 이벤트 기반의 데이터 흐름을 처리할 수 있다. 그래서 이번에는 RxBinding을 활용해서 실시간 검색하는 방법을 먼저 학습하려 한다. 실시간 검색은 EditText의 텍스트 변화를 구독하여 실시간 text 변화를 인식해서 검색 기능을 구현할 수 있다. 1. build.gradleimplementation(..
-
안드로이드 비동기 처리 2-5 (네트워크 통신 - retrofit)안드로이드 학습/Android 기술면접 대비 코드 2024. 11. 1. 10:48
안드로이드에서 앞서 RxJava를 학습했던 것들은 UI 처리나 기타 비동기가 사용되야 하는 곳 등등을 학습했다.UI 이벤트 처리 (실시간 검색, 버튼 클릭)네트워크 통신데이터베이스 그 외에 비동기 방식들이번에는 Retrofit과 함께 네트워크 통신을 하는 방법을 학습하려고 한다. 사용한 앱 스택 :RxJava & RetrofitHiltdatabindingViewModel적용된 아키텍처 : Three Layer Architecture 참고 :(1) developer 사이트 : 링크(2) 3Layer 예제 : https://github.com/tdcolvin/PlanetSpotters 1. build.gradle(app)먼저 Rx와 Retrofit 그리고 Hilt 라이브러리를 추가해야 한다. plugin..
-
안드로이드 비동기 처리 2-3 (Operators : 연산자들) 코드편안드로이드 학습/Android 기술면접 대비 코드 2024. 10. 31. 10:43
1. 생성 연산자 1-1) just() : 인자를 받는 데이터를 순서대로 발행하는 Observable 생성 연산자이며, 최대 10개 까지 발행할 수 있다.fun operatorJust() { val source = Observable.just("1", "2", "3", "4", "5") var str = "" // 데이터를 소비하는 Observer를 직접 만들수 있지만 그것을 생략할 수도 있다. val result = source.observeOn(AndroidSchedulers.mainThread()) // 결과는 메인 스레드에서 관찰 .subscribe( { // onNext str = "$str $it" ..
-
안드로이드 Rxjava 사용하기 (1)안드로이드 학습/Android 기술면접 대비 코드 2024. 3. 6. 14:34
설명 : 1. [안드로이드 RxJava] 1. Rxjava, RxAndroid란?2. [안드로이드 RxJava] 2. Observable 클래스 Rxjava가 뭔지는 학습하기는 했지만 개념 이해로는 어떻게 사용하는지 잘 모르겠어서 직접 만들어 보면서 공부해보기로 했다. 기본적으로는 (1) Observer로 Observable에서 발행할 데이터를 어떻게 처리 해줄지 지정.(2) Observable로 무슨 데이터를 발행하고 발행 이후 어떤 것을 할지 지정(3) Observable로 Observer 구독 이정도의 과정이 있지 않을까 싶다. build.gradle (app)implementation("io.reactivex.rxjava3:rxandroid:3.0.2")implementation("io.re..
-
Anr 예제안드로이드 학습/Android 기술면접 대비 코드 2024. 1. 23. 10:48
Anr 설명 : https://from-android-to-server.tistory.com/41 github : https://github.com/tvroom88/AIO_Android_Kotlin_Support_Material/tree/main/AnrTest/AnrTest 안드로이드 개발자 페이지에서 보면 다음 조건 중 하나가 발생하면 앱과 관련한 ANR이 트리거됩니다. 입력 전달 타임아웃: 앱이 입력 이벤트(예: 키 누름 또는 화면 터치)에 5초 이내에 응답하지 않은 경우 서비스 실행: 앱에서 선언한 서비스가 몇 초 이내에 Service.onCreate() 및 Service.onStartCommand()/Service.onBind() 실행을 완료할 수 없는 경우 Service.startForegrou..
-
Android Background Service 예제안드로이드 학습/Android 기술면접 대비 코드 2023. 12. 22. 17:44
안드로이드 Background Service를 공부하다가 놀란 부분이 있었다. 다른 블로그들을 찾아봤었을때는 분명이 앱이 종료되도 작업이 계속 수행된다고 적혀있었는데 새로 찾아보니 앱이 API 레벨 26 이상을 대상으로 전용 앱이 포그라운드에 있지 않을 때 시스템에서 백그라운드 서비스 실행에 대한 서비스 실행에 대한 제한을 적용한다고 합니다. 앞으로는 앱에 실행과 무관하게 실행되는 것은 무조건 Foreground를 쓰던가 아니면 예약해서 코드를 실행시키려면 알림매니저나 워크 매니저를 사용해야 하는 것 같다. 그러면 Background Service는 이제 왜 사용하는지 잘 모르겠지만 그래도 알아보자! 아래 예제는 링크에 있는 블로그 예제를 따라 했습니다. AndroidManifest.xml url을 이용..
-
Android Foreground Service 예제안드로이드 학습/Android 기술면접 대비 코드 2023. 12. 22. 17:40
1) 시작전 참고 자료 및 참고 사항 1. Service와 Foreground Service의 전반적인 설명 : 링크 2. 안드로이드 developer 사이트 설명 : 링크 3. API 33, API 34 변동 사항 설명된 블로그 글 : 링크 먼저 알아야 할 내용은 안드로이드 API가 업데이트 될때마다 notification(알림) 이나 Service의 추가 되는 방법이 조금씩 달라진다는 것이다. 구체적으로 예시를 들자면 다른 블로그에 여러 Foreground Service에 Notification을 추가 시키는 방법이 나와있지만, API 33, Android 13 버전 이상에서는 AndroidManifest.xml에 permission을 선언해줘야 notification이 되기 때문에 이전 버전들 내용..
-
MVC 패턴 예제안드로이드 학습/Android 기술면접 대비 코드 2023. 12. 14. 15:37
참고 예제 링크: 링크 MVC 패턴을 실습해보았습니다. geeksforgeeks 예제를 살펴보면서 MVC에 패턴에 대해 학습했습니다. Observer()가 deprecated 되었다고 나와서 PropertyChangeListener 대체 해주었습니다. Github 주소 : 링크 MainActivity.kt 더보기 class MainActivity : AppCompatActivity(), PropertyChangeListener, View.OnClickListener { // creating object of Model class private var myModel: Model? = null // creating object of Button class private var button1: Button? ..
-
안드로이드 Bound Service 예제안드로이드 학습/Android 기술면접 대비 코드 2023. 7. 3. 18:26
서비스에 관한 설명 : https://from-android-to-server.tistory.com/38 먼저 Bound Service를 4가지 이유때문에 사용된다 컴포넌트 간의 직접적인 통신: Bound Service는 서비스와 클라이언트 컴포넌트(예: 액티비티) 간의 직접적인 통신을 가능하게 합니다. 클라이언트는 서비스 인스턴스에 직접 바인딩하여 서비스의 메서드를 호출하고 데이터를 전달할 수 있습니다. 이를 통해 클라이언트는 서비스의 기능을 직접 활용하고 조작할 수 있습니다. 공유 데이터 또는 상태 유지: Bound Service를 사용하면 여러 클라이언트 컴포넌트가 하나의 서비스에 바인딩되어 동일한 서비스 인스턴스를 공유할 수 있습니다. 이를 통해 데이터나 상태를 서비스 내부에 유지하고 공유할 수 ..