See LICENSE.txt
for license.
All app source code and assets copyright © 2014-2019 by MyMonero. All rights reserved.
MyMoneroCore
: Bridged MyMonero JS app core crypto code via async Swift calls; implemented specific functionality in Swift to keep synchrony
Persistence
, Lists
, Passwords
: Object encryption, document persistence, password management, and business object implementations nearly equivalent to MyMonero JS app with various improvements
OpenAlias
, DNSLookup
: DNS lookup of TXT record content for OpenAlias address resolution now implemented via zero-configuration system-level API (dnssd
) instead of via server API endpoint, enabling proper DNSSEC status validation
UICommonComponents
WalletPicker
: Diverged from JS app and original design due to mobile-specific UI by implementing wallet picker as a custom keyboard rather than hovering dropdown list.ContactPicker
: Now manages display of any 'Detected' fields (address and payment ID), and now encapsulates actual OA lookup call so it's not repeated. This can/should be ported to the JS app.There are still various namespacing improvements which can be made to the earlier Swift code and Forms
- e.g. FormViewController
should become Forms.ViewController
, FormInputField
should become Forms.InputField
, etc. in the manner of UICommonComponents/Details
.
Xcode
Cocoapods (installable with sudo gem install cocoapods
)
Node.JS and npm (to run setup
script to build MyMoneroCore
dependency JS bundle file)
Clone or download this repo.s
cd
into the repo directory.
For development/bleeding edge: Run git checkout develop
.
Important: Run ./bin/setup
.
This will set up ./Modules/MyMoneroCore
, download the required submodules, and do a pod install
.
NOTE: If you ever need to pull the latest submodule commits, you can run bin/update_submodules
.
Open ./MyMonero.xcworkspace
in Xcode.
Select the desired target device.
Build & run.
Please submit any bugs as Issues unless they have already been reported.
Suggestions and feedback are very welcome!
NOTE: Not every enhancement or GitHub issue which applies to this repository has been created in this repo in situations where the same item needs to be done for the MyMonero JS app as well. For a complete picture of open items for the iOS app, please also look at Issues labeled "All app platforms" on the JS app repo.
If you have an improvement to the MyMonero iOS app source code and would like to have your code considered for usage in the production MyMonero iOS app, we'll be happy to review any pull requests and ship your code in the production app.
The maintainer will merge nearly anything which is not destructive, which is on-brand from a design standpoint, and generally production-ready in terms of its code quality, case coverage, problem-solution fit, UI implementation parity with exact design, security, performance, et al. Contributors to the MyMonero iOS and JS apps frequently collaborate over IRC private message and in the #mymonero room on freenode.net (Come say hello!), so PR'd submissions do not have to be at all complete or perfect on their first submission. (To submit a draft PR for review, simply mark it as '[DO NOT MERGE]')
MyMonero Donation Address (XMR): 48yi8KBxh7fdZzwnX2kFCGALRcN1sNjwBHDfd5i9WLAWKs7G9rVbXNnbJTqZhhZCiudVtaMJKrXxmBeBR9kggBXr8X7PxPT
Proceeds from donations are used to fund development on the MyMonero back-end server (a performant version of which we soon™ plan to open-source for anyone to run their own server at home). Any remaining funds will go towards product (app UI) R&D, and hosting costs.
We try to credit each contributor in App Store release notes.
🍕 Tekkzbadger
(Devin Pearson) Lead maintainer; core developer
💱 j_karlos
(Karl Buys) Maintainer; core developer
🦄 fluffyponyza
(Riccardo Spagni) Advisor; MyMonero founder; Monero core team member
🏂 endogenic
(Paul Shapiro) Former core maintainer; MyMonero core contributor
🔥 mds
(Matt Smith) Mobile app variant designer
👑 john_alan
iOS Engineer / Implemented Preferences slider and switch control views