전체 글

1. 스마트 캐스트란? 타입검사와 타입캐스트, 타입 강제 변환을 하나로 엮은 기능이다. 코틀린에서 타입검사는 is를 활용한다. 2. 코틀린 함수의 기본 구조 if 문을 식으로 사용해서 return에 사용이 가능하다. 블록이 본문인 함수와 식이 본문인 함수의 차이 [ 그림 1,2 첨부 ] 식이 본문인 함수만 반환타입 생략이 가능하다. 3. 변수선언 val은 변경 불가능한 참조를 저장하는 변수 자바로 말하자면 final에 해당하는 변수를 의미한다. var은 변경 가능한 참조다. 변수의 값은 바뀔 수 있고, 자바의 일반 변수에 해당한다고 생각하면 된다. var은 변수의 값을 변경할 수 있지만 변수의 타입은 고정돼 바뀌지 않는다. 다른 타입의 값을 저장하고 싶다면 변환함수를 작성해서 값을 변수의 타입으로 변환하..
Kotlin in action 책을 다시 한번 보면서 코틀린에 대해 공부해야겠다. 오늘은 1장을 공부해보고 정리한 내용을 공유해보려고 한다. 그럼 시작! 코틀린이란 무엇이며 왜 필요한가? 1. 코틀린이란? 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 간결하고 실용적이며 자바 코드와의 상호운용성을 중시한다. 코틀린의 주 목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 것. 즉, 더 적은 코드로 더 편하게 프로그래머의 목표를 달성하게 해줌 2. 정적 타입 지정 언어? 코틀린은 컴파일러가 문맥을 고려해 변수 타입을 결정하는 기능을 활용한다. 일명 타입추론! 코틀린도 정적 타입 지정 언어이다. 모든 프로그램 구성 요소의 타입을 컴파일 시점에..
카카오 로그인, 구글 로그인, Firebase 인증 키 등등 보안상 github에 그대로 올릴수는 없다. 인터넷으로 찾다가 내가 하기에 가장 쉬운 방법을 적어보려고 한다. 구글지도 API키를 숨기기 위해서 찾아본 방법이다. 구글지도를 사용 할 떄 Manifest에도 키를 작성해야 하는데 일반 Activity에서 사용하는 방법과는 달랐다. 그럼 작성해 보도록 하겠다. 우선 local.properties에 숨기고자 하는 서버키를 입력해준다. 아래 코드에도 나와있듯 manifest에 사용할 키는 " "를 사용하지 않는다. server_key = "본인 키 입력" googleMap_Key = "본인 키 입력" googleMap_Key_manifest = 본인 키 입력 Pro..
진짜 갑자기 앱이 안돌아가면서 위와 같은 오류가 떴다. java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/appcheck/interop/InternalAppCheckTokenProvider; 각종 삽질을 다 하던 중 드디어 해결책을 발견했다. 시간을 허비한거에 비해 너무 간단해서 허탈하당..ㅠㅠ implementation platform('com.google.firebase:firebase-bom:31.5.0')였던 녀석을 최신버전으로 업데이트 해줬더니 오류 해결완료! implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation plat..
흐엉엉 ㅠㅠㅠ 원래 파이어베이스 설정 - 프로젝트 설정 - 클라우드 메시징에서 서버키를 확인할 수 있었다. 그런데,, 오랜만에 들어가니 아래와 같이 뜬다. Cloud Messaging API(기존)not_interested사용 중지됨 기존 HTTP 또는 XMPP API(2023년 6월 20일에 지원 중단됨)의 기존 사용자는 2024년 6월 20일까지 최신 Firebase 클라우드 메시징 API(HTTP v1)로 마이그레이션해야 합니다. 흑흑 ㅜㅜㅜ 내 서버키 어디서 확인 가능하니ㅠㅠㅠ 해결방법은 간단했다. 구글 클라우드 콘솔에서 API관리 버튼을 눌러준다. Cloud Messaging를 사용으로 눌러주면 창이 한번 더 업데이트 된다. 그건 그냥 엑스표시로 종료하고 다시 파이어베이스 클라우드 메시지 페이지..
갑자기 액션바 오류가 났다. 오류 내용 Process: com.example.datingappkotlinproject, PID: 25545 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.datingappkotlinproject/com.example.datingappkotlinproject.ActivityForMain.AppMainActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_B..
Notification를 띄우려고 하다가 오류가 발생했다. build.gradle파일에 implementation 'com.android.support:appcompat-v7:28.0.0' 을 추가하다가 발생하였다. 지금은 해결되었지만 빨간 박스 안에 밑줄이 쳐지면서 아래와 같은 오류가 발생했다. 오류내용 : Call requires permission which may be rejected by user: code should explicitly check to see if is available (with checkPermission) or handle a potential SecurityException. 구글링을 해보니 "앱은 Android X로 실행되는데 라이브러리는 28이라서 문제" 라고 한다..
.('https://jejublog94.tistory.com/'이하 '안명우')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2023년 1월 1부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://jejublog94.tistory.com/'이하 '안명우')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다. ..
오늘은 앱을 출시하려고 했다. 내 mp3 player 앱을 출시하려고 했고, 구글 플레이 콘솔로 들어가 가입 및 결제까지 진행했다. 나는 습관적으로 프로젝트를 만들때 패키지명을 com.example 로 만든다. 하지만 앱 출시시에는 패키지명에 example이 들어가면 안된다고 한다. 오늘도 또 하나 배웠다,,,, 다시 패키지명 변경해서 올려봐야지,,ㅎㅎ
재개
재주있는 개발이