hooligram / hooligram-client Goto Github PK
View Code? Open in Web Editor NEWReact Native app for Hooligram
React Native app for Hooligram
Subtask of #57
It is best to implement this as soon as v1 so we won't have issues forcing clients to update on major releases.
Issues:
We need to figure out a better name for package.json
files since @hooligram/...
prefix will cause can't find module name error from tests.
I realize we maybe need to force client to fetch migration script from server, otherwise there is no way the client can get the latest migration scripts without upgrade or codepush.
I have sketched some rough strategy but I'm not sure if this is over the top nor do I know what's the best practice for mobile database migration, but here it is:
I think we should rename presenter to container since I think it's better to use a common Redux.js verbs.
Refer #80.
The file names are not consistent and it's not obvious why certain name convention is used. For example hooligramApi.js
& persistence-api.js
Currently will get error if not on remote debugging
Components that know about the store should be separated into a containers directory.
INIT
to APP:STARTUP
so it becomes more obviousWEBSOCKET
actions and API
actionspersistence
& api
actions in correct orderLinked issue: hooligram/hooligram-server#53
https://www.npmjs.com/package/react-native-push-notification
use react-native-firebase push notifications module (https://rnfirebase.io/)
Compared to wscat the app websocket seems to be slow and sometimes it fails to capture success/failure event from the server.
react-native-dotenv
has been very buggy in picking up changes in .env file -- it is very annoying to add, for example, a new line just to trigger it to pick up the changes and even then it may not work and even when it does work you cannot remove the added new line or else your changes to .env will be ignored again without you realizing it.
I suggest we migrate to react-native-config
which I have used at work. Never had a problem with it so far.
link: https://github.com/luggit/react-native-config
I think we should put all the action types in one place. Actions are/should be the only way to change the state of the app. Putting them in one place will make it easy to understand the code base. As of now, they are scattered across the app. If we put all possible action types in one place, it will be easier to draw out the Finite State Machine (FSM) later.
run test pre-push, push should fail if not all tests pass and message should be displayed.
https://facebook.github.io/react-native/docs/signed-apk-android
This will help to debug the issue with websocket onmessage
not getting events sometimes. I think it might be due to the development environment.
I think we should move hooligram-api
& persistence-api
directories to app\apis
directory. Once in there, let's name them hooligram
& persistence
The expression used against action type in persistence middleware is incorrect:
if (
action.type.startsWith('PERSISTENCE:') && (
!action.type.match(/API:(.*)_SUCCESS/) ||
!action.type.match(/API:(.*)_FAILURE/)
)
) {
// do not save state to storage
return
}
// save state to storage
When:
Action is dispatched that is not an api response
Expected:
State should not be persisted
Actual:
State is persisted
So far we've been using whatsapp theme color. Need to have our own.
Subtasks:
Things to consider:
initialization
screenSo far, every time the app starts up, it will go through onboarding. Once #47 is merged, we should work on enabling the app to:
I just found a way to connect to local server: storybook-eol/react-native-storybook#107
I will add an instruction to README.md something like the following
ws://localhost:8080
(see hooligram-server README on how to run server locally)API_HOST=ws://localhost:8080
in .env
fileadb tcp:8080 tcp:8080
yarn android
API_INIT_SUCCESS
is being loggedThis is ugly and, most importantly, likely to cause issues in the future:
yarn install v1.12.3
[1/4] Resolving packages...
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > [email protected]" has incorrect peer dependency "react-native-vector-icons@^4.2.0".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/plugin-proposal-class-properties > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/plugin-proposal-object-rest-spread > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/plugin-proposal-optional-chaining > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/plugin-transform-flow-strip-types > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
warning "babel-preset-react-native > @babel/plugin-transform-react-jsx > @babel/[email protected]" has incorrect peer dependency "@babel/[email protected]".
[4/4] Building fresh packages...
warning Your current version of Yarn is out of date. The latest version is "1.13.0", while you're on "1.12.3".
hooligram-client/app/state/actions/forms.js
Lines 1 to 41 in 5c37cca
Reasoning:
Currently all text files are defined within components. I don't think this is proper practice for localization. What do you think? @cglotr
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.