본문 바로가기
반응형

안드로이드 개발102

RxJava 의 FlatMap, From 그리고 filter 로 For문 에서 벗어나보자 RxJava의 장점중의 하나는 다양한 Operator의 제공인데요.오늘은 FlatMap과 From을 사용하여서,Observable이 흘려보내준 List아이템들을,for문을 돌리지 않고 filter를 하여,원하는 결과만을 얻을 수 있도록 하는 방법에 대해서 정리해보겠습니다. 혹시 RxAndroid 가 무엇인지에 대해서, 보고싶으시다면,아래의 글을 참조해 주세요~.>>> RxAndroid 이해하기 Part1 RxJava (RxAndroid)의 Map 과 FlatMap 메소드를 알아보자 RxJava (RxAndroid) 의 마블 다이어그램을 이해해보자.) 하나의 Collections를 받아서, 각각의 아이템으로 흘려보내준다는 것을 알 수 있습니다. filter는 Operator의 단어만 봐도 아실것 같은데요... 2017. 3. 20.
Hot Observable 과 Cold Observable은 무엇인가요? 오늘은 RxAndroid의 Hot Observable과 Cold Observable에 대해서 정리해 보겠습니다.Hot하고 Cold하다는 것이, 어떤 면에서 차이가 있는지 알아보고,Cold Observable을 사용하는 Operator도 정리해보겠습니다. 참고로, RxAndroid의 기본적인 사항에 대한 것은 아래 글을 참조해주세요. >>> RxAndroid 이해하기 Part1 2017. 3. 19.
Callable 과 Runnable 뭐가 다른가요? 이전 글에서 Thread에 대해 정리하면서,Runnable에 대해서도 정리하였었는데요. 오늘은 Callable과 Runnable을 비교해 보도록 하겠습니다. 참고로 이전에 Runnable을 정리한 글은, 아래링크를 참조해 주세요.>>> 안드로이드의 Multi Thread, Runnable, Looper 그리고 Handler 2017. 3. 18.
Bit 논리 연산과 시프트 연산 의 정리 오늘은 Bit의 논리 연산과 시프트 연산에 대해 정리해 보겠습니다.Bit논리연산을 알아보기전에,Bit가 무엇인지부터 알아보겠습니다. 1. Bit = Binary DigitBit는 Binary Digit의 약자입니다.컴퓨터에서 사용하는 가장 작은 단위 데이터 단위입니다. Binary가 2개를 의미히고,digit은 자리를 의미하지요.이 둘을 합치면 2개의 자리수라는 뜻이 됩니다. 실제로 여기서 말하는 것은,2개의 진수인 0과 1입니다. 2진수를 구하는 방법은 다른 글에서 정리를 하구요.(특히 음수를 표현하는 방법은 따로 정리할 필요가 있을 것 같네요.)오늘은 자바의 toBinaryString()메소드를 이용해, 10진수인 88의 Binary값(즉, 2진수)를 뽑아보겠습니다.(Kotlin에서도 동일한 함수명.. 2017. 3. 16.
Parcelable 을 사용해 데이터를 전달해 보자 안드로이드에서 Intent를 통해서 Activity로 data를 전달할 때, String이나 int같은 기본형이 아니고, 객체로 전달해야 할 때가 있습니다. 이때 Java에서 제공하는 Serializable을 implement하면 ,객체를 직렬화해주고, 다시 복원할 수 있게 해주구요. putExtra()에 인자로 넣어서 넘겨주기만 하면되니,구현해야할 메소드도 없어, 사용하기도 편리합니다. 참고로 아래링크에서 Serializable에 대해서 볼 수 있습니다.(Activity로 Object넘겨줄 때엔 Serializable) 그런데, 한가지 방법이 더 있습니다.바로 Parcelable이라는 interface를 사용하는 것입니다.구현하기는 좀더 복잡하기는 하지만,Java에서 재공해주는 Serializable보.. 2017. 3. 13.
AlarmManager 로 구현하는 안드로이드 알람 안드로이드에서 앱을 만들다 보면,Alarm기능을 구현해야 할 때가 있습니다. 본격적인 알람앱이 아니어도,유저가 원하는 시간에 어떠한 노티가 와야 하는경우가 있기 때문인데요. 오늘은 Alarm기능에 대해서 정리해 보겠습니다. 1. Alarm 기능의 구현 안드로이드에서 Alarm은, 안드로이드 시스템의 AlarmManager에게 알람기능을 부탁하여 실행되도록 하는데요.이 AlarmManager에게 어떤 receiver를 호출할지에 대한 intent를 가지고 있는 PendingIntent와 얼마나 delay 된 후 실행시킬지를 알려주어서 set을 해줍니다. Alarm이 set되면, 정해진 시간에 AlarmManager가 receiver에게 broadcast 해주고,receiver가 이를 받아서 service를.. 2017. 3. 13.
ConstraintLayout 의 매력에 빠져보겠습니다 어느 순간부터 안드로이드 스튜디오를 업데이트 하고나서,프로젝트를 생성한 뒤에, MainActivity.xml을 열어보면,Root ViewGroup이 아래와 같이 ConstraintLayout으로 되어 있는 걸 볼 수 있습니다. 도대체 얼마나 매력적이기에, 구글에서 이것을 디폴트로 쓰라고 추천하는지 궁금해지는데요.오늘은 이 ConstraintLayout에 대해서 정리해 보면서, 그 매력에 빠져보겠습니다~. 1. ConstraintLayout Constraint의 한글뜻은 제한, 통제라는 뜻인데요.모순적이지만, 구글에서는 블로그에서 ViewGroup을 아주 파워풀하고, 유연한 툴이라고 소개하고 있습니다. 구체적으로는, 복잡한 UI들을 안에 겹겹히 쌓지 않고도,위치나 사이즈를 유연하게 적용시킬 수 있는 Vie.. 2017. 3. 10.
Android 운영체제의 기본구조 및 Architecture 오늘은 안드로이드 운영체제의 기본구조에 대해서 정리해 보겠습니다.안드로이드를 공부하게 될때, 보통 초반에 스윽 보고 지나가게 되는 부분인데요.하나하나 짚어가면서 보겠습니다. 1. 안드로이드 기본구조 안드로이드의 기본구조에 대해서는 아래표를 보면 이해하기가 쉬운데요.크게 5개의 큰 레이어로 분리할 수 있습니다. 아래의 표와 같이, 가장 하단부터, Linux Kernel, Libraries, Android Runtime, Application FrameWork, Applications 으로 구성되어 있습니다. (출처 = Smieh - Anatomy Physiology of an Android) 1-1. Linux Kernel 레이어 안드로이드는 가장 하단에 Linux Kernel이 있기 때문에, 리눅스 기반.. 2017. 3. 8.
Java Wrapper 클래스 를 정리해 보자 안드로이드 프로그래밍을 하다보면,Wrapper Class를 사용하게 되는 경우가 많이 있습니다.HashMap이나 Generic, 혹은 ArrayList를 사용할 때 인데요. 오늘은 Java의 WrapperClass에 대해서 정리해보겠습니다. 1. Wrapper Class Java 개발을 할 때, 무심코 사용하던 Wrapper Class란 말은,사실은 기본형(Primitive) 타입을 Wrap해서 쓰는, Primitive Wrapper Class를 지칭한다고 볼 수 있습니다. 실제로 Wrapper Class는, Primitive Wrapper Class뿐만이 아니라, 어떤 Class를 Wrap(포장)해서 사용하는 Class를 가르키는 것 입니다.하지만, 이 글에서도, Wrapper Class를,자바의 Pr.. 2017. 3. 7.
CollapsingToolbarLayout 으로 구현한 닫혀지는 ActionBar 안드로이드 Material Design이 나오면서, 앱 디자인에 종종 등장하는 UI가 있는데요. 바로, CollapsingToolbarLayout입니다. 이 Layout은, 아래와 같이 닫혔다, 열렸다 하는 안드로이드의 ActionBar를 가르키는데요. 오늘은 이UI를 구현하는 것에 대해서, 정리해보겠습니다. 1. Design Library 준비 MaterialDesign의 대표적 레이아웃인 CollapsingToolbarLayout을 사용하기 위해서는, Google이 제공하는 DesignLibrary가 필요합니다. dependencies에 아래와 같이 추가하면 됩니다. 직접 build.gradle에 추가하고자 한다면, compile 'com.android.support:design:25.2.0' 를 추.. 2017. 3. 5.
RecyclerView 로 listview 구현 방법 마스터하기 모바일 앱을 만들면서 매우 중요한 listView를 만들 때 필요한 것이,바로 RecyclerView인데요.오늘은 RecycleView를 구현하는 방법에 대해 정리해 보겠습니다.최종적으로 만들려고 하는 형태는 다음과 같습니다.  1. 라이브러리 implement역시나 Library부터 설정하고 가겠습니다.Dependencies에서 recyclerview로 검색하셔서 파란색 하이라이트된 라이브러리를 선택해 추가하시면 됩니다. implementation "androidx.recyclerview:recyclerview:1.3.2" 3. 데이터를 그려낼 UI생성데이터를 그려줄 UI를 작성해 줍니다.간단하게 위아래로 텍스트 두개가 들어가는 형태입니다.   4. ViewHolder 생성이제 ViewH.. 2016. 12. 20.
RxAndroid 이해하기 Part1 RxAndroid는 Retrofit을 사용해보려고 하던차에 이와 궁합이 아주 좋으면서 AsyncTask를 대체할 라이브러리가 있다고 들어서 접하게 되었는데요. 조금씩 써보니 장점이 많은것 같아서 정리해보고자 합니다. 1. 라이브러리 설정 역시나 외부 라이브러리를 불러오는 것이니, Dependency 설정부터 합니다. 참고로, Gradle파일을 직접 수정하시는 분들은 가장 하단에 compile 'io.reactivex:rxjandroid:1.2.1' 만 추가하면 됩니다. 하지만, 요즘엔 이렇게 잘 않하시지요? ;) 2. RXANDROID의 4대 요소 RxAndroid는 크게 4가지로 구성되어 있는데요.ObservableObserverSchedulerSubScription이렇게 4가지 입니다. 2-1. Ob.. 2016. 12. 17.