Prerequisites
Preface
SRA Community Edition is an automation tool with Python as the backend and Tauri (Rust + Vue) as the frontend, designed to help players achieve automated operations in the Honkai: Star Rail game.
SRA's development documentation aims to provide detailed guidance for developers to help understand SRA's basic concepts and API usage methods. By reading the documentation, developers can quickly get started with SRA and perform customized development according to their needs.
This tutorial is mostly oriented towards SRA-cli.
Thank you for taking the time to read the SRA development documentation. This documentation will show you SRA development starting from Python basics. If you already have relevant foundations, you can skip the learning part and directly start studying the SRA API.
Environment
Before starting development, ensure you have:
Windows 10 and above (64-bit)
IDE (PyCharm as recommended, Visual Studio Code, Zed as optional. However, you can also use other handy IDEs) or Vim/Nano text editor (not recommended)
Python (officially recommended to use 3.11.5, not recommended to use 3.13 or higher versions)
Rust (no restrictions)
StarRailAssistant Community Edition - Programming Language Learning Roadmap
Detailed learning guide based on the project's actual code structure and technology stack.
📘 Python Learning Roadmap
Phase 1: Python Basics (1-2 weeks)
Learning Objectives: Master Python basic syntax and programming concepts
Core Content:
Variables and Data Types
- Basic types:
int,str,float,bool - Container types:
list,tuple,dict,set - Type conversion and checking
- Project application: Parameter storage in configuration files
- Basic types:
Control Flow
if/elif/elseconditional statementsforandwhileloopsbreak,continue,pass- Project application: Task flow control (see
task_thread.py)
Functions
- Function definition and calling
- Parameter passing (positional parameters, keyword parameters, default parameters)
- Return values and multiple return values
*argsand**kwargs- Project application:
send_windows_notification()function innotify.py
Exception Handling
try/except/finallyblocks- Custom exceptions
- Project application: Email sending failure handling (
send_mail()innotify.py)
Practice Projects:
- Write simple configuration reading scripts
- Implement basic logging output system
Phase 2: Object-Oriented Programming (2-3 weeks)
Learning Objectives: Understand concepts of classes, objects, and inheritance
Core Content:
Classes and Objects
- Class definition and instantiation
- Attributes and methods
__init__constructor- Meaning of
selfparameter - Project application:
Summaryclass (notify.py)
Inheritance and Polymorphism
- Single inheritance and multiple inheritance
- Method overriding
super()function- Project application:
BaseTaskbase class (all tasks inherit from it)
Special Methods
__str__and__repr____len__,__getitem__- Project application:
Summary.__str__()method
Class Variables and Instance Variables
- Differences and usage scenarios
- Project application:
running_flaginTaskManager
Practice Projects:
- Create task base class and specific task classes
- Implement configuration management class
Phase 3: Modules and Packages (1-2 weeks)
Learning Objectives: Organize code structure, understand modular development
Core Content:
Module Import
importandfrom...import- Module search path
__name__ == '__main__'- Project application: Import structure in
main.py
Package Structure
- Role of
__init__.py - Package initialization
- Relative imports and absolute imports
- Project application:
SRACore/package structure
- Role of
Dynamic Import
importlibmodule- Project application:
importlib.import_module()intask_thread.py
Practice Projects:
- Refactor code into modular structure
- Implement dynamic task loading system
Phase 4: File I/O and Configuration Management (1-2 weeks)
Learning Objectives: Handle files and configuration data
Core Content:
File Operations
- Opening, reading, writing, closing files
- Context manager
withstatement - File modes (
r,w,a,b) - Project application: Reading configuration files
Data Format Processing
- JSON:
json.load()andjson.dump() - TOML:
tomllib.load()(Python 3.11+) - Project application:
tomllib.load(f)intask_thread.py
- JSON:
Configuration File Management
- Reading and saving configurations
- Default configuration handling
- Project application:
SRACore/config.toml
Practice Projects:
- Implement configuration file read/write system
- Support multiple format configuration files
Phase 5: Multi-threading Programming (2-3 weeks)
Learning Objectives: Implement concurrent task execution
Core Content:
Threading Basics
threadingmoduleThreadclass creation and startup- Thread lifecycle
- Project application: Background task execution
Thread Synchronization
LockmutexEventeventsConditioncondition variablesSemaphoresemaphores- Project application: Task state management
Thread Safety
- Shared resource protection
- Race conditions
- Deadlock avoidance
- Project application:
running_flaginTaskManager
Thread Communication
- Queue
Queue - Pipe
Pipe - Project application: Inter-task messaging
- Queue
Practice Projects:
- Implement multi-task concurrent execution
- Implement task pause and resume
Phase 6: Logging and Debugging (1 week)
Learning Objectives: Implement professional logging system
Core Content:
Standard Logging Module
loggingmodule basics- Log levels (DEBUG, INFO, WARNING, ERROR, CRITICAL)
- Log formatting
Third-party Logging Library
logurulibrary (used in project)- Decorators and context management
- Log file rotation
- Project application:
SRACore/util/logger.py
Debugging Techniques
pdbdebugger- Print debugging
- Proper use of log levels
Practice Projects:
- Integrate
loguruinto project - Implement structured logging
Phase 7: System Interaction and Automation (2-3 weeks)
Learning Objectives: Implement core functionality for game automation
Core Content:
Process Management
subprocessmodule- Process startup, communication, termination
- Project application: Starting game processes
System Information Retrieval
psutillibrary (used in project)- CPU, memory, process information
- Project application: System resource monitoring
Keyboard and Mouse Control
pyautoguilibrary (used in project)- Mouse movement and clicking
- Keyboard input
- Project application: Game operation automation
Screen Capture
pyscreezelibrary (used in project)- Screenshots and image location
- Project application: Game state recognition
Window Management
pygetwindowlibrary (used in project)- Getting window information
- Window activation and operations
- Project application: Game window control
Practice Projects:
- Implement game startup automation
- Implement simple image recognition and clicking
Phase 8: Image Processing and Recognition (2-3 weeks)
Learning Objectives: Implement game screen recognition
Core Content:
OpenCV Basics
- Image reading and display
- Basic image operations (cropping, scaling, rotation)
- Project application: Game screen processing
Image Recognition
- Template matching
- Feature detection
- Color recognition
- Project application: Recognizing game UI elements
OCR Text Recognition
rapidocr-onnxruntimelibrary (used in project)- Text detection and recognition
- Project application: Recognizing text in games
Image Processing Libraries
PIL/Pillowlibrary (used in project)- Image format conversion
- Project application: Image preprocessing
Practice Projects:
- Implement game UI recognition
- Implement text recognition functionality
Phase 9: Network Communication and Encryption (1-2 weeks)
Learning Objectives: Implement network communication and data security
Core Content:
Email Sending
smtplibmoduleemailmodule- Project application: Email notifications in
notify.py
Encryption and Decryption
- Symmetric encryption (AES)
- Asymmetric encryption (RSA)
- Hash functions
- Project application: Encrypted password storage
HTTP Requests
requestslibrary- GET and POST requests
- Project application: Version checking and updates
Practice Projects:
- Implement email notification system
- Implement encrypted password storage
Phase 10: Task Scheduling and Notifications (1-2 weeks)
Learning Objectives: Implement scheduled tasks and system notifications
Core Content:
Task Scheduling
schedulelibrary (used in project)- Scheduled tasks
- Project application: Timed execution of game tasks
System Notifications
plyerlibrary (used in project)- Windows notifications
- Project application: Task completion notifications
Event-Driven
- Event loops
- Callback functions
- Project application: Task event handling
Practice Projects:
- Implement scheduled task system
- Implement multiple notification methods
Phase 11: Internationalization and Localization (1 week)
Learning Objectives: Support multiple languages
Core Content:
i18n Implementation
- String extraction
- Translation file management
- Project application:
SRACore/i18n/module
Multi-language Support
- Language switching
- Regional settings
- Project application: Chinese and English support
Practice Projects:
- Implement internationalization framework
- Add new language support
Phase 12: Packaging and Distribution (1 week)
Learning Objectives: Package Python code into executable files
Core Content:
Nuitka Packaging
nuitkalibrary (used in project)- Compile Python to binary
- Project application:
package.pyscript
Dependency Management
requirements.txt- Virtual environments
- Project application: Project dependency management
Version Management
- Version number standards
- Change logs
- Project application:
version.json
Practice Projects:
- Package Python project as EXE
- Implement automatic update mechanism
Project Practice: Complete Automation Tasks
Comprehensive application of all knowledge:
- Create task configuration system
- Implement multi-task concurrent execution
- Add logging and error handling
- Implement email and system notifications
- Package as executable file
🦀 Rust Learning Roadmap
Phase 1: Rust Basic Syntax (2-3 weeks)
Learning Objectives: Understand Rust's core concepts and syntax
Core Content:
Variables and Bindings
- Variable declaration and assignment
- Mutability (
mut) - Constants and static variables
- Project application: Type definitions in
src-tauri/src/types.rs
Basic Data Types
- Integers, floats, booleans, characters
- Strings (
Stringand&str) - Arrays and vectors
- Tuples and structs
- Project application: Configuration data structures
Ownership System (Rust's core)
- Ownership rules
- Move semantics
- Clone and copy
- Project application: Resource ownership in process management
Borrowing and References
- Immutable references
&T - Mutable references
&mut T - Borrowing rules
- Project application: Function parameter passing
- Immutable references
Pattern Matching
matchexpressionsif letandwhile let- Destructuring
- Project application: Error handling
Practice Projects:
- Implement simple configuration structs
- Practice ownership and borrowing
Phase 2: Error Handling and Type System (2 weeks)
Learning Objectives: Master Rust's error handling and type system
Core Content:
Result and Option
Result<T, E>typeOption<T>type?operator- Project application: Error handling in
process.rs
Custom Error Types
- Implementing
Errortrait - Error conversion
- Project application: Custom error types
- Implementing
Generics
- Generic functions
- Generic structs
- Generic traits
- Project application: Generic configuration management
Traits
- Trait definition and implementation
- Trait objects
- Project application: Using
Emittertrait
Practice Projects:
- Implement custom error types
- Create generic result handling functions
Phase 3: Lifetimes and Memory Management (2 weeks)
Learning Objectives: Understand Rust's memory management mechanisms
Core Content:
Lifetimes
- Lifetime annotations
- Lifetime elision rules
- Project application: Function parameters and return values
Smart Pointers
Box<T>- heap allocationRc<T>- reference countingArc<T>- atomic reference countingMutex<T>- mutex- Project application:
SRA_PROCESS: Mutex<Option<SraProcess>>
Memory Safety
- Stack and heap
- Memory leak prevention
- Project application: Process resource management
Practice Projects:
- Implement thread-safe global state
- Use
Arc<Mutex<T>>to manage shared resources
Phase 4: Concurrent Programming (2-3 weeks)
Learning Objectives: Implement concurrency and asynchronous programming
Core Content:
Threads
std::threadmodule- Thread creation and management
- Inter-thread communication
- Project application: Background process management
Asynchronous Programming
async/awaitsyntaxFuturetrait- Project application:
tokioasync runtime
Tokio Runtime
- Async tasks
- Channels (
mpsc,broadcast) - Timers
- Project application:
tokiodependency inCargo.toml
Synchronization Primitives
MutexmutexRwLockread-write lockSemaphoresemaphore- Project application: Process state management
Practice Projects:
- Implement async process management
- Implement inter-thread messaging
Phase 5: Tauri Framework Basics (2-3 weeks)
Learning Objectives: Understand Tauri framework's core concepts
Core Content:
Tauri Application Structure
- Application initialization
- Window management
- Project application:
run()function insrc-tauri/src/lib.rs
Command System
#[tauri::command]macro- Command handling
- Parameter serialization
- Project application: All commands in
commands.rs
Event System
- Event sending
- Event listening
- Project application:
app_handle.emit("console-output", ...)
Plugin System
- Official plugins
- Project application:
tauri-plugin-opener,tauri-plugin-dialog,tauri-plugin-fs
Configuration Files
tauri.conf.json- Application configuration
- Project application:
src-tauri/tauri.conf.json
Practice Projects:
- Create simple Tauri application
- Implement frontend-backend communication
Phase 6: Tauri Commands and IPC (2 weeks)
Learning Objectives: Implement frontend-backend communication
Core Content:
Command Definition
- Parameter types
- Return types
- Error handling
- Project application: Command definitions in
commands.rs
Serialization and Deserialization
serdelibraryserde_json- Custom serialization
- Project application: Configuration data serialization
Async Commands
- Async command handling
- Long-running operations
- Project application: Process startup and management
State Management
- Application state
- State sharing
- Project application: Global process state
Practice Projects:
- Implement configuration management commands
- Implement process control commands
Phase 7: Process Management and System Interaction (2-3 weeks)
Learning Objectives: Implement system-level operations
Core Content:
Process Management
std::process::Command- Process startup and communication
- Standard input/output
- Project application: Process management in
process.rs
Pipes and Communication
- Standard input (stdin)
- Standard output (stdout)
- Standard error (stderr)
- Project application: Communication with Python processes
File System Operations
- File reading and writing
- Directory operations
- Path handling
- Project application: Configuration file management
Windows API
windowscrate- System calls
- Project application: Windows-specific dependencies in
Cargo.toml
Practice Projects:
- Implement process startup and monitoring
- Implement inter-process communication
Phase 8: HTTP and Network Programming (1-2 weeks)
Learning Objectives: Implement network communication
Core Content:
HTTP Client
reqwestlibrary (used in project)- GET and POST requests
- Async requests
- Project application: Version checking and updates
JSON Processing
serde_json- Serialization and deserialization
- Project application: Configuration and announcement data
Error Handling
- Network errors
- Timeout handling
- Project application: Network request fault tolerance
Practice Projects:
- Implement version checking functionality
- Implement announcement retrieval functionality
Phase 9: Date/Time and Regular Expressions (1 week)
Learning Objectives: Handle dates and text
Core Content:
Date and Time
chronolibrary (used in project)- Timestamps
- Time formatting
- Project application: Log timestamps
Regular Expressions
regexlibrary (used in project)- Pattern matching
- Text extraction
- Project application: Log parsing
String Processing
- String operations
- Encoding conversion
- Project application: Configuration file parsing
Practice Projects:
- Implement log timestamps
- Implement text parsing functionality
Phase 10: Encryption and Encoding (1-2 weeks)
Learning Objectives: Implement data security
Core Content:
Base64 Encoding
base64library (used in project)- Encoding and decoding
- Project application: Data transmission
Encryption Algorithms
- Symmetric encryption
- Asymmetric encryption
- Project application: Password encryption
Hash Functions
- Data integrity verification
- Project application: File verification
Practice Projects:
- Implement encrypted data storage
- Implement file integrity verification
Phase 11: File Compression and Packaging (1 week)
Learning Objectives: Handle compressed files
Core Content:
ZIP File Processing
ziplibrary (used in project)- Creating and extracting ZIP
- Project application: Resource packaging
File Operations
- File reading and writing
- Directory traversal
- Project application: Resource management
Practice Projects:
- Implement resource packaging functionality
- Implement resource extraction functionality
Phase 12: Logging and Debugging (1 week)
Learning Objectives: Implement logging system
Core Content:
Logging Libraries
- Log levels
- Log formatting
- Project application:
logger.rsmodule
Debugging Techniques
println!macrodbg!macro- Debugger
- Project application: Development debugging
Practice Projects:
- Implement structured logging
- Implement log file management
Phase 13: Advanced Features and Optimization (2-3 weeks)
Learning Objectives: Master Rust's advanced features
Core Content:
Macro System
- Declarative macros
- Procedural macros
- Project application:
#[tauri::command]macro
Unsafe Code
unsafeblocks- FFI (Foreign Function Interface)
- Project application: Windows API calls
Performance Optimization
- Compilation optimization
- Memory optimization
- Project application: Release builds
Testing
- Unit testing
- Integration testing
- Project application: Code quality assurance
Practice Projects:
- Implement custom macros
- Optimize performance-critical code
Project Practice: Complete Tauri Application
Comprehensive application of all knowledge:
- Create Tauri application framework
- Implement frontend-backend communication
- Implement process management
- Implement configuration management
- Implement logging system
- Add error handling
- Optimize performance
🖖 Vue 3 Learning Roadmap
Phase 1: Vue 3 Basic Concepts (1-2 weeks)
Learning Objectives: Understand Vue 3's core concepts
Core Content:
Vue 3 Introduction
- Vue 3 vs Vue 2 differences
- Composition API vs Options API
- Project application: Project uses Composition API
Template Syntax
- Interpolation expressions
- Directives
v-if,v-for,v-bind,v-on - Project application: Templates in
Main.vue
- Interpolation expressions
Reactive Data
ref()functionreactive()function- Reactivity principles
- Project application: Component state management
Computed Properties and Watchers
computed()functionwatch()function- Project application: Dynamic computation and monitoring
Event Handling
- Event binding
@click - Event modifiers
- Project application: Button click handling
- Event binding
Practice Projects:
- Create simple counter application
- Implement form input and validation
Phase 2: Component Basics (2 weeks)
Learning Objectives: Master Vue component creation and usage
Core Content:
Component Definition
- Single File Components (
.vuefiles) - Component structure (
<template>,<script>,<style>) - Project application:
Main.vue,VersionUpdateWindow.vue
- Single File Components (
Props and Emits
- Props definition and validation
- Event emission (Emits)
- Project application: Parent-child component communication
Slots
- Default slots
- Named slots
- Scoped slots
- Project application: Reusable component design
Component Communication
- Parent to child (Props)
- Child to parent (Emits)
- Sibling component communication
- Project application: Data flow between components
Component Lifecycle
onMountedonUpdatedonUnmounted- Project application: Component initialization and cleanup
Practice Projects:
- Create reusable button component
- Implement parent-child component communication
- Create container component with slots
Phase 3: Composition API (2-3 weeks)
Learning Objectives: Master Vue 3's Composition API
Core Content:
setup Function
- Role of
setup()function - Return values
- Project application: Component logic organization
- Role of
Reactivity APIs
ref()andreactive()toRef()andtoRefs()isRef()andunref()- Project application: State management
Computed Properties
- Using
computed() - Writable computed properties
- Project application: Derived state
- Using
Watchers
watch()functionwatchEffect()function- Project application: Side effect handling
Lifecycle Hooks
- All lifecycle functions
- Hook execution order
- Project application: Component lifecycle management
Dependency Injection
provide()andinject()- Project application: Cross-level component communication
Practice Projects:
- Refactor components using Composition API
- Implement custom Hooks
- Implement cross-level data sharing
Phase 4: TypeScript Integration (2 weeks)
Learning Objectives: Use TypeScript in Vue
Core Content:
TypeScript Basics
- Type annotations
- Interfaces and type aliases
- Generics
- Project application:
src/locales/zh-CN.ts
TypeScript in Vue
- Component type definitions
- Props types
- Emits types
- Project application: Type-safe components
Type Inference
- Automatic type inference
- Explicit type annotations
- Project application: Code readability
Common Type Patterns
- Union types
- Intersection types
- Conditional types
- Project application: Complex type definitions
Practice Projects:
- Add type definitions to components
- Create type-safe API interfaces
- Implement type-safe state management
Phase 5: Vue Router (2 weeks)
Learning Objectives: Implement application routing
Core Content:
Router Basics
- Route definition
- Route matching
- Project application:
src/router/module
Navigation
- Declarative navigation (
<router-link>) - Programmatic navigation (
router.push()) - Project application: Navigation in
Main.vue
- Declarative navigation (
Route Parameters
- Dynamic routes
- Query parameters
- Project application: Data passing
Navigation Guards
- Global guards
- Route guards
- Component guards
- Project application: Permission control
Lazy Loading
- Route-level code splitting
- Project application: Performance optimization
Nested Routes
- Child routes
- Project application: Complex page structures
Practice Projects:
- Create multi-page application
- Implement route parameter passing
- Implement navigation guards
Phase 6: Internationalization (i18n) (1-2 weeks)
Learning Objectives: Implement multi-language support
Core Content:
i18n Library
vue-i18nlibrary- Installation and configuration
- Project application: Project's multi-language support
Translation Files
- Translation file structure
- Language pack management
- Project application:
src/locales/directory
Translation Functions
$t()function- Parameterized translation
- Project application: Dynamic translation
Language Switching
- Language switching logic
- Persistent language selection
- Project application: User preference settings
Practice Projects:
- Implement multi-language support
- Create language switching functionality
- Add new languages
Phase 7: Tauri Integration (2-3 weeks)
Learning Objectives: Use Tauri API in Vue
Core Content:
Tauri API Basics
@tauri-apps/apilibrary- Command invocation
- Project application: Calling Rust commands
Command Invocation
invoke()function- Parameter passing
- Error handling
- Project application: Command calls in
Main.vue
Event System
- Event listening
- Event sending
- Project application: Real-time communication
File System
- File reading and writing
- Directory operations
- Project application: Configuration file management
Dialogs
- File selection
- Message boxes
- Project application: User interaction
Window Management
- Window operations
- Project application: Application window control
Practice Projects:
- Implement frontend-backend communication
- Implement file selection functionality
- Implement real-time log display
Phase 8: State Management (1-2 weeks)
Learning Objectives: Implement application-level state management
Core Content:
State Management Concepts
- Why state management is needed
- State management patterns
- Project application: Application global state
Pinia (Recommended)
- Store definition
- State, Getters, Actions
- Project application: Can be integrated if needed
Simple State Management
- Using
provide/inject - Using
reactive() - Project application: Current project's state management
- Using
State Persistence
- Local storage
- Project application: User settings saving
Practice Projects:
- Implement application global state
- Implement state persistence
- Implement state synchronization
Phase 9: UI Components and Styling (2 weeks)
Learning Objectives: Create beautiful user interfaces
Core Content:
CSS Basics
- CSS selectors
- Box model
- Flexbox and Grid
- Project application: Style design
Styling in Vue
- Inline styles
- Class binding
- Scoped styles
- Project application:
<style scoped>
UI Component Libraries
lucide-vue-nexticon library (used in project)- Other UI libraries
- Project application: Icon usage
Responsive Design
- Media queries
- Mobile-first
- Project application: Adapt to different screens
Animations and Transitions
<Transition>component- CSS animations
- Project application: User experience
Practice Projects:
- Create responsive layout
- Implement component styling
- Add animation effects
Phase 10: Advanced Components (2 weeks)
Learning Objectives: Create complex reusable components
Core Content:
Drag and Drop Functionality
vuedraggablelibrary (used in project)- Drag events
- Project application: Task sorting
Markdown Rendering
vue3-markdown-itlibrary (used in project)- Rendering Markdown
- Project application: Announcement display
Virtual Scrolling
- Large list optimization
- Project application: Performance optimization
Form Processing
- Form validation
- Form submission
- Project application: Configuration forms
Modals and Notifications
- Modal components
- Notification system
- Project application:
NotificationSystemcomponent
Practice Projects:
- Implement drag-and-drop sorting functionality
- Implement Markdown rendering
- Create notification system
Phase 11: Performance Optimization (1-2 weeks)
Learning Objectives: Optimize application performance
Core Content:
Code Splitting
- Route-level splitting
- Component-level splitting
- Project application: Faster initial loading
Lazy Loading
- Image lazy loading
- Component lazy loading
- Project application: Performance improvement
Caching Strategies
- Component caching (
<KeepAlive>) - Project application:
<keep-alive>inMain.vue
- Component caching (
Performance Monitoring
- Performance metrics
- Debugging tools
- Project application: Performance analysis
Build Optimization
- Vite configuration
- Project application:
vite.config.ts
Practice Projects:
- Implement route lazy loading
- Optimize component performance
- Analyze and improve performance metrics
Phase 12: Testing (1-2 weeks)
Learning Objectives: Write test code
Core Content:
Unit Testing
Vitestframework- Test case writing
- Project application: Component testing
Component Testing
@vue/test-utils- Component mounting and interaction
- Project application: Testing Vue components
E2E Testing
PlaywrightorCypress- End-to-end testing
- Project application: Integration testing
Test Coverage
- Coverage reports
- Project application: Code quality
Practice Projects:
- Write component unit tests
- Write E2E tests
- Improve test coverage
Phase 13: Project Practice (2-3 weeks)
Learning Objectives: Comprehensive application of all knowledge
Core Content:
Project Architecture
- Directory structure
- Module division
- Project application:
src/directory structure
Best Practices
- Code standards
- Naming conventions
- Project application: Project code style
Development Workflow
- Development environment setup
- Build and deployment
- Project application:
package.jsonscripts
Debugging and Troubleshooting
- Vue DevTools
- Browser debugging
- Project application: Development debugging
Practice Projects:
Complete page development
- Create new pages
- Implement all functionality
- Add styles and animations
- Write tests
Feature module development
- Configuration management page
- Task management page
- Settings page
Performance optimization
- Analyze performance bottlenecks
- Implement optimization solutions
- Verify results
🎯 Learning Suggestions and Resources
Recommended Learning Order
Recommended Path:
Weeks 1-2: Vue 3 Basics + Component Basics
- Quickly see visual results, enhance learning motivation
- Understand Vue's core concepts
Weeks 3-4: Composition API + TypeScript
- Master modern Vue development methods
- Improve code quality
Weeks 5-6: Vue Router + Internationalization
- Implement complete application structure
- Support multiple languages
Weeks 7-8: Tauri Integration + State Management
- Implement frontend-backend communication
- Manage application state
Weeks 9-13: UI Optimization, Performance, Testing, Practice
- Polish application details
- Improve code quality
Parallel Learning Suggestions
If time permits, you can learn in parallel:
- Vue 3 Basics + Python Basics (Weeks 1-2)
- Vue 3 Advanced + Python Intermediate (Weeks 3-4)
- Vue 3 + Tauri + Rust Basics (Weeks 5-8)
- Complete project development (Week 9+)
Learning Resources
Official Documentation:
- Vue 3: https://vuejs.org/
- Tauri: https://tauri.app/
- Python: https://docs.python.org/3/
- Rust: https://www.rust-lang.org/
Project Reference:
- View
src/views/Main.vueto learn component structure - View
src/locales/to learn internationalization - View
src-tauri/src/commands.rsto learn Tauri commands - View
SRA-CE-cil/SRACore/to learn Python project structure
Practice Suggestions:
- Start by modifying existing components
- Gradually add new features
- Refer to project code to learn best practices
- Regularly refactor and optimize code
📊 Learning Time Estimates
| Language | Basic Phase | Intermediate Phase | Project-Related | Advanced Phase | Total |
|---|---|---|---|---|---|
| Python | 2-3 weeks | 4-5 weeks | 4-5 weeks | 2-3 weeks | 12-16 weeks |
| Rust | 2-3 weeks | 4-5 weeks | 4-5 weeks | 2-3 weeks | 12-16 weeks |
| Vue 3 | 3-4 weeks | 4-5 weeks | 3-4 weeks | 2-3 weeks | 12-16 weeks |
Overall Time:
- Focus on one language: 3-4 months
- Learn two languages: 4-6 months
- Learn three languages: 6-9 months
- Complete project development: 9-12 months
🚀 Quick Start Suggestions
If you want to quickly get started with the project
Week 1:
- Learn Vue 3 basics and components
- Modify existing Vue components
- Understand project structure
Weeks 2-3:
- Learn Tauri integration
- Implement simple frontend-backend communication
- Add new features
Weeks 4-6:
- Learn Python automation
- Understand game automation logic
- Optimize existing features
Week 7+:
- Learn advanced Rust
- Optimize system-level operations
- Complete project development
If you want to learn languages in depth
Choose one language for deep learning:
- Complete all phases of that language
- Apply learned knowledge in the project
- Participate in project development and optimization
- Then learn other languages