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

No packages published

Languages