Skip to content

Commit cc8569c

Browse files
Initial commit
Generated by create-expo-app 3.5.3.
0 parents  commit cc8569c

38 files changed

+14425
-0
lines changed

.gitignore

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files
2+
3+
# dependencies
4+
node_modules/
5+
6+
# Expo
7+
.expo/
8+
dist/
9+
web-build/
10+
expo-env.d.ts
11+
12+
# Native
13+
.kotlin/
14+
*.orig.*
15+
*.jks
16+
*.p8
17+
*.p12
18+
*.key
19+
*.mobileprovision
20+
21+
# Metro
22+
.metro-health-check*
23+
24+
# debug
25+
npm-debug.*
26+
yarn-debug.*
27+
yarn-error.*
28+
29+
# macOS
30+
.DS_Store
31+
*.pem
32+
33+
# local env files
34+
.env*.local
35+
36+
# typescript
37+
*.tsbuildinfo
38+
39+
app-example
40+
41+
# generated native folders
42+
/ios
43+
/android

.vscode/extensions.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ "recommendations": ["expo.vscode-expo-tools"] }

.vscode/settings.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"editor.codeActionsOnSave": {
3+
"source.fixAll": "explicit",
4+
"source.organizeImports": "explicit",
5+
"source.sortMembers": "explicit"
6+
}
7+
}

