Skip to content

The project uses MVVM Architecture, SwiftUI, Combine, CoreData. Live cryptocurrency data is downloaded from CoinGecko API.

Notifications You must be signed in to change notification settings

ThePerfectLegend/Crypto-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 

Repository files navigation

Crypto-Tracker

SwiftUI Crypto app uses MVVM Architecture, Combine, CoreData and API request to CoinGecko. Crypto-Tracker allows user observe situation on market, track cryptocurrency prices, create and edit own portfolio.

GitHubDemo GitHubDemo2 GitHubDemo_4

Technologies & Functionality

  • Project uses MVVM Architecture with additional layers between Model and Views. API request created in independent network layer of class NetworkingManager and using in different DataServices with API requests.
  • DataServices connected with ViewModel by @Publisher and @Subcribers pattern from Combine framework. It allows to keep data actual condition. To avoid additional request to API download images saves in fileManager.
  • User can create own cryptocurrency portfolio by add, edit and delete coins. All portfolio data saves in CoreData.
  • The app implemented custom and reusable SearchBar. Filtering data based on search bar text using Combine.
  • User can reload the List of coins with updated data from API and sorting it by market position, price, and holdings with animations.
  • In DetailView created a custom animated line chart to display historical price data. Downloaded data is displaying in grid format with reusable components. Coin description section has animated expand and collapse options.
  • Launch screen is combined with UIKit and SwiftUI loading animation. Added app icon.

To Do

  • Replace api calls to async/await

About

The project uses MVVM Architecture, SwiftUI, Combine, CoreData. Live cryptocurrency data is downloaded from CoinGecko API.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages