NativePHP 키친 싱크: Laravel 기반 모바일 놀이터
NativePHP 키친 싱크는 웹이 아닌 스마트폰에서 Laravel을 얼마나 활용할 수 있는지 보여주는 모든 기능을 갖춘 모바일 데모 앱입니다.
NativePHP Mobile을 사용하여 제작된 이 앱은 React Native, Flutter 또는 기타 프런트엔드 프레임워크 없이도 Android 또는 iOS 앱 내에서 Laravel 백엔드를 완벽하게 실행합니다. 키친 싱크는 간단하지만 강력한 진실을 증명합니다. Laravel에서 작동한다면 스마트폰에서도 작동할 수 있다는 것입니다.
네이티브 기능을 테스트하거나, NativePHP의 작동 방식을 배우거나, 새로운 앱을 처음부터 개발하든, 키친 싱크는 바로 사용할 수 있는 견고한 놀이터를 제공합니다.
존재 이유
모바일 개발은 오랫동안 스택 전환을 의미했습니다. Laravel 개발자로서 네이티브 모바일 앱을 개발하려면 Swift, Kotlin 또는 JavaScript를 배워야 했습니다. 앱 로직을 재구축하고, 데이터베이스 접근 방식을 재고하고, 인증 흐름을 다시 구현하고, API와 UI를 어떻게든 동기화해야 했습니다.
NativePHP는 이 모든 것을 바꿔놓습니다.
Laravel 개발자는 이미 익숙한 Laravel 코드베이스를 사용하여 진정한 네이티브 모바일 앱을 개발할 수 있습니다. Kitchen Sink는 개념 증명을 현실로 구현한 솔루션입니다. Laravel 앱을 네이티브 셸에 직접 번들로 제공하며, Android 및 iOS와 직접 통신하는 맞춤 컴파일된 PHP 런타임을 기반으로 합니다.
결과는 무엇일까요? 하나의 코드베이스, 하나의 백엔드, 하나의 기술 세트. 그리고 모든 네이티브 기능에 대한 완전한 액세스가 PHP에서 제공됩니다.
구성 요소
Kitchen Sink는 단순한 데모가 아닙니다. NativePHP가 현재 수행할 수 있는 모든 기능을 보여주는 살아있는 카탈로그이자, 향후 제공될 기능을 위한 테스트 공간입니다.
기본 제공되는 기능은 다음과 같습니다.
생체 인증
간단한 Laravel 로직을 사용하여 PHP에서 트리거되는 Face ID 또는 지문 스캔으로 사용자를 보호합니다.
카메라 접근
네이티브 카메라 앱을 열고 사진을 촬영한 후 Laravel 경로에 직접 업로드하여 처리합니다.
푸시 알림
탭 동작 및 백그라운드 처리를 완벽하게 제어하여 로컬 및 원격으로 푸시 알림을 보내고 받을 수 있습니다.
토스트, 알림, 진동
깔끔하고 읽기 쉬운 PHP 호출을 통해 스낵바, 알림, 진동 피드백과 같은 네이티브 UI 동작을 트리거합니다.
파일 선택기 및 저장소
기기에서 파일과 사진을 선택하여 Laravel 앱에 업로드하고 웹에서처럼 저장할 수 있습니다.
시트 공유
Laravel에서 시스템 공유 대화상자를 열어 사용자가 메시지, WhatsApp, Slack 등의 앱에 콘텐츠를 공유할 수 있도록 합니다.
딥 링크
앱을 특정 뷰로 실행하는 수신 링크를 처리합니다. 이 모든 작업은 Laravel 라우팅을 통해 관리됩니다.
세션 및 인증 지속성
NativePHP는 요청 간에 전체 세션 상태를 유지합니다. 쿠키, CSRF 토큰 및 인증은 브라우저에서처럼 유지됩니다.
Livewire + Inertia 지원
브라우저가 아니더라도 Livewire 또는 Inertia를 사용하여 동적 상호작용을 구현할 수 있습니다. PHP는 로직을 처리하고 NativePHP는 뷰를 처리합니다.
실제 Laravel로 구축
Kitchen Sink에 포함된 Laravel 앱은 바로 그 자체입니다. Laravel의 모든 일반적인 기능을 사용합니다.
web.php의 경로
컨트롤러 및 미들웨어
Blade 템플릿
Livewire 구성 요소
Eloquent 모델 및 마이그레이션
구성 파일, .env, 서비스 공급자 등 모든 기능
앱이 부팅되면 NativePHP는 내장된 PHP 런타임을 시작하고 Laravel에 요청을 실행한 후 출력을 WebView로 파이프합니다. 여기에서 폼 제출, 클릭, Livewire 작업 등의 상호작용이 캡처되어 Laravel로 다시 라우팅되고 응답이 다시 렌더링됩니다.
Laravel에게는 그저 또 다른 요청일 뿐입니다. 사용자에게는 네이티브 앱입니다.