README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Welcome to your Expo app 👋
2+
3+
This is an [Expo](https://expo.dev) project created with [`create-expo-app`](https://www.npmjs.com/package/create-expo-app).
4+
5+
## Get started
6+
7+
1. Install dependencies
8+
9+
```bash
10+
npm install
11+
```
12+
13+
2. Start the app
14+
15+
```bash
16+
npx expo start
17+
```
18+
19+
In the output, you'll find options to open the app in a
20+
21+
- [development build](https://docs.expo.dev/develop/development-builds/introduction/)
22+
- [Android emulator](https://docs.expo.dev/workflow/android-studio-emulator/)
23+
- [iOS simulator](https://docs.expo.dev/workflow/ios-simulator/)
24+
- [Expo Go](https://expo.dev/go), a limited sandbox for trying out app development with Expo
25+
26+
You can start developing by editing the files inside the **app** directory. This project uses [file-based routing](https://docs.expo.dev/router/introduction).
27+
28+
## Get a fresh project
29+
30+
When you're ready, run:
31+
32+
```bash
33+
npm run reset-project
34+
```
35+
36+
This command will move the starter code to the **app-example** directory and create a blank **app** directory where you can start developing.
37+
38+
## Learn more
39+
40+
To learn more about developing your project with Expo, look at the following resources:
41+
42+
- [Expo documentation](https://docs.expo.dev/): Learn fundamentals, or go into advanced topics with our [guides](https://docs.expo.dev/guides).
43+
- [Learn Expo tutorial](https://docs.expo.dev/tutorial/introduction/): Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web.
44+
45+
## Join the community
46+
47+
Join our community of developers creating universal apps.
48+
49+
- [Expo on GitHub](https://github.com/expo/expo): View our open source platform and contribute.
50+
- [Discord community](https://chat.expo.dev): Chat with Expo users and ask questions.

app.json

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{
2+
"expo": {
3+
"name": "codinit-expo",
4+
"slug": "codinit-expo",
5+
"version": "1.0.0",
6+
"orientation": "portrait",
7+
"icon": "./assets/images/icon.png",
8+
"scheme": "codinitexpo",
9+
"userInterfaceStyle": "automatic",
10+
"newArchEnabled": true,
11+
"ios": {
12+
"supportsTablet": true
13+
},
14+
"android": {
15+
"adaptiveIcon": {
16+
"backgroundColor": "#E6F4FE",
17+
"foregroundImage": "./assets/images/android-icon-foreground.png",
18+
"backgroundImage": "./assets/images/android-icon-background.png",
19+
"monochromeImage": "./assets/images/android-icon-monochrome.png"
20+
},
21+
"edgeToEdgeEnabled": true,
22+
"predictiveBackGestureEnabled": false
23+
},
24+
"web": {
25+
"output": "static",
26+
"favicon": "./assets/images/favicon.png"
27+
},
28+
"plugins": [
29+
"expo-router",
30+
[
31+
"expo-splash-screen",
32+
{
33+
"image": "./assets/images/splash-icon.png",
34+
"imageWidth": 200,
35+
"resizeMode": "contain",
36+
"backgroundColor": "#ffffff",
37+
"dark": {
38+
"backgroundColor": "#000000"
39+
}
40+
}
41+
]
42+
],
43+
"experiments": {
44+
"typedRoutes": true,
45+
"reactCompiler": true
46+
}
47+
}
48+
}

app/(tabs)/_layout.tsx

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { Tabs } from 'expo-router';
2+
import React from 'react';
3+
4+
import { HapticTab } from '@/components/haptic-tab';
5+
import { IconSymbol } from '@/components/ui/icon-symbol';
6+
import { Colors } from '@/constants/theme';
7+
import { useColorScheme } from '@/hooks/use-color-scheme';
8+
9+
export default function TabLayout() {
10+
const colorScheme = useColorScheme();
11+
12+
return (
13+
<Tabs
14+
screenOptions={{
15+
tabBarActiveTintColor: Colors[colorScheme ?? 'light'].tint,
16+
headerShown: false,
17+
tabBarButton: HapticTab,
18+
}}>
19+
<Tabs.Screen
20+
name="index"
21+
options={{
22+
title: 'Home',
23+
tabBarIcon: ({ color }) => <IconSymbol size={28} name="house.fill" color={color} />,
24+
}}
25+
/>
26+
<Tabs.Screen
27+
name="explore"
28+
options={{
29+
title: 'Explore',
30+
tabBarIcon: ({ color }) => <IconSymbol size={28} name="paperplane.fill" color={color} />,
31+
}}
32+
/>
33+
</Tabs>
34+
);
35+
}

app/(tabs)/explore.tsx

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
import { Image } from 'expo-image';
2+
import { Platform, StyleSheet } from 'react-native';
3+
4+
import { Collapsible } from '@/components/ui/collapsible';
5+
import { ExternalLink } from '@/components/external-link';
6+
import ParallaxScrollView from '@/components/parallax-scroll-view';
7+
import { ThemedText } from '@/components/themed-text';
8+
import { ThemedView } from '@/components/themed-view';
9+
import { IconSymbol } from '@/components/ui/icon-symbol';
10+
import { Fonts } from '@/constants/theme';
11+
12+
export default function TabTwoScreen() {
13+
return (
14+
<ParallaxScrollView
15+
headerBackgroundColor={{ light: '#D0D0D0', dark: '#353636' }}
16+
headerImage={
17+
<IconSymbol
18+
size={310}
19+
color="#808080"
20+
name="chevron.left.forwardslash.chevron.right"
21+
style={styles.headerImage}
22+
/>
23+
}>
24+
<ThemedView style={styles.titleContainer}>
25+
<ThemedText
26+
type="title"
27+
style={{
28+
fontFamily: Fonts.rounded,
29+
}}>
30+
Explore
31+
</ThemedText>
32+
</ThemedView>
33+
<ThemedText>This app includes example code to help you get started.</ThemedText>
34+
<Collapsible title="File-based routing">
35+
<ThemedText>
36+
This app has two screens:{' '}
37+
<ThemedText type="defaultSemiBold">app/(tabs)/index.tsx</ThemedText> and{' '}
38+
<ThemedText type="defaultSemiBold">app/(tabs)/explore.tsx</ThemedText>
39+
</ThemedText>
40+
<ThemedText>
41+
The layout file in <ThemedText type="defaultSemiBold">app/(tabs)/_layout.tsx</ThemedText>{' '}
42+
sets up the tab navigator.
43+
</ThemedText>
44+
<ExternalLink href="https://docs.expo.dev/router/introduction">
45+
<ThemedText type="link">Learn more</ThemedText>
46+
</ExternalLink>
47+
</Collapsible>
48+
<Collapsible title="Android, iOS, and web support">
49+
<ThemedText>
50+
You can open this project on Android, iOS, and the web. To open the web version, press{' '}
51+
<ThemedText type="defaultSemiBold">w</ThemedText> in the terminal running this project.
52+
</ThemedText>
53+
</Collapsible>
54+
<Collapsible title="Images">
55+
<ThemedText>
56+
For static images, you can use the <ThemedText type="defaultSemiBold">@2x</ThemedText> and{' '}
57+
<ThemedText type="defaultSemiBold">@3x</ThemedText> suffixes to provide files for
58+
different screen densities
59+
</ThemedText>
60+
<Image
61+
source={require('@/assets/images/react-logo.png')}
62+
style={{ width: 100, height: 100, alignSelf: 'center' }}
63+
/>
64+
<ExternalLink href="https://reactnative.dev/docs/images">
65+
<ThemedText type="link">Learn more</ThemedText>
66+
</ExternalLink>
67+
</Collapsible>
68+
<Collapsible title="Light and dark mode components">
69+
<ThemedText>
70+
This template has light and dark mode support. The{' '}
71+
<ThemedText type="defaultSemiBold">useColorScheme()</ThemedText> hook lets you inspect
72+
what the user&apos;s current color scheme is, and so you can adjust UI colors accordingly.
73+
</ThemedText>
74+
<ExternalLink href="https://docs.expo.dev/develop/user-interface/color-themes/">
75+
<ThemedText type="link">Learn more</ThemedText>
76+
</ExternalLink>
77+
</Collapsible>
78+
<Collapsible title="Animations">
79+
<ThemedText>
80+
This template includes an example of an animated component. The{' '}
81+
<ThemedText type="defaultSemiBold">components/HelloWave.tsx</ThemedText> component uses
82+
the powerful{' '}
83+
<ThemedText type="defaultSemiBold" style={{ fontFamily: Fonts.mono }}>
84+
react-native-reanimated
85+
</ThemedText>{' '}
86+
library to create a waving hand animation.
87+
</ThemedText>
88+
{Platform.select({
89+
ios: (
90+
<ThemedText>
91+
The <ThemedText type="defaultSemiBold">components/ParallaxScrollView.tsx</ThemedText>{' '}
92+
component provides a parallax effect for the header image.
93+
</ThemedText>
94+
),
95+
})}
96+
</Collapsible>
97+
</ParallaxScrollView>
98+
);
99+
}
100+
101+
const styles = StyleSheet.create({
102+
headerImage: {
103+
color: '#808080',
104+
bottom: -90,
105+
left: -35,
106+
position: 'absolute',
107+
},
108+
titleContainer: {
109+
flexDirection: 'row',
110+
gap: 8,
111+
},
112+
});

0 commit comments

Comments
 (0)