Coder Social home page Coder Social logo

likecoin / likecoin-app Goto Github PK

View Code? Open in Web Editor NEW
40.0 5.0 19.0 68.92 MB

Liker Land App - https://liker.land/getapp

Home Page: https://liker.land

License: GNU General Public License v3.0

Ruby 0.74% Java 1.80% TypeScript 94.98% JavaScript 0.19% Shell 0.36% Objective-C 0.25% Starlark 0.19% Makefile 0.15% C++ 0.69% Objective-C++ 0.65%
likecoin likerland react react-native typescript

likecoin-app's Introduction

Liker Land App

Liker Land on iOS/Android Mobile

Configuration

For overriding configuration, it can be done by editing .env file and change the REMOTE_CONFIG_ENABLE setting to false.

If the configuaration is cached, please restart the Metro Bundler by running yarn start:clean to reset the cache.

Quick Start

The Ignite Bowser boilerplate project's structure will look similar to this:

ignite-project
├── app
│   ├── components
│   ├── i18n
│   ├── utils
│   ├── models
│   ├── navigation
│   ├── screens
│   ├── services
│   ├── theme
│   ├── app.tsx
├── storybook
│   ├── views
│   ├── index.ts
│   ├── storybook-registry.ts
│   ├── storybook.ts
├── test
│   ├── __snapshots__
│   ├── storyshots.test.ts.snap
│   ├── mock-i18n.ts
│   ├── mock-reactotron.ts
│   ├── setup.ts
│   ├── storyshots.test.ts
├── README.md
├── android
│   ├── app
│   ├── build.gradle
│   ├── gradle
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   ├── keystores
│   └── settings.gradle
├── ignite
│   ├── ignite.json
│   └── plugins
├── index.js
├── ios
│   ├── IgniteProject
│   ├── IgniteProject-tvOS
│   ├── IgniteProject-tvOSTests
│   ├── IgniteProject.xcodeproj
│   └── IgniteProjectTests
├── .env
└── package.json

./app directory

Included in an Ignite boilerplate project is the app directory. This is a directory you would normally have to create when using vanilla React Native.

The inside of the src directory looks similar to the following:

app
│── components
│── i18n
├── models
├── navigation
├── screens
├── services
├── theme
├── utils
└── app.tsx

components This is where your React components will live. Each component will have a directory containing the .tsx file, along with a story file, and optionally .presets, and .props files for larger components. The app will come with some commonly used components like Button.

i18n This is where your translations will live if you are using react-native-i18n.

models This is where your app's models will live. Each model has a directory which will contain the mobx-state-tree model file, test file, and any other supporting files like actions, types, etc.

navigation This is where your react-navigation navigators will live.

screens This is where your screen components will live. A screen is a React component which will take up the entire screen and be part of the navigation hierarchy. Each screen will have a directory containing the .tsx file, along with any assets or other helper files.

services Any services that interface with the outside world will live here (think REST APIs, Push Notifications, etc.).

theme Here lives the theme for your application, including spacing, colors, and typography.

utils This is a great place to put miscellaneous helpers and utilities. Things like date helpers, formatters, etc. are often found here. However, it should only be used for things that are truely shared across your application. If a helper or utility is only used by a specific component or model, consider co-locating your helper with that component or model.

app.tsx This is the entry point to your app. This is where you will find the main App component which renders the rest of the application. This is also where you will specify whether you want to run the app in storybook mode.

./ignite directory

The ignite directory stores all things Ignite, including CLI and boilerplate items. Here you will find generators, plugins and examples to help you get started with React Native.

./storybook directory

This is where your stories will be registered and where the Storybook configs will live

./test directory

This directory will hold your Jest configs and mocks, as well as your storyshots test file. This is a file that contains the snapshots of all your component storybooks.

Running Storybook

From the command line in your generated app's root directory, enter yarn run storybook This starts up the storybook server.

In app/app.tsx, change SHOW_STORYBOOK to true and reload the app.

For Visual Studio Code users, there is a handy extension that makes it easy to load Storybook use cases into a running emulator via tapping on items in the editor sidebar. Install the React Native Storybook extension by Orta, hit cmd + shift + P and select "Reconnect Storybook to VSCode". Expand the STORYBOOK section in the sidebar to see all use cases for components that have .story.tsx files in their directories.

Credit

Original boilerplate made by Infinite Red, released under MIT LICENSE

License

Copyright 2018-2020 LikeCoin Foundation

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html

