A simple currency converter for iOS
Swift Ruby

README.md

Currency for iOS

View of the Currency app for iOS running on an iPhone

This project is a simple currency converter app for iOS, built by a designer while learning iOS development in Swift. It is available on the App Store for free to download here.

Motivation

This project is a learning exercise in Swift programming. I seek primarily to get feedback and critique on the code written for this project, but feedback on the overall design and idea is also welcome.

Swift

This project is written in Swift 3.

Installation

This project uses CocoaPods. Below is the setup to configure Cocoa Pods in your machine.

To install Cocoa Pods, run:

$ sudo gem install cocoapods

To install the required pods for this project, change to the project directory and run:

$ pod install

API Reference

This project makes use of the Yahoo Query Language (YQL) API to get currency exchange rates. You can test query statements on the YQL Console.

An example YQL statement to fetch the USD to JPY exchange rate looks like:

select * from yahoo.finance.xchange where pair in ("USDJPY")

And the resulting XML REST query looks like:

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDJPY%22)&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys

Initial Data

For this project an initial database is created with the currency data from this Google Spreadsheet. Please add a comment if some of the data is incorrect. Exchange rates are updated using the Yahoo API above while the app is being used as rates fluctuate daily.

Tests

There are no tests written for this application so far.

Translations

I am looking for help translating the application. Please email me if you're willing to help. Here is the list of current translations:

  • English (en)
  • French (fr), thanks to Slim Ewies
  • German (de), thanks to Simon Schmid
  • Chinese (Simplified) (zh-Hans), thanks to Xin Nie
  • Chinese (Traditional) (zh-Hant), thanks to Xin Nie
  • Japanese (ja), thanks to Asuka Yamashita
  • Spanish (es), thanks to Alex Abian
  • Spanish (Mexico) (es-MX)
  • Italian (it)
  • Dutch (nl)
  • Korean (ko), thanks to Honey Chang
  • Portuguese (Brazil) (pt-BR)
  • Portuguese (Portugal) (pt-PT), thanks to Jack Veiga
  • Danish (da)
  • Finnish (fi)
  • Norwegian Bokmål (nb)
  • Swedish (sv), thanks to Daniel Stenberg
  • Russian (ru)
  • Polish (pl)
  • Turkish (tr), thanks to Tolga Kilinc
  • Arabic (ar)
  • Thai (th)
  • Czech (cs)
  • Hungarian (hu)
  • Catalan (ca)
  • Croatian (hr)
  • Greek (el)
  • Hebrew (he)
  • Romanian (ro)
  • Slovak (sk)
  • Ukrainian (uk)
  • Indonesian (id), thanks to Visien Vinesa
  • Malay (ms)
  • Vietnamese (vi)

Contribute

This is a project by Nuno Coelho Santos. All contributions in the form of pull requests or comments are welcome. If you experience problems with the project, please open an issue and give as much detailed information as you can.