Skip to content

Comments

Refactored Login#131

Merged
i2h3 merged 13 commits intodevelopfrom
97-refactored-login
Jun 6, 2025
Merged

Refactored Login#131
i2h3 merged 13 commits intodevelopfrom
97-refactored-login

Conversation

@i2h3
Copy link
Collaborator

@i2h3 i2h3 commented May 22, 2025

This resolves #97.

@i2h3 i2h3 self-assigned this May 22, 2025
@i2h3 i2h3 added the enhancement New feature or request label May 22, 2025
@i2h3
Copy link
Collaborator Author

i2h3 commented May 22, 2025

Work Left To Do

  • Improve appearance on iPad. Right now, the views were written for iPhone and might need some adaption here and there to not melt across the whole large screen like cheese.
  • Consult designers about user experience feedback since this differs from both Nextcloud Files and Nextcloud Talk apps in the details for technical and organizational reasons.

Considerations

  • Horizontal orientation
  • Vertical orientation
  • iPhone
  • iPad
  • Light appearance
  • Dark appearance

@i2h3 i2h3 force-pushed the 97-refactored-login branch from 2e05b73 to 1c28736 Compare May 23, 2025 08:43
@i2h3 i2h3 added this to the 4.4.0 milestone May 23, 2025
@i2h3 i2h3 force-pushed the 97-refactored-login branch from fce160b to d81dcd9 Compare May 26, 2025 09:44
@i2h3
Copy link
Collaborator Author

i2h3 commented May 26, 2025

Demo Screen Recordings

  • The accounts shared by other apps like Nextcloud Files are available in a selection sheet.
  • That sheet appears automatically on first appearance of the login and with availability of shared accounts.
  • The QR code scanner cannot show actual camera view due to being run in Simulator.
  • The notes are loaded automatically on login now which did not happen before.
  • The settings are updated with account information instead of login form and a previously missing logout button.

iPhone

97-demo-iphone-simulator-github.mp4

iPad

97-demo-ipad-simulator-github.mp4

@i2h3 i2h3 requested a review from mpivchev May 26, 2025 09:54
@i2h3 i2h3 marked this pull request as ready for review May 26, 2025 09:54
@i2h3 i2h3 requested a review from marinofaggiana May 26, 2025 09:55
Copy link
Member

@jancborchardt jancborchardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice! :) Small improvement: Rather than the icon-only buttons on the bottom, it would be nice if they have text. Probably "Add existing account" (is that the proper wording?) and "Log in with QR code".

@jancborchardt jancborchardt moved this to 🏗️ At engineering in 🖍 Design team May 26, 2025
@i2h3 i2h3 force-pushed the 97-refactored-login branch from d81dcd9 to 580aae5 Compare May 26, 2025 13:15
@i2h3
Copy link
Collaborator Author

i2h3 commented May 26, 2025

Alternative Login Method Design Changes

To have buttons with labels, the layout must be adapted to account for localization problems due to varying text lengths.

iPhone SE (3rd Gen) in Portrait Orientation

FramedScreenshot_1

iPhone 16 Pro Max in Portrait Orientation

FramedScreenshot_3

iPad in Landscape Orientation

FramedScreenshot_0

iPad in Portrait Orientation

FramedScreenshot_2

@i2h3 i2h3 force-pushed the 97-refactored-login branch from 580aae5 to c057467 Compare May 27, 2025 09:24
@i2h3 i2h3 mentioned this pull request May 27, 2025
@mpivchev
Copy link
Collaborator

image

This looks really nice, can we move it to Files as well 😆

@mpivchev
Copy link
Collaborator

Can this be a fullscreen modal? it will then be similar to Files iOS
image

Copy link
Collaborator

@mpivchev mpivchev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Localization needs to be added

@kra-mo
Copy link
Member

kra-mo commented May 29, 2025

Very nice indeed!

I just have two pieces of feedback about wording:

  1. "Shared Accounts" and the corresponding description are a bit too much. For one, "Shared Accounts" sounds like a brand name for a feature, especially because of how its capitalized. Our writing style is sentence-case throughout which is usually sometimes followed even in our platform-native apps* The description also seems a bit wordy. How about dropping the description and just having "Accounts from other apps" as the title?
  2. The "Log Out" button is outside the "Account" section in Settings, but the version numbers are in there. Could the two basically just be swapped? :)

*We should make sure capitalization is consistent across our iOS apps. I'm personally pro title case as it is what the platform guidelines recommend, but right now it's completely inconsistent. It would be nice to agree on one and coordinate changing all strings to match it.

@i2h3
Copy link
Collaborator Author

i2h3 commented Jun 2, 2025

  1. "Shared Accounts" and the corresponding description are a bit too much. For one, "Shared Accounts" sounds like a brand name for a feature, especially because of how its capitalized. Our writing style is sentence-case throughout which is usually sometimes followed even in our platform-native apps* The description also seems a bit wordy. How about dropping the description and just having "Accounts from other apps" as the title?

What part are you referring to exactly, @kra-mo? I assume you only mean the single sheet title, right? I updated it.

Accounts from other Apps

*We should make sure capitalization is consistent across our iOS apps. I'm personally pro title case as it is what the platform guidelines recommend, but right now it's completely inconsistent. It would be nice to agree on one and coordinate changing all strings to match it.

Platform conventions always beat corporate practice in my opinion. Out of experience, one will loose with the latter by reaching inevitable limitations at some point. You should probably discuss this with @jancborchardt who has the opposite opinion.

@i2h3
Copy link
Collaborator Author

i2h3 commented Jun 2, 2025

Can this be a fullscreen modal? it will then be similar to Files iOS

