An iOS App for Grocery Shopping
-
This is an iOS app created as a team project in the school. My team decided to develop a grocery shopping application using Swift in Xcode. Nobody had any experience in terms of iOS development. We've spent approximately 5 months including brainstorming, making a wireframe, UI/UX design and coding. My team consisted of the followings in alphabetical order :
Bruno : Project manager
Diego : Backend (Stripe)
Jaewon(me) : Backend
Kento : Tech Lead
Mai : Designer
- Trello to manage the project
- Slack to communicate, share some tips, update with a progress and chit-chat :)
- Google SpreadSheet to visualize data structure, which is more appropriate for NoSQL DB. We also updated our master data through script
- Swinject for Dependency Injection
- RxSwift for Reactive Programming
- Realm DB as a mobile DB
- Firebase(Cloud FireStore) for a Serverless App
- Stripe
- MVVM
- I contributed to make a wireframe as well as design even though my design wasn't fully adopted. I used Sketch.
- I did a research about using multiple Storyboards to avoid having many conflicts and applied it to our project.
- I worked on Home/SignIn/Account/Checkout screens.
- I tried to use RxDatasources to implement UICollectionView using RxSwift, which was one of the most challenging tasks.
- I made an effort to define data structure and dabbled in google apps script.
- I devoted myself to help the others whenever they need.
- I sometimes led a daily meeting when our project manager was absent.
- This is the first screen of the application, you can scroll up and down, check items and see the detail of an item. We decided to use Tabbar so that a user can easily check its order history and its account.
- It leads you to Category list by tapping on the button on the top left side on Home screen. This gif shows the transition from Category list to Product Detail page.
- We used Firebase Authentication API, with which user can sign up, sign in and reset a password. This gif describes the progress of sign-in and account page.
- This gif illustrates adding products, editing the amount, choosing an address from the registered ones, and making a payment through Stripe.
- From the beginning of the project I had been excited to work on this project since it'd be my first team project ever. In fact, our team had a lot of difficulties from A to Z, it was obviously challenging enough to make all of us frustrated. Each of us was so new to Swift and Xcode, on top of that, we decided to use MVVM architecture and RxSwift together, which later turned out it was so difficult to find some references or material introducing both of them. (Also it was really hard to use Stripe) However, we never gave it up and never stopped googling and experimenting, finally we were able to finish it!
- I truly admit that the 6 months of work were tough and the project itself is not perfectly flawlessly. But I have a big affection for this project. Through this project I've learned how an app development proceeds and how a team should work beside coding skill itself. I couldn't make it without my teammates, who bore with my lack of knowledge and were always only one call away to help one another.