Design Thinking 기반으로 설계한 Android 배달 서비스 애플리케이션
사용자가 음식과 배달 서비스를 보다 편리하게 이용할 수 있도록 로그인 → 메인 화면 → 음식/배달 서비스 → 알림의 사용자 흐름을 중심으로 설계한 Android 애플리케이션 프로토타입입니다.
본 프로젝트는 Design Thinking 프로젝트의 일환으로 사용자 관점에서 서비스의 문제를 정의하고, 핵심 사용자 경험을 Android 애플리케이션으로 구현하는 것을 목표로 제작되었습니다.
이 프로젝트는 음식 배달 서비스를 이용하는 사용자가 필요한 기능에 쉽게 접근할 수 있도록 간단하고 직관적인 화면 구조를 제공합니다.
현재 구현된 주요 사용자 흐름은 다음과 같습니다.
┌──────────────┐
│ Login │
└──────┬───────┘
│
▼
┌──────────────┐
│ Main │
└──────┬───────┘
│
┌──────┴───────┐
│ │
▼ ▼
┌─────────┐ ┌─────────┐
│ Food │ │ Alarm │
│ /Delivery│ │ │
└─────────┘ └─────────┘
Firebase Authentication을 이용하여 이메일과 비밀번호 기반의 로그인을 제공합니다.
- 이메일 입력
- 비밀번호 입력
- 로그인
- 로그인 상태 확인
- 회원가입 화면 이동
- 로그인 실패 시 안내 메시지
Firebase Authentication의 signInWithEmailAndPassword()를 사용하여 인증을 처리합니다.
새로운 사용자가 이메일과 비밀번호를 이용해 계정을 생성할 수 있습니다.
Email
Password
↓
Firebase Authentication
↓
Account Created
↓
Main Screen
회원가입에는 Firebase Authentication의 createUserWithEmailAndPassword()를 사용합니다.
로그인 이후 접근하는 메인 화면입니다.
메인 화면에서는 사용자가 주요 서비스로 이동할 수 있도록 구성되어 있습니다.
현재 구현된 주요 메뉴:
- 🍴 음식/배달 서비스
- 🔔 알림
- 🚪 로그아웃
음식 메뉴를 선택하면 HomeActivity, 알림 메뉴를 선택하면 AlarmActivity로 이동합니다.
음식 및 배달 서비스를 위한 화면입니다.
현재 UI에는 배달 메뉴와 음식 관련 콘텐츠 영역을 중심으로 구성되어 있으며, 향후 실제 음식점 및 메뉴 탐색 기능으로 확장할 수 있도록 설계되어 있습니다.
┌─────────────────────────┐
│ 로그아웃 🔔 │
├─────────────────────────┤
│ ← │
│ │
│ [ 배달 ] │
│ │
│ ┌─────────────────────┐ │
│ │ │ │
│ │ Food / Banner │ │
│ │ │ │
│ └─────────────────────┘ │
│ │
└─────────────────────────┘
알림 화면에서는 서비스와 관련된 알림을 확인할 수 있도록 구성되어 있습니다.
현재는 별도의 알림 상세 기능보다는 알림 화면으로 이동하고 이전 화면으로 돌아오는 기본 사용자 흐름을 구현한 상태입니다.
메인 및 음식 화면에서 로그아웃을 선택하면 로그인 화면으로 이동합니다.
현재 구현에서는 LoginActivity로 이동하는 방식으로 로그아웃 흐름을 구성하고 있습니다.
이 프로젝트는 단순한 기능 구현보다는 사용자 경험을 중심으로 서비스를 설계하는 것을 목표로 했습니다.
음식 배달 서비스를 이용하는 사용자가 어떤 불편을 경험하는지 파악합니다.
사용자는 무엇을 원하는가?
↓
음식을 쉽게 찾고 싶다
↓
현재 상태를 확인하고 싶다
↓
중요한 알림을 놓치고 싶지 않다
사용자의 핵심 요구사항을 정의합니다.
"사용자가 음식 및 배달 서비스의 주요 기능에 빠르고 직관적으로 접근할 수 있어야 한다."
사용자의 주요 행동을 중심으로 화면과 기능을 구성합니다.
- 로그인
- 회원가입
- 음식/배달 서비스
- 알림
- 로그아웃
Android 애플리케이션으로 실제 사용자 흐름을 구현합니다.
Login
↓
Main
├── Food / Delivery
└── Alarm
실제 Android 환경에서 화면 전환과 로그인 흐름을 테스트하고, 사용자 피드백을 기반으로 UI 및 기능을 개선할 수 있습니다.
현재 프로젝트는 Android의 Activity 기반 구조로 구성되어 있습니다.
┌─────────────────────────────┐
│ Android Client │
│ │
│ LoginActivity │
│ ↓ │
│ MainActivity │
│ ├── HomeActivity │
│ └── AlarmActivity │
│ │
│ SignActivity │
└──────────────┬──────────────┘
│
▼
┌─────────────────┐
│ Firebase Auth │
└─────────────────┘
Design_Thinking_app/
│
├── app/
│ ├── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/example/a1234/
│ │ │ ├── LoginActivity.java
│ │ │ ├── SignActivity.java
│ │ │ ├── MainActivity.java
│ │ │ ├── HomeActivity.java
│ │ │ └── AlarmActivity.java
│ │ │
│ │ ├── res/
│ │ │ ├── drawable/
│ │ │ ├── layout/
│ │ │ │ ├── activity_login.xml
│ │ │ │ ├── activity_signup.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── activity_home.xml
│ │ │ │ └── activity_alarm.xml
│ │ │ ├── mipmap/
│ │ │ └── values/
│ │ │
│ │ └── AndroidManifest.xml
│ │
│ ├── build.gradle
│ └── google-services.json
│
├── gradle/
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
현재 저장소의 Android 소스에는 총 5개의 주요 Activity가 있으며, 레이아웃 역시 Login, Signup, Main, Home, Alarm 화면으로 분리되어 있습니다.
| Category | Technology |
|---|---|
| Language | Java |
| Platform | Android |
| Build System | Gradle |
| UI | Android XML Layout |
| Authentication | Firebase Authentication |
| Android Support | AndroidX |
| Material UI | Material Components |
| Layout | ConstraintLayout |
프로젝트는 Java 100%로 구성되어 있으며, Android 모듈에서는 androidx.appcompat, Material Components, ConstraintLayout, Firebase Authentication 등을 사용합니다.
사용자 인증에는 Firebase Authentication을 사용합니다.
firebaseAuth.signInWithEmailAndPassword(
email,
password
);firebaseAuth.createUserWithEmailAndPassword(
email,
password
);이를 통해 별도의 자체 인증 서버를 구축하지 않고 Firebase를 이용해 사용자 계정을 관리합니다.
App
↓
Login
↓
Sign Up
↓
Email + Password
↓
Firebase Authentication
↓
Main
App
↓
Login
↓
Email + Password
↓
Firebase Authentication
↓
Main
├── Food / Delivery
└── Alarm
로그인 성공 시 MainActivity로 이동하도록 구현되어 있습니다.
git clone https://github.com/sujin0707/Design_Thinking_app.git
cd Design_Thinking_appAndroid Studio에서 프로젝트를 엽니다.
File
→ Open
→ Design_Thinking_app
Firebase Console에서 Android 앱을 등록한 후 Firebase Authentication을 활성화합니다.
프로젝트에는 Firebase Google Services 설정 파일이 포함되어 있습니다.
app/google-services.json
또한 Gradle에서 Google Services Plugin과 Firebase Authentication dependency를 사용하고 있습니다.
Android Studio에서 Emulator 또는 실제 Android 기기를 연결한 후 실행합니다.
./gradlew buildWindows에서는:
gradlew.bat build현재 앱 모듈의 Android 설정은 다음과 같습니다.
| Configuration | Value |
|---|---|
| compileSdk | 32 |
| minSdk | 21 |
| targetSdk | 32 |
| versionCode | 1 |
| versionName | 1.0 |
| Java | 1.8 |
현재 설정은 프로젝트에 기록된 app/build.gradle 기준입니다.
Login
│
├── Sign Up
│
└── Main
│
├── 🍴 Food / Delivery
│
└── 🔔 Alarm
각 화면은 Android Activity 단위로 분리되어 있습니다.
| Activity | Role |
|---|---|
LoginActivity |
로그인 및 인증 상태 처리 |
SignActivity |
회원가입 |
MainActivity |
로그인 후 메인 메뉴 |
HomeActivity |
음식/배달 서비스 |
AlarmActivity |
알림 화면 |
이 프로젝트의 핵심 목표는 사용자가 음식 배달 서비스를 이용하는 과정에서 필요한 기능을 간결하게 제공하는 것입니다.
특히 Design Thinking을 기반으로 다음과 같은 사용자 경험을 고려했습니다.
- 복잡하지 않은 로그인 과정
- 직관적인 메인 메뉴
- 음식/배달 서비스에 빠른 접근
- 알림 기능에 대한 명확한 접근
- 화면 간 단순한 navigation
- 로그인
- 회원가입
- Firebase Authentication 연동
- 로그인 상태 확인
- 로그아웃 시 Firebase 세션 종료
- 비밀번호 찾기
- 이메일 인증
- 음식/배달 화면 UI
- 음식점 목록
- 음식 검색
- 카테고리별 음식점
- 메뉴 상세
- 장바구니
- 주문
- 주문 상태 확인
- 알림 화면
- 주문 상태 알림
- 프로모션 알림
- Firebase Cloud Messaging 연동
- 사용자 피드백 수집
- UI/UX 개선
- 사용자 테스트
- 접근성 개선
- 반응형 UI 개선
Prototype / Design Thinking Project
현재 프로젝트는 핵심 사용자 흐름과 UI 프로토타입을 중심으로 구현되어 있습니다.
현재 구현된 핵심 기능은:
- Firebase 이메일/비밀번호 인증
- 회원가입
- 로그인
- 메인 화면
- 음식/배달 화면
- 알림 화면
- 화면 간 Navigation
이며, 실제 배달 플랫폼으로 확장하기 위해서는 음식점/메뉴 데이터, 주문 시스템, 결제, 실시간 주문 상태 등의 추가 구현이 필요합니다.
README에 실제 애플리케이션 화면을 추가하면 프로젝트를 훨씬 빠르게 이해할 수 있습니다.
추천 구성:
Login
↓
Main
↓
Food / Delivery
↓
Alarm
추후 다음과 같은 형태로 스크린샷을 추가할 수 있습니다.
## Screenshots
### Login

### Main

### Food / Delivery

### Alarm
현재 저장소에는 별도의 오픈소스 라이선스가 명시되어 있지 않습니다.
외부 공개 및 재사용을 허용할 계획이라면 향후 MIT 또는 Apache-2.0 등의 라이선스를 추가하는 것을 권장합니다.
Design_Thinking_app은 Design Thinking 관점에서 음식 배달 서비스의 사용자 경험을 고민하고 이를 Android 애플리케이션으로 구현한 프로토타입입니다.
Understand Users
↓
Define Problems
↓
Design Experience
↓
Build Prototype
↓
Test & Improve
Design for users. Build with purpose. 🍽️