migration start
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
This commit is contained in:
156
README.md
156
README.md
@@ -1,56 +1,136 @@
|
||||
# Welcome to your Expo app 👋
|
||||
# RSSuper - Native Multi-Platform RSS Reader
|
||||
|
||||
This is an [Expo](https://expo.dev) project created with [`create-expo-app`](https://www.npmjs.com/package/create-expo-app).
|
||||
A native RSS reader built for iOS, macOS, Android, Linux, and Windows.
|
||||
|
||||
## Get started
|
||||
## Architecture
|
||||
|
||||
1. Install dependencies
|
||||
RSSuper uses a native-first approach, building truly native applications for each platform:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
| Platform | Language | UI Framework | Status |
|
||||
|----------|----------|--------------|--------|
|
||||
| iOS | Swift | SwiftUI | ✅ Active |
|
||||
| macOS | Swift | SwiftUI | ✅ Active |
|
||||
| Android | Kotlin | Jetpack Compose | 🚧 Setup |
|
||||
| Linux | C/Vala | GTK4 + Libadwaita | 🚧 Setup |
|
||||
| Windows | C# | WinUI 3 | 🔜 Planned |
|
||||
|
||||
2. Start the app
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
npx expo start
|
||||
```
|
||||
|
||||
In the output, you'll find options to open the app in a
|
||||
|
||||
- [development build](https://docs.expo.dev/develop/development-builds/introduction/)
|
||||
- [Android emulator](https://docs.expo.dev/workflow/android-studio-emulator/)
|
||||
- [iOS simulator](https://docs.expo.dev/workflow/ios-simulator/)
|
||||
- [Expo Go](https://expo.dev/go), a limited sandbox for trying out app development with Expo
|
||||
|
||||
You can start developing by editing the files inside the **app** directory. This project uses [file-based routing](https://docs.expo.dev/router/introduction).
|
||||
|
||||
## Get a fresh project
|
||||
|
||||
When you're ready, run:
|
||||
### Build All Platforms
|
||||
|
||||
```bash
|
||||
npm run reset-project
|
||||
./scripts/build.sh
|
||||
```
|
||||
|
||||
This command will move the starter code to the **app-example** directory and create a blank **app** directory where you can start developing.
|
||||
### Build Specific Platform
|
||||
|
||||
### Other setup steps
|
||||
```bash
|
||||
# iOS/macOS
|
||||
./scripts/build.sh -p ios
|
||||
|
||||
- To set up ESLint for linting, run `npx expo lint`, or follow our guide on ["Using ESLint and Prettier"](https://docs.expo.dev/guides/using-eslint/)
|
||||
- If you'd like to set up unit testing, follow our guide on ["Unit Testing with Jest"](https://docs.expo.dev/develop/unit-testing/)
|
||||
- Learn more about the TypeScript setup in this template in our guide on ["Using TypeScript"](https://docs.expo.dev/guides/typescript/)
|
||||
# Android
|
||||
./scripts/build.sh -p android
|
||||
|
||||
## Learn more
|
||||
# Linux
|
||||
./scripts/build.sh -p linux
|
||||
```
|
||||
|
||||
To learn more about developing your project with Expo, look at the following resources:
|
||||
## Project Structure
|
||||
|
||||
- [Expo documentation](https://docs.expo.dev/): Learn fundamentals, or go into advanced topics with our [guides](https://docs.expo.dev/guides).
|
||||
- [Learn Expo tutorial](https://docs.expo.dev/tutorial/introduction/): Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web.
|
||||
```
|
||||
RSSuper/
|
||||
├── native-route/ # Native platform projects
|
||||
│ ├── ios/ # iOS/macOS Xcode project
|
||||
│ ├── android/ # Android Gradle project
|
||||
│ ├── linux/ # Linux Meson project
|
||||
│ └── windows/ # Windows project (planned)
|
||||
├── scripts/ # Build scripts
|
||||
│ ├── build.sh # Main build orchestrator
|
||||
│ ├── build-ios.sh # iOS/macOS builder
|
||||
│ ├── build-android.sh # Android builder
|
||||
│ ├── build-linux.sh # Linux builder
|
||||
│ └── common.sh # Shared utilities
|
||||
├── src/ # Expo/web project (legacy)
|
||||
└── .github/workflows/ # CI configuration
|
||||
```
|
||||
|
||||
## Join the community
|
||||
## Build System
|
||||
|
||||
Join our community of developers creating universal apps.
|
||||
The build system is adapted from the Nessa project, providing:
|
||||
|
||||
- [Expo on GitHub](https://github.com/expo/expo): View our open source platform and contribute.
|
||||
- [Discord community](https://chat.expo.dev): Chat with Expo users and ask questions.
|
||||
- **Cross-platform build orchestration**
|
||||
- **Automatic Xcode version selection**
|
||||
- **Build reports with error extraction**
|
||||
- **GitHub Actions CI/CD**
|
||||
- **Consistent build experience across platforms**
|
||||
|
||||
### Build Commands
|
||||
|
||||
```bash
|
||||
# Build all platforms (debug)
|
||||
./scripts/build.sh
|
||||
|
||||
# Build release
|
||||
./scripts/build.sh -t release
|
||||
|
||||
# Build specific platforms
|
||||
./scripts/build.sh -p ios,android
|
||||
|
||||
# Run tests
|
||||
./scripts/build.sh --test
|
||||
|
||||
# Clean builds
|
||||
./scripts/build.sh -a clean
|
||||
```
|
||||
|
||||
### Individual Platform Scripts
|
||||
|
||||
```bash
|
||||
# iOS/macOS
|
||||
./scripts/build-ios.sh [Debug|Release] [iOS|macOS] [destination] [action]
|
||||
|
||||
# Android
|
||||
./scripts/build-android.sh [debug|release] [assemble|build|test|clean]
|
||||
|
||||
# Linux
|
||||
./scripts/build-linux.sh [debug|release] [build|install|test|clean|setup]
|
||||
```
|
||||
|
||||
## CI/CD
|
||||
|
||||
GitHub Actions automatically builds all platforms on:
|
||||
- Pull requests
|
||||
- Pushes to main/develop branches
|
||||
- Manual workflow dispatch
|
||||
|
||||
See `.github/workflows/ci.yml` for configuration.
|
||||
|
||||
## Platform Details
|
||||
|
||||
### iOS/macOS
|
||||
- Swift + SwiftUI
|
||||
- Xcode build system
|
||||
- Minimum: iOS 16.0+
|
||||
|
||||
### Android
|
||||
- Kotlin + Jetpack Compose
|
||||
- Gradle build system
|
||||
- Minimum: Android 7.0 (API 24)
|
||||
|
||||
### Linux
|
||||
- C/Vala + GTK4 + Libadwaita
|
||||
- Meson build system
|
||||
- Requires: GTK4, Libadwaita, SQLite3
|
||||
|
||||
### Windows (Planned)
|
||||
- C# + WinUI 3
|
||||
- MSBuild/Cake build system
|
||||
|
||||
## Learn More
|
||||
|
||||
- [Native Route README](native-route/README.md) - Detailed platform documentation
|
||||
- [Build Scripts](scripts/) - Build system source
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
Reference in New Issue
Block a user