A modern and elegant authentication system built entirely with SwiftUI, featuring smooth transitions, responsive layouts, and a sleek iOS 26-style design.
This project provides a complete Sign In / Sign Up flow with email verification, making it a perfect starting point for any new iOS app.
✅ Complete Authentication Flow
- Sign In, Sign Up, and Sign Out screens
- Email verification support
- Password validation and error feedback
🎨 Modern SwiftUI Design
- Built using SwiftUI for a native, declarative UI
- Inspired by iOS 26 aesthetics with smooth animations and clean layout
- Adaptive light/dark mode support
⚙️ MVVM Architecture
- Clear separation of UI, business logic, and data
- Easy to extend and maintain
🧭 NavigationStack Integration
- Seamless navigation between authentication and main app views
💾 Persistent User Session
- Securely stores user state using AppStorage / UserDefaults
- Auto-login support for returning users
🔁 Reusable Components
- Custom SwiftUI components for text fields, buttons, and alerts
- Built for flexibility and reusability
| Layer | Technology |
|---|---|
| UI | SwiftUI |
| Architecture | MVVM |
| Storage | AppStorage / UserDefaults |
| Language | Swift |
| Platform | iOS 16+ |
| Sign In | Sign Up |
|---|---|
![]() |
![]() |
- macOS with Xcode 15+
- iOS 16+ device or simulator
- Clone this repository
git clone https://github.com/rayeeev/Grehyp.git
- Open the project in Xcode
cd Grehyp open Grehyp.xcodeproj - Connect Firebase to your app
Follow the official Firebase setup guide for iOS: 🔗 https://firebase.google.com/docs/ios/setup
✅ Enjoy your app!
- 📧 Didn’t get the verification email?
Check your spam or junk folder first. - 🔥 Ensure Firebase Authentication and Email/Password sign-in are enabled in the Firebase Console.
- 📱 If the app crashes, clean the build folder (
Shift + Command + K) and rebuild.
- 🔥 Integration with Firebase Authentication (extended)
- 🌐 Support for social logins (Apple, Google, etc.)
- 🔒 Add biometric authentication (Face ID / Touch ID)
- 📬 Implement password reset via email

