CryptoApp
Why
This app was made to test my knowledge of the Combine and CoreData framework from Apple along with handling calls to external APIs and displaying the information. For the architecture of this app I went with the MVVM architecture with worked seamlessly for passing around data to different views.
Overview
HomeView

The app’s homescreen displays the top 250 crypto currencies which was received from an API call to coingecko. Here it displays the overall market cap, 24 hour volume, and BTC dominance percentage as stats. There is a search bar to search for a specifc coin and the columns allow for different sorting options.
DetailedCoinView

Tapping on a cryptocurrency within the HomeView will display a DetailCoinView showing extra information about the crypto currency. A graph will also animate at the top showing the last 7 days information about the selected crypto currency’s price
PortfolioView

Tapping on the upper right button will display the Portfolio view which displays your current holdings of different crypto currencies. An additional ‘Holdings’ column is displayed and can also be used to sort the list. Inside the portfolio view you can tap on an ‘add’ button in the top left to update your holdings for a crypto currency. And at the top of this view a new statistic is added that shows your ‘Portfolio Value’
Things to consider
While I made this app using Combine and utilizing a PubSub pattern, I know that Combine is becoming less used within apps ever since Apple has released updates to XCode such as asnyc/await features and concurrency features. I do plan to remake this app using those features so that I caught up to more modern SwiftUI development