목록Android (30)
코딩하기 좋은날
안드로이드 4대 컴포넌트 중 하나인 Service에 대해서 알아 보겠습니다. Service는 background에서 실행되는 작업을 수행 할 수 있도록 해줍니다. 예를 들면 우리가 앱을 이용해서 어떤 파일을 다운 받는 다거나 다른 작업을 하면서 음악을 계속 듣는 다거나 하는 동작이 필요 할 때 사용 할 수 있습니다. Thread 서비스를 알기 전에 먼저 thread의 개념에 대해 알고 있어야 합니다. 운영체제를 배우셨다면 많이 들어 보셨을텐데 간단하게 독립된 실행 단위 라고 생각하시면 될 것 같습니다. 프로세스 내에서 동시에 여러가지 작업을 해야 할 때가 있는데 이때 각각의 thread를 생성하여 작업들을 병렬적으로 처리 해 주면 됩니다. 안드로이드 애플리케이션은 처음 시작되면 런타임 시스템에서 하나의 ..
오늘은 안드로이드 4대 컴포넌트 중 하나인 BroadCast Receiver에 대해서 알아 보겠습니다. BroadCast Intent 먼저 그전에 BroadCast Intent에 대해서 얘기를 해보겠습니다. 기본적으로 Intent는 액티비이를 론칭 하는데 사용이 되는데 시스템의 다른 컴포넌트들에게 시스템 차원의 메시지를 전달하는데도 사용 할 수 있습니다. BoradCast Intent는 Activity 클래스의 sendBroadcast() / sendOrderedBroadcast() 메서드를 호출하여 전파할 수 있습니다. 둘의 차이점은 모든 리시버에게 broadcast를 전송하느냐 / 한번헤 하나의 리시버에게 순차적으로 전송하느냐의 차이를 가집니다. sendOrderedBroadcast는 우선순위를 지정..
모든 소스는 Kotline 으로 작성 되었습니다. 안드로이드 내부 DB로 Sqlite를 많이 사용 하였지만 Realm이 장점이 많아 요즘 많이 사용한다고 합니다. 검색을 하면 여러 장점들을 찾을 수 있으니 궁금 하신 분들은 찾아 보시기 바랍니다. 저도 한번도 안써봤기 때문에 간단하게 CRUD 동작을 하는 예제 프로그램을 만들어 보았습니다. 이전 게시글에서 만들었던 앱의 소스코드에 Realm 을 관리하는 코드를 추가 시키고 fragment의 textview에서 CRUD테스트를 한번 해보겠습니다. 우선 Realm을 사용하기 위해서 프로젝트 수준의 build.gradle에 아래의 코드를 추가 해 줍니다. classpath 'io.realm:realm-gradle-plugin:10.0.0-ALPHA.1' 그리고..
모든 코드는 Kotlin으로 작성 되었습니다. Navigation 과 Frament 를 이용하면 기존에 화면 전환을 위해 여러 Activity를 만들고 상황에 따라 Activity를 전환 하는것이 아니라 MainActivity를 두고 Navagation이라는 기능을 통해 만들어놓은 Fragment로 이동하는 것이 가능합니다. 이것이 Andriod Jetpack 에 추가된 Navigation 이라는 기능입니다. Navigation을 이용해 fragment간 화면 전환과 bundle을 통한 데이터를 전달하는 앱을 하나 만들어 보겠습니다. 우선 Navigation을 사용하기 위해서 build.gradle에 아래와 같은 dependency를 추가 해줍니다. dependencies { def nav_version..
Gradle 이란? 안드로이드 스튜디오에서 프로젝트를 생성하면 gradle scripts 라는 코끼리 모양(?)의 항목이 있고 그하위에 여러가지 .gradle 파일들이 있는것을 보셨을 것입니다. 이녀석은 프로젝트를 컴파일하고 실행시키는 데 필요한 일을 자동으로 해줍니다. 좀더 자세히 말하면 자동화된 빌드 시스템이며 빌드 구성 파일들을 통해 프로젝트 빌드가 구성되고 관리되게 해줍니다. gradle 내부에 프로젝트 빌드 방법이나, 프로젝트 빌드에 필요한 모듈간 dependencies 관계 등이 정의되게 됩니다. gradle은 개발자에게 유연성을 제공한다는 장점을 가지고 있다고 합니다. 플러그인을 사용하여 다른 환경에 통합 될 수 있고 안드로이드의 경우 안드로이드 스튜디오 플러그인을 통해 gradle이 통합되..
이 글의 소스코드는 모두 Kotlin으로 작성되어 있습니다. RecyclerView는 ListView의 좀더 발전된 형태라고 보시면 될 것 같습니다. ListView 가 스크롤되어 화면에서 벗어났을 때 새로운 뷰를 생성하는 대신 RecyclerView는 그것을 재사용하므로 성능 향상에 이점을 얻을 수 있습니다. 따라서 어떤 일련의 목록들을 나타내고 싶을 때 사용을 하는 것이고 여기에 CardView를 이용하여 이러한 각 목록들을 카드 형태로 이쁘게 만들 수 있습니다. 우선 이둘을 사용하기 위해서는 Module: app 에 해당하는 build.gradle로가서 각각을 implementation 해주어야 합니다. implementation 'androidx.recyclerview:recyclerview:1...