Additional Permissions For Submission to Apple App Store: Provided that you are otherwise in compliance with the GPLv3 for each covered work you convey (including without limitation making the Corresponding Source available in compliance with Section 6 of the GPLv3), LikeCoin Foundation also grants you the additional permission to convey through the Apple App Store non-source executable versions of the Program as incorporated into each applicable covered work as Executable Versions only under the Mozilla Public License version 2.0 (https://www.mozilla.org/en-US/MPL/2.0/).

likecoin-app's People

Contributors

aurorahuang22 avatar chiyi4488 avatar ckxpress avatar denkeni avatar dependabot[bot] avatar edmondyu avatar nwingt avatar phoebepoon avatar shellyyg avatar weijun0827 avatar williamchong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

likecoin-app's Issues

Support setting amount and memo remark in QR code

Currently our QR code only contains user wallet address

In our future design, we want the app to prefill LIKE amount and memo after scanning a QR code generated by an eshop. Maybe the QR code should contain something expandable, like JSON instead?

Stats view

  • Civic Liker report
  • Creator rewards report

無法登入的問題

使用的是iOS系統,不管是用google 還是FB登入都有同樣問題,登入帳號後開始讀取,會進入頁面(但是只有Logo圖案和轉動的圈圈),幾秒後就又自動跳回Sign in的畫面,無限迴圈,無法登入。

iOS version 11.3.1

Add analytics event on which session expired

Current on App launch/resume we will try to resume user's sessions in authcore, like.co and liker.land. However since the any failed check would call logout and void all session, we cannot properly analysis the actual statistic of which session expired most. Sam could apply to 401/403 errors

Expected: Add analytics event stating which specific session/cookie expired on session resume or 401/403 http error

Support deeplink/app protocol for mobile website to call transfer screen

Currently we support scanning and displaying a QR code for users to tranfer LIKE, which fits desktop use case ( desktop website display QR code, users scans their desktop monitor in our app). However in mobile website it is not possible to scan QR code on a same phone.

We should support either an app protocol or deeplink in mobile. When users click such link, they should be redirected from a mobile website/app to liker land app transfer screen. The deep link should support transfer params like target wallet address/amount/memo.

We could also use deeplink on current existing https://like.co/{likerId}/{amount} website, which is currently not used anyway. When user with our app lands on the page, we could just redirect them to app's transfer screen.

Fail to login if default browser is not chrome in android

(need more details, haven't reproduced yet)
Android user with both firefox and chrome installed and default set to firefox reports authcore popup shows a blank page, no matter which browser he selects.

Device: android 10, sony

(Feature draft) Sending LIKE via deeplink to unregistered users

LIKE Sender (APP):

  1. Click some new button to trigger this feature
  2. GET request to get personal purse address
  3. Set LIKE amount, number of recipient, and randomize of not in UI
  4. Sign a tx with LIKE amount to purse address
  5. POST to create temp tx, payload: { amount, number_of_recipients, txHash }
  6. Receive a deep-link that can be shared via mobile share panel or clipboard
    (7. view status of purse in a new UI)
    (8. if > 24 hours temp tx is not claimed, expire the temp tx and trigger jedi to return fund to user wallet)

LIKE Recipient (without APP):

  1. Click deeplink to install and register likerland app
  2. new UI to claim tx, click claim LIKE, POST to claim temp tx endpoint
  3. API trigger jedi to sign the tx to send the LIKE in purse to recipient, reduce remaining like of that temp tx if more than 1 recipient.
  4. Recipient receive (randomized) LIKE.

LIKE Recipient (APP)

  1. Click deep-link to open app, directly go to claim tx UI.
    same as above from 2.

TODO:

  1. GET API which creates purse wallet for user if not exists.
  2. Mobile UI to create temp tx and claim temp tx. Maybe one to view sent tx status.
  3. POST API to handle temp tx creation and claim logic. claim API should trigger jedi to send LIKE to recipient.
  4. Deep-link generation and open support at correct timing
  5. Proper share panel and payload for above deep-link

Fetch infinite loop if `/users/${id}/min` returns 404

Description: I am running a development build by setting build number to 167, I have reactron open and after logging in, I observed that user profile and details API call starts an infinite loop that eats up my CPU. It seems that the app is loading some non-exist user profile from /users/${id}/min endpoint, which causes infinite loop due to missing error handling.

Reproduce:

  1. Build app with testnet config
  2. Login to app with any account
  3. Switch to feature list, observe API calls run into infinite 404 loop

Expect:
Handle 404 and do not infinite loop

Loading time is long when reopening app

Description: I am already logged in into the app once. I switched away from the app and it was killed in background. After I open it again, I am stuck in the loading screen for ~ 5 to 10 seconds

Expected: After it was killed, relaunching the app again should be quick for user that already has already logged in.

TODO:

  1. We should profile and investigate what is causing the long load time, esp if the app loading is casued by waiting by some http async calls. (Should be easy using reactotron)
  2. After proper profile and listing out blocking calls in the app launch timeline, we can determine whether we should defer, not await, or Promise.all() some async calls.

Only update access token if its expired

Currently we store the refresh token into keychain, and refresh the token everytime the app was killed/launched. We should also store access token into keychain, and only refresh it when it expires.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.