ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [21.01.12] JAVA 안드로이드 스튜디오로 앱 만들기 둘째 날
    APP/study log 2021. 8. 30. 00:08
    728x90

    본격적으로 앱을 만들기에 착수했다! 앱을 만드는 것에는 안드로이드 스튜디오를 활용하기로 하였고, 코틀린도 있지만 지난 여름 프로젝트를 해본 결과 JAVA를 활용한 앱 만들기 자료가 더 많은 것 같아서 언어는 JAVA를 사용하기로 했다. 구체적인 기능을 구현하기 위해서, 개발에서는 어느정도 단계를 정해서 진행하는 게 필요했다. 우리는 먼저 로그인과 성균관대 학생 인증을 우선적으로 구현해야만 그 데이터베이스를 이용하여 채팅이나 게시판 등 다른 기능들을 구현할 수 있었다. 따라서 로그인과 사용자 인증을 최우선적으로 구현하기로 했다. 다들 앱 만들기는 나 빼고는 처음이고, 내가 제일 한가한 것 같아서(ㅋㅋㅠㅠ) 파이어베이스를 활용해서 로그인하는 것까지 내가 먼저 구현한 뒤에 다음 기능들은 역할 분담을 하여 진행하기로 했다.

    [오늘의 지식]

    1. .xml은 화면 구성-> 정적/.java는 동작 구성-> 동적(기능 부여)
      :xml에서 화면 구상 후 실제 동작시키려면 .java 파일에서 변수로 선언! (findViewbyid로 연결)
    2. 모바일 앱 만들 때도 html처럼 태그 쓴다
    3. wrap_context=text가 써져 있는 만큼 감싸라
    4. onCreate: 해당 activity를 처음 시작할 때 onCreate 내에 있는 것 쭉 다 실행해라! (생명주기)
    5. SetOnClickListener: 클릭했을 때 쭉 실행해라
    6. Activity 간 이동->Intent를 통하여!
      1. MainActivity에서
        • Intent intent=new Intent( ~~~.this, ----.class )
        • intent.putExtra(키,데이터):Extras에 데이터를 담아 보냄
        • startActivity(inent): 이동
      2. SubActivity에서
        • Intent intent=getIntent()
        • Intent.getExtra(키)
    7. 새 Activity 생성하면 Manifest에 새 activity를 기입해줘야 한다

    일단 우리의 앱의 사용자들은 '성균관대학교 학생들'으로 국한시켜야 하기 때문에, 성균관대 인증을 받은 이용자들만이 접속할 수 있도록 해야 했다. 그러나 문제는 우리가 학교의 어떠한 정보도 제공받을 수 없기 때문에 학번이나 이름 등으로 재학생이나 졸업생을 인증 받을 수 없었다. 그래서 어떤 형식으로 회원 가입이나 로그인을 시켜야 할지 고민이 많았다. 그 순간 딱 떠올랐던 것! 바로 우리 학교 시스템에 가입을 했을때 자동적으로 생성되는 지메일 아이디! 이거는 우리 학교 학생들만 가지고 있는 지메일 주소가 아닌가! 그렇다면 누군가 회원가입을 하지 않고도 기존에 자신이 하나씩 다 가지고 있는 성균관대학교 지메일로 로그인하면 되겠네 싶었다. 그래서 파이어베이스와 구글 로그인을 연동해서 진행해보고자 했다.

    참고: 홍드로이드 안드로이드 스튜디오 구글 로그인 연동 자바 강의 여차저차 강의대로 따라 해보니 원하는대로 구현할 수 있어서 다행이었다. 그러나 중간중간에 강의와 버전이 달라진 것도 있기도 했고 implementation이 안 된 것도 간혹 있어서 당황하기도 했지만 여차저차 열심히 찾아서 해결해냈다 ㅋㅋㅋ 또한 저 강의 내용과 달리 내가 원하는 방향으로 구현을 해야 하는 부분에서 약간의 고민이 있었다. 먼저 성균관대학교 지메일이 아니라면 해당 앱에 로그인 할 수 없도록 해야 한다는 점이었다. 그런데 저 영상을 그대로 따라하면 구글 아이디가 있는 사람이면 다 로그인할 수 있기 때문에 제한을 걸었어야 했다. 이 문제는 간단히 해당 이메일 주소가 '@g.skku.edu'로 끝나지 않으면 로그인할 수 없도록 했다. 이것은 간단히 if문을 집어넣어 구현했다. 또한 문제였던 게 무엇이였냐면, 만약 이용자가 우리 학교 구글 아이디가 아닌 다른 구글 아이디를 입력하였을 때 다시 로그인을 해야 하는데, 한번 로그인이 되면 그 계정이 저장이 되어서 재로그인을 할 수가 없었다. 그래서 이 문제를 어떻게 해결해야 하나 구글에 찾아보니 알맞지 않은 구글 아이디는 로그아웃 시키면 된다길래 위의 if문에 signout 메소드도 넣어서 구현했다. 그래서 결과적으로 성균관대학교 지메일이 아니라면 로그아웃되어서 다시 로그인할 수 있도록 하고, 성균관대학교 지메일이 맞다면 다음 화면으로 넘어갈 수 있도록 했다.

    아직 우리 앱의 주요 기능을 다 구현하지도 못했지만 이정도만 해도 정말 다행이다! 별 문제 없이 의도한대로 잘 돌아가는 게 어딘가 싶었다ㅋㅋㅋ 사실 지난 여름 프로젝트를 할 땐 언어조차 무엇인지 알지 못하고, 어떤 방식으로 메소드를 써야 할지도 무지한 상태였어서 하면서도 아리까리 했었다. 그래도 이번엔 따라하면서도 아, 어떤 부분을 하기 위함이구나를 알고 진행할 수 있었다! 이것만으로도 발전이 있다고 생각하고 더 구현하고 싶어졌다!

    728x90
Designed by Tistory.