Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 4 additions & 33 deletions mobile/.gitignore
Original file line number Diff line number Diff line change
@@ -1,37 +1,8 @@
# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files

# dependencies
node_modules/

# Expo
.expo/
dist/
web-build/
expo-env.d.ts

# Native
.kotlin/
*.orig.*
*.jks
*.p8
*.p12
*.key
*.mobileprovision

# Metro
.metro-health-check*

# debug
npm-debug.*
yarn-debug.*
yarn-error.*

# macOS
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# MacOS
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Minor: Use standard macOS capitalization.

"MacOS" should be "macOS" per Apple's official naming.

-# MacOS
+# macOS
 .DS_Store
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# MacOS
# macOS
.DS_Store
🤖 Prompt for AI Agents
In mobile/.gitignore around line 7, the comment uses "MacOS" but should follow
Apple’s official capitalization "macOS"; update the comment text from "MacOS" to
"macOS" to correct the spelling.

.DS_Store
*.pem

# local env files
.env*.local

# typescript
*.tsbuildinfo
14 changes: 0 additions & 14 deletions mobile/App.js

This file was deleted.

15 changes: 0 additions & 15 deletions mobile/api/auth.js

This file was deleted.

117 changes: 0 additions & 117 deletions mobile/api/client.js

This file was deleted.

47 changes: 0 additions & 47 deletions mobile/api/groups.js

This file was deleted.

38 changes: 27 additions & 11 deletions mobile/app.json
Original file line number Diff line number Diff line change
@@ -1,35 +1,51 @@
{
"expo": {
"name": "frontend",
"slug": "frontend",
"platforms": ["ios", "android", "web"],
"name": "Splitwiser Mobile",
"slug": "splitwiser-mobile",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "light",
"newArchEnabled": true,
"splash": {
"image": "./assets/splash-icon.png",
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true,
"infoPlist": {
"NSPhotoLibraryUsageDescription": "Allow Splitwiser to select a group icon from your photo library."
}
"bundleIdentifier": "com.splitwiser.mobile"
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
},
"edgeToEdgeEnabled": true,
"permissions": ["READ_MEDIA_IMAGES"]
"package": "com.splitwiser.mobile"
},
"web": {
"favicon": "./assets/favicon.png"
"favicon": "./assets/favicon.png",
"bundler": "metro"
},
Comment on lines +29 to 31
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Avoid potential confusion around duplicated newArchEnabled flags

You’re enabling the new architecture both via:

  • the expo-build-properties plugin (android.ios.newArchEnabled) and
  • the top‑level "newArchEnabled": true.

To reduce drift and future confusion, consider relying on a single source of truth (typically the plugin config) and remove the top‑level flag if it’s no longer required in your target Expo SDK, after confirming with current Expo docs.

Also applies to: 32-48

🤖 Prompt for AI Agents
In mobile/app.json around lines 29-31 (also applies to lines 32-48), there are
duplicated newArchEnabled settings: one under the expo-build-properties plugin
(android.ios.newArchEnabled) and a top-level "newArchEnabled": true; remove the
top-level "newArchEnabled" entry so the plugin config is the single source of
truth (after you confirm the top-level flag is not required by the Expo SDK
version you target), leaving only the plugin-controlled setting and updating any
documentation/comments to note the plugin is authoritative.

"plugins": [
"expo-router",
"expo-font",
[
"expo-build-properties",
{
"android": {
"newArchEnabled": true
},
"ios": {
"newArchEnabled": true
}
}
]
],
"scheme": "splitwiser",
"newArchEnabled": true,
"extra": {
"eas": {
"projectId": "afe97159-52c4-425a-9ce3-c56d4f2cb568"
Expand Down
40 changes: 40 additions & 0 deletions mobile/app/_layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Remove unused DarkTheme import.

DarkTheme is imported but never used in this file.

-import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
+import { DefaultTheme, ThemeProvider } from '@react-navigation/native';
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
import { DefaultTheme, ThemeProvider } from '@react-navigation/native';
🤖 Prompt for AI Agents
In mobile/app/_layout.tsx around line 1, the DarkTheme import from
'@react-navigation/native' is unused; remove DarkTheme from the import list so
only DefaultTheme and ThemeProvider are imported to eliminate the unused import
warning and keep imports minimal.

import { useFonts } from 'expo-font';
import { Stack } from 'expo-router';
import * as SplashScreen from 'expo-splash-screen';
import { useEffect } from 'react';
import { Inter_400Regular, Inter_700Bold } from '@expo-google-fonts/inter';
import { SpaceGrotesk_400Regular, SpaceGrotesk_700Bold } from '@expo-google-fonts/space-grotesk';
import "../global.css";
import { StatusBar } from 'expo-status-bar';

// Prevent the splash screen from auto-hiding before asset loading is complete.
SplashScreen.preventAutoHideAsync();

export default function RootLayout() {
const [loaded] = useFonts({
Inter_400Regular,
Inter_700Bold,
SpaceGrotesk_400Regular,
SpaceGrotesk_700Bold,
});

useEffect(() => {
if (loaded) {
SplashScreen.hideAsync();
}
}, [loaded]);

if (!loaded) {
return null;
}

return (
<ThemeProvider value={DefaultTheme}>
<Stack>
<Stack.Screen name="index" options={{ headerShown: false }} />
</Stack>
<StatusBar style="dark" />
</ThemeProvider>
);
}
Loading
Loading