Dialector is an engaging language-learning app designed to help users learn Hindi. Inspired by the journey of a sailor exploring different cultures, Dialector is designed to make language acquisition both immersive and fun. With its mascot, a friendly sailor, Dialector takes users through different levels, from learning basic vowels and alphabets to words and sentences, providing a holistic language-learning experience.
-
Interactive Learning Levels: Dialector offers three primary levels:
- Vowels and Alphabets: Learn Hindi script basics with flashcards.
- Words: Build vocabulary with image-based flashcards.
- Sentences: Understand and practice sentence formation.
-
Sailor Mascot: A unique mascot guides users through the app, adding a touch of character and adventure to the learning journey.
-
Flashcards: Each level uses flashcards that present Hindi characters or words along with their English meanings, pronunciation, and an image of the object.
-
Practice Exercises: Dialector includes interactive challenges:
- Word Guessing: Image-based guessing game.
- Matching Game: Pair Hindi words with English meanings.
- Fill-in-the-Blanks: Complete sentences with missing words.
-
Data Management: Designed to efficiently manage a large dataset of Hindi words and sentences.
-
Clone the Repository:
git clone (https://github.com/bhanumeet/Dialector-.git) cd dialector
-
Open in Xcode:
- Ensure you have the latest version of Xcode installed.
- Open
Dialector.xcodeproj
in Xcode.
-
Install Dependencies: Dialector relies on certain iOS libraries and APIs:
- SwiftUI
- Google Sign-In (for user authentication)
To install dependencies, follow these steps:
- Swift Package Manager: Add required packages by going to
File
>Add Packages...
in Xcode.
-
Configure Google Sign-In (Optional):
- If implementing Google login, ensure you have set up Google Sign-In in your project.
- Add your Google API Key and enable OAuth credentials in the
Info.plist
file.
-
Build and Run the App:
- Select your target device or simulator, then click on Run to build and launch the app.
Upon launching the app, users can start their language-learning journey with a selection of levels, presented in a navigation-based interface.
-
Level 1 - Vowels and Alphabets:
- Begin with flashcards featuring Hindi vowels and alphabets. Each flashcard displays the Hindi character, its English pronunciation, and sound.
-
Level 2 - Words:
- Move to word learning. Each word is paired with an image and pronunciation. These sets of 10 words are followed by a sentence that uses each word in context, reinforcing learning.
-
Level 3 - Sentences:
- Learn to form sentences in Hindi through guided flashcards and sentence examples.
-
Practice Challenges:
- At the end of each level, test your knowledge with interactive games.
Dialector is structured for easy maintainability and expandability. Key files and folders include:
ContentView.swift
: The main app view with navigation to different levels.Level1MenuView.swift
: Displays options for Level 1.Level2Words.swift
: Contains the word flashcards, image-based word learning, and sentence formation for Level 2.Level3Sentences.swift
: Houses sentence learning and fill-in-the-blank practice exercises.DataModels/
: Contains data files (e.g., consonant-vowel combinations, word sets) to manage the app's large vocabulary.
- Swift & SwiftUI: The app is built using Swift and SwiftUI for a native iOS experience.
- Google Sign-In: Optional user authentication.
- API Integration: Uses an illustration API to fetch images for flashcards.
- File Management: Stores Hindi words and sentences in separate files to prevent hardcoding data, ensuring efficient data access.
- Alphabet, word, and sentence learning levels.
- Flashcard-based interactive learning.
- Practice challenges for retention.
- Add progress tracking and user levels.
- Expand to additional languages.
- Develop a quiz mode for advanced learning.
We welcome contributions! To contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
. - Make changes and commit them:
git commit -m 'Added feature'
. - Push your changes:
git push origin feature-name
. - Create a pull request.
Please make sure your code follows the project's coding guidelines.
This project is licensed under the MIT License.