WEB → GOOGLE PLAY · 하이브리드 WebView

웹은 그대로.
심사 통과하는 앱만
씌웁니다.

이미 운영 중인 모바일웹을 다시 개발하지 않습니다. Android 하이브리드(WebView)로 감싸 Google Play에 배포하고, 웹만으로는 어려운 FCM 푸시로 재방문을 만듭니다. 단, ‘그냥 웹뷰’는 반려됩니다 — 그 경계를 아래에서 직접 확인하세요.

예산 300만원 · 30일 대상 API 36 (Android 16) 발송 FCM HTTP v1
🔔
새 주문 알림방금 들어온 주문을 확인하세요 · 탭하면 주문 화면
now
파일 첨부
📷 카메라 촬영
🖼 갤러리·파일에서 선택
📡

인터넷 연결이 끊겼습니다

네트워크 상태를 확인하고 다시 시도해 주세요. 앱은 오류 화면으로 안전하게 안내합니다.

🔒 m.yourservice.co.kr
FOUR PILLARS

웹뷰 앱을 ‘앱’으로 만드는 네 가지

Google Play는 ‘웹을 상자에 넣은’ 앱을 정책 4.3(최소 기능)으로 반려합니다. 아래 넷이 있어야 앱은 ‘앱’이 됩니다 — 각 항목은 요구사항이자, 잘못 만들면 그대로 실패하는 지점입니다.

🧩01 · SHELL

WebView 셸

JavaScript·DOM 스토리지·뒤로가기·오류 화면. 웹이 앱 안에서 ‘정상 웹’으로 돌게 만드는 설정. 어설프면 흰 화면·먹통 뒤로가기.

🔔02 · PUSH

FCM 푸시

디바이스 토큰·알림 표시·탭 시 딥링크. 서버는 HTTP v1(서비스 계정) 발송. Legacy 서버키는 2024년 종료돼 그대로면 안 나갑니다.

📎03 · FILE·SESSION

파일 · 로그인 유지

파일 첨부(onShowFileChooser)·다운로드·카메라 권한, 재실행해도 유지되는 로그인(쿠키 flush). ‘그냥 되겠지’가 가장 많이 깨지는 곳.

🚀04 · DEPLOY

Play 배포

키스토어 서명·릴리스 빌드·타깃 API 36·Data Safety·개인정보처리방침. 기능이 있어도 등록 정보가 비면 반려됩니다.

LIVE APP DEMO

위 폰에서 앱 동작을 직접 눌러 보세요

모든 버튼은 실제로 동작합니다. 로그인 유지 OFF로 두고 ‘앱 재시작’을 누르면 재실행 시 로그아웃되는 흔한 버그를 재현하고, ON이면 유지됩니다. 파일 첨부·오프라인·뒤로가기·푸시도 네이티브 셸이 어떻게 처리하는지 그대로 보여 줍니다.

0
네이티브 처리 동작
0
코드베이스 (웹과 항상 동기화)
0명
이 공고 지원자 — 갈리는 건 디테일
POLICY 4.3 · MINIMUM FUNCTIONALITY

Play 심사 통과 진단

‘웹을 감싼 앱’은 네이티브 가치와 등록 정보가 갖춰져야 통과합니다. 항목을 켜고 끄면 통과 가능성이 실제로 계산됩니다.

0%
심사 통과 가능성 (가중 추정)
항목을 선택해 보세요.
FCM HTTP v1 · SERVICE ACCOUNT

기존 PHP 푸시, ‘수정’으로 끝날까?

공고는 “기존 PHP 소스 수정”이라 적혀 있습니다. 그런데 그 기존 코드가 Legacy(서버키) 방식이면, 그건 수정이 아니라 인증 체계 전면 교체이고 이미 발송이 멈춰 있습니다. 현재 방식을 골라 확인하세요.

// 기존 PHP — 2024.07.22 종료된 방식 $k = "AAAA…서버키"; // Server key $url = "https://fcm.googleapis.com/fcm/send"; Authorization: key=$serverKey → 응답: 401 / NotRegistered · 발송 중단
진단: 작동 불가. Legacy HTTP API는 2023.6 지원 중단, 2024.7.22 셧다운. 서버키 인증 자체가 폐기되어 이 코드는 지금 푸시를 보내지 못합니다.
// 전환 후 — FCM HTTP v1 + OAuth2 $token = getAccessToken($serviceAccountJson); $url = "https://fcm.googleapis.com/v1/projects/PID/messages:send"; Authorization: Bearer $token { "message":{ "token":"…", "notification":{…}, "data":{ "deeplink":"orders" } } } → 응답: 200 · 발송 성공 · 딥링크 포함
진단: 정상. 서비스 계정 JSON으로 OAuth2 액세스 토큰을 발급해 v1 엔드포인트로 발송. 보안·확장성 확보, 딥링크 payload로 알림 탭 시 화면 이동까지 연결.
전환 절차 (서버 측)

Firebase 콘솔에서 서비스 계정 키(JSON) 발급·서버에 안전 보관

PHP에서 JWT 서명 → OAuth2 액세스 토큰 발급(1시간 캐시)

발송 엔드포인트를 /v1/projects/PID/messages:send로 교체

payload를 message.notification + data(deeplink) 구조로 재작성

토큰 만료·NotRegistered 정리 로직 추가(반송 토큰 삭제)

RISK REVIEW · 발견을 기능으로

착수 전에 짚어야 할 6가지

지적으로 끝내지 않았습니다. 각 항목은 위 데모·진단 화면에 이미 대응이 구현돼 있습니다. 근거는 공식 문서·정책으로 붙였습니다.

웹은 한 번 만들고, 앱은 그 위에 얇게 얹습니다.

코드베이스는 하나. 웹을 고치면 앱도 같이 바뀝니다. 앱은 푸시·파일·세션·배포만 책임지는 얇은 네이티브 셸입니다 — 유지보수가 두 배가 되지 않도록.

ESTIMATE · 공수 기준

이 범위를, 이 공수에

작업별 공수를 그대로 공개합니다. 예산에 맞춘 숫자가 아니라 범위에 대한 산정 결과입니다.

작업일수
WebView 셸 구현 — JS·DOM스토리지·뒤로가기·오류/로딩 화면·런타임 권한5
파일 업로드/다운로드 — onShowFileChooser·카메라(FileProvider)·DownloadManager3
로그인 유지 — CookieManager 영속·flush·세션 만료 대응1.5
Firebase 신규 프로젝트 + FCM SDK 연동(토큰·수신·표시·딥링크)3
기존 PHP → HTTP v1 전환(서비스 계정·OAuth2·payload·토큰 정리)3.5
앱 서명·릴리스 빌드·Play Console 등록·Data Safety·심사 대응3
운영 매뉴얼(빌드·배포·푸시 발송) 및 QA·수정 반영3
합계 (VAT 별도)22일 · 220만원

※ 공고 예산(300만원)은 참고만 합니다. 공수대로 계산한 금액을 제시합니다. Firebase·Play 개발자 계정($25, 1회)·기존 PHP 서버 접근·유료 폰트/이미지 라이선스·개인정보처리방침 문안 검토는 의뢰자 부담 영역입니다.

220만원
22일 공수 · VAT 별도
  • Android 소스 + 서명·빌드 설정
  • 수정된 PHP(HTTP v1) 발송 소스
  • Firebase 설정·연동 안내서
  • Play 등록·배포 완료(스토어 게시)
  • 빌드·배포·푸시 운영 매뉴얼
수정 요청은 화면 단위로 당일 반영합니다. 고도화(공고 언급)도 이 코드베이스 위에서 이어서 진행합니다.