TradeApp is a marketplace app written in Swift using UIKit. Allows users to create account, search through items for sale, save items to favourites, add new items, send messages between users, manage user items, manage user account data and many more.
- UIKit
- Network
- Firebase
- FirebaseStorage
- FirebaseAuth
- CoreLocation
- CoreAnimation
- CoreData
- MapKit
- MessageKit
- XCTest
MainView
- Scroll through items for sale
- Sort items by price or date
- Tap item to see more details
CategoryView
- Scroll through categories
- Tap to set category
FilterView
- Filter items by categories, location and price
SearchView
- Filter items by title
DetailView
- Scroll through item images
- Tap image to open images gallery
- Save item to favourites
- Remove item from favourites
- Share item
- Tap on map to open maps
- Send message to the seller
- Call or send text message to the seller
- Discover more details
ItemView
- Scroll through item images
- Zoom in and out
SavedView
- Scroll through items saved by user
- Remove single or multiple items at once
- Tap item to see more details
LoginView
- Create new user
- Sign in existing user
AddItemView
- Add items for sale choosing images, title, price, category, location and description
- Choose image source(camera, photos library)
- Reorder images by drag and drop
- Edit chosen images
MessagesView
- Scroll through user chats
- Tap to see chat details
- Remove chats
ChatView
- Send messages between users
AccountView
- Discover and modify user data
- Delete account
- Sign out
ActiveView
- Scroll through user active items
- Tap to see item details
- Finish item
- Delete item
- Edit item
EndedView
- Scroll through user ended items
- Tap to see item details
- Activate item
- Delete item
- Edit item
EditView
- Edit existing item
- Choose image source(camera, photos library)
- Reorder images by drag and drop
- Edit chosen images
UnitView
- Change unit used to calculate distance between user and item location
- Change unit used to filter items by location
NumberView
- Verify phone number
- Set phone number
- Change phone number
- Remove phone number
EmailView
- Verify user new email
- Change user email
PasswordView
- Change user password
ConnectionView
- Appears when connection status is not satisfied
EmptyView
- Appears when view has no items to show