본문 바로가기

반응형

안드로이드

Android Context란 무엇일까? 안드로이드 프로그래밍을 하며 제일 흔하게 인자로 사용되는 타입이 Context인 것 같습니다. Context를 잘못 사용하면 앱이 비정상 종료되거나 메모리 누수가 발생하기도 하죠. 그렇다면 Context는 정확히 어떤 것을 가리키는 말일까요? 오늘은 Android의 핵심, Context에 대해 알아보겠습니다. developer.android.com/reference/android/content/Context Context | Android 개발자 | Android Developers developer.android.com Android 개발자 사이트 Context는 애플리케이션 환경에 대한 글로벌 정보를 갖는 인터페이스입니다. Context는 Android 시스템에서 구현체를 제공하는 추상 클래스로, 애.. 더보기
View Binding = findViewById 대체하는 방법, View Binding과 Data Binding 차이 Android를 시작하면서 제일 처음 접하는 구문은 단연 findViewById라고 할 수 있을 것 같습니다. 쉽게 접하는 것과 별개로 findViewById는 다음과 같은 문제를 가지고 있습니다. 현재 레이아웃에 존재하지 않는 View ID를 인자로 전달할 경우 Null Pointer Exception이 발생합니다. View를 잘못된 타입으로 캐스팅하여 Class Case Exception이 발생할 위험성이 존재합니다. 레이아웃 파일과 코드가 일치하지 않은 경우 런타임 오류가 발생합니다. findViewById는 레이아웃 태그를 순회하여 일치하는 뷰를 찾아가기 때문에 연산 속도에 영향을 미치고, 단순 바인딩 코드가 길어집니다. 이러한 불편 때문에 findViewById를 대체할 방법으로 Data Bin.. 더보기
Noti Alarm - 긴급 알람 앱 형제가 대충 백엔드 쪽 작업을 한다. 새벽에 장애가 발생하면 곧장 일어나서 확인해야 하는데, 아직 초짜라 그냥 자버렸다고... "푸시 알림이 오면 등록한 키워드에 따라 알람을 울리는 앱"을 의뢰했다. 생각보다 요구사항이 많지 않아 당장 중요한 기능은 이틀만에 만들고.. 출시를 하려고 했으나, 다듬다보니 부족한 점이 너무 많이 보였다. 1. 앱 목록이 가나다 순도 아니고 package 명 순임 (보이지 않음) => 찾기 힘드니 검색창을 달자 2. 앱 별로 활성화 스위치를 만들자. 3. 시간 설정도 할 수 있으면 좋겠다. 4. 소리를 변경할 수 있도록 하고 진동도 넣자. 5. Room이 도대체 뭔지 MVVM을 어떻게 적용해야 할 지 사실 이해가 잘 안 간다. 등등등. 이외에도 아키텍쳐, 클린코드 등 욕심나는.. 더보기
안드로이드 개발자 사이트가 느리다.. 로딩 속도가 처참하다.... 이 또한 SK의 문제일까.. 더보기
#tools:context #toolsNS 이용하여 미리보기 만들기 안드로이드 테스트 텍스트 - Android 이슈 10 근황글.. 더보기 블로그 활동을 하지 않은 약 두 달...? 세 달?? 동안 폐관 수련을 했습니다. 사실 2월에 블라디보스톡도 다녀오고.. 3월? 아니 4월에 개강도 (몇 차례 밀려) 한 거 같지만.. 어쨌든 그 기간 동안 안드로이드 어플리케이션 개발에 매진하여 나름의 성과를 이룩했습니다. https://play.google.com/store/apps/details?id=com.Roo_Media_.lottoWish 로또위시 - Google Play 앱 로또 되면 뭐부터 사지...? 이젠 로또위시에 적어보세요! 위시리스트 중 어떤 물건까지 살 수 있는지, 당첨금을 얼마나 남는지 알려드립니다. 체계적인 위시리스트 관리는 물론, 자동, 수동, QR 등록과 당첨 확인까지!! 로또위시를 통해 인생 역전을 대비합시.. 더보기
kotlin 이슈 8 BottomNavigationView + ViewPager2 이용하여 슬라이드 메뉴 만들기 로또위시에서 위시리스트와 게임리스트 메뉴 사이를 이동할 때, 하단 메뉴나 좌우 슬라이드를 이용하고 싶어 잠깐 찾아 봤습니다. 안드로이드 에는 하단 메뉴를 지원하는 Bottom Navigation View가 있습니다. New Project에서 Bottom Navigation View를 선택한 후, 변형하여 사용해볼까요? 처음 프로젝트를 생성하면 아래와 같은 구조로 이루어져 있습니다. empty project와 비교해서 ui, menu, navigation 폴더가 추가되었고, ui에 해당하는 layout이 추가되어 있습니다. ui 폴더 아래 각각의 메뉴 폴더 안에는 Fragment와 ViewModel 파일이 있습니다. // HomeFragment.kt // ... class HomeFragment : Fra.. 더보기
Kotlin 이슈 7 Room 사용하여 안드로이드 로컬 db 시작하기 위시리스트를 저장하고 싶어! 안드로이드 어플에 데이터를 저장하는 방법은 여러가지가 있지만, 저는 서버가 없는 관계로 로컬 db인 SQLite를 사용하기로 했습니다. Room은 SQLite 성능을 최대화하면서도 원활한 데이터베이스 접근을 위해 추상 레이어를 제공합니다...만 물론 직접 접근하는 방법도 존재합니다. 아래 링크는 SQLite에 직접 접근하는 방법에 대해 설명하는 안드로이드 공식 문서입니다. SQLite를 사용하여 데이터 저장 | Android 개발자 | Android Developers 데이터베이스에 데이터를 저장하는 작업은 연락처 정보와 같이 반복적이거나 구조적인 데이터에 이상적입니다. 이 페이지는 일반적으로 개발자가 SQL 데이터베이스를 잘 알고 있다고 가정하며 Android에서 SQLit.. 더보기
Kotlin 이슈 6 fragment lifecycle 지난 이야기 2020/02/01 - [Android + Kotlin + Figma] - Kotlin 이슈 5 include 대신 정적 fragment, Unresolved reference. Kotlin 이슈 5 include 대신 정적 fragment, Unresolved reference. 지난 이야기 저번 시간에는 크롤링 코드를 작성했습니다. 모든 코드를 MainActivity.kt에 집어넣으려니 상당히 난잡해보이더라고요. 2020/01/22 - [Android + Kotlin + Figma] - doAsync, AsyncTask, Coroutines.. roomedia.tistory.com 지난 번에 크롤링 코드를 fragment를 상속받아 별도의 클래스로 구현하는 작업을 했었습니다. 오늘은 이 .. 더보기

반응형