mymonero / mymonero-app-ios Goto Github PK
View Code? Open in Web Editor NEWThe MyMonero native iOS app
License: BSD 3-Clause "New" or "Revised" License
The MyMonero native iOS app
License: BSD 3-Clause "New" or "Revised" License
Currently investigating feasibility on this.
Add tooltip on "QR Code" in Request details saying "Tap QR code to display scannable payment form."
I had to go so far as custom building an objective-c lvl integration with dnssd to get DNSSEC support (ended up being simpler than Swift - although I did build it in Swift at first) … but DNSSEC support was unfortunately unable to be reliably completed. Details in code and via collab with Paul… but the gist is unexpected validation return values.
See https://github.com/mymonero/mymonero-app-ios/blob/master/Modules/DNSLookup/DNSLookup.m
figure out why DNSSEC status comes in only sometimes - and why it's sometimes bogus, sometimes undetermined, … is this a race condition, or related to some bad link in the trust chain in most networks, or something else?
reflect DNSSEC validation status with new badge/seal, warnings, and error icons in icon+label component ala 'Detected' in Contact Picker
implement Switch control for settings and 'OpenAlias DNSSEC OK required'
But, blocked by #38
and also possibly place the whole fieldset below white separator line with other optional items
For example, constrain the action buttons' width
But make sure to detect whether it has changed before rebuilding or it will impair iteration speed
Expand QR display view to allow multiline information display label and add payment id and contact name (the latter in parentheses rather than instead of the addr) to text
Must ensure that this will works on all screen formats and through all orientation transitions.
Behavior (possible bug) of UITableView which doesn't call didEndDisplayingHeader when cell animates header off screen, causing animations to be canceled in WalletDetails 'Scanning…' indicator, but view thinks it is still animating.
At first, the contact picker results input accessory view will have a y offset which is too great by ~30px, but upon resigning first responder and refocusing input field, results input accessory view is no longer visible
Not sure if necessary.
In the JS app, which is implemented to the original Sketch design of the desktop app, the Import Transactions button is displayed within the no transactions empty state view on WalletDetails. In the iOS app, a section header view is used to display the Scanning blocks indicator atop the transactions section. This same header view is used in the iOS app to also show the import transactions button when necessary. Ordinarily the two options never need to be shown at the same time. To show them at the same time in the iOS app, I would either move the Import Transactions button down to the no transactions empty state table cell view, or make the section header view able to have a dynamic height and show the two subviews stacked on top of each other vertically when necessary.
App is currently partially accessible due to (generally) proper use of UIKit and initial UI automation (by accessibility identifier) for screenshot generation – but I can imagine that a prompt like "So we know it's you", while great visually, wouldn't make too much sense as the only context clue if only heard in spoken word.
Not sure why this is happening. Might have started in testing on iOS 11. Does not appear to be code function regression. Happens under iOS 11 on both device and sim. Haven't checked iOS < 11.
Enable send btn w/o needing a recipient entered - and show error to 'please specify the recipient of this transfer'
It had to be disabled (temporarily?) because landscape gets clipped on the bottom of non-x, non-plus screens in ios 11 - appears landscape tab bar is too big - not due to app code change, happened on update - investigated new ios 11 SDK support but ran into issues - we reasoned that landscape wasn't critical for iPhone (despite it being desirable for plus and x screens) - left branch https://github.com/mymonero/mymonero-app-ios/tree/WIP_ios11_nonplusnonx_landscape
Also note that if landscape support is re-enabled, we will also need to fix the Emoji picker Popover's bug / lack of support for safeAreaInsets or the popover will underlap the sensor area.
Also note: might also need to revert and solve the problem behind the .never scroll update changes of 02f20e8
And maybe in one or two other places where appropriate … but collab with @paulshapiro first as it's imperative that haptics not be over-used.
May require going from a Table to a CollectionView. Should save lots of screen space. Probably does away with requirement to scroll contact/address input field all the way to top of Send page when it becomes first responder - nice UX win. Users should already be used to scrolling through a list of autocomplete results based on what they're typing in a text field.
It may also be useful in the future for UX flows which are mutually exclusive from the display of contact autocomplete results, such as OpenAlias decisions (or something else) but that will have to be done carefully.
See the ContactPicker resolution - deinit occurred on cancel despite network requset callback hanging around, causing crash on self access - usage of weak lets us check
(because a specific issue already exists for that)
Note: This is not necessarily desirable and would have to work with upcoming server/API improvements
Use NetService to check availability of custom server as part of server address form submission task - else error inline w/input field ala style on illegal user input string
i.e. construct url/request and pass along at scan lvl if it decodes
seen this from some exchanges
Was looking at using the new iOS 11 big nav bar sizes on the pw entry view and maybe settings as initial targets, and I'd have enabled them, but the ConnectivityMessageView would need that fix to add safeArea support before we can support different nav bar sizes. Is there another way to do the ConnectivityMessageView hierarchy but retain all its visibility properties?
Analog: mymonero/mymonero-app-js#141
Would be a very minor feature but on import fee sending modal, I figure that there's a chance the user might have already got another wallet with some funds already imported… but if we've just added this existing wallet which needs to be imported, it might appear at the top of the 'from wallet' select / dropdown list … even though it would still have a 0 balance
First localization targets depend of course on demand.
App as a coding standard already wraps display strings in NSLocalizedString() – any missing cases are mistakes by omission. However, these NSLocalizedString() calls do not currently include any comments to the strings to be localized.
Help wanted in translating the app's text! All usable contributions will be appreciatively credited.
(Note: These translations will also be able to be used in https://github.com/mymonero/mymonero-app-js)
This would probably be best accomplished incrementally
probably use UITableView's built-in reordering support but collab with P to confirm design/UX
Involves removing application of user defaults - see comment and code in SendFundsFormViewController/passwordController_DeleteEverything()
See mymonero/mymonero-app-js@cc8066c
No specific reason except that it's better to remove the user defaults mechanism completely and simplify.
Requires making same decisions as mymonero/mymonero-app-js#17
Although, app polling server can't run in bg on iOS so if we want reliable notifications of e.g. outgoing txs being confirmed, it would have to be a remote notification - but that may work well for cross-platform purposes.
clearButtonMode .always, but doesn't appear to work
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.