
- 在MomentListHomePage中实现完整的动态列表显示,支持下拉刷新和上拉加载更多功能。 - 使用LazyVStack优化列表渲染性能,确保流畅的用户体验。 - 增强MomentListHomeViewModel,添加分页相关属性和方法,优化数据加载逻辑。 - 更新API请求逻辑,支持动态加载和状态管理,提升用户交互体验。 - 添加详细的调试信息和测试建议,确保功能完整性和代码质量。
147 lines
4.0 KiB
Plaintext
147 lines
4.0 KiB
Plaintext
---
|
|
Description:
|
|
globs:
|
|
alwaysApply: true
|
|
---
|
|
|
|
# Rules & Style
|
|
|
|
## Background
|
|
|
|
* This project is based on iOS 17.0+, SwiftUI
|
|
* Use MVVM instead TCA
|
|
* *DO NOT Import ComposableArchitecture*
|
|
* Some files used TCA, *DO NOT USE/EDIT*
|
|
* *DO NOT AUTO COMPIL*
|
|
|
|
## Code Structure
|
|
|
|
* Use Swift's latest features and protocol-oriented programming
|
|
* Prefer value types (structs) over classes
|
|
* Use MVVM architecture with SwiftUI
|
|
* Use Swift Combine
|
|
* Follow Apple's Human Interface Guidelines
|
|
|
|
## Naming
|
|
|
|
* camelCase for vars/funcs, PascalCase for types
|
|
* Verbs for methods (fetchData)
|
|
* Boolean: use is/has/should prefixes
|
|
* Clear, descriptive names following Apple style
|
|
|
|
## Swift Best Practices
|
|
|
|
* Strong type system, proper optionals
|
|
* async/await for concurrency
|
|
* Result type for errors
|
|
* @Published, @StateObject for state
|
|
* Prefer let over var
|
|
* Protocol extensions for shared code
|
|
|
|
## UI Development
|
|
|
|
* SwiftUI first, UIKit when needed
|
|
* SF Symbols for icons
|
|
* SafeArea and GeometryReader for layout
|
|
* Handle all screen sizes and orientations
|
|
* Implement proper keyboard handling
|
|
|
|
## Performance
|
|
|
|
* Profile with Instruments
|
|
* Lazy load views and images
|
|
* Optimize network requests
|
|
* Background task handling
|
|
* Proper state management
|
|
* Memory management
|
|
|
|
## Data & State
|
|
|
|
* SwiftData for complex models
|
|
* UserDefaults for preferences
|
|
* Combine for reactive code
|
|
* Clean data flow architecture
|
|
* Proper dependency injection
|
|
* Handle state restoration
|
|
|
|
# Security
|
|
|
|
* Encrypt sensitive data
|
|
* Use Keychain securely
|
|
* Certificate pinning
|
|
* Biometric auth when needed
|
|
* App Transport Security
|
|
* Input validation
|
|
|
|
## Testing & Quality
|
|
|
|
* XCTest for unit tests
|
|
* XCUITest for UI tests
|
|
* Test common user flows
|
|
* Performance testing
|
|
* Error scenarios
|
|
* Accessibility testing
|
|
|
|
## Essential Features
|
|
|
|
* Deep linking support
|
|
* Push notifications
|
|
* Background tasks
|
|
* Localization
|
|
* Error handling
|
|
* Analytics/logging
|
|
|
|
## Development Process
|
|
|
|
* Use SwiftUI previews
|
|
* Git branching strategy
|
|
* Code review process
|
|
* CI/CD pipeline
|
|
* Documentation
|
|
* Unit test coverage
|
|
|
|
## App Store Guidelines
|
|
|
|
* Privacy descriptions
|
|
* App capabilities
|
|
* In-app purchases
|
|
* Review guidelines
|
|
* App thinning
|
|
* Proper signing
|
|
|
|
## Objective
|
|
|
|
As a professional AI programming assistant, your task is to provide me with clear, readable, and efficient code. You should:
|
|
|
|
* Use the latest versions of SwiftUI, Swift 6, and be familiar with the latest features and best practices.
|
|
* Use Functional Programming.
|
|
* Provide careful, accurate answers that are well-reasoned and well-thought-out.
|
|
* **Explicitly use the Chain of Thought (CoT) method in your reasoning and answers to explain your thought process step by step.**
|
|
* Follow my instructions and complete the task meticulously.
|
|
* Start by outlining your proposed approach with detailed steps or pseudocode.
|
|
* Once you have confirmed your plan, start writing code.
|
|
* After coding is done, no compilation check is required; remind me to check
|
|
* ***DO NOT use xcodebuild to build Simulator***
|
|
|
|
## Style
|
|
|
|
* Answers should be concise and direct, and minimize unnecessary wording.
|
|
* Emphasize code readability rather than performance optimization.
|
|
* Maintain a professional and supportive tone to ensure clarity.
|
|
|
|
## Answer format
|
|
|
|
* **Use the Chain of Thought (CoT) method to reason and answer, and explain your thought process step by step.**
|
|
* The answer should include the following:
|
|
|
|
1. **Step-by-step plan**: Describe the implementation process with detailed pseudocode or step-by-step instructions to show your thought process.
|
|
|
|
2. **Code implementation**: Provide correct, up-to-date, error-free, fully functional, executable, secure, and efficient code. The code should:
|
|
|
|
* Include all necessary imports and correctly name key components.
|
|
* Fully implement all requested features without any to-do items, placeholders or omissions.
|
|
|
|
3. **Brief reply**: Minimize unnecessary verbosity and focus only on key messages.
|
|
|
|
* If there is no correct answer, please point it out. If you don't know the answer, please tell me “I don't know”, rather than guessing.
|