본문 바로가기

안드로이드

(10)
2년동안 안드로이드 개발이 나에게 알려준 것들 Medium 글을 읽다가, 2년동안 혼자 프로젝트를 맡아서 안드로이드 개발을 하면서 느꼈던 점을 개발자분이 적어 놓은 글을 보았다. 내가 놓치고 있는 점을 잘 정리해주는 글인 것 같아서 한글로 번역해서 정리해본다. 이 글을 계기로 더 나은 개발자로 나아가고 싶다. 있는 것을 또 개발을 하려고 하지마라! 예를 들어서, Retrofit을 만들 필요는 없다. 현명하게 라이브러리르 선택해라! 맹목적으로 라이브러리를 사용하지 마라! start의 수를 체크해라! 많은 것이 더 좋은 라이브러리 일 수 있다. 이슈들을 체크해라! open과 closed 둘다 시간이 조금 있다면? 라이브러리의 코드를 살펴봐라! 체크하면서 정말 도움이 될 것이다. [TIP] Command Line으로 바로 라이브러리를 살펴보고 싶다면 Dr..
[안드로이드 중급] 툴바(Toolbar) 툴바(Toolbar)는 안드로이드 5.0(21버전)에 도입이되었다. 툴바의 형태인 앱바는 5.0 이전에 액션바라고 불렸다. 기존의 액션바는 고정된 상태이지만, 툴바는 커스터마이징이 자유로워져서 사용자가 원하는 디자인을 만들 수 있다. 툴바를 추가하는 방법은 아래와 같다. AndroidManifest.xml에 Theme.AppCompat.Light.NoActionBar 설정을 한다. 레이아웃에 툴바를 추가한다. 액티비티에서 툴바 객체를 생성한다. 생성한 툴바 객체를 setSupportActionBar() 메소드의 인자로 지정하여 호출한다. 툴바 객체나 getSupportActionBar()를 사용하여 속성 수정한다. 간단한 예제를 구현해보도록 한다. 새로고침, 검색, 공유 메뉴를 만들고, 각각의 속성을 달..
[안드로이드 개인공부] 안드로이드 스튜디오 단축키 안드로이드 스튜디오를 사용하면서 단축키에 대해서 알면 개발 속도에 영향을 줄 수있다. 그래서 구글링을 하는 도중 정리가 잘 되어 있는 좋은 자료가 있어서 아래와 같이 정리해보았다. Ctrl + Shift + A : Find in Action 찾고 싶은 기능을 영어로 입력하면 기능과 단축키가 나열된다. 단축키를 찾을 때 환경설정의 keymap으로 들어가는 수고를 줄여준다. 예시) 검색 문자 : Find in 같이 치면 이걸로 시작하는 기능이 표시 됨. Editing Ctrl + Space : 기본 코드 완성 Ctrl + Shift + Space : 스마트 코드 완성(예상되는 타입의 메소드또는 변수명 ) Ctrl + Q : 빠른 문서보기 Shift + F1 : 외부 문서보기(http://developer.a..
[안드로이드 기본] 터치 이벤트 순서 알아보기 안드로이드 사용자 인터페이스를 보면, 액티비티 위에 다양한 뷰들이 올라가는 방식이다. 그러다보면 이벤트가 중첩되어서 처리되는 경우가 있다. 예를 들어서, 어떤 액티비티에 터치 이벤트가 설정되어 있는데 그 위에 올라가 있는 뷰에도 터치 이벤트가 설정되어 있다면 어떻게 될까??? 그리고 그 뷰에 추가적으로 터치 리스너도 추가 되어 있다면 어떻게 동작할까? 무엇이 먼저 처리되지?? 터치 이벤트를 처리하고나서 해당 이벤트를 전달하고 싶지 않을 때 어떻게 해야할까?? 엑티비티위에 버튼이 올라간다고 하면, 그 버튼을 클릭했을 때 실질적으로는 버튼도 터치가 되지만, 그 해당 엑티비티도 선택이된다. 그렇다는 것은 각각 가지고 있는 터치 이벤트들이 전달 전달되어 실행된다는 것이다. 먼저 아래의 예제는 1. 엑티비티에 터..
[안드로이드 기본] 클릭 이벤트 붙이는 방법 일단 클릭하면 대표적으로 버튼을 떠올릴 수 있을 것이다. 그리고 우리는 그 버튼을 클릭했을 때 무언가 이벤트를 발생시키고 싶어한다. 버튼에 클릭 이벤트를 붙이는 방법에는 어떤것들이 있을까? 방법은 총 3가지로 나눌 수 있으며 아래와 같다. 1. 익명 클래스를 사용해서 버튼에 리스너 객체를 설정하는 방법 2. 버튼 리스너를 액티비티에서 구현하고 이 리스너를 버튼에 설정하는 방법 3. 레이아웃 XML 파일의 Button 속성에 onClick 요소를 추가하는 방법 [익명 클래스를 사용해서 버튼에 리스너 객체를 설정하는 방법] package com.practice.android_basic_booster_course import androidx.appcompat.app.AppCompatActivity import..
[처방해줌 프로젝트 후기] webview에서 키보드 상태에 따라서 이벤트 처리하기 -1 (KeyboardVisibilityUtils 만들어서 해보기) 프로젝트를 진행하면서 키보드 문제에 스트레스를 받아왔기에 후기를 남겨본다. 일단, 나의 레이아웃 구조는 이렇다. 나는 웹뷰 내의 인풋 박스가 포커스를 받을 때, 즉, 소프트 키보드가 올라왔을때 하단의 button을 Gone 처리를 하고 싶었다. 그리고, 키보드가 내려갔을 때는 Visible 처리를 하고 싶었다. 바로 든 생각은 키보드에 의해서 화면이 Resize가 되면서, 기존 크기와 비교하여 키보드가 올라왔는지, 내려갔는지 판별후 콜백 메소드를 호출해주는 방식이었다. 그렇게 나는 KeyboardVisibilityUtils 클래스를 만들었다. 먼저 KeyboardVisibilityUtils의 람다 호출 메소드 onShowKeyboard와 onHideKeyboard가 호출될 때, 엑티비티로 호출해줄 인터페..
[안드로이드 기본] 액티비티와 주요 구성 요소 안드로이드에서 가장 중요한 4대 컴포넌트는 액티비티, 서비스, 브로드캐스트 리시버, 콘텐트 프로바이더이다. 그리고 그외의 인텐트, 인텐트 필터, 노티피케이션, 프래그먼트가 존재한다. 먼저 액티비티(Activity)는 사용자 인터페이스 화면을 구성하는 컴포넌트이다. 다양한 위젯들이 화면안에 구성이되고, 사용자에게 시각적으로 보여지게 된다. 서비스(Service)는 백그라운드에서 실행되는 컴포넌트이며, 백그라운드에서 실행되기때문에, 시각적인 사용자 인터페이스를 액티비티와 다르게 가지지 않는다. 인텐트(Intent)는 앱을 개발하다보면 데이터를 주고 받고 싶은 경우가 있다. 이때 인텐트를 사용하여 데이터를 주고 받게 되는데,사용되는 것이 인텐트이다. 액션도 넣을 수 있고, 플래그도 넣을 수도 있다. 메시지라고..
[안드로이드 기본] 안드로이드 뷰에 대한 기본 지식 안드로이드 기본 공부에 들어가기 앞서 무작정 뷰를 공부하지 말고, 기본으로 알고 있어야하는 뷰와 관련된 용어들을 정리하고 들어가자! View : 사용자 인터페이스를 구성하는 클래스들의 최상위 클래스 View - 사용자 인터페이스 구성을 위해 사용할 수 있는 클래스들의 대표 이름들 TextView, EditText, Spinner, Button 등 ViewGroup - ViewGroup은 다른 뷰를 포함하거나 구성하는 클래스들의 상위 클래스 View Container - 다른 뷰를 포함할 수 있는 컨테이너 ListView, ExpandableListView, GridView, Gallery, ViewFlipper, ImageSwitcher, TextSwitcher, ScrollView 등 Layout - ..