This project is a culmination of the skills acquired during the iOS & Swift - The Complete iOS App Development Bootcamp by Angela Yu on Udemy.
-
Swift Package Manager + Firebase: Utilized the Swift Package Manager to integrate Firebase services, enabling user authentication (ensuring secure user registration, login, and logout) and cloud-based storage for message data (storing messages, senders, and timestamps, facilitating real-time data synchronization and storage). Error alerts are displayed in case of authentication issues.
-
Messages on a Table View: Utilized table view cells to display messages, senders, and timestamps, providing a structured and organized way to view and interact with the message data.
-
Customized Cell Sizing Logic: Implemented a dynamic cell sizing logic to ensure each message cell adapts to its content and respect constraints, enhancing the overall user interface.
-
IQKeyboardManager Integration: Integrated IQKeyboardManager using Swift Package Manager to handle keyboard interactions seamlessly while users input their messages.
-
MVVM Design Pattern with ViewCode: Transformed the project architecture to adhere to the MVVM (Model-View-ViewModel) design pattern using ViewCode. This adaptation from the initial MVC (Model-View-Controller) and Storyboard structure in the course's project sketch resulted in a more organized and modular codebase.
- Clone the Repository:
git clone https://github.com/guilhermebrv/flash-chat.git
- Open in Xcode:
- Launch the project in Xcode and run it on your preferred iOS simulator or device.
- Explore and start messaging:
- Register, log in, and log out securely using FirebaseAuth.
- Input messages, and witness real-time updates as the data syncs with Firebase Firestore.
- Experience a smooth and intuitive messaging interface with dynamic cell sizing and keyboard management.
- Angela Yu - Udemy Instructor: Grateful for the comprehensive iOS development course that inspired and equipped me to develop this chat messaging app.