Android
-
코루틴(Coroutine) 기본 개념 이해하기Kotlin 2023. 2. 24. 13:05
Coroutine? 루틴의 일종으로, 협동 루틴으로 이해하면 쉽다. 코루틴의 “Co”는 with, together를 뜻한다. 코루틴은 자신의 실행이 마지막으로 중단된 지점 다음의 포인트부터 동작을 재개한다. 즉, 순차 실행이 가능하다. (tmi) 코루틴 최초의 출판물은 1963년에 등장했다. 러닝 커브는 다음 그림 참고(출처 바로가기) ※ IntelliJ나 Android Studio가 설치되어 있지 않다면 Kotlin 공식 사이트에서 지원하는 온라인 IDE(Kotlin Playground)를 사용하여 아래 코드를 실행할 수 있다. Your First Coroutine 아래 코드를 실행하면, fun main() { GlobalScope.launch { // launch a new coroutine in b..
-
Lock ScreenAndroid 2023. 2. 24. 02:23
안녕하세요, 안드로이드 10기 강다현입니다. 이번에는 제 개인 프로젝트에 쓰이는 lock screen - 잠금화면에 대해 알아보겠습니다. (프로젝트 전 복습 겸 블로그 글도 써버리기…) 제가 알기로는 서비스와 브로드캐스트리시버의 사용 에제로 많이 등장하는 친구입니다. 잠금화면 자체가 좀 옛날에 유명했던 느낌? 인것 같네요 잠금화면을 만들기 전에 먼저 Andoid 8.0 Oreo 버전에 있었던 변화를 알아봐야 합니다. Andoid 8.0 Oreo 에서의 변경점 - Background Execution Limits Oreo Background Execution Limits 기본적으로 백그라운드 서비스에 제한이 생깁니다. Background Service Limitations: While an app is i..
-
Custom CalendarAndroid 2023. 2. 24. 02:03
CustomCalendar 생성하기 Android 내부에도 Calendar View가 존재합니다 java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ↳ android.widget.FrameLayout ↳ android.widget.CalendarView 하지만 커스텀할 수 있는 범위도 너무 한정적이고, 예쁜 디자인에 맞는 캘린더를 개발하기 위해서는 직접 달력을 커스텀하여 개발하는 과정이 필요합니다. 필자는 캘린더를 커스텀하기 위해서 RecyclerView + GridLayoutManager를 사용했습니다. 캘린더의 생성만을 확인하기 위해 databinding, LiveData, architecture등의 사용을 제외했고, 추가적인 기능..
-
Rxjava Observable 만들어보기!RxJava 2023. 2. 24. 02:00
안녕하세요! mash up 10기 안드로이드 팀 정세희라고 합니다 : ) 이번 mash up 안드로이드 팀에서는 Rxjava를 공부해보고 질의응답 해보는 시간을 가져봤는데요! 제일 기본적인 Observable 을 만들어보는 것에 대해 포스팅하도록 하겠습니다. Observable 은 Observer 가 관찰하는 대상입니다. 데이터 갯수와 상관없이 상태 변화가 발생할 때 Observer에게 변화를 전달할 수 있습니다. 대표적으로 onClick과 같은 클릭리스너가 대표적은 Observer 패턴의 예시입니다. Observable은 기본적으로 세가지 알림을 Observer에게 전달합니다. Q. 그럼 Observable 과 Observer 가 도대체 뭔가요 ?! A. Observable 의 의미인 ‘관찰 할..
-
Custom ViewAndroid 2023. 2. 24. 01:44
안녕하세요 안드로이드 9기 강다현입니다. 이번에 알아볼 내용은 Custom View 입니다! 안드로이드로 앱을 개발할 때, 기존에 존재하는 뷰에 기능적인 부분을 조금 더 커스터마이징해서 구현하거나 여러 화면에서 같은 기능, 속성을 가지는 뷰를 재사용하고 싶을 때 여러 뷰를 통합하면서 원하는 속성을 넣고 싶을 때 등등… 이러한 needs가 생길 때 Custom View를 만듭니다. 그러면 어떻게 만드는가? 부터 시작해보도록 하겠습니다. Custom View 만들기 View 기본 먼저 View를 좀 알아야 Custom View도 만들던가 하겠죠? 기본적으로 모든 view 클래스들(Button 이라던지..ImageView 라던지)은 View 클래스를 상속하기 때문에, 바로 View를 상속하거나 subclass..
-
Dagger - Raw DaggerAndroid 2023. 2. 24. 01:32
Dagger - Raw Dagger 이번에는 제가 프로젝트에 적용하며 공부해 본Dagger2에 대해 복습하는 겸! 해서 글을 작성해 보겠습니다. (이하 Dagger) Dagger는 리플렉션을 사용하지 않고 런타임에 바이트코드도 생성하지 않는 것을 특징으로 가지는 Android의 DI 라이브러리입니다. DI란 무엇인가? 에 대해서는 일단 알고 있다고 가정하겠습니다. 흔히 다른 DI 라이브러리라고 알려지는 Koin과 비교되는데 Koin은 정확히 말하자면 DI 라이브러리는 아닙니다. Koin은 Service locator라는 패턴이고, 이와 관련해서는 진성님의 글을 참조하도록 합시다. 아무튼 이런 Dagger는 보일러 플레이트 코드를 없애는 나름의 단계를 거친다고 할 수 있습니다. (완전히 자의적으로 정한 단..
-
Room - Android Local DatabaseAndroid 2023. 2. 23. 13:02
🙇 안녕하세요 ! Mash-Up 10기 Android Developer 정현성 인사드립니다. 🙇 이번 포스팅 주제로 무엇을 할까 고민을 하다,,,, 최근 취업 준비를 하며 그동안 개발했던 애플리케이션들을 하나의 포트폴리오로 보여주는 애플리케이션을 개발한 적이 있습니다. 개발하며 사용했던 기술 스택 중 하나인 Room에 대해 다시 정리해볼 겸 포스팅 주제로 선정하였습니다. 💾 Local Database 안드로이드에서는 앱의 데이터를 효율적으로 관리하기 위한 저장소로 SQLite라는 데이터베이스를 제공하고 있습니다. 이는 다른 외부 Database들과 달리 소규모 데이터를 관리하고 사용하는 데 적합한 관계형 데이터베이스입니다. 예를 들어, 애플리케이션 사용 과정에서 발생하는 용량이 크지 않은 데이터들은 굳이..
-
Android UI TestAndroid 2023. 2. 14. 14:48
안녕하세요. Mash-UP 안드로이드 10기 양민욱 입니다 :) 여러분은 Android 개발 과정에서 테스트를 도입하시나요? 저도 이번 포스팅을 공부 하면서 처음 도입 했는데요. 테스트는 Android 프로젝트를 생성할 때 기본으로 생성되어 있을 정도로 구글에서 권장하고 있습니다. 개발 과정에서 테스트를 도입하면 어떤 점이 좋을 까요? 이 질문에 대한 구글의 공식 답변은 아래와 같습니다. 서비스 장애를 초기에 신속한 발견 기존 코드의 호환성을 신경 쓰지 않고 코드 수정/ 기능 추가 가능 코드의 안전성 보장 테스트는 작성한 코드에 대한 안정성과 정확성, 기능 동작이 올바르게 동작하는지 확인 해주고, 무엇보다 이미 테스트로 정확성을 인정된 코드를 수정한 이후 기존 코드와 호환성을 확인할 때 유용하게 사용할 ..