Single Source of try! Swift Tokyo
npx skills add https://github.com/tryswift/try-swift-tokyo --skill vaporInstall this skill with the CLI and start using the SKILL.md workflow in your workspace.
This is the official app for try! Swift Tokyo 2024/2026.
We've submitted the app to the App Store as MVP, and it's currently under review. Here's a list of features that are currently available and those that are planned for future releases:
Available on the App Store soon, or you can build the app yourself. See the Getting Started section for more information.
trySwiftTokyo.xcworkspace in XcodeThe Android version uses Skip to transpile Swift/SwiftUI to Kotlin/Jetpack Compose.
cd Android
swift build
cd .build/plugins/outputs/skipstone/AndroidApp/skipstone
./gradlew installDebug
The Android version includes:
Note: Some iOS-specific features are not available on Android:
trySwiftTokyo.xcworkspace in XcodeWebsite scheme in Xcodeignite run --preview from the command lineWe welcome contributions to the app! Please refer to the Contributing Guidelines for more information.
This project demonstrates how Skip enables code sharing between iOS and Android with nearly identical SwiftUI syntax.
The Shared/ module contains UI components that work on both platforms:
SessionRowView - Session list itemSessionDetailView - Session detail screenSponsorGridView - Sponsor grid layoutSpeakerAvatarView - Speaker avatar component| Aspect | iOS | Android (Skip) |
|---|---|---|
| UI Framework | SwiftUI | SwiftUI → Jetpack Compose |
| State Management | TCA (@Reducer) |
@Observable ViewModel |
| Navigation | NavigationStack |
NavigationStack |
| Data Models | SharedModels |
SharedModels |
// This code runs on BOTH iOS and Android
ForEach(conference.schedules, id: \.time) { schedule in
Text(schedule.time, style: .time)
.font(.subheadline.bold())
ForEach(schedule.sessions, id: \.title) { session in
SessionRowView(session: session)
}
}
try-swift-tokyo/
├── App/ # Xcode project wrapper
├── iOS/ # iOS app (SwiftUI + TCA)
│ └── Sources/
│ ├── AppFeature/
│ ├── ScheduleFeature/
│ ├── SponsorFeature/
│ ├── GuidanceFeature/
│ ├── LiveTranslationFeature/
│ └── trySwiftFeature/
├── Android/ # Android app (Skip)
│ └── Sources/
│ ├── AndroidApp/
│ ├── ScheduleFeature/
│ ├── SponsorFeature/
│ ├── VenueFeature/
│ └── AboutFeature/
├── Shared/ # Shared UI components (iOS + Android)
│ └── Sources/
│ └── SharedViews/
├── SharedModels/ # Shared data models
├── DataClient/ # Data fetching client
├── Server/ # Vapor backend
└── Website/ # Ignite static site
The first try! Swift app (a repository named final) was released in 2016. At the time, it was written in Swift 3. Now is a good time for a new app, so We rebuilt it based on TCA and SwiftUI. Please take a look and enjoy.
https://github.com/tryswift/trySwiftAppFinal
This project is licensed under the MIT License - see the LICENSE file for details.