{"id":1911,"url":"https://github.com/Daltron/BigBoard","last_synced_at":"2025-08-02T05:33:05.316Z","repository":{"id":56903654,"uuid":"56212795","full_name":"Daltron/BigBoard","owner":"Daltron","description":"An Elegant Financial Markets Library Written in Swift","archived":false,"fork":false,"pushed_at":"2019-11-08T21:20:59.000Z","size":1877,"stargazers_count":67,"open_issues_count":0,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-14T19:50:37.897Z","etag":null,"topics":["bigboard","ios","stock-market","swift","yahoo-finance-api"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Daltron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["daltron"]}},"created_at":"2016-04-14T06:28:24.000Z","updated_at":"2024-11-12T20:18:51.000Z","dependencies_parsed_at":"2022-08-21T01:50:49.237Z","dependency_job_id":null,"html_url":"https://github.com/Daltron/BigBoard","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/Daltron/BigBoard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daltron%2FBigBoard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daltron%2FBigBoard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daltron%2FBigBoard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daltron%2FBigBoard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Daltron","download_url":"https://codeload.github.com/Daltron/BigBoard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daltron%2FBigBoard/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268339404,"owners_count":24234544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bigboard","ios","stock-market","swift","yahoo-finance-api"],"created_at":"2024-01-05T20:15:58.805Z","updated_at":"2025-08-02T05:33:04.838Z","avatar_url":"https://github.com/Daltron.png","language":"Swift","funding_links":["https://github.com/sponsors/daltron"],"categories":["SDK"],"sub_categories":["Unofficial","Other free courses"],"readme":"![BigBoard](https://raw.githubusercontent.com/Daltron/BigBoard/master/Assets/bigboard.png?token=AJPY9yZ_ZB8ao_xZziL0Wcl_-aqFB-PZks5XSN7HwA%3D%3D)\n\n[![CI Status](http://img.shields.io/travis/Daltron/BigBoard.svg?style=flat)](https://travis-ci.org/Dalton/BigBoard)\n[![Version](https://img.shields.io/cocoapods/v/BigBoard.svg?style=flat)](http://cocoapods.org/pods/BigBoard)\n\u003ca href=\"https://developer.apple.com/swift\"\u003e\u003cimg src=\"https://img.shields.io/badge/swift-3.0-4BC51D.svg?style=flat\" alt=\"Language: Swift\" /\u003e\u003c/a\u003e\n[![License](https://img.shields.io/cocoapods/l/BigBoard.svg?style=flat)](http://cocoapods.org/pods/BigBoard)\n[![Platform](https://img.shields.io/cocoapods/p/BigBoard.svg?style=flat)](http://cocoapods.org/pods/BigBoard)\n\n# Notice\n\nAs of May 20th, 2017, it appears that Yahoo is dropping support for a few features that BigBoard supports or there is an outage on their end causing a few features to receive a `502 Timeout` response code each time a request is made. I'll be checking frequently to see if something changes. Until then, unforunately, there isn't anything I can do to fix these problems.\n\n## Updated for Swift 3\nBigBoard is an elegant financial markets library for iOS written in Swift. Under the hood, BigBoard makes requests to Yahoo Finance API's. Those requests are then processed and clean, friendly, and easy to use objects are returned. The goal of BigBoard is to take the learning curve out of the Yahoo Finance API's and centralize all finanical market data into one core library.\n\n## Features\n- [x] Retreive a stock based on a stock symbol\n- [x] Retrieve multiple stocks at the same time based on multiple stock symbols\n- [x] Retrieve an RSS Feed with the 25 most recent items for a stock symbol\n- [x] Retrieve an RSS Feed with the 25 most recent items for multiple stock symbols\n- [x] Retrieve historical data for a stock for any custom date range\n- [x] Retrieve chart data information for a stock that can easily be used in many charting libraries\n- [x] Retrieve graph images with custom trendlines\n- [x] Retrieve a list of stocks based on a search term\n- [x] Comprehensive unit test coverage\n- [x] Extensive documentation\n\n## Library Dependencies\n\n - [Alamofire](https://github.com/Alamofire/Alamofire): Elegant HTTP Networking in Swift\n - [AlamofireObjectMapper](https://github.com/tristanhimmelman/AlamofireObjectMapper): An Alamofire extension which converts JSON into Swift objects \n \n## Requirements\n\n - iOS 9.0+, macOS 10.11+\n - xCode 8\n\n## Installation\n\n### CocoaPods\n\nTo integrate BigBoard into your xCode project using CocoaPods, specify it in your `Podfile`:\n\n```ruby\nsource 'https://github.com/CocoaPods/Specs.git'\nplatform :ios, '9.0' # This can be greater than 9.0\nuse_frameworks!\n\npod 'BigBoard'\n```\n\nThen, run the following command:\n\n```bash\n$ pod install\n```\n\nThis will download any library dependencies you do not already have in your project.\n\n## Usage\n\n### Mapping a Single Stock\n\n```swift\nimport BigBoard\n\nBigBoard.stockWithSymbol(symbol: \"GOOG\", success: { (stock) in\n    // Do something with the stock\n}) { (error) in\n    print(error)    \n}\n```\n\n### Mapping Multiple Stocks with One Request\n\n```swift\nimport BigBoard\n\nBigBoard.stocksWithSymbols(symbols: [\"GOOG\", \"AAPL\", \"TSLA\"], success: { (stocks) in\n    // Do something with the stocks\n}) { (error) in\n    print(error)\n}\n```\n\nStocks have the following properties:\n\n```swift\nclass BigBoardStock: Mappable {\n    open var afterHoursChangeRealtime:String?\n    open var annualizedGain:String?\n    open var ask:String?\n    open var askRealTime:String?\n    open var averageDailyVolume:String?\n    open var bid:String?\n    open var bidRealTime:String?\n    open var bookValue:String?\n    open var change:String?\n    open var changeFromFiftyDayMovingAverage:String?\n    open var changeFromTwoHundredDayMovingAverage:String?\n    open var changeFromYearHigh:String?\n    open var changeFromYearLow:String?\n    open var changePercentRealtime:String?\n    open var changeRealTime:String?\n    open var changePercentChange:String?\n    open var changeInPercent:String?\n    open var commission:String?\n    open var currency:String?\n    open var daysHigh:String?\n    open var daysLow:String?\n    open var daysRange:String?\n    open var daysRangeRealTime:String?\n    open var daysValueChange:String?\n    open var daysValueChangeRealTime:String?\n    open var dividendPayDate:String?\n    open var dividendShare:String?\n    open var dividendYield:String?\n    open var ebitda:String?\n    open var epsEstimateCurrentYear:String?\n    open var epsEstimateNextQuarter:String?\n    open var epsEstimateNextYear:String?\n    open var earningsShare:String?\n    open var errorIndicationReturnedForSymbolChangedInvalid:String?\n    open var exDividendDate:String?\n    open var fiveDayChartModule:BigBoardChartDataModule?\n    open var fiveYearChartModule:BigBoardChartDataModule?\n    open var fiftyDayMovingAverage:String?\n    open var highLimit:String?\n    open var historicalData:[BigBoardHistoricalData]?\n    open var holdingsGain:String?\n    open var holdingsGainPercent:String?\n    open var holdingsGainPercentRealtime:String?\n    open var holdingsGainRealtime:String?\n    open var holdingsValue:String?\n    open var holdingsValueRealtime:String?\n    open var lastTradeDate:String?\n    open var lastTradePriceOnly:String?\n    open var lastTradeRealTimeWithTime:String?\n    open var lastTradeTime:String?\n    open var lastTradeWithTime:String?\n    open var lifetimeChartModule:BigBoardChartDataModule?\n    open var lowLimit:String?\n    open var marketCapRealtime:String?\n    open var marketCapitalization:String?\n    open var moreInfo:String?\n    open var name:String?\n    open var notes:String?\n    open var oneDayChartModule:BigBoardChartDataModule?\n    open var oneMonthChartModule:BigBoardChartDataModule?\n    open var oneYearChartModule:BigBoardChartDataModule?\n    open var oneYearTargetPrice:String?\n    open var open:String?\n    open var orderBookRealtime:String?\n    open var pegRatio:String?\n    open var peRatio:String?\n    open var peRatioRealtime:String?\n    open var percentChangeFromYearHigh:String?\n    open var percentChange:String?\n    open var percentChangeFromFiftyDayMovingAverage:String?\n    open var percentChangeFromTwoHundredDayMovingAverage:String?\n    open var percentChangeFromYearLow:String?\n    open var previousClose:String?\n    open var priceBook:String?\n    open var priceEPSEstimateCurrentYear:String?\n    open var priceEPSEstimateNextYear:String?\n    open var pricePaid:String?\n    open var priceSales:String?\n    open var sharesOwned:String?\n    open var shortRatio:String?\n    open var stockExchange:String?\n    open var symbol:String?\n    open var threeMonthChartModule:BigBoardChartDataModule?\n    open var tickerTrend:String?\n    open var tradeDate:String?\n    open var twoHundredDayMovingAverage:String?\n    open var volume:String?\n    open var yearHigh:String?\n    open var yearLow:String?\n    open var yearRange:String?\n}\n```\n\n### Retrieving a RSS Feed for a Stock\n\n```swift\nimport BigBoard\n\n_ = BigBoard.rssFeedForStockWithSymbol(symbol: \"GOOG\", success: { (feed) in\n    // Do something with the RSS feed\n}, failure: { (error) in\n    print(error)\n})\n\n```\n\nThis will return the 25 most recent news items for the provided stock symbol \n\n### Retrieving a RSS Feed for Multiple Stock Symbols\n\n```swift\nimport BigBoard\n\n_ = BigBoard.rssFeedForStocksWithSymbols(symbols: [\"GOOG\", \"AAPL\"], success: { (feed) in\n    // Do something with the feed\n}, failure: { (error) in\n    print(error)\n})\n```\n\nThis will return the 25 most recent news items altogether for the provided stock symbols. If you want the 25 most recent items for each stock symbol, you will need to use the singular function above for each stock symnol.\n\nRSS feeds have the following properties:\n\n```swift\nopen class BigBoardRSSFeed: Mappable {\n    open var title:String?\n    open var link:String?\n    open var author:String?\n    open var description:String?\n    open var imageLink:String?\n    open var items:[BigBoardRSSFeedItem]?\n}\n```\n\nRSS feed items have the following properties:\n\n```swift\nopen class BigBoardRSSFeedItem: Mappable {\n    open var title:String?\n    open var link:String?\n    open var guid:String?\n    open var publicationDate:Date?\n    open var author:String?\n    open var thumbnailLink:String?\n    open var description:String?\n    open var content:String?\n}\n```\n\n### Retrieving Historical Data for a Stock\n\n```swift\nimport BigBoard\n\nlet range = BigBoardHistoricalDateRange(startDate: Date() - 3.days, endDate: Date())\n_ = stock.mapHistoricalDataWithRange(dateRange: range, success: {\n    // The historicalData property is now mapped to the stock with data from the given dataRange\n}, failure: { (error) in\n    print(error)\n})\n```\n\nThere are currently four different ways to retrieve historical data:\n\n```swift\nclass BigBoardStock : Mappable {\n     open func mapHistoricalDataWithRange(dateRange:BigBoardHistoricalDateRange, success: (() -\u003e Void)?, failure:@escaping (BigBoardError) -\u003e Void) -\u003e DataRequest?\n     open func mapHistoricalDataWithFiveDayRange(_ success:(() -\u003e Void)?, failure:@escaping (BigBoardError) -\u003e Void) -\u003e DataRequest? \n     open func mapHistoricalDataWithTenDayRange(_ success:(() -\u003e Void)?, failure:@escaping (BigBoardError) -\u003e Void) -\u003e DataRequest? \n     open func mapHistoricalDataWithThirtyDayRange(_ success:(() -\u003e Void)?, failure:@escaping (BigBoardError) -\u003e Void) -\u003e DataRequest? \n}\n```\n\n### Retrieving Chart Data for a Stock\n\nThere are currently seven different ways to retrieve chart data:\n\n```swift\nclass BigBoardStock : Mappable {\n    open func mapOneDayChartDataModule(success:(() -\u003e Void)?, failure:(BigBoardError) -\u003e Void) -\u003e Request?\n    open func mapFiveDayChartDataModule(success:(() -\u003e Void)?, failure:(BigBoardError) -\u003e Void) -\u003e Request?\n    open func mapOneMonthChartDataModule(success:(() -\u003e Void)?, failure:(BigBoardError) -\u003e Void) -\u003e Request?\n    open func mapThreeMonthChartDataModule(success:(() -\u003e Void)?, failure:(BigBoardError) -\u003e Void) -\u003e Request?\n    open func mapOneYearChartDataModule(success:(() -\u003e Void)?, failure:(BigBoardError) -\u003e Void) -\u003e Request?\n    open func mapFiveYearChartDataModule(success:(() -\u003e Void)?, failure:(BigBoardError) -\u003e Void) -\u003e Request?\n    open func mapLifetimeChartDataModule(success:(() -\u003e Void)?, failure:(BigBoardError) -\u003e Void) -\u003e Request?\n}\n```\nExample:\n\n```swift\nimport BigBoard\n\nstock.mapOneMonthChartDataModule({\n    // oneMonthChartModule is now mapped to the stock\n}, failure: { (error) in\n    print(error)\n})\n\n```\n\nChart Modules have the following properties:\n\n```swift\nclass BigBoardChartDataModule: Mappable {\n    public var dates:[NSDate]!\n    public var dataPoints:[BigBoardChartDataModulePoint]!\n}\n\nclass BigBoardChartDataModulePoint: Mappable {\n    open var date:NSDate!\n    open var close:Double!\n    open var high:Double!\n    open var low:Double!\n    open var open:Double!\n    open var volume:Int!\n}\n```\n\n## Retrieve Graph Images with Custom Trendlines\n\nAn image of a graph for any stock can easily be set to any UIImageView by calling this function:\n```swift\nimport BigBoard\n\npublic extension UIImageView {\n    imageView.setGraphAsImageForStock(stock: stock) { (error) in\n            print(error)\n    }\n}\n```\nThe resulting image would be this:\n\n![Graph Image Example](http://chart.finance.yahoo.com/z?s=GOOG\u0026t=3m\u0026q=l\u0026l=on\u0026z=s\u0026p=)\n\nYou can also specify custom trendlines and how many months you want your graph image to display:\n\n```swift\nimport BigBoard\n\nimageView.setGraphAsImageForStock(stock: stock, timelineInMonths: 3, movingAverageTrendlineDays: [14, 50, 100], failure: { (error) in\n    print(error)\n})\n```\nThe resulting image would be this:\n\n![Graph Image Example](http://chart.finance.yahoo.com/z?s=GOOG\u0026t=3m\u0026q=l\u0026l=on\u0026z=s\u0026p=m14,m50,m100)\n\n### Retrieve a List of Stocks Based on a Search Term\n\n```swift\nimport BigBoard\n\nBigBoard.stocksContainingSearchTerm(searchTerm: \"Google\", success: { (searchResultStocks) in\n    // Do Something with the searchResultStocks\n}) { (error) in\n    print(error)\n}\n\n```\n\nSearch result stocks have the following properties:\n\n```swift\nclass BigBoardSearchResultStock: Mappable {\n    open var symbol:String?\n    open var name:String?\n    open var exch:String?\n    open var type:String?\n    open var exchDisp:String?\n    open var typeDisp:String?\n}\n\n```\n\n### Handling Errors\n\nBigBoardError objects have a type and error message to help determine what kind of error occurred.\n\n```swift\nopen class BigBoardError: NSObject {\n    private(set) open var type:BigBoardErrorType!\n    private(set) open var errorMessage:String!\n}\n```\n\n### Usage Information and Limits\n\n\nSince BigBoard is built on top of the Yahoo Finance API's, please take a look at this if you plan on using BigBoard for commercial use:\nhttps://developer.yahoo.com/yql/guide/usage_info_limits.html\n\n## Author\n\nDalton Hinterscher, daltonhint4@gmail.com\n\n## License\n\nBigBoard is available under the MIT license. See the LICENSE file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDaltron%2FBigBoard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDaltron%2FBigBoard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDaltron%2FBigBoard/lists"}