본문 바로가기

[Android]

(49)
[소셜로그인] 안드로이드 애플 로그인(Sign in with apple) 구현하기 3편 안녕하세요! 허접 샴푸입니다. 요새 통 바빠서 포스트를 작성하지 못했습니다. 이번 편은 안드로이드에서 애플 로그인을 구현하기 위해 필요한 안드로이드 앱 쪽을 살펴보겠습니다. 거두절미하고 어떻게 구현하는지 바로 알아보도록 하겠습니다. [START] 1. Const.kt 작성 (상수 설정) [APPLE_CLIENT_ID] APPLE_CLIENT_ID는 https://developer.apple.com/account/resources/identifiers/list/serviceId로 들어가면 IDENTIFIER이라고 되어있는 놈의 값입니다. [APPLE_REDIRECT_URI] APPLE_REDIRECT_URI는 1편에서 말씀드린 Return URLs에 작성한 주소를 적습니다. 2. Interaction.kt..
[소셜로그인] 안드로이드 애플 로그인(Sign in with apple) 구현하기 2편 안녕하세요! 허접 샴푸입니다. 요새 통 바빠서 포스트를 작성하지 못했습니다. 이번 편은 안드로이드에서 애플 로그인을 구현하기 위해 필요한 서버 쪽을 알아보도록 하겠습니다. 거두절미하고 어떻게 구현하는지 바로 알아보도록 하겠습니다. [START] 1. client_secret을 구합니다. 출처: https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple 필요한 값들 [key_file] 1편에서 생성한 Key 파일입니다. 위 ruby 스크립트와 같은 폴더에 다운받은 .p8 확장자의 Key 파일을 집어넣습니다. 참고로 저는 .p8 확장자를 파일명에서 제거하여 key.p8이 아닌 key로 설정 및 작성하였습니다. 직접 작성하셔야 ..
[Tip] ViewModel의 LiveData를 작성하는 방법 안녕하세요 허접샴푸입니다. 간단하게 Android ViewModel에서 LiveData를 작성하는 방법을 끄적여 봅니다. [예] 출처: https://classroom.udacity.com/courses/ud9012/lessons/da3967cc-ba85-4045-bb46-dea1c770fb8b/concepts/d6779adf-494a-484d-870c-1e054eabed11 우선 MutableLiveData는 말 그대로 "Mutable" 즉 변형이 가능한 LiveData로서 읽기 / 쓰기가 가능합니다. 그리고 그냥 LiveData는 읽기 전용입니다. 참고로 LiveData에서 get() = { } 형태의 코드는 Kotlin 의 Backing Property라고 불리는 속성입니다. (Backing Pro..
[소셜로그인] 안드로이드 애플 로그인(Sign in with apple) 구현하기 1편 안녕하세요! 허접샴푸입니다. 요새 통 바빠서 포스트를 작성하지 못했습니다. Android와 IOS 둘 다 개발하는 앱 개발자라면 소셜 로그인을 한 번쯤 구현해보셨을 것입니다. 아이폰 앱에서 '구글 로그인', '페북 로그인' 등의 소셜 로그인을 넣으려면 "Sign in with Apple"(애플 로그인)을 필수적으로 넣어야 합니다. 이 때문에 안드로이드에서도 필수적으로 구현하게 되었습니다. 왜냐하면 Iphone 사용자가 어떠한 앱을 '애플 로그인'을 통해 사용하다가 안드로이드 폰으로 바꾸었다고 가정해봅시다. 안드로이드 폰에서 그 앱을 다시 사용하고자 다운로드하였는데 '애플 로그인'이 구현되어 있지 않으면 자신의 계정 관련 데이터를 불러올 수 없기 때문에 매우 좋지 않은 User Experience 겠죠? ..
[배달의 민족] 따라만들기 8-2편 (Repository, ViewModel, MVVM) 안녕하세요 허접샴푸입니다~! 오랜만에 배달의 민족 따라 만들기 8편입니다! 이번 시간에 구현할 것은 안드로이드 앱 아키텍처 패턴의 일부인 Repository와 ViewModel을 작성해보겠습니다. Guide to app architecture https://developer.android.com/jetpack/docs/guide#common-principles 불러오는 중입니다... 위 문서를 보다 보면 제일 중요하게 봐야 할 것이 아래 그림입니다. Activity나 Fragment는 ViewModel에 의존하고 ViewModel은 Repository에 의존하고 Repository는 Room(Sqlite database library)이나 Retrofit 클래스와 같은 여러 다른 클래스에 의존합니다. 이..
[배달의 민족] 따라만들기 8-1편 (Navigation, BottomNavigationView) 안녕하세요 허접샴푸입니다~! 오랜만에 배달의 민족 따라 만들기 8편입니다! 이번 시간에 구현할 것은 Fragment + BottomNavigationView입니다. 이전까지는 아래 그림과 같이 Drawer을 구현하였었죠? 그런데 최신 "배달의 민족" 앱은 Drawer 대신 아래 오른쪽 그림과 같이 Bottom navigation View를 사용하더라고요? 제 개인적인 생각은 - 엄밀히 따지면, Bottom Navigation View가 아닌 커스텀 Layout으로 Bottom Tab을 만든 것 같습니다. 그런데 저희는 100% 따라 할 것이 아니고 느낌만 가져갈 것이기 때문에 일일이 모두 커스터마이징 하기보다는 이미 잘 만들어져 있는 view를 사용할 것입니다. 그것이 바로 BottomNavigation..
[Navigation] Android Jetpack Navigation + BottomNavigationView (2 / 2) 안녕하세요 허접샴푸입니다! Navigation 관련 2편입니다. 이번 편에서는 NavigationExtensions에 대해서 알아보고 MainActivity.kt 코드를 작성하도록 하겠습니다. 긴 말 없이 바로 이어나가도록 하겠습니다. [START] 일단 먼저 1편에서도 말씀드렸지만, Google Sample을 참고한 것이기 때문에, 자세한 구현은 저도 모르는 부분들이 있습니다. 그러나 설명할 수 있는 부분까지 설명하도록 하겠습니다. 참고 : https://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample (1) NavigationExtensions.kt 복사 붙이기 위에 있는 NavigationE..
[Navigation] Android Jetpack Navigation + BottomNavigationView (1 / 2) 안녕하세요 허접샴푸입니다! Android Jetpack 라이브러리 중 하나인 Navigation에 대해서 알아보도록 하겠습니다. 최근 들어 안드로이드 앱들을 보면 모두 화면 하단에 메뉴가 있으며 중간 화면이 스위치 되는 Fragment + BottomNavigationView 형태를 하고 있습니다. (물론 옛날부터 그랬겠지만, 예전에는 정형화된 라이브러리가 없어서 Fragment 전환을 코드로 구현하는 것이 쉬운 일이 아니었습니다.) Google에서 2017년 Jetpack 및 Android Architecture Components를 출시하며 Navigation Component가 생겨났으며, Fragment 전환의 어려움을 조금이나마 덜 수 있게 되었습니다. 위 App을 보아도 모두 하단에 Botto..