CupertinoStackView는 iOS 13 스타일의 스택 기반 네비게이션을 쉽게 만들 수 있도록 도와주는 Flutter 위젯입니다. 최소한의 설정으로 부드럽고 자연스러운 화면 전환을 제공하며, iOS 내장 스택 네비게이션의 외관과 느낌을 모방합니다. 다양한 플랫폼에서 일관된 iOS 미학을 구현하고자 하는 개발자를 위해 설계되었으며, Android, iOS, Web, macOS, Windows, Linux 등 모든 주요 Flutter 플랫폼을 지원합니다. 직관적인 제스처와 애니메이션을 통해 사용자 경험을 향상시켜, 현대적이고 iOS 중심의 인터페이스를 필요로 하는 앱에 이상적입니다.
사용 사례
iOS 스타일의 화면 전환
스와이프 제스처를 통한 탐색
계층화된 UI 만들기
다중 플랫폼 iOS 디자인 일관성
앱 온보딩 흐름
모달 스택 관리
주요 기능
iOS 13 스택 탐색 스타일
제스처 기반 탐색
부드러운 애니메이션
크로스 플랫폼 지원
최소 구성
사용자 정의 전환 효과
적합한 대상
iOS 디자인 언어를 대상으로 하는 개발자
네이티브 iOS 탐색이 필요한 앱은 느끼다
복잡한 화면 계층을 가진 프로젝트
UX 일관성을 우선시하는 팀
다중 플랫폼에서의 Flutter 앱
디자인 중심의 모바일 애플리케이션
고려 사항
iOS 중심 디자인에 가장 적합
비-iOS 테마에 대한 추가 스타일링이 필요할 수 있습니다
완전히 사용자 정의된 네비게이터와 비교해 맞춤 설정이 제한적
매우 복잡한 라우팅 시나리오에는 적합하지 않음
제스처 인식 정확도에 의존
오래된 기기에서는 성능이 다를 수 있습니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
cupertino_stackview
A very easy-to-use navigation tool/widget for having iOS 13 style stacks.
It is highly recommended to read the documentation and run the example project on a real device to fully understand and inspect the full range of capabilities.
The "StackView" system, as I like to call it because I don't know the real name, is now the default navigation system for iOS 13. As a fan of this, I decided to implement a very easy-to-use version of it for Flutter as well.
How-to-Use
First, instantiate the cupertinoStackViewController that is provided by "misc.dart" with the required parameters:
For a complete set of descriptions for all parameters and methods, see the documentation.
The [cupertinoStackViewController] from 'misc.dart' has to be initialised as soon as the application starts via the [void initialise(double height, double width)] method. Use this method with the [MediaQuery.of(context).size.height] and [MediaQuery.of(context).size.width] values.
Use [CupertinoStackViewController]'s [Future back(BuildContext context, dynamic parameters) async] and [Future navigate(String targetNavigation, BuildContext context, dynamic parameters) async] methods for the corresponding actions. Do not call [Navigator] methods directly.