About The Project
This project is being developed for educational purpose and is still under development, I will continue to add more feartures to it.
In this repository, I try my best to mimic the key features of the Instagram. I have utilized serveral frameworks and classes in order to create a complex UI and ehanced UX, which include:
- Architecture:
- MVVM
- UI:
- PhotoKit: Allow user to select image from their Photo Library.
- UICollectionViewCompositionalLayout: To create a complex layout with multi section and various layout.
- UIView animate: For smoother experience and transition.
- Database:
- FirebaseAuth: Used for authenticating user.
- FireStore: Used for storing and querying data of users and posts.
- Storage: Used for storing user-generated content such as images.
Features
- Login and Signup Screen:
- Allow user to log in if they already have an account or create a new one.
- Home Screen:
- View all posts from users that you are following.
- Like post.
- View all users who have liked the post.
- View all comments on a post.
- Explore Screen:
- Display all photos of user’s posts excluding from your own posts.
- Be able to search user based on usernames.
- Upload Post Screen:
- Allow user to add photo to post from Library or Camera.
- Post’s caption is optional.
- Profile Screen:
- Support both horizontal and vertical scrolling like Instagram.
- Be able to follow or unfollow user.
- Be able to change user’s info such as: fullname, username, bio and avatar.
- Support dark mode.
Preview
- Login Screen
Log in | Sign up |
---|---|
- Home Screen
Self-sizing cell and remain photo aspect ratio. Be able to load more comments.
Home | Like | Comment | Other Profile |
---|---|---|---|
- Explore Screen
Explore | Search | Post Detail |
---|---|---|
- Upload Post
Upload post |
---|
- Profile Screen
Profile | Edit Profile | Settings | Check Follow |
---|---|---|---|
- Dark Mode:
Dark Mode |
---|
Installation
- Clone the repo:
git clone https://github.com/ducanh2211/Instagram-Clone.git
cd Instagram-Clone/
-
Delete the following file and folder:
Podfile.lock
,InstagramClone.xcworkspace
andPods
. -
Install the dependencies through
CocoaPods
by run command:
pod install
-
Set up Firebase project by following the instruction.
-
Delete file
GoogleService-Info.plist
and change the bundle Id.
Upcoming Features
- Notifications for likes, comments, follow, etc.
- Add stories.
- Delete posts.
- One-to-one messages.
Contact
- Email: [email protected]
- Github: https://github.com/ducanh2211