android 8

[Android] [Kotlin] Splash 화면 만들기

앱은 콜드 스타트, 웜 스타트, 핫 스타트라는 세 가지 상태 중 하나에서 시작하며, 각 상태는 앱이 사용자에게 표시되는 데 걸리는 시간에 영향을 미친다. 콜드 스타트에서는 앱이 처음부터 실행되므로 시간이 가장 오래 걸리게 되는데, 이렇게 앱 로드, UI 준비 과정을 기다리며 보여주는 화면이 Splash (스플래시) 화면이다. 이전에 개발할 때에는 Splash 화면에 대한 이해도가 떨어져 Timer로 시간 제한 (3000 ms 정도)을 두고 구현했으나, 이는 콜드 스타트를 3000ms 만큼 지연시키는 결과를 낳는다. 그래서 이번에는 올바른 방법으로 구현해보았다. 먼저 theme.xml에서 다음 줄을 추가한다. @drawable/splash_drawable은 splash 화면을 어떻게 표시할 지 정의하는 부..

[Android][Java] 카카오 로그인 v2 구현하기

진짜.. 많이 헤맸던 카카오 로그인 지금까지 소셜 로그인이 아니라 SMTP로 이메일 로그인만 구현해봤는데 카카오 로그인은 진짜 더 어려웠다. 계속 올리려고 마음만 먹다가 이제 올려보려고 노력중이다. 이러고 또 임시 저장 글에 처박히겠지...? (드디어 다시 쓰기 시작) 다음에는 SMTP 로그인하는 방법도 글을 올려야겠다. 카카오 로그인은 정말 다른 분들 블로그, 티스토리 등 여러 도움을 받았기 때문에 나도 기록겸해서 올려둔다. 애석하게도 카카오 공식 문서가 다 코틀린으로 되어 있어서 코틀린 모르는 나는 자바로 구현하려고 아둥바둥댔다. Java로 안드로이드 개발하는 나는 레퍼런스 찾는데도 엄청 오래 걸렸다... 이 문서가 '카카오 로그인 v2 예제 java'를 찾아 구글을 뒤지는 당신에게 도움이 되기를 바..

[Android] 서버로 이미지 업로드하기 (Java)

이미지 업로드 방식에는 다양한 방법이 있다. 하지만 나는 다른 방식들을 잘 이해하지 못해서, JSON으로 압축한 이미지 코드를 서버에 저장하는 형식을 사용하였다. 이 방식의 단점은 JSON string이 너무 커서, 서버에 들어가지 않을 가능성이 있다는 점..이다. 매우 큰 오류라고 생각하고,다음에 사진 업로드를 다시 하게 된다면 이 방식은 사용하지 않을 것이다. 스레드에 대해 공부해야 한다는 필요성을 느꼈다. 사진 한 장을 업로드 하는데에는 문제가 안 되는데, 여러 장의 사진을 업로드 할 때 JSON에 모두 담을 수 없어서 JSON에 하나씩 담고 하나씩 업로드하는 방식을 채택하였다. 서버는 NestJS와 통신하였다. addImageButton.setOnClickListener(new View.OnCli..

[Android] 타이틀 바 없애기 / 상태 바 없애기

Android 프로젝트를 처음으로 설정했을 때 뜨는 타이틀 바를 없애는 방법이다. 인터넷에서 처음 찾아봤을 때는 자꾸 style.xml을 찾으라고 해서 없는데 어떻게 찾아요 계속 삽질하다가 알아냈다. AndroidManifast.xml을 들어가면 theme에 "@style/Theme.앱 이름"으로 설정되어 있는 것을 볼 수 있다. Style이 설정된 Theme.xml을 찾아서 들어가보자. res파일 아래 values 폴더에 들어가보면, themes라는 파일 아래 themes.xml을 찾을 수 있다. 아래 있는 파일은 괄호 안에 night로 쓰여진 것으로 보아 다크모드를 적용할 때 사용하는 xml인 것 같다. themes.xml의 기본은 다음과 같다. 이 부분에 해당 코드를 삽입하면 타이틀 바를 없앨 수 ..

동계 해커톤 중간 점검 및 진행 사항

해커톤도 이제 다음주 수요일이면 끝이 난다. 비록 짧은 시간이었지만, 겨울 방학 동안 많이 놀지 않고 공부 및 개발을 했다는 점이 뿌듯하다. 이번에는 저번 공모전 때 써봤던 android로 앱을 만들기로 했었다. 또 안드로이드를 해야했다. 저번에는 firebase로 서버 없이 데이터베이스로만 대체했었는데, 이번에는 서버와 직접 통신해 볼 수 있다는 점이 성장한 점인 것 같다. 저번 공모전 때는 안드로이드와 서버 간의 연결을 어떻게 해야 할 지 몰라 허둥대다 firebase로 넘어갔지만, 이번에는 다들 어느 정도 공부한 상태에서 임해서 응용하기 더 쉬웠던 것 같다. 물론 서버를 했다면 더 재미는 있었을 것 같지만 제대로 만들지 못했을 것 같다. 아는 게 없으니.. 대회 전에 인터페이스 부분까지 Java를 ..

개발 일지 2021.02.20

[Android Studio] 드로어블(Drawable)

Do it! 안드로이드 앱 프로그래밍을 참고하였습니다. 드로어블 만들기 뷰의 배경 이미지 뷰의 background 속성 : 배경색을 설정하거나 이미지 파일을 설정할 때 사용합니다. 이미지를 배경으로 설정하면 이미지는 아무런 변화가 없습니다. → 버튼이 눌렸을 때 눌린 이미지가 보이게 하고 싶다면? ⇒ 드로어블을 사용하면 됩니다. 드로어블 : 상태에 따라 그래픽이나 이미지가 선택적으로 보이게 할 수 있게 합니다. 상태 드로어블 만들기 drawable 파일 안에 xml 파일을 하나 만듭니다. 여기에서 삽질을 엄청했다. backgroundtint가 안 없어져서 개빡쳤는데 backgroundtintMode를 screen으로 만들고 transparent 속성을 주면 됩니다. 셰이프 드로어블 만들기 shape 속성..

안드로이드 스튜디오 - 기본 위젯

Do it! 안드로이드 앱 프로그래밍을 참고하였습니다. 텍스트뷰 화면에 글자를 보여주는 역할을 합니다. 여러 가지 속성으로 텍스트뷰를 꾸밀 수 있습니다. text 속성 : 반드시 지정해야 합니다. 직접 문자열을 넣는 방법과 /app/res/values 폴더에서 strings.xml 파일을 작성한 문자열을 지정하여 할 수도 있습니다. 다국어 지원이 필요할 때는 한국어, 영어, 일본어 버전의 xml 레이아웃 파일을 만드는 것보다 strings.xml 파일을 언어별로 만드는 것이 더욱 효율적입니다. textColor 속성 : 텍스트 뷰에서 표시하는 문자열의 색상을 설정할 수 있습니다. #000000처럼 표기하면 됩니다. textSize 속성 : 문자열의 크기를 설정할 수 있습니다. dp, sp, px 등을 사..