본문 바로가기

안드로이드 스튜디오

[안드로이드 스튜디오 코틀린] AWS Amplify를 이용한 로그인 앱 만들기

728x90
반응형

참고 사이트

https://aws.amazon.com/ko/blogs/korea/building-an-android-app-with-aws-amplify-part-1/

 

AWS Amplify를 이용한 Android 앱 개발 실습 – 1부 | Amazon Web Services

이 글은 AWS Amplify 개발 도구를 사용하여 AWS 클라우드 기반 Android 모바일 앱을 제작하는 방법에 대한 실습 시리즈입니다. 여러분이 제일 좋아하는 애완 동물 목록을 표시하기 위한 Android 모바일

aws.amazon.com

 

 

 

 

 

 

 

1. 새로운 프로젝트를 하나 만들어 줌

 

 - https://mimisongsong.tistory.com/12에서 설정을 완료했다면 프로젝트를 만들 필요가 없음

 

 

 

2. AWS 환경설정을 해줌

 

https://yebon-kim.tistory.com/4 를 보고 환경설정 후 , AWS Amplify에 앱 빌드

 

 

 

3. build.gradle(Module.app) 설정

- dependencies 에 추가해줌

implementation('com.amazonaws:aws-android-sdk-mobile-client:2.8.+@aar') { transitive = true }
implementation('com.amazonaws:aws-android-sdk-auth-userpools:2.8.+@aar') { transitive = true }
implementation('com.amazonaws:aws-android-sdk-auth-ui:2.8.+@aar') { transitive = true }

 

 

 

 

 

 

4. AndroidManifest.xml 에 설정 인터넷 허가 설정 추가

 

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

 

 

 

 

 

 

 

5. Empty Activity를 추가해준다

 

 

 

 

6. AndroidManifest.xml에서 main을 AuthenticationActivity로 바꿔준다

( 로그인 화면이 메인이 되기 위해 )

 

 

 

 

 

 

 

결과 -> 앱 실행하면 메인화면이 뜨고, Create New Account 를 누르면 회원가입 화면이 나옴, 

폰 번호( +821012345678)를 입력하면 계정생성 후 MainActivity로 이동 ( 단점 : 로그아웃이 없다 )  

 

 

 

 

 

+추가

 

AWS Amplify 로그아웃버튼

닉네임로그아웃 버튼 만들기

 

1. Settings.kt 

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.amazonaws.mobile.client.AWSMobileClient
import kotlinx.android.synthetic.main.activity_settings.*

class Settings : AppCompatActivity() {

    private lateinit var auth:AWSMobileClient
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_settings)

        // ID or 닉네임이 textView에 보이기 위한 함수
        auth = AWSMobileClient.getInstance()
        textView18.text = auth.username.toString()

        // 로그아웃 버튼 생성
        button5.setOnClickListener{
            auth.signOut()
            val logout = Intent(this, Aws::class.java)
            startActivity(logout)
        }
    }
}

 

 

 

2. activity_settings.xml

<TextView
        android:id="@+id/textView14"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ID"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.163"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.401" />

    <TextView
        android:id="@+id/textView18"
        android:layout_width="213dp"
        android:layout_height="26dp"
        android:text="TextView"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.616"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.4" />

    <Button
        android:id="@+id/button5"
        android:layout_width="150dp"
        android:layout_height="70dp"
        android:fontFamily="@font/nanumsquareroundeb"
        android:text="로그아웃"
        android:textColor="@color/white"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.704" />

Amplify 로 회원가입시 username과 로그아웃 버튼이 잘 나옴

 

 

 

로그아웃 버튼을 누르면 로그인 화면으로 잘 돌아옴

 

 

 

 

참고

 

https://github.com/songmik/AwsMembershipEx

 

GitHub - songmik/AwsMembershipEx: AWS 회원가입 - 코틀린

AWS 회원가입 - 코틀린. Contribute to songmik/AwsMembershipEx development by creating an account on GitHub.

github.com

728x90
반응형