Git Product home page Git Product logo

lockwise-ios's People

Contributors

abodea avatar brianlitwin avatar changecourse avatar devinreams avatar dvrzan avatar eoger avatar irrationalagent avatar isabelrios avatar jhugman avatar joeyg avatar kaylagalway avatar krisrjack avatar linuxwolf avatar michaelgill1969 avatar mozilla-github-standards avatar pdehaan avatar pike avatar sashei avatar simonbasca avatar st3fan avatar travis79 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lockwise-ios's Issues

Search / filter list of saved entries

Acceptance criteria

  • Typing in the search bar dynamically changes the list of entries
  • Search should filter the URL, username, and entry/title
  • The results should appear in the order that they're returned from the database (no additional support for organizing results at this time)
  • the cancel button appears in the search bar when text has been entered
  • tapping the cancel button clears the current search text & restores the full list of entries

Visual Design

Invision
Default: https://mozilla.invisionapp.com/share/XCEV238ZD#/267560598_Entry_List
Filtered: https://mozilla.invisionapp.com/share/XCEV238ZD#/283633648_Entry_List_-_Searching

Zeplin
Default: https://zpl.io/aBOOd4L
Filtered: https://zpl.io/aRNpKpN

No entries state, prompt for authentication with FxA on other devices (mobile or desktop) to retrieve synced logins

When I have no entries visible in my Lockbox, I need to know how to access my saved logins via sync on my other devices, so I can get them on app

Acceptance criteria

  • Should inform users how to hook up a device to get logins in the Lockbox app

  • Should acknowledge the other (rare?) use case where there may not be any logins is that the user has not saved logins on any device (This will be handled as a disclaimer in the TxP experiment description and corresponding app description)

NOTE This is a change from the original story which assumed logins would be coming from the extension.

Tasks

(Updates to current empty state)

  • Update copy to: Lockbox lets you access passwords you've already saved to Firefox. To view your entries here, you'll need to sign in and sync with Firefox for desktop.
    Link: “Learn more >” (Learn more link opens FAQ to anchored section)
  • Replace treasure chest image with placeholder entries image
  • Add filter bar in disabled state

"Learn more" link directs to: https://lockbox.firefox.com/faq.html#how-do-i-enable-sync-on-firefox

Visual Design

InVision
https://mozilla.invisionapp.com/share/XCEV238ZD#/268085847_Entry_List_-_Empty_State

Zeplin
https://zpl.io/VxKMpdg

Add support for iOS biometric APIs to unlock app data

When accessing Lockbox, I want to be able to use Touch or Face ID instead of my password for security and convenience.

Visual Design

InVision
Touch ID: https://mozilla.invisionapp.com/share/XCEV238ZD#/288717368_Welcome_-_Returning_User_-_TouchID
Touch ID w/ prompt: https://mozilla.invisionapp.com/share/XCEV238ZD#/267560531_Welcome_-_Returning_User_-_Touch_ID
Face ID: https://mozilla.invisionapp.com/share/XCEV238ZD#/267560535_Welcome_-_Returning_User
Face ID w/ prompt: https://mozilla.invisionapp.com/share/XCEV238ZD#/288719841_Welcome_-_Returning_User_-_Face_ID

Zeplin
Touch ID: https://zpl.io/V0ZW5xO
Touch ID w/ prompt: https://zpl.io/2Ewwx5M
Face ID: https://zpl.io/aRNL9Ln
Face ID w/ prompt: https://zpl.io/b6leoDd

tasks:

  • launch biometric auth from WelcomeView
  • successful auth dispatches unlock action

Depends on #171

JavaScript wrapper with callbacks to DataStore code

Right now, it's impossible to chain observables querying .js functions that are async because the evaluateJavascript function does not do async code.

There needs to be an extension / wrapper for the Datastore class that calls back to the appropriate Swift method to complete observables in the datastore when an async function completes.

Additionally, this will require the datastore initializer to get more robust, as we need to pass each callback to the .js runtime when initializing the webview.

Signing into mobile for the first time

As an existing Lockbox user,* I need to first log into my Firefox Account to access my saved entries.

(*)For Alpha, to use the iOS Lockbox app, you have to already be an existing Lockbox user on desktop. There isn't a path to start first in mobile, yet.

Acceptance criteria

  • Should be able to complete the 2-factor fxa authentication with code
  • Should have immediate access to read-only list of existing entries

Visual Design

designs: https://mozilla.invisionapp.com/share/7JEUG47ZU#/screens/267560515

ToDo

  • Interstitial page with Signin with your firefox account button
  • FxA login with cancel button

Access list of saved entries

Upon signing into the Lockbox app, I want to be able to quickly access an app or website with my saved credentials.

Acceptance criteria:

  • Should have immediate access to list of saved credentials

To start, this is a read-only access to those entries

no search bar or A-Z selector

ToDo

  • fleshed-out routing architecture
  • gradient for navbar

Copy / Paste credentials from details view

When I need to access an account, I want to copy the username or password so that I can easily paste those credentials into the native app or mobile browser where I'm logging in.*

(*) Without seamless app or browser integration, copy/paste is the best option for getting a user log in access on iOS.

Acceptance criteria

  • Should be able to copy username from details view
  • Should be able to copy password from details view
  • Should be informed of copied credential (see mozilla-lockwise/lockbox-extension#318)
  • Should be able to navigate out of the Lockbox app, to either app or mobile browser, to paste copied credentials

Visual design

https://mozilla.invisionapp.com/share/7JEUG47ZU#/screens/267560603

ToDo

  • username field
  • password field
  • confirmation toast

Research options for populating credentials in iOS apps

In research of the Alpha extension, we're seeing evidence that users expect autofill to recall credentials.

The expectation for mobile is that it is primarily a reference to already stored credentials, and users prioritize efficiency when accessing accounts. Given that, what are our options for streamlining authentication on iOS?

This will be helpful in informing UX as we get closer to needing an interface.

iOS App Kick-Off

  • establish product requirements
  • to build out the backlog of features

Access detail view for saved entry

When I need to access an account, I want to see an entry's details to either copy credentials to my clipboard or view the username / password, so that I can easily put those credentials into the app or mobile browser.

Acceptance criteria

  • Should be able to get to the details of a saved entry including URI, username, password, notes if available
  • Should not see notes field if not populated

Visual design

https://mozilla.invisionapp.com/d/main#/console/12774944/267560603/preview
https://mozilla.invisionapp.com/share/XCEV238ZD#/279614760_Entry_Detail_-_Empty
https://mozilla.invisionapp.com/share/XCEV238ZD#/279614759_Entry_Detail_-_Address_Filled
https://mozilla.invisionapp.com/share/XCEV238ZD#/279655252_Entry_Detail_-_With_Notes

Expected behavior

  • tap row in list to go to "detail view"
  • view details of that entry
    • hide notes not populated
    • show placeholder text for username, password, and URL if not populated

Investigate options for download

For Alpha, we're expecting this to be invite-only.

Opening this to explore our download options with Test Flight & BuddyBuild with pros and cons with each. This will help our scope where we want to release (which platforms).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.