[TIL] 메모 앱 기능 구현하고 배포하기

티라노·2024년 10월 24일
0

Today I Learned

목록 보기
5/21
  • 파이어베이스를 연동한 CRUD 기능 개발
  • 검색 기능 개발
  • 구글 애드몹 연동
  • 배포

오늘은 어제에 이어서 메모 앱을 실제로 개발하고 배포해보는 시간을 가졌다. 라이브러리의 파일 목록을 보며 각 파일의 내용과 역할을, 대표적인 기능 몇 가지만 소개한다.

CRUD 기초 원리

컨트롤러에 의존성을 주입 하면 지정한 함수가 호출된다.
이때 데이터베이스에 접근하기 위한 collection 이름(=memo)를 수집한다.

memo_list_controller의 loadAllMemos()

memocollectionref.get 으로 메모 목록을 가져온다.
이후 맵에 집어넣어서 리스트 형태로 반환(tolist)한다.

-> addFeed 함수는 필요 없음

factory 함수를 이용해서 특정 타입으로 반환했기 때문에 reload()에 바로 loadAllMemos()를 넣어 사용하면 된다.

수정 업데이트 프로세스

수정을 통해 접근한 콘텐츠를 MemoWritecontroller에서 따로 받아준다.
save 함수에서 수정한 피드의 아이디를 수집하고, 파이어스토어의 DB에 일치하는 id가 있으면 해당 내용을 업데이트한다. 삭제도 비슷한 매커니즘으로 이루어진다.


코드 설명

  • 메인 파일과 홈 파일
  • 메모 리스트 컨트롤러
  • 메모 작성 페이지를 구성하는 파일과 컨트롤러
  • 데이터 모델 파일
  • 데이터 포맷팅 용 유틸 함수 파일
  • 구글 애드몹의 배너를 설계하는 파일
1. main.dart / home.dart

메인 함수와 빌드 함수를 정의하는 파일이다.

2. memo_list_controller.dart

생성한 메모 목록을 홈 화면에 보여주기 위해 필요한 함수들을 정의해둔 컨트롤러이다. 이 파일에서 검색 기능을 구현한다.

3. memo_write_page.dart/memo_write_controller.dart

메모를 작성하는 화면의 UI를 구성하는 파일과 그 때 필요한 이벤트를 일으키는 함수들을 정의해둔 컨트롤러이다. 이 페이지에서 메모를 작성, 열람, 수정, 삭제한다.

4. memo_model.dart

파이어베이스와 정보를 주고받을 수 있도록 오가는 각 메모 개체의 데이터를 형변환하는 파일이다. 파이어베이스의 timestamp 필드를 가져오는 과정에서 오류가 있었다.

타임스탬프를 찍는 필드의 자료형을 ``string``으로 바꿔준 뒤 다시 빌드해서 오류를 해결하였다.
5. data_utils.dart

메모의 생성 시간을 표기할 때 표기 방식을 포맷팅해주는 유틸 함수를 선언한 파일이다.

6. admob_banner.dart

애드몹에서 연결한 광고를 띄우는 하단 배너를 생성하는 파일인데, 지금 보니까 제목에 오타가 있다. 여기에서 구성한 배너는 home.dart 파일에서 bottomNavigationBar를 이용하여 홈 화면에 배치해주었다.


앱 배포

앱 출시 전에 준비할 사항은 다음과 같다.

  • 아이콘 제작
  • 출시 정보 준비(앱 이름, 설명, 키워드, 대표 이미지 등)
  • jks 키
  • gradle 세팅
아이콘은 재미있어 보여서 하나 만들어봤다...출시 정보는 안 적었고, jks key는 안드로이드 스튜디오를 이용해 발급받아서 properties 파일에 업로드해주었다. 깃허브에 dart 파일을 업로드하고 실습을 마무리했다.

0개의 댓글