본문 바로가기

LANGUAGES, METHODLOGY

(42)
[GDG Seoul | 코틀린 ] Kotlin / Everywhere Seoul 2019에 가다 [1부] 넌지시 마음에 품던 개발 컨퍼런스를 그동안 못 가보다가, 이제 개발 2년차에 접어든 시기에 처음으로 GDG Seoul에서 주최하는 개발 컨퍼런스에 참가하게 되었다. 열심히 공부해서 손에 익히고자 했던 코틀린을 어느새 주 랭귀지로 개발하게 된 중에 코틀린 관련 컨퍼런스가 열린다는 사실은 적잖이 반가울 수 밖에 없었다. 프로그램은 Kotlin의 현재와 앞으로의 미래를 간략히 그리는 Svetlana lsakova 님의 1부 세션, 그리고 Kotlin에 대해 좀 더 구조적인 깊이를 안내해주셨던 Pluu님의 2부 세션으로 이루어져 있었다. 2부로 구성된 간략한 세션이었지만, 코틀린의 초보, 중수의 레벨에서 앞으로 '무엇을 배워야'하는지, 그리고 앞으로 코틀린이 나아갈 로드맵에 대해서도 알 수 있는 유익한 컨퍼런스..
[RxJava] RxJava 첫걸음. RxJava란 무엇인가? RxJava의 첫발을 떼기 위해 책을 구입했던지는 오래되었으나, 골랐던 책의 난해함(다짜고짜 자, 코딩해봅시다)때문에 진도를 나가기가 어려웠고, 그러한지 몇개월 뒤 다시 손쉽고 국내 개발자분들이 쓴 좋은 책을 접하게 되어 드디어 첫발을 떼게 되었다. (이것마저 사실 책을 산지 어언 한달만의 일..) http://www.hanbit.co.kr/store/books/look.php?p_code=B3448548347 RxJava 프로그래밍 8가지 핵심 개념으로 쉽게 이해하는 리액티브 프로그래밍 입문 www.hanbit.co.kr 첫 챕터를 마치고 두번째 챕터에 접어든 찰나, 첫 챕터를 다시 리뷰하며 머릿속에 넣어보고자 포스트를 작성하기로 했다. 전체적인 내용을 What, Why, How로 정리해 세 묶음으로 ..
[안드로이드/Kotlin] ViewPager로 온보딩 페이지 간단히 구현하기 코틀린 환경에서 온보딩 페이지를 구현할 일이 생겼는데, 유투브에서 매우 친절한 영상을 찾아 1시간도 못되는 시간안에 온보딩 페이지를 구현할 수 있었다. (물론 영상에서는 자바로 진행하지만) 간단히 아래의 준비물들만 착착 적어넣으면 온보딩 페이지를 만들 수 있다. - 페이지 구성에 필요한 별도의 PagerAdapter 클래스 PagerAdapter는 각 페이지를 구성하는 핵심 역할을 한다. 각 페이지에 띄울 이미지와 제목, 그리고 내용을 각 array로 구현하여 페이지별로 적용할 수 있고, 필요에 따라 버튼구성의 변경등도 가능하다. 별도의 코틀린 파일로 생성하여 프로젝트에 추가한다. 아래의 코드는 필수적으로 구현해야 하는 부분들로, 기타 필요 요소들은 생략하였다. class SliderAdapter : P..
[안드로이드/Kotlin] Activity에서 Fragment의 요소를 제어하자 처음에는 Fragment 제어를 위해 interface를 구현해 listener를 만드는 등 복잡한 절차를 거치려 하고 있었는데, interface를 쓰지 않고 아주 간단하게 Fragment의 요소를 제어할 수 있는 방법을 발견했다. 내가 하고자 했던 일은 Fragment에 구현된 RecyclerView를 refresh하는 것이었는데, 아래 과정을 통해 이를 해결할 수 있었다. 1. Fragment에 refresh를 수행하는 메소드를 추가 fun doSomething() { } 2. Activity에서 Fragment를 참조 val fragment : Fragment클래스 = supportFragmentManager.findFragmentById(R.id.프래그먼트컨테이너) as Fragment클래스 3..
[안드로이드/Kotlin] RecyclerView의 아이템에 listener 달기 1. onClickListener를 포함한 Listen function을 정의 fun T.listen(event: (position: Int, type: Int) -> Unit): T { itemView.setOnClickListener { event.invoke(getAdapterPosition(), getItemViewType()) } return this } 2. RecyclerView의 Adapter 클래스에 listen시의 동작을 정의 class MyAdapter : RecyclerView.Adapter() { val items: MutableList = arrayListOf() override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int..
[안드로이드] Fragment로 전달된 Touch 이벤트를 액티비티에서 처리하기 문제점 Swipe Layout에 touch가 들어올 때 이를 Listen하고자 하였으나 Activity에서 적용시 1도 들어오지 않음 해결책 1. Touch를 Listen하고자 하는 Fragment 내부에 onTouchListener를 override 2. 본래 액티비티에서 수행하고자 했던 메소드를 Fragment 내부에 선언 3. onTouch Override, 하고자 하는 동작이나 함수 정의 4. Fragment 내부의 onCreateView() 에서 Fragment가 배치되는 view(swipe되는 부분)에 onTouchListener 설정 (5) 경우에 따라 Fragment에서 Activity의 다른 레이아웃을 제어하고자 하는 경우 activity?.findViewById(R.id.제어할레이아웃)..
[안드로이드] MVC, MVP, MVVM에 대해 알아보자 안드로이드 앱을 구성하는데 있어 베스트 프랙티스 패턴을 크게 고려하지 않는 편이었는데, (아마 전통적인 형태의 MVC에 가깝게 짜여지지 않았을까) 중장기간 개발과 유지보수, 업그레이드 및 테스트에 관련해 세가지 패턴을 알고 그에있는 장단을 알아두는 것은 분명하게 필요해보인다. Realm 아카데미에 세가지 패턴에 대해 아주 잘 설명해 둔 자료가 있어 이를 참조해 간단히 정리하며 익혀본다. 시작하기에 앞서 Best practice 접근법에 대해 보자면 What is Best practice? - Best practice 접근법이란 안드로이드 앱을 논리적 구성요소로 체계화하기 위해 생겨남. - MVC 패턴을 초석으로 모듈화되고 테스트 가능한 패턴으로 발전해 왔다. - MVP와 MVVM 패턴은 MVC를 대체하기..
[Kotlin] 자바로 쓰인 안드로이드 프로젝트를 단순히 Kotlin으로 컨버팅해보자 이전동안 자바에 익숙해있던 중에 이제 꽤나 업계에서 널리 쓰이는것으로 보이는 코틀린을 실제로 사용하고 익숙해져보기로 했다. 기본 입문서정도는 훑어서 익혔으나, 훑은 것들은 실제로 사용하고 경험해보기 전에는 머릿속과 손끝에서 휘발되기 마련이다. 단순한 첫단계로 새로 만든 예시 앱을 코틀린으로 컨버팅하고, 이를 입문서를 참조하며 찬찬히 살펴보기로 했다. 과정은 설명이 필요 없으리만치 매우 단순하며 간단하다. 1. OS에 따라 다르겠지만 윈도우 기반 안드로이드 스튜디오에 경우 ctrl + shift + a 를 누르면 옵션들을 검색해 볼 수 있는데, 여기에서 convert java to kotlin 옵션을 찾을 수 있다. 2. 클릭하여 옵션을 실행하면 약간의 시간소요 이후 다수의 java 파일이 코틀린으로(.k..