Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android app setup SNS-35 #26

Merged
merged 50 commits into from
Nov 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
2312e05
chore: Minimal runable solution
letehaha Aug 9, 2023
bacac18
docs: Add simple readme to simplify env setup
letehaha Aug 9, 2023
8a9b8bd
feat: Improve .gitignore
letehaha Aug 9, 2023
8724398
chore: revert incorrect changes
letehaha Aug 9, 2023
cce5c14
feat: Add fully workable solution
letehaha Aug 28, 2023
522c21d
chore: Fix small issues
letehaha Aug 28, 2023
0a248a5
fix: UI issues accross the app
letehaha Aug 29, 2023
7a053f5
fix: UI issues
letehaha Aug 30, 2023
9f4245d
feat: Implement wallet connection
letehaha Aug 30, 2023
3db7c68
fix: Runtime error
letehaha Aug 30, 2023
4796426
feat: Add script to build mobile apk
letehaha Aug 30, 2023
b01a245
fix: StatusBar displaying
letehaha Aug 30, 2023
58536b2
fix: Styles issues
letehaha Aug 30, 2023
b8dce28
fix: Sticky functionality on domain page
letehaha Aug 30, 2023
6230340
chore: Small fixes
letehaha Aug 30, 2023
742adde
fix: App crash if no wallets installed on the device
letehaha Aug 31, 2023
7c39a1e
fix: Broken domain tabs scroll on web
letehaha Sep 1, 2023
36bab2f
fix: App crashing when calling `wallet.authorize` on android
letehaha Sep 1, 2023
07b3feb
fix: SVG icons in the cart
letehaha Sep 1, 2023
3f90ba3
fix: Success page after purchasing
letehaha Sep 1, 2023
8725984
feat: change RPC url and move it to .env
letehaha Sep 5, 2023
f30cdc2
chore: Optimize default-pic image size
letehaha Sep 5, 2023
2d9bdf3
feat: Define correct icons for Android app
letehaha Sep 5, 2023
7f6ae88
chore: Improve Android app package name
letehaha Sep 6, 2023
076e74c
fix: APP_IDENTITY on mobile device
letehaha Sep 6, 2023
382d5e2
chore: Add solana dapp init config
letehaha Sep 6, 2023
233a0d8
feat: Add preparations for the first release
letehaha Sep 7, 2023
23e4e45
chore: Update .nvmrc
letehaha Sep 26, 2023
7cb6eb4
chore: Update solana dapp config
letehaha Sep 26, 2023
ba9667d
add addresses to config file
dr497 Sep 27, 2023
3eebe13
add address release
dr497 Sep 27, 2023
623ba02
Create .gitignore
dr497 Sep 27, 2023
484ade4
fix: application whitescreen
letehaha Sep 29, 2023
a683b24
new mobile app release
dr497 Oct 2, 2023
e2436d2
fix: app performance
letehaha Oct 3, 2023
0b890b2
chore: patch "versionCode"
letehaha Oct 4, 2023
7d726d5
new mobile release
dr497 Oct 4, 2023
d9e02e6
new mobile release
dr497 Oct 10, 2023
4b5057a
chore: code cleanup
letehaha Oct 12, 2023
2a69c60
chore: Add play-store screenshots to assets
letehaha Oct 25, 2023
d6b2581
Merge branch 'master' into feat/android-app
letehaha Oct 25, 2023
83fb647
chore: Update .gitignore
letehaha Nov 8, 2023
7621240
chore: Switch from yarn to npm
letehaha Nov 9, 2023
3ee12e2
feat: Add CI to verify all entries can be built
letehaha Nov 9, 2023
f26b3f8
fix: dependencies list to fix mobile build
letehaha Nov 9, 2023
b408a82
fix: Broken mobile build
letehaha Nov 9, 2023
6c555f5
feat: Add Privacy Policy link to Android app
letehaha Nov 10, 2023
7f29a52
fix: Update Expo app config
letehaha Nov 10, 2023
85b1180
chore: Update translations
letehaha Nov 10, 2023
1a4aebe
feat: Add Android build to CI
letehaha Nov 10, 2023
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
8 changes: 8 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
SOLANA_RPC_URL=https://rpc-public.hellomoon.io

# Solana dApp Store variables
# https://docs.solanamobile.com/dapp-publishing/setup

