일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- silver3
- Top-Down
- bronze4
- LV1
- stack
- 뷰클래스
- toLong()
- recyclerView 클릭이벤트
- bronze3
- bronze2
- silver4
- fragment에서 context사용
- dp
- map
- 녹음기
- bottom-up
- 다크모드제한
- LIS
- 임시저장하기
- Alert Dialog
- 테마변경
- gradle설정
- naver open api
- Silver5
- RecyclerView
- Android
- 백준
- RETROFIT
- Kotlin
- 프로그래머스
- Today
- Total
목록오늘의 공부는?! (31)
유니 코드

Dialog란?! developer.android.com/guide/topics/ui/dialogs 대화상자 | Android 개발자 | Android Developers 대화상자 대화상자는 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는 작은 창입니다. 대화상자는 화면을 가득 채우지 않으며 보통은 사용자가 다음으로 계속 진행하기 developer.android.com 공식문서에서 설명하는 Dialog는 다음과 같다 대화상자는 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는 작은 창입니다 대화상자는 화면을 가득 채우지 않으며 보통은 사용자가 다음으로 계속 진행하기 전에 조치를 취해야 하는 모달 이벤트에 사용됩니다 다이얼로그 종류는 대표적으로 AlertDialog, ..
smtp를 이용해서 메일 인증을 하는 중에 java.net.SocketException: socket failed: EPERM (Operation not permitted) javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465; 이런 에러가 발생했다 구글링 했을 때 여러가지 해결방법이 나와서 그대로 해봤다 - 포트를 587로 바꿔주기 - 인터넷 권한 설정해주기 - 해당 어플 삭제 후 재설치 안드로이드 스튜디오에서 정상적으로 INTERNET PERMISSION 권한을 주고 앱을 실행했지만 계속해서 위의 에러가 발생했다 이럴때에는 단말기(애뮬레이터/휴대폰)에 있는 해당 어플리케이션을 삭제하고 다시 설치하..
* 뒤로가기 버튼은 내가 만든 버튼, 안드로이드 뒤로가기 버튼 모두 해당한다 뒤로가기 누르면 이동할 액티비티 설정 1. manifest.xml ... android:parentActivityName 속성을 사용하여 뒤로 이동할 액티비티명을 지정해준다 위의 코드는 SignupActivity와 FindPasswordActivity에서 뒤로가기를 눌렀을 때 LoginActivity로 이동하도록 했다 2. Activity파일 각각 액티비티 파일에서 리스너를 설정해준다. 뒤로가기 버튼을 잘못 누르는 경우도 있으니 다이얼로그로 다시한번 확인 후 finish()를 해준다 binding.btnBack.setOnClickListener { val builder = AlertDialog.Builder(this) build..

안드로이드 프로젝트를 진행하다보면 민감한 정보가 소스코드에 포함되는 경우가 있다 예를 들어 메일을 보낼 때 필요한 메일계정정보를 소스 코드에 그대로 포함하면 보안상의 문제가 있다 API key값도 마찬가지이다. 만약 코드에 상수값으로 선언해두었다면 Github 등에 노출될 위험이 있기 때문에 .gitignore 파일을 통해 민감한 정보가 노출되지 않도록 보관해야 한다 이 글에서는 local.properties 파일을 사용해 정보를 안전하게 보관하는 방법을 설명하겠다 local.properties에 정보 추가 local.properties 파일은 기본적으로 .gitignore 파일에 추가되어 있어서 git을 통해 추적되지 않는다 local.properties 파일에 숨기고 싶은 정보를 추가해준다 ## Th..

새로 시작한 프로젝트가 대학교 학생들을 대상으로 서비스할 예정이기때문에 회원가입시 학교 메일을 인증하여 학생인증을 하려고 했다 학교 메일을 입력하고 인증버튼을 누르면 해당 주소로 인증번호를 포함한 메일이 발송되고 인증번호를 입력하면 학생인증이 완료되는 시나리오를 생각했다 자료조사를 하다보니 Gmail authentication의 JavaMail API를 사용하면 이메일을 보낼 수 있다는 걸 알게되었다 해당 API를 사용하기 위해서 환경설정을 먼저 해주어야 한다 https://code.google.com/archive/p/javamail-android/downloads 위의 링크에서 activation, additionnal, mail 3개의 jar 파일을 다운로드한다 다음과 같이 3개의 ..

다이나믹 프로그래밍(DP)에 대해서 정리를 해보려고 한다. DP는 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한다. 코딩 테스트 빈출 유형 중 하나이다. DP란?! 간단한 여러 개의 문제로 전체 문제를 나누어 푸는 방법을 말한다. (작은 문제의 답을 구한 후 어딘가에 메모해 놓고, 그보다 큰 문제를 풀어나갈 때 똑같은 작은 문제를 구해야한다면 앞서 메모한 결과값을 이용한다.) 대표적인 예로는 피보나치 수 구하기이다. 50번째 피보나치 수를 구해야 한다고 가정하자. P(50) = P(49) + P(48)이기 때문에 50번째 피보나치 수를 구하는 대신에 49번째, 48번째 수를 구하는 것으로 대체할 수 있다. 이런 방식으로 작은 문제에 대한 답을 구하고 이를 통해 더 큰 문제의 답을 구하는..

이번 글에서는 검색도서를 누르면 상세 페이지를 띄우는 기능을 만들것이다 상세 페이지에는 책이름, 설명, 이미지, 리뷰가 나오도록 할 계획이다 상세 페이지를 만들기 위해 DetailActivity와 activity_detail을 만들자 Manifest에 activity 추가해주는 거 잊지말라구(찡긋) class DetailActivity : AppCompatActivity() { private lateinit var binding: ActivityDetailBinding private lateinit var db: AppDatabase override fun onCreate(savedInstanceState: Bundle?) { binding = ActivityDetailBinding.inflate(lay..

저번글에서 editText에 키워드를 입력하고 엔터를 누르면 검색하는 것까지 구현했다 이번에는 Android Room을 이용해 검색 키워드를 저장해보자 Android Room이란?! Room은 SQLite에 대한 추상화 레이어를 제공하여 개발자가 편리하게 로컬DB에 접근할 수 있도록 해주는 Jetpack 라이브러리이다 Room은 AAC(Android Architecture Components), 스마트폰 내장 DB에 데이터를 저장하기 위해 사용하는 라이브러리이고 ORM(Object Relational Mapping)라이브러리로서 DB 데이터를 Java 또는 코틀린 객체로 매핑해준다. SQLite를 내부적으로 사용하고 있지만, DB를 구조적으로 분리해 데이터 접근의 편의성을 높여주고 유지보수에 편리하다. ..

recyclerview란?! 비슷한 형식의 뷰는 몇개만 그려놓고 스크롤 내리면 위의 뷰를 없애고 미리 그려진 뷰에 데이터를 할당 리스트뷰랑 비슷하지만 recyclerview는 한번 바인딩을 해주면 나중에 재사용가능 1) recyclerView를 레이아웃에 추가하고 각 아이템뷰 레이아웃 추가 2) adapter 구현 (recyclerView에 데이터 연결) 3) adapter, layoutManager 지정 recyclerView 구성요소 Adapter : 데이터 목록을 아이템 단위의 뷰로 구성하여 화면에 표시(한 세트로 묶어서 포장하는 역할) LayoutManager : 아이템뷰가 나열되는 형태를 관리하기 위한 요소제공(포장한 걸 어떻게 쌓을지 정하는 역할) ViewHolder : 화면에 표시될 아이템뷰..

이번 글은 Retrofit으로 api를 호출하고 recyclerview를 활용해 정보를 띄워주는 기능을 구현하려고 한다 API는 Naver에서 제공하는 검색 API(도서)를 사용했다 MainActivity.kt에서 Retrofit 객체 생성 앞에서 만들었던 인터페이스는 어떻게 사용을 할지 정의만 해놓은 것이기 때문에 액티비티에서 구현해주어야 한다. val CLIENT_ID = "clientId" val CLIENT_SECRET = "clientSecret" val BASE_URL_NAVER_API = "https://openapi.naver.com" val retrofit = Retrofit.Builder() .baseUrl(BASE_URL_NAVER_API) .addConverterFactory(Gso..