pocket-ios icon indicating copy to clipboard operation
pocket-ios copied to clipboard

Signed Out Home

Open Gio2018 opened this issue 1 year ago • 3 comments

Goal

This PR adds the Signed Out Home feature to Pocket. Specifically

  • Adds the "Skip sign in" button in the onboarding screen, that allows users to access Pocket anonymously
  • Tapping the button takes you to the signed out home, which contains recommendations and a banner that lets you sign in when you want. Tapping any Save action also prompts the user to sign in
  • Opening a native collection and tapping any Save button, prompts the login screen
  • Opening a syndicated article in the reader view and tapping any Saves button, prompts the login screen
  • Tapping "Saves" in the tab bar, shows an empty saves list with a button that lets you sign in. Tapping filter buttons and the add url button also prompt the user to sign in
  • Tapping "Settings" in the tab bar shows a settings page similar to the authenticated one, but the account section only contains a "Sign up or sign in" button.

[!NOTE] at the moment, the exit survey that follows account deletion is disabled, since the UX has changed and now takes the user to signed out home after deletion. We can discuss a potential new UX that reinstates it.

Test Steps

  • Enable the new onboarding feature flag
  • Build/run this branch, install from scratch
  • Verify the steps described in the intro or showed in the video.
  • Try multiple paths
  • Test on real devices, both iPads and iPhones
  • Delete, reinstall and verify that the original sign in button (now renamed from "Continue" to "Sign up or sign in") works as intended

Related Issues

POCKET-10292 POCKET-10293 POCKET-10294 + child issues POCKET-10295 POCKET-10297 POCKET-10298 POCKET-10300 POCKET-10318 POCKET-10375 POCKET-10401 POCKET-10413 POCKET-10414 POCKET-10415

Video

Gio2018 avatar Jul 09 '24 16:07 Gio2018

Messages
:book: No SwiftLint violations! 🎉
:book: Project coverage: 37.36%
:book: Checking XCode Environment Variables
:book: Edited 86 files
:book: Created 5 files

Analytics: Coverage: 59.21

File Coverage
SignedOut.swift 100.0%
Login.swift 26.67% ⚠️

PocketKit: Coverage: 62.56

File Coverage
LoggedOutViewController.swift 0.0% ⚠️
ShareWithYouListViewModel.swift 0.0% ⚠️
PocketAppIcon.swift 0.0% ⚠️
ReaderSettingsView.swift 69.61%
HomeViewModel.swift 66.46%
HomeCollectionViewSectionProvider.swift 49.53% ⚠️
SavesContainerViewController.swift 74.69%
PocketSubscriptionStore.swift 74.61%
RecommendableItemViewModel.swift 81.48%
ArchiveEmptyStateViewModel.swift 100.0%
HomeViewController.swift 70.25%
CollectionStoryViewModel.swift 91.55%
CollectionViewModel.swift 86.86%
LoggedOutViewModel.swift 70.11%
SavesEmptyStateViewModel.swift 100.0%
PocketBraze.swift 54.19%
SigninBannerCell.swift 56.18%
OfflineEmptyState.swift 55.0%
DebugMenuView.swift 0.0% ⚠️
SearchEmptyState.swift 100.0%
Services.swift 96.34%
SettingsView.swift 81.21%
RootView.swift 79.09%
PocketAppDelegate.swift 86.67%
RefreshCoordinator.swift 82.82%
GetPremiumEmptyState.swift 100.0%
SlateDetailViewModel.swift 83.51%
HomeCellStyle.swift 100.0%
SavedItemsListViewModel.swift 83.3%
PushNotificationService.swift 78.15%
EmptyStateView.swift 85.5%
SharedWithYouStore.swift 77.94%
RecentSearchEmptyState.swift 100.0%
AccountViewModel.swift 46.19% ⚠️
ReaderSettings.swift 62.02%
PocketAccessService.swift 69.66%
FavoritesEmptyStateViewModel.swift 100.0%
NoResultsEmptyState.swift 100.0%
TagsEmptyStateViewModel.swift 100.0%
SavesContainerViewModel.swift 63.27%
UserManagementService.swift 71.19%
RootViewModel.swift 70.9%
MainViewModel.swift 32.36% ⚠️
ErrorEmptyState.swift 0.0% ⚠️
SearchViewModel.swift 56.85%

SaveToPocketKit: Coverage: 29.0

File Coverage
SavedItemViewModel.swift 80.79%
MainViewController.swift 0.0% ⚠️
SaveToUserManagementService.swift 0.0% ⚠️

SharedPocketKit: Coverage: 63.5

File Coverage
CurrentFeatureFlags.swift 0.0% ⚠️
UIView+Utilities.swift 100.0%
LastRefresh.swift 85.33%
UserDefaultsKey.swift 95.71%
Session.swift 100.0%
AppSession.swift 100.0%
SignOutOnFirstLaunch.swift 100.0%

Sync: Coverage: 71.72

File Coverage
ItemWidgetsService.swift 0.0% ⚠️
WidgetsSessionService.swift 46.15% ⚠️

SaveToPocketKitTests: Coverage: 0.0

File Coverage
SaveToUserManagementService.swift 0.0% ⚠️
SavedItemViewModelTests.swift 0.0% ⚠️
SavedItemViewModel.swift 0.0% ⚠️
MainViewController.swift 0.0% ⚠️

