목록Android/공부 (6)
nueijeel
그동안 단일 액티비티 기반의 프로젝트에서 프래그먼트 간 데이터 공유를 위해 Bundle 객체를 주로 사용해왔다.다양한 타입의 값들을 bundle에 담아 전달할 수 있는데 그 중 사용자 정의 클래스 객체를 전달하기 위해서는 직렬화하는 과정이 필요했다. 지금까지는 java의 serializable 인터페이스를 구현해 직렬화했었는데,안드로이드 환경에서 serializable은 성능적 측면에서 문제가 있을 수 있다는 점을 알게되어 더 나은 방안을 찾아보고 포스팅하게 되었다. 직렬화직렬화(Serializable)는 메모리에 있는 데이터를 디스크에 저장하거나 네트워크 통신을 통해 전달하기 위해 byte stream 형태로 변환하는 것이다. (역직렬화는 반대 개념) 그렇다면 직렬화가 필요한 경우는 언제일까?..
이전에는 안드로이드 앱이 종료되었다가 다시 실행되었을때 데이터를 유지시켜 사용하기 위해서 SharedPreferences를 사용했다. Share Preference는 key - value 쌍의 구조로 데이터를 앱 내부에 xml 파일로 저장하기 때문에, 앱이 삭제되기 전까지 작성된 데이터를 유지할 수 있었다. 주로 앱 전역에서 사용해야하는 간단한 데이터(로그인 유저 데이터 등)를 저장하는 용도로 사용되어 왔다. 하지만 제한적인 데이터 형식으로 복잡한 데이터 구조를 다루기 어렵다는 점과 저장된 파일에 쉽게 접근이 가능해 보안에 취약하다는 점, 비동기 작업 처리 중 UI 스레드 차단으로 인해 ANR 발생 가능성이 높다는 점 등.. 많은 한계점이 존재했었다. 따라서 현재 안드로이드에서는 SharedPrefere..
프로젝트를 진행하다가 fab 클릭 시 나타나는 메뉴에 효과를 주고싶어 애니메이션 구현하는 방법을 공부해보았다. 실제로 안드로이드 개발자들이 실무에서 직접 사용하는지는 모르겠지만, 여러 효과들을 배치함으로써 더 풍부한 ux를 제공하는 데 도움이 될 것 같아 나중에도 미니 프로젝트에 사용할 수 있게 내용을 정리해두려고 한다. 안드로이드에서는 애니메이션을 위해 Animator 클래스를 지원한다.Animator 클래스는 기본적인 애니메이션을 제공하는 클래스들의 슈퍼 클래스로, 기본적으로 애니메이션을 시작하고 종료하는 역할을 한다. Animator 클래스의 대표적인 하위 클래스1. AnimatorSet: 지정된 순서대로 일련의 Animator 객체를 재생하는 데 사용2. ValueAnimator: 계산된 값들을..
1. 안드로이드 developer 페이지 설정 https://developers.kakao.com/console/app 카카오 developers 페이지에서 로그인 후 '내 애플리케이션' 메뉴로 들어간다. 애플리케이션 추가하기 클릭 카카오 로그인을 사용할 애플리케이션 정보를 입력하면 된다. 사업자 명의 경우 아직 앱스토어에 등록되지 않은 단계이기 때문에 앱 이름과 동일하게 입력해주었다. 입력하면 내 애플리케이션에 새 항목이 등록된다. 이제 애플리케이션 플랫폼을 등록하기 위해 내 애플리케이션 > 앱 설정 > 플랫폼으로 이동한다. Android, IOS, Web 3가지 플랫폼 중에 Android 플랫폼 등록을 클릭 애플리케이션 패키지 명과 마켓 url, 키 해시를 입력해야한다. 마켓에는 아직 등록되지 않아서..
Activity는 눈에 보이는 화면을 가진 독립적인 실행 단위이다. Activity를 실행시키면 출력되는 화면은 xml이라는 파일로 구성되어 있고 이 레이아웃 파일에 배치된 뷰들을 동작하게 하려면 코드로 처리를 해야한다. 이때 코드에서 뷰에 접근하기 위해 뷰를 객체화 하는 과정이 필요한데 이것이 이전 포스팅에서 다룬 '뷰 바인딩(View Binding)'이다. [Android] View Binding과 예제 2023.06.07 1. View View : 모든 뷰 클래스의 최상위 클래스로 화면에 보이는 모든 것을 View라고 칭한다. 안드로이드 공식 문서에 따르면 View 클래스는 UI 구성 요소를 만드는 데 기본이 되는 Widget과, 다 nueijeel.tistory.com 코틀린에서는 앱 수준의 빌드..
RecyclerView를 응용하는 예제를 풀다가 geIdentifier 메서드를 알게 됐다. 이전까지는 리소스 폴더를 통해 직접적으로 해당 리소스를 지정하여 리소스에 접근했었는데, 이번 예제에서는 다른 방식으로 접근을 해야했다. 예제에서 해결해야할 문제는 drawable 폴더에 국기 이미지가 imgflag1~imgflag8 의 이름으로 들어가있고, spinner 뷰에 국가 목록이 있는데, 이 spinner 뷰에서 선택된 국가에 해당하는 국기 이미지를 imageView에 띄우는 것이다. spinner 뷰에는 한국말 텍스트가 담긴 배열이 목록으로 들어가있다. spinner 뷰에서 선택된 값을 불러올 때는 selectedItemPosition 메서드를 이용했다. selectedItemPosition은 Adap..