@@ -6,56 +6,59 @@ Complete the Send native app implementation by addressing layout issues, improvi
6
6
7
7
## Current Navigation Architecture
8
8
9
- The current navigation architecture for the Expo app is built using Expo Router v3 and follows a nested structure:
9
+ The current navigation architecture for the Expo app is built using Expo Router v3 with file-based routing and follows this structure:
10
10
11
11
1 . ** Root Layout** (` /app/_layout.tsx ` ):
12
- - Sets up the Provider, theme loading, and authentication state
13
- - Configures the main Stack Navigator with screens for:
14
- - ` index ` (splash/login screen)
15
- - ` (drawer) ` (authenticated content)
16
- - ` (auth) ` (authentication flows)
17
- - ` settings/index ` (settings screen)
18
-
19
- 2 . ** Authentication Flow** (` /app/(auth)/ ` ):
20
- - Contained in route group ` (auth) `
21
- - Includes screens for sign-up, login-with-phone, and onboarding
22
- - Uses a Stack navigator for navigation between auth screens
23
- - Implements a shared AuthLayout component for consistent UI across auth screens
24
-
25
- 3 . ** Main App Flow** (` /app/(drawer)/ ` ):
26
- - Protected by authentication check
27
- - Uses Drawer Navigator from ` expo-router/drawer `
28
- - Custom drawer content with profile info and menu items
29
-
30
- 4 . ** Tab Navigation** (` /app/(drawer)/(tabs)/ ` ):
31
- - Nested inside the drawer navigator
32
- - Currently includes: index (home), activity, profile, and earn tabs
33
- - Custom header with drawer menu toggle and "+" button
34
-
35
- ## Current Implementation Status
36
-
37
- The Expo app has implemented several key components:
38
-
39
- 1 . ** Navigation Structure** :
40
- - Drawer navigation is complete with ALL menu items:
41
- - Home, Activity, Send, Deposit, Earn, Trade, SendPot, Explore, Invest, Feed, Leaderboard, Settings
42
- - Tab navigation includes Home, Activity, Profile, and Earn
43
-
44
- 2 . ** Screens Implemented** :
45
- - Complete authentication flow (sign-up, login-with-phone, and onboarding)
46
- - Reusable AuthLayout component for consistent styling across auth screens
47
- - Consistent screen headers with configureScreenHeader utility
48
- - Home screen with optimized HomeQuickActions and TokenActivityFeed
49
- - Send flow with confirmation screen
50
- - Simple activity, profile, and earn screens
51
-
52
- 3 . ** Missing Features** :
53
- - Complete account management (backup flow, personal info, affiliate)
54
- - Enhanced SendPot with confirmation flows
55
- - Apple Pay integration
56
- - Complete deposit and withdrawal flows
57
- - Trading functionality
58
- - Implementation of Feed, Explore, and Invest content
12
+ - Sets up the main app provider, theme configuration, and global state
13
+ - Handles authentication state and routing logic
14
+ - Configures the root stack navigator
15
+
16
+ 2 . ** Main Entry Point** (` /app/index.tsx ` ):
17
+ - App entry screen (splash/home screen)
18
+ - Handles initial app state and navigation decisions
19
+
20
+ 3 . ** Authentication Route Group** (` /app/(auth)/ ` ):
21
+ - Route group for authentication flows
22
+ - Contains nested layout (` _layout.tsx ` ) for auth-specific configuration
23
+ - Screens include:
24
+ - ` auth/login-with-phone.tsx ` - Phone number authentication
25
+ - ` auth/onboarding.tsx ` - User onboarding flow
26
+ - ` auth/sign-up.tsx ` - User registration
27
+
28
+ 4 . ** Tabs Route Group** (` /app/(tabs)/ ` ):
29
+ - Main authenticated app navigation using tab-based routing
30
+ - Contains nested layout (` _layout.tsx ` ) for tab configuration
31
+ - Primary tabs:
32
+ - ` index.tsx ` - Home/dashboard screen
33
+ - ` activity/index.tsx ` - Activity feed
34
+ - ` explore/index.tsx ` - Explore section
35
+ - ` send/ ` - Send functionality with nested screens:
36
+ - ` index.tsx ` - Send screen
37
+ - ` confirm.tsx ` - Send confirmation
38
+ - ` _layout.tsx ` - Send flow layout
39
+
40
+ 5 . ** Feature-Based Screen Organization** :
41
+ - ** Account Management** (` /app/account/ ` ):
42
+ - ` index.tsx ` - Account overview
43
+ - ` edit-profile.tsx ` - Profile editing
44
+ - ` personal-info.tsx ` - Personal information management
45
+ - ` affiliate.tsx ` - Affiliate program
46
+ - ` backup/ ` - Backup credential management with confirmation flows
47
+ - ` sendtag/ ` - SendTag management (add, checkout, first tag)
48
+
49
+ - ** Financial Features** :
50
+ - ` deposit/ ` - Deposit flows (Apple Pay, crypto, debit card, success)
51
+ - ` earn/ ` - Earning features with asset-specific screens
52
+ - ` trade/ ` - Trading functionality with summary screens
53
+ - ` rewards/ ` - Rewards tracking
54
+
55
+ - ** Social & Gaming** :
56
+ - ` feed/ ` - Social feed functionality
57
+ - ` sendpot/ ` - Lottery/gaming features with ticket purchasing
58
+ - ` profile/ ` - User profile viewing with dynamic routing
59
+
60
+ 6 . ** Error Handling** :
61
+ - ` +not-found.tsx ` - 404/not found screen for invalid routes
59
62
60
63
## Next.js App Structure
61
64
@@ -90,68 +93,86 @@ The Next.js app has a comprehensive routing structure with these sections:
90
93
91
94
## Implementation Plan
92
95
93
- ### Phase 1: Navigation Structure Completion (Completed ✅)
94
-
95
- 1 . ** Enhance Drawer Navigation** ✅:
96
- - Added missing menu items (Explore, Invest, Feed) to ` (drawer)/_layout.tsx `
97
- - Ensured consistent styling with web application
98
- - Fixed navigation routing between drawer items and tabs
99
-
100
- 2 . ** Complete Auth Layout** ✅:
101
- - Added login-with-phone screen to auth flow
102
- - Created reusable AuthLayout component in packages/app/features/auth/layout.tsx
103
- - Ensured consistent styling across all auth screens by applying the shared layout
104
- - Fixed navigation nesting issues by separating navigation and UI concerns
105
-
106
- 3 . ** Create Consistent Headers** ✅:
107
- - Implemented the configureScreenHeader utility
108
- - Applied consistent headers across all screens
109
- - Fixed type issues for proper React Navigation integration
110
-
111
- ### Phase 2: Core Screen Implementation (In Progress 🔄)
112
-
113
- 1 . ** Home Screen Enhancement** ✅:
114
- - Implemented and optimized HomeQuickActions.native.tsx
115
- - Fixed and optimized TokenActivityFeed.native.tsx
116
- - Added proper skeleton loading states
117
-
118
- 2 . ** Send/Receive Functionality** ✅:
119
- - Completed send flow with confirmation screens
120
- - Implemented Send confirmation flow
121
-
122
- 3 . ** Profile Screen Completion** 🔄:
123
- - Complete profile viewing functionality
124
- - Implement profile editing
125
- - Add personal info management screens
126
-
127
- 4 . ** Activity Screen Optimization** 🔄:
128
- - Complete activity feed implementation
129
- - Optimize list rendering for mobile performance
130
- - Add proper pull-to-refresh and pagination
131
-
132
- ### Phase 3: Additional Features (Pending ⏳)
133
-
134
- 1 . ** Deposit/Withdraw Flows** ⏳:
135
- - Complete deposit options screens
136
- - Implement Apple Pay integration
137
- - Add crypto deposit/withdrawal flows
138
- - Create success and confirmation screens
139
-
140
- 2 . ** Earn & Rewards** ⏳:
141
- - Complete earn section with asset-specific screens
142
- - Implement rewards tracking
143
- - Add proper data visualization for earnings
144
-
145
- 3 . ** Trade & SendPot** ⏳:
146
- - Implement trade screens with confirmation flow
147
- - Complete SendPot with ticket buying functionality
148
- - Add ticket confirmation screens
149
-
150
- 4 . ** New Features** ⏳:
151
- - Implement Feed section
152
- - Create Explore with rewards screens
153
- - Add Invest functionality
154
- - Complete backup flow with credential management
96
+ ### Phase 1: Project Setup (Completed ✅)
97
+
98
+ 1 . ** Initial Expo Setup** ✅:
99
+ - Configure Expo project with necessary dependencies
100
+ - Set up TypeScript configuration and build tools
101
+ - Configure Metro bundler and development environment
102
+ - Set up Tamagui for consistent UI components
103
+
104
+ 2 . ** Development Environment** ✅:
105
+ - Configure ESLint and Prettier for code quality
106
+ - Set up development scripts and build processes
107
+ - Configure environment variables and app configuration
108
+ - Set up iOS and Android build configurations
109
+
110
+ ### Phase 2: Navigation Structure ✅
111
+
112
+ 1 . ** File-Based Routing Setup** ✅:
113
+ - Implement Expo Router v3 with file-based navigation
114
+ - Create route groups for authentication and main app flows
115
+ - Set up nested layouts for different app sections
116
+ - Configure tab navigation for main app features
117
+
118
+ 2 . ** Screen Structure Implementation** ✅:
119
+ - Create all necessary screen files and layouts
120
+ - Implement proper navigation flow between screens
121
+ - Set up authentication routing and protection
122
+ - Configure deep linking and navigation state management
123
+
124
+ ### Phase 3: Screen Porting and Critical Issues ✅
125
+
126
+ 1 . ** Port All Screens from Next.js** ✅:
127
+ - Transfer all authentication screens (login, signup, onboarding)
128
+ - Port main feature screens (home, activity, send, profile)
129
+ - Implement account management screens (backup, sendtag, personal info)
130
+ - Port financial features (deposit, earn, trade, rewards)
131
+ - Transfer social features (feed, profile viewing, sendpot)
132
+
133
+ 2 . ** Fix Critical Issues** ✅
134
+
135
+ ### Phase 4: Internal Distributed Build
136
+
137
+ 1 . ** Build Configuration** :
138
+ - Configure EAS Build for internal distribution
139
+ - Set up development and staging build profiles
140
+ - Configure code signing for iOS and Android
141
+ - Set up internal testing distribution channels
142
+
143
+ 2 . ** Testing Preparation** :
144
+ - Prepare internal testing builds
145
+ - Set up crash reporting and analytics
146
+ - Configure feature flags for controlled rollout
147
+ - Create testing documentation and guidelines
148
+
149
+ ### Phase 5: Issue Resolution
150
+
151
+ 1 . ** Bug Fixes and Polish** :
152
+ - Address issues found during internal testing
153
+ - Optimize performance and user experience
154
+ - Fix platform-specific issues and edge cases
155
+ - Implement accessibility improvements
156
+
157
+ 2 . ** Quality Assurance** :
158
+ - Comprehensive testing across devices and OS versions
159
+ - Performance optimization and memory management
160
+ - Security review and vulnerability assessment
161
+ - Final UI/UX polish and consistency checks
162
+
163
+ ### Phase 6: App Store Submission
164
+
165
+ 1 . ** Store Preparation** :
166
+ - Prepare app store listings and metadata
167
+ - Create app screenshots and promotional materials
168
+ - Configure app store connect and play console
169
+ - Set up app store optimization (ASO)
170
+
171
+ 2 . ** Submission Process** :
172
+ - Submit to Apple App Store for review
173
+ - Submit to Google Play Store for review
174
+ - Address any review feedback and resubmit if needed
175
+ - Plan launch strategy and rollout schedule
155
176
156
177
## Testing and Quality Assurance
157
178
@@ -202,15 +223,80 @@ You can use the following methods to verify the app is functioning correctly:
202
223
- Run automated tests on CI/CD pipeline
203
224
- See ` docs/setting-up-maestro-e2e-tests.md ` for setup information
204
225
205
- ## Next Steps (Prioritized)
206
-
207
- 1 . ✅ Update drawer navigation with missing menu items (Feed, Explore, Invest)
208
- 2 . ✅ Implement the configureScreenHeader utility for consistent headers
209
- 3 . ✅ Fix and optimize HomeQuickActions and TokenActivityFeed native components
210
- 4 . ✅ Add login-with-phone to the auth flow
211
- 5 . ✅ Complete the send flow with confirmation screens
212
- 6 . Implement profile editing and management screens
213
- 7 . Create deposit flow with crypto and fiat options
214
- 8 . Complete the earn section with rewards tracking
215
- 9 . Implement SendPot with ticket buying functionality
216
- 10 . Add explore and feed sections
226
+ ## Known Issues [ TO BE SOLVED BEFORE RELEASE]
227
+
228
+ ** Global issues** :
229
+ - visual issues, broken UI/styling
230
+ - referral code reading/writing is not working, due to implementation using cookies
231
+ - dialogs are not appearing
232
+ - QR code generation library is not working on native
233
+ - a lot os stuff is blinking all over the place, too much data fetching, too much fading
234
+
235
+ ** Project Structure** :
236
+ - prepare assets so app doesn't have to fetch images
237
+
238
+ ** Auth** :
239
+ - login issues, passkey is found but error is thrown
240
+ - passkeys for android, right now got passkeys only for ios
241
+ - app crushes on logout
242
+ - no way to input referral, url won't work on native
243
+
244
+ ** Home screen** :
245
+ - rework flow on native, web flow is built on query params, native should use stacking screen
246
+
247
+ ** Send** :
248
+ - rework flow on native, web flow is built on query params, native should use stacking screen
249
+ - sending is not stable, app sometimes crush on confirm screen
250
+ - resetting send screen state after send is done
251
+
252
+ ** Account** :
253
+ - QR code not working
254
+
255
+ ** Sendtags** :
256
+ - pricing dialog not appearing
257
+ - referral code is not working
258
+ - sendtag register is not stable, weird stuff is going on sometimes, like money gone but no sendtag
259
+ - redirect to external address is not working due to broken dialog
260
+
261
+ ** SendPot** :
262
+ - number of tickets purchased is not increased after purchase automatically, its fine after close and open again
263
+
264
+ ** Invest** :
265
+ - risk disclaimer on trade screen doesnt pop up
266
+
267
+ ** Earn** :
268
+ - referral code is not working
269
+ - earn home page doest refresh automatically after deposit
270
+ - a lot os stuff is blinking on earn
271
+
272
+ ** Activity** :
273
+ - redirect to external address is not working due to broken dialog
274
+
275
+ ** History** :
276
+ - rework flow of screens, cannot go back from profile details, history and receipt, use screen stacking
277
+ - cannot go back after pressing send button
278
+ - history scroll is broken, it behaves like standard screen, not like a chat
279
+
280
+ ** Deposit** :
281
+ - QR to deposit by crypto transfer is not working
282
+ - cannot copy address due to not working dialog
283
+ - current implementation of coinbase onramp rely on browser API, need to build version for native https://github.com/coinbase/onramp-demo-mobile
284
+
285
+ ## Planned Improvements [ POST RELEASE]
286
+
287
+ ** UX Improvements** :
288
+ - floating bottom navbar instead of standard one
289
+ - pull to refresh data
290
+ - hiding header when scrolling down
291
+ - error page when app crush
292
+ - don't nest scroll views
293
+
294
+ ** Referrals Screen** :
295
+ - number of referrals in header is missing
296
+ - refactor referrals screen to use recycler view
297
+
298
+ ** Invest** :
299
+ - redirect successful trade to better place, right now its home screen
300
+
301
+ ** Activity** :
302
+ - when you go back from details app scroll all the way up, should maintain position
0 commit comments