Flutter와 Back4App으로 소셜 네트워킹 앱 만들기
소셜 네트워킹 앱을 만드는 것은 복잡한 작업일 수 있지만, Flutter와 Back4App을 사용하면 개발 프로세스를 간소화할 수 있습니다. 이 튜토리얼은 사용자 인증, 프로필 관리, 뉴스 피드, 친구 연결, 메시징 및 알림을 포함한 기능이 완전한 소셜 네트워킹 앱을 구축하는 방법을 안내합니다.
이 튜토리얼이 끝나면 다음과 같은 기능을 갖춘 작동하는 소셜 네트워킹 앱을 갖게 됩니다:
- 사용자 인증: 안전한 가입 및 로그인 프로세스.
- 사용자 프로필: 사용자 정보가 포함된 편집 가능한 프로필.
- 뉴스 피드: 친구와 사용자의 게시물 표시.
- 친구 연결: 친구 요청을 보내고 수락할 수 있는 기능.
- 메시징: 사용자 간의 실시간 채팅.
- 알림: 친구 요청, 메시지 및 게시물 상호작용에 대한 푸시 알림.
이 튜토리얼을 따라 하려면 다음이 필요합니다:
- IDE 또는 텍스트 편집기가 필요합니다. 예를 들어 Visual Studio Code 또는 Android Studio.
터미널을 열고 다음을 실행하세요:
프로젝트 디렉토리로 이동:
열기 pubspec.yaml 그리고 다음 의존성을 추가하세요:
다음 명령어를 실행하세요 flutter pub get 패키지를 설치합니다.
참고: 우리는 다음을 사용하고 있습니다:
- parse_server_sdk_flutter Back4App 통합을 위해.
- provider 상태 관리를 위해.
- image_picker 프로필 및 게시물 이미지를 선택하기 위해.
- cached_network_image 효율적인 이미지 로딩을 위해.
- firebase_messaging 푸시 알림을 위해.
- uuid 고유 ID 생성을 위해.
- "새 앱 만들기"를 클릭하세요.
- 애플리케이션 이름을 입력하세요, 예: "SocialApp", 그리고 "생성"을 클릭하세요.
Back4App에서 여러 클래스를 만들어야 합니다:
- 사용자: 사용자 인증을 위한 내장 클래스입니다.
- 프로필: 사용자 프로필 정보를 저장합니다.
- 게시물: 사용자 게시물을 저장합니다.
- 친구 요청: 사용자 간의 친구 요청을 관리합니다.
- 메시지: 사용자 간의 메시지를 저장합니다.
- "데이터베이스" 섹션으로 이동합니다.
- "클래스 만들기"를 클릭합니다.
- 모달에서:
- "사용자 정의"를 선택합니다.
- 클래스 이름으로 "프로필"을 입력합니다.
- "클래스 만들기"를 클릭합니다.
다음 열을 추가합니다:
- 사용자: 유형 Pointer<_User>
- 사용자 이름: 유형 String
- 전체 이름: 유형 String
- 소개: 유형 String
- 프로필 사진: 유형 File
다음 열이 있는 "Post" 클래스를 만드세요:
- user: 유형 Pointer<_User>
- content: 유형 String
- image: 유형 File
- createdAt: 유형 Date
다음 열이 있는 "FriendRequest" 클래스를 만드세요:
- fromUser: 유형 Pointer<_User>
- toUser: 유형 Pointer<_User>
- status: 유형 String (값: "pending", "accepted", "rejected")
다음 열이 있는 "Message" 클래스를 만드세요:
- fromUser: 유형 Pointer<_User>
- toUser: 유형 Pointer<_User>
- content: 유형 String
- createdAt: 유형 Date
- 다음으로 이동하세요 App Settings > Security & Keys.
- 당신의 Application ID와 Client Key를 적어두세요.
열기 lib/main.dart 그리고 다음과 같이 수정하세요:
- 다음으로 교체하세요 'YOUR_APPLICATION_ID' 및 'YOUR_CLIENT_KEY'를 Back4App 자격 증명으로.
- 우리는 ChangeNotifierProvider를 사용하여 인증 상태를 관리합니다.
새 디렉토리를 만들고 services를 lib 아래에 추가하고 auth_service.dart라는 이름의 파일을 추가하세요.
새 디렉토리를 만들고 screens를 lib 아래에 추가하고 login_screen.dart와 signup_screen.dart를 추가하세요.
다음 이름의 파일을 추가하세요: profile_service.dart 위치: lib/services/:
다음 이름의 파일을 추가하세요: profile.dart 위치: lib/models/:
다음 이름의 파일을 추가하세요 profile_screen.dart 아래에 lib/screens/:
다음 이름의 파일을 추가하세요: post_service.dart 아래에 lib/services/:
다음 이름의 파일을 추가하세요: post.dart 아래에 lib/models/:
수정 home_screen.dart 아래의 lib/screens/:
이 단계에서는 사용자 간의 친구 연결을 구현할 것입니다. 사용자는 친구 요청을 보내고, 이를 수락하거나 거부하며, 친구 목록을 볼 수 있습니다. 우리는 데이터 모델을 수정하고, 서비스를 생성하며, 이 기능을 지원하기 위해 UI를 업데이트할 것입니다.
우리는 이미 다음 열이 있는 FriendRequest 클래스를 Back4App에서 생성했습니다:
- fromUser: _User
- toUser: _User
- status: 문자열 (값: "pending", "accepted", "rejected")
추가적으로, 사용자의 친구 목록을 추적해야 합니다. 이를 위해 friends 관계를 _User 클래스에 추가할 수 있습니다.
- Back4App에서 User 클래스로 이동합니다.
- 새 열을 추가하려면 "+" 버튼을 클릭합니다.
- 열의 이름을 "friends"로 지정하고 유형을 Relation <_User>로 설정합니다.
다음 위치에 friend_service.dart라는 파일을 생성합니다: lib/services/:
파일 이름을 생성하십시오 search_users_screen.dart 아래에 lib/screens/:
다음 위치에 friend_requests_screen.dart라는 파일을 생성합니다: lib/screens/:
다음 위치에 home_screen.dart, 사용자 검색 및 친구 요청 화면으로의 내비게이션을 추가합니다:
getPosts 메서드를 post_service.dart에서 수정하여 사용자와 그들의 친구로부터 게시물을 가져옵니다.
이 단계에서는 실시간 메시징을 추가하여 사용자 간의 소통을 가능하게 합니다.
- Back4App 앱 대시보드에서 앱 설정 > 서버 설정으로 이동합니다.
- 서버 URL 아래에서 서버 URL, 서버 URL을 기록해 두세요 (예: https://YOUR_APP_NAME.back4app.io).
- Back4App에서는 기본적으로 실시간 쿼리가 활성화되어 있습니다.
이 parse_server_sdk_flutter 패키지는 실시간 쿼리 지원을 포함합니다.
lib/services/ 아래에 message_service.dart라는 이름의 파일을 만듭니다.
lib/models/ 아래에 message.dart라는 이름의 파일을 추가합니다.
다음 이름의 파일을 추가하세요 chat_screen.dart 아래에 lib/screens/:
친구 목록이나 사용자 검색 화면에서 채팅을 시작할 수 있습니다.
친구 목록에서 친구를 표시할 때, 채팅을 시작하는 버튼을 추가하세요:
푸시 알림을 구현하려면 Firebase Cloud Messaging (FCM)을 설정하고 Back4App과 통합해야 합니다.
- Android 및/또는 iOS 앱을 프로젝트에 추가합니다.
- Android의 경우 패키지 이름 (applicationId)이 필요합니다.
- iOS의 경우 번들 식별자가 필요합니다.
- Android의 경우: google-services.json을 다운로드하고 android/app/에 배치합니다.
- iOS의 경우: GoogleService-Info.plist을 다운로드하고 Xcode 프로젝트의 Runner에 추가합니다.
다음이 추가되었는지 확인하십시오. firebase_messaging가 pubspec.yaml:
실행하십시오. flutter pub get을 설치합니다.
수정하기 main.dart:
다음 위치에 push_notification_service.dart라는 파일을 생성하기 lib/services/:
에서 main.dart, Parse를 초기화한 후 PushNotificationService를 초기화합니다:
클라우드 코드 또는 서버에서 직접 푸시 알림을 보낼 수 있습니다.
사용자가 친구 요청을 보낼 때, 수신자에게 푸시 알림을 보낼 수 있습니다.
friend_service.dart, sendFriendRequest 메서드를 수정하십시오:
참고: 설치가 사용자와 연결되어 있는지 확인하십시오.
사용자가 로그인할 때, 그들의 설치를 사용자 계정과 연결하십시오.
auth_service.dart, 로그인 성공 후:
참고: 푸시 알림은 클라이언트와 서버 측 모두에서 추가 설정이 필요합니다. 백그라운드 알림 및 사용자 권한과 같은 다양한 시나리오를 처리해야 하며, 이는 이 튜토리얼의 범위를 넘어섭니다.
축하합니다! Flutter와 Back4App을 사용하여 소셜 네트워킹 앱의 기초를 구축했습니다. 이 앱에는 사용자 인증, 프로필 관리 및 뉴스 피드 기능이 포함되어 있습니다. 전체 친구 연결, 메시징 및 알림 구현은 이 튜토리얼의 범위를 넘어가지만, 이제 앱을 계속 확장할 수 있는 필요한 구조를 갖추게 되었습니다.
- 친구 연결: 친구 요청 기능을 구현합니다.
- 메시징: 실시간 채팅 기능을 Live Queries를 사용하여 추가합니다.
- 알림: 사용자 참여를 위한 푸시 알림을 통합합니다.
- UI 개선: 사용자 인터페이스와 사용자 경험을 개선합니다.
- 보안: Back4App에서 적절한 ACL을 설정하여 데이터 보안과 개인 정보를 보장합니다.
행복한 코딩!