10월 1차 프로젝트(내손안에 새싹)

수맹·2023년 3월 8일
0

HuStar ICT6기

목록 보기
2/3

프로젝트명 : 내손안에 새싹(App)

기술스택

  • Android Studio(Java), Firebase, Arduino IDE

팀구성

  • 하드웨어1명, 어플리케이션2명

역할

  • 어플리케이션 구현 및 Firebase DB연동

프로젝트 설명

  • 하드웨어로 화분 토양의 온도, 습도 빛의양 등을 체크하고 이것을 Wifi통신으로 DB에 전달한다.
    어플에서는 회원의 화분 Serial Number 하위노드에 실시간으로 저장된 토양의 온도, 습도 빛의양 등의 DB를 받아서 보여준다.

상세역할

  • 회원가입 구현
    Firebase Realtime과 FIrebase Auth를 이용해서 회원가입 구현
    ✅이메일 형식이 아닌데 회원가입을 누르면 Toast메세지 출력
    ✅비밀번호,비밀번호 확인 비밀번호가 일치하지않으면 Toast메세지 출력

  • 로그인 구현
    ✅Firebase Realtime과 FIrebase Auth를 이용해서 로그인 구현

  • Adapter를 이용한 화분관리, 등록, 삭제 ListView 구현
    ✅처음에는 아무것도없는데 등록하기 버튼을 누르면 등록한 화분 표시

    ✅화분을 등록할때는 화분의 고유 Serial Number를 입력후 등록이가능

    ✅정해진 Serial Number가 아닌 다른것을 입력했을 경우 Toast메세지 출력,이미 사용한 Serial Number를 다른 사람이 사용하는경우 이미 사용중인 Serial Number Toast메세지 출력 - Serial Number의 중복사용 방지(사전에 등록한 Serial Number하위 노드에 able, unable을 만들어 사용여부를 확인할 수 있도록 하였음)

    ✅화분등록) 고객이 Serial Number 입력하여 화분 생성 -> DB의 Serial Number하위노드에 able이 unable로 바뀜

    ✅화분삭제) 고객이 화분을 삭제 ->DB의 Serial Number 하위노드에 unable이 able로 바뀜

    ✅화분 등록에 사진을 올렸을 경우 올린 사진이 반영되도록 Glide를 사용

    ✅화분 등록에 성공하면 사진을 Firebase Storage에 사용자의 Uid폴더에 저장

    ✅화분 등록에 입력한 정보들을 Firebase Realtime 사용자의 Uid하위 노드에 저장

느낀점

Android Studio를 사용하여 처음 앱을 만들어 보았다. Java와 Kotlin이 있었는데 수업 시간에 Java를 사용하여서 Kotlin이 아닌 Java를 사용하여 앱 개발을 진행하였다.

DB에 대한 이해가 부족하였고 DB를 사용한 프로젝트는 처음 하여 보았는데, 입문자에게는 Firebase가 사용하기 편하였다. 하지만 Firebase는 등록과 삭제 두 가지 기능밖에 없고 수정이 따로 되지 않아서 화분의 정보수정과, Serial Number를 등록하면 다른 사람이 중복된 Serial Number를 사용하여 화분등록을 하는 것을 막아주도록 Serial Number 값을 Able, Unable로 수정하는 부분에 있어서 시간을 오래 잡아먹게 되었고, 결국 내린 결론은 수정알고리즘을 삭제 후 등록으로 바꾸어 해결할 수 있었다.

Google의 firebase는 어느 정도 용량을 초과하면 결제를 해야 하는데 테스트를 하다 보니 용량을 초과한 적이 있었다. 애플리케이션의 완성도도 중요하지만, 사용자의 관점에서 데이터를 많이 먹는 앱이라면 사용하지 않을 것이다.
또한 내가 소비자라면 이 앱을 사용할 것인지, 수익모델은 어떤 것이 있는지 이러한 부분도 개발을 할 때 고려하도록 해야겠다.

액티비티 간에 화면전환에서 값을 서로 넘겨주어야 하는 상황이 있었는데 청처음에는 어떻게 그 값을 넘겨주어야 할지 막막하였다 그래서 다시 DB에 접근하여 그 값을 찾아서 빼오는 방식으로 생각하였는데 Intent를 통하여 DB접근없이 전 화면의 넘겨주어야 할 값을 넘겨줄 수 있어서 수월하게 진행 할 수 있었다.

혼자 개발하는 것이 아닌, 팀원과 함께 개발하게 되는 경우 팀원과 소통을 많이 해야 한다는 것을 알았고, HuStar ICT 6기에서의 첫 프로젝트다 보니 처음 보는 사람들에게 나의 의견을 고집하는 것이 조금 조심스러워서 팀원의 의견에 묻혀가는 상황이 많이 있었다. 이러한 부분들과, 보여줄 수 있는 것들이 많았는데 시간이 부족하였던 부분들은 매우 아쉬웠다. Java보다 Kotlin이 더 장점들이 많다고 들었다. 이번 프로젝트를 따로 Kotlin으로 바꾸고, 기능들도 보완해 보아야겠다.

profile
Alessandro Nesta

0개의 댓글