The files and talk apps are inconsistent already, @mpivchev. Also, the master-detail navigation pattern used in the files app is conflicting with the back and forth inside the web view, creating a two level back- and forth navigation. The sheet provides a conventional experience for the cancellable and modal process in front. It maintains the usual swipe down gesture to dismiss. It also is more consistent with the presentation on larger screens like iPad. I updated the sheet to not have a navigation bar anymore which only occupies screen space without any value.

This also is a design decision to a large extend and if this is a serious concern, then we should rather discuss it in a larger round with the designers.

@kra-mo
Copy link
Member

kra-mo commented Jun 2, 2025

What part are you referring to exactly, @kra-mo? I assume you only mean the single sheet title, right? I updated it.

Thanks, I think this looks great now. I will discuss with Jan then :)

Copy link
Member

@jancborchardt jancborchardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Platform conventions always beat corporate practice in my opinion. Out of experience, one will loose with the latter by reaching inevitable limitations at some point. You should probably discuss this with @jancborchardt who has the opposite opinion.

@i2h3 just discussed with @kra-mo as well, and to be clear: I also think that platform conventions should be the primary thing followed. This is also why we refer the Apple HIG in our design guidelines, and why we say to use SF Symbols (rathr than Material Design icons), and the San Francisco font, etc. :)

@i2h3 i2h3 force-pushed the 97-refactored-login branch from c057467 to c6a7747 Compare June 3, 2025 12:04
@i2h3 i2h3 requested review from jancborchardt and mpivchev June 3, 2025 13:32
@i2h3
Copy link
Collaborator Author

i2h3 commented Jun 3, 2025

@mpivchev @jancborchardt @kra-mo 4.4.0 build 2 available in TestFlight now: https://testflight.apple.com/join/m7C1rYuN

@i2h3
Copy link
Collaborator Author

i2h3 commented Jun 5, 2025

@mpivchev @jancborchardt You need to review again and check for your requested changes to be implemented. I still need your approval before I can integrate this.

i2h3 added 13 commits June 5, 2025 14:26
…ews and moved it into the buildable folder for the associated target.

Signed-off-by: Iva Horn <iva.horn@icloud.com>
…ode style enforcement for the future.

Signed-off-by: Iva Horn <iva.horn@icloud.com>
…folder for the associated target.

Signed-off-by: Iva Horn <iva.horn@icloud.com>
…dable folder for the associated target.

Signed-off-by: Iva Horn <iva.horn@icloud.com>
…yboard.

Signed-off-by: Iva Horn <iva.horn@icloud.com>
- Enabled generated asset symbol extensions.
- Removed unnecessary build files from iOCNotes build target.
- Renamed "Embed App Extensions" build phase of iOCNotes build target.
- Updated build settings.
- Enabled parallelization in command-line builds.

Signed-off-by: Iva Horn <iva.horn@icloud.com>
Project:
- Slightly refined SwiftLint configuration.

Views and Business Logic:
- Introduced central Store for global app state and as a persistence API.
- Introduced CodeScanner dependency for easy QR code scanning in SwiftUI.
- Added required views for login and compartmentalized important business logic into protocols which they conform to.
- Added SwiftUI sheet for suggesting shared accounts which also pre-fill the username in the login flow.
- Notes are synchronized automatically for the first time immediately after login without the need of a manual pull to refresh first.
- Notes table view controller now observes the Store.isSynchronizing to present the synchronization activity accordingly.
- Login features have been removed from settings.
- Settings have been extended with displaying account information instead.
- Added logout button with confirmation alert to app settings.
- Removed obsolete and unused login scenes from storyboard.
- Removed obsolete NCShareAccounts storyboard and code.
- Removed obsolete code from SettingsTableViewController and SettingsView.

Assets:
- Introduced accent color in the new default asset catalog with the Nextcloud blue.
- Introduced brand logo in the new default asset catalog.

Signed-off-by: Iva Horn <iva.horn@icloud.com>
Signed-off-by: Iva Horn <iva.horn@icloud.com>
Signed-off-by: Iva Horn <iva.horn@icloud.com>
It needs to be maintained manually and is redundant with the much more accessible display in the app settings.

Signed-off-by: Iva Horn <iva.horn@icloud.com>
Signed-off-by: Iva Horn <iva.horn@icloud.com>
Signed-off-by: Iva Horn <iva.horn@icloud.com>
Signed-off-by: Iva Horn <iva.horn@icloud.com>
@i2h3 i2h3 force-pushed the 97-refactored-login branch from c6a7747 to cf4582b Compare June 5, 2025 12:26
Copy link
Member

@jancborchardt jancborchardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have access to an iOS device until Friday late eve – but since @kra-mo said that it looks great now, I'd consider it approved from design side. :)

@i2h3 i2h3 requested a review from jancborchardt June 5, 2025 13:57
@i2h3
Copy link
Collaborator Author

i2h3 commented Jun 5, 2025

@jancborchardt What I meant was pressing the button to now approve this pull request because GitHub blocks it otherwise. 😄 As visible in the checks, you requested changes. I could probably dismiss your review but it would be incorrect. You just need to approve on GitHub this time.

Copy link
Member

@jancborchardt jancborchardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@i2h3 here you go, nice work! :)

@i2h3
Copy link
Collaborator Author

i2h3 commented Jun 5, 2025

Now only @mpivchev needs to review again and approve, hopefully. 🙂

Copy link
Collaborator

@mpivchev mpivchev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM :) Just one question

@i2h3 i2h3 merged commit 526f281 into develop Jun 6, 2025
1 check passed
@github-project-automation github-project-automation bot moved this from 🏗️ At engineering to 🎉 Done in 🖍 Design team Jun 6, 2025
@i2h3 i2h3 deleted the 97-refactored-login branch June 6, 2025 12:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Enhance login view

4 participants