# Path to Android SDK build-tools. On MacOS it's usually looks like:
# /Users/<your_user>/Library/Android/sdk/build-tools/33.0.0
ANDROID_TOOLS_DIR=
31 changes: 31 additions & 0 deletions .github/actions/prepare-local-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Prepare local env
description: Prepare local environment by setup node, and cache dependencies
outputs:
cache-hit:
description: Whether the dependencies were cached
value: ${{ steps.npm-cache.outputs.cache-hit }}
runs:
using: composite
steps:
- name: Read .nvmrc
shell: bash
run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)"
id: nvm
- name: Use Node.js (.nvmrc)
uses: actions/setup-node@v4
with:
node-version: "${{ steps.nvm.outputs.NVMRC }}"
- name: Get npm cache directory
shell: bash
id: npm-cache-dir
run: |
echo "::set-output name=dir::$(npm config get cache)"
- uses: actions/cache@v3
id: npm-cache
with:
path: |
**/node_modules
${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
58 changes: 58 additions & 0 deletions .github/workflows/build-entries.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Build apps

on:
push:
branches: [master]
pull_request:
branches: [master]

jobs:
prepare-dependencies:
name: Prepare local deps
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- id: prepare-env
uses: ./.github/actions/prepare-local-env
- name: Use cache or install dependencies
if: steps.prepare-env.outputs.cache-hit != 'true'
run: npm ci

build-xnft:
name: Build xNFT
needs: prepare-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- uses: ./.github/actions/prepare-local-env
- name: Build xNFT
run: npm run build:xnft

build-web:
name: Build web
needs: prepare-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- uses: ./.github/actions/prepare-local-env
- name: Build web
run: npm run build:web

build-android:
name: Build Android
needs: prepare-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- uses: ./.github/actions/prepare-local-env
- name: 🏗 Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: Build Android
run: npm run build:mobile:prod
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,8 @@ xnft-bundle.zip

# macOS
.DS_Store
.env
.env

# Android
*.apk
.idea
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v16.18.0
v18.15.0
35 changes: 35 additions & 0 deletions PRIVACY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Privacy Policy for SNS Manager

**Last Updated:** 07/09/2023

Welcome to SNS Manager. We prioritize your privacy and have established this Privacy Policy to explain how we handle user data. Given the nature of our mobile application, the Privacy Policy is notably straightforward: We don't collect or store any of your personal data.

### 1. Information We Do Not Collect

- **Personal Information:** We do not collect any personal information like your name, email address, phone number, or address.

- **Usage Data:** We do not collect data about how you use our app.

- **Location Data:** We do not collect information about your location.

- **Device Data:** We do not collect information about your mobile device, such as the device model, operating system, or other unique device identifiers.

### 2. Third-party services

Our app might use third-party services (APIs) that have their own privacy policies. We cannot guarantee that these services do not collect information about you. We recommend reviewing the privacy policies of these third-party services if you have concerns. We strive to work with third-party services that value user privacy, but the responsibility for data collection by these services is beyond our control.

### 3. Children's Privacy

Our service does not address anyone under the age of 13. Moreover, we do not knowingly collect personal data from anyone under the age of 13. If you are a parent or guardian and you are aware that your child has provided us with personal data, please contact us so that we can take necessary actions.

### 4. Changes to This Privacy Policy

From time to time, we may update our Privacy Policy. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately after they are posted.

### 5. Contact Us

If you have any questions about this Privacy Policy, please contact us:

- **By email:** [email protected]

Thank you for using SNS Manager. We value your trust and are committed to protecting your privacy.
18 changes: 17 additions & 1 deletion app.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,23 @@
{
"expo": {
"name": "SNS Manager",
"version": "1.0.0",
"slug": "sns-manager",
"entryPoint": "./src/App"
"orientation": "portrait",
"icon": "./assets/icon.png",
"extra": {
"eas": {
"projectId": "8f89b699-2f93-4ad0-b084-d943e0bb3eb0"
}
},
"android": {
"package": "org.bonfida.sns_manager",
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#000000"
},
"versionCode": 4
},
"owner": "sns-manager"
}
}
Binary file added assets/adaptive-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/dapp-store/fida-icon-512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/default-pic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/mobile/cart-payment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/mobile/domain-profile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/mobile/domains-cart.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/mobile/homescreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/mobile/search-domains.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/tablet-10-inch/cart-payment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/tablet-10-inch/domains-cart.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/tablet-10-inch/homescreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/tablet-7-inch/cart-payment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/tablet-7-inch/domains-cart.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/play-store/tablet-7-inch/homescreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,18 @@ module.exports = function (api) {
extensions: [".js", ".jsx", ".ts", ".tsx"],
},
],
[
"module:react-native-dotenv",
{
moduleName: "@env",
path: ".env",
blacklist: null,
whitelist: null,
safe: false,
allowUndefined: true
},
],
"react-native-reanimated/plugin",
],
};
};
34 changes: 34 additions & 0 deletions eas.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"cli": {
"version": ">=4.1.0",
"appVersionSource": "local"
},
"build": {
"development": {
"node": "18.15.0",
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal",
"node": "18.15.0",
"android": {
"buildType": "apk"
},
"env": {
"SOLANA_RPC_URL": "https://helius-proxy.bonfida.com"
}
},
"production": {
"distribution": "store",
"node": "18.15.0",
"autoIncrement": true,
"android": {
"buildType": "apk"
},
"env": {
"SOLANA_RPC_URL": "https://helius-proxy.bonfida.com"
}
}
}
}
4 changes: 4 additions & 0 deletions metro.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// Learn more https://docs.expo.io/guides/customizing-metro
const { getDefaultConfig } = require('expo/metro-config');

module.exports = getDefaultConfig(__dirname);
Loading
Loading