전체 글
-
Corotuine Composing Suspending FunctionsKotlin 2023. 2. 25. 15:49
안녕하세요 안드로이드 10기 강다현입니다. 이번에 알아볼 내용은 Corotuine의 세 번째 스터디 내용 Composing Suspending Functions입니다! 코틀린 스터디는 한 주에 두 개씩 공식 문서를 같이 보면서 진행되는데요, 저는 그중 스터디 두 번째 주에서 Composing Suspending Functions 파트의 발표를 맡았었습니다. 본 글에서는 이전 주에서 헷갈렸던 내용 3가지를 보고, 그 이후 세 번째 파트 스터디 내용인 Composing Suspending Functions에 대해 알아보겠습니다! 공식 문서 헷갈렸던 것들 저는 공식문서 1,2 파트에서 3가지가 헷갈렸는데요, 하나하나 살펴보도록 하겠습니다. 1. 코루틴 생성 시 자동 생성되는 스레드 코루틴을 생성하다 보면 스레..
-
BubblesAndroid 2023. 2. 24. 14:20
안녕하세요. 아직 안드로이드에 대해 얕고 좁게 지식을 가진 신입 박서희입니다. 저번에 올린 블로그 글들을 모두 너무 에쁘게 적으셨더라구요. 저는 구글 번역기처럼 로봇같이 적었는데요. 그래서 이번에는 이렇게 시작해봤습니다. 사실 아직도 안드로이드 신기술을 보면 머리에 물음표가 가득 떠다니지만, 그나마 제가 흥미롭게 봤던 주제를 공유해보고자 가져왔습니다.혹시 내용에 틀린 점이 있거나 부족한 점이 있으면 한 번 놀리셔도 됩니다… 대신 답이 뭔지 알려주..세요. ^ㅁㅠ 개요 혹시 버블을 아시나요? 저는 위클리 번역을 읽다가 이름이 귀여워서 관련 글을 처음 읽고 주제로 가져오게 되었습니다. 처음봤 Bubbles은 사용자가 손쉽게 대화를 보고 참여할 수 있도록 도와주는 기술입니다. Bubbles 은 다른 앱 콘텐츠..
-
코루틴(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..
-
Coroutine BasicKotlin 2023. 2. 24. 12:50
안녕하세요. 1주차 코루틴 스터디에서 진행했던 내용을 공유하고자 포스팅 해봅니다. 코루틴 코루틴은 경량 스레드라고도 불린다. 코루틴은 스레드안에서 실행된다. 스레드 하나에 많은 코루틴이 있을 수 있다. 스레드와 코루틴의 가장 큰 차이점은 코루틴은 빠르고 적은 비용으로 생성할 수 있다는 것이다. → 즉, 코루틴은 기본적으로 스레드안에 존재하지만, 스레드에 얽메이지 않은 가벼운 스레드이다. 얼마나 가벼운가? 코루틴 생성함수를 만들어 소요시간을 계산해 얼마나 빠르게 생성되는지 테스트를 해보았습니다. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activit..
-
Coroutine Cancellation and TimeoutsKotlin 2023. 2. 24. 12:42
코루틴 Basic 2장. Cancellation and Timeouts 코루틴 실행 취소하기 아래의 코드는 job을 생성하고 취소 시키는 코드입니다 val job = launch { repeat(1000) { i -> println("job: I'm sleeping $i ...") delay(500L) } } delay(1300L) println("main: I'm tired of waiting!") job.cancel() // job을 취소한다 job.join() // job이 완료되기를 기다린다 println("main: Now I can quit.") 결과 job: I'm sleeping 0 ... job: I'm sleeping 1 ... job: I'm sleeping 2 ... main: I'..
-
RecyclerView ListAdapterAndroid 2023. 2. 24. 02:40
오늘 글에서는 RecyclerView의 list 관리를 효율적으로 다룰 수 있는 ListAdapter에 대해 살펴보려 합니다 먼저, 아래 그래픽은 RecyclerView, Adapter, ViewHolder 및 데이터가 모두 함께 작동하는 방식을 보여주는데요 각각 다음의 역할을 가지고 있습니다. ViewHolder: RecyclerView의 single item view에 대한 정보를 저장 RecyclerView: 화면에 표시하는 데 필요한만큼의 ViewHolder와 캐시에 추가로 몇 개만 만듦 ViewHolders: 사용자가 스크롤 할 때 “재활용”(새 데이터로 다시 채워짐). 기존 항목은 한쪽 끝에서 사라지고 새 항목은 다른 쪽 끝에서 나타남 Adapter : 데이터 소스에서 데이터를 가져 와서 보유..
-
Sealed class로 RecyclerView Multi View Type 때려 부수기Android 2023. 2. 24. 02:30
안녕하세요! Mash-Up 10기 정현성 입니다. 이번에는 Room에 이어 Kotlin의 Sealed Class에 대해 포스팅하려고 합니다 :) Sealed Class란? Sealed Class는 상위 클래스를 상속받는 하위 클래스의 종류를 제한하는 특성이 있는 클래스입니다. 어떤 클래스를 상속받는 하위 클래스는 여러 파일에 존재할 수 있기 때문에 컴파일러는 얼마나 많은 하위 클래스들이 존재하는지 알지 못합니다. 하지만 Sealed Class는 동일 파일에 정의된 하위 클래스 외에는 존재하지 않는다는 것을 컴파일러에 알려줍니다. 예를 들어 Color 라는 상위 클래스를 만들고, 동일한 파일에 Color Class를 상속하는 Red Class, Black Class라는 클래스를 선언했다고 가정하면, Sea..
-
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..