SyncTests: Coverage: 22.74

File Coverage
WidgetsSessionService.swift 46.15% ⚠️
ItemWidgetsService.swift 0.0% ⚠️

Tests iOS.xctest: Coverage: 18.68

File Coverage
AnonymousModeTests.swift 100.0%
HomeTests.swift 0.0% ⚠️
LaunchEnvironment.swift 100.0%
PocketAppElement.swift 39.6% ⚠️
SettingsTests.swift 94.93%
SettingsViewElement.swift 66.67%
HomeViewElement.swift 31.88% ⚠️

SharedPocketKitTests: Coverage: 29.88

File Coverage
CurrentFeatureFlags.swift 0.0% ⚠️
UIView+Utilities.swift 100.0%
LastRefresh.swift 84.0%
UserDefaultsKey.swift 95.08%
Session.swift 100.0%
AppSession.swift 100.0%
SignOutOnFirstLaunch.swift 100.0%

ItemWidgets.appex: Coverage: 0.0

File Coverage
TopicQuery.swift 0.0% ⚠️
TopicTimelineProvider.swift 0.0% ⚠️
ItemWidgetsProvider.swift 0.0% ⚠️

AnalyticsTests: Coverage: 24.1

File Coverage
SignedOut.swift 95.0%
Login.swift 0.0% ⚠️

PocketKitTests: Coverage: 28.97

File Coverage
LoggedOutViewController.swift 0.0% ⚠️
ShareWithYouListViewModel.swift 0.0% ⚠️
PocketAppIcon.swift 0.0% ⚠️
Session.swift 100.0%
ReaderSettingsView.swift 0.0% ⚠️
HomeViewModel.swift 45.5% ⚠️
UIView+Utilities.swift 100.0%
HomeCollectionViewSectionProvider.swift 48.58% ⚠️
SavesContainerViewController.swift 51.29%
SignOutOnFirstLaunch.swift 100.0%
InstantSyncTests.swift 0.0% ⚠️
HomeViewModelTests.swift 0.0% ⚠️
PocketSubscriptionStore.swift 48.19% ⚠️
CurrentFeatureFlags.swift 0.0% ⚠️
RecommendableItemViewModel.swift 0.0% ⚠️
UserDefaultsKey.swift 95.08%
ArchiveEmptyStateViewModel.swift 0.0% ⚠️
HomeViewController.swift 46.4% ⚠️
CollectionStoryViewModel.swift 0.0% ⚠️
CollectionViewModel.swift 0.0% ⚠️
LoggedOutViewModel.swift 0.0% ⚠️
SavesEmptyStateViewModel.swift 100.0%
PocketBraze.swift 54.19%
SigninBannerCell.swift 56.18%
OfflineEmptyState.swift 0.0% ⚠️
DebugMenuView.swift 0.0% ⚠️
SearchEmptyState.swift 100.0%
Services.swift 95.81%
SettingsView.swift 91.36%
UserManagementServiceTests.swift 0.0% ⚠️
RootView.swift 84.55%
HomeRefreshCoordinatorTests.swift 0.0% ⚠️
PocketAppDelegate.swift 92.73%
RefreshCoordinator.swift 73.62%
GetPremiumEmptyState.swift 0.0% ⚠️
SlateDetailViewModel.swift 46.67% ⚠️
SavesRefreshCoordinatorTests.swift 0.0% ⚠️
RecommendableItemViewModelTests.swift 0.0% ⚠️
HomeCellStyle.swift 100.0%
SavedItemsListViewModel.swift 53.21%
PushNotificationService.swift 73.95%
EmptyStateView.swift 82.0%
SharedWithYouStore.swift 80.88%
RecentSearchEmptyState.swift 100.0%
AccountViewModel.swift 39.01% ⚠️
LastRefresh.swift 84.0%
ReaderSettings.swift 40.31% ⚠️
PocketAccessService.swift 66.29%
FavoritesEmptyStateViewModel.swift 0.0% ⚠️
LoggedOutViewModelTests.swift 0.0% ⚠️
DefaultSearchViewModelTests.swift 0.0% ⚠️
NoResultsEmptyState.swift 0.0% ⚠️
AppSession.swift 100.0%
TagsEmptyStateViewModel.swift 0.0% ⚠️
SavesContainerViewModel.swift 38.78% ⚠️
UserManagementService.swift 62.71%
RootViewModel.swift 72.39%
MainViewModel.swift 53.22%
ErrorEmptyState.swift 0.0% ⚠️
PushNotificationServiceTests.swift 0.0% ⚠️
SavedItemsListViewModelTests.swift 0.0% ⚠️
CollectionViewModelTests.swift 0.0% ⚠️
SlateDetailViewModelTests.swift 0.0% ⚠️
SearchViewModel.swift 18.78% ⚠️

Generated by :no_entry_sign: Danger Swift against 5dd97427de0582bc48e9a097b79ba6a02492197a

pocket-ci avatar Jul 09 '24 16:07 pocket-ci

@Gio2018 what do you think about removing the filters toolbar from Saves when signed out? image

dnarcese avatar Aug 08 '24 20:08 dnarcese

@Gio2018 what do you think about removing the filters toolbar from Saves when signed out? image

@dnarcese sure!

Gio2018 avatar Aug 09 '24 23:08 Gio2018