A modern iOS application for learning French vocabulary with an interactive and engaging user interface. The app connects to a gRPC server to fetch vocabulary data and presents it in an intuitive, swipeable card format.
- Interactive card-based vocabulary learning
- Detailed word information with pronunciation
- Comprehensive conjugation tables for verbs
- Modern and intuitive user interface
- Framework: SwiftUI
- iOS Version: iOS 13.0+
- Data Persistence: SwiftData
- Network: gRPC-Swift
- Architecture: MVVM
- Backend Communication: Protocol Buffers
git clone https://github.com/ibretsam/SwiftUIVocab.gitIf you're using the command line:
cd NewVocab
swift package resolveIf you're using Xcode, it will automatically resolve the package dependencies when you open the project. If not, you can manually resolve them by going to File > Packages > Resolve Package Versions.
protoc ./Vocab.Api/Protos/vocab.proto \
--swift_opt=Visibility=Public \
--swift_out=./NewVocab/NewVocab/Generated \
--grpc-swift_opt=Visibility=Public \
--grpc-swift_out=./NewVocab/NewVocab/Generated \
--proto_path=./Vocab.Api/ProtosInitially, the app will use the mock data in MainViewServices. If you have your own gRPC server (I haven't finished it yet so it's not published for now), follow the instructions below:
cp NewVocab/NewVocab/Config/config.sample.json NewVocab/NewVocab/Config/config.jsonUpdate config.json with your server details:
{
"server_host": "your.server.host",
"server_port": 5002
}