bit-nation / bitnation-pangea-mobile Goto Github PK
View Code? Open in Web Editor NEWPangea iOS and Android repository
License: MIT License
Pangea iOS and Android repository
License: MIT License
Currently, Some visual styles are set inside of components. See the file, src/components/common/NationListItem.js
All visual styling should be in central, global style files
We use "Demo" for features that are for show only. Change the "Demo" label to read "Coming Soon".
This SHOULD be assigned to mimetic, who is david.mimetic
Keep ... in mind
As a user I can see the splash screen when app open
In comments, below, is a JPG of a useable splash screen.
As a user, if you do not have a private key, then you cannot have a wallet, nor create a nation.
You will be warned to get a private, and/or be guided to create a private key.
Private Key Flow Notes.pdf
In the future, there may be different private keys for different activities, e.g. nation-building, wallets, documents. Expect more decision making like this to come, especially with the implementation of a simple "Key Chain".
Panthalassa (or no pangea libs) has some new features etc. We need to update it.
As a developer I need an easy way to sign my project for ad-hoc build's and releases.
The label text is extending outside the View element in simulator. Might do so in real app? Bug?
See the SwitchLabeled.js component. Styles are in global/Styles.js
Keep ... in mind
The App's current version stores the User's Profile information only into the device memory so it does not persists through several uses. Need to implement the saving of this information in Panthalassa.
App should stores User's Profile information, persists and be accesible also from all versions (mobile and desktop). Please provide me the functions to implement this behavior on the mobile version.
As a user I would like to see a dashboard when I open the app that show's different thing's like my wallet balance and so on.
There must be mosaic code somewhere. However, see this code for a possible solution to the mosaic layout (for now) : GeekyAnts/react-native-easy-grid@a6fa694
https://invis.io/HTF508H5Z
(Contact David Gross for permissions)
There is a fundamental issue in service container, actually ethWeb3Instance is NOT a Web3 instance, but IS a promise that resolves into Web3 instance, however we pass it as Web3 instance to another constructors. That surely leads to crash on using Web3 instance methods (since there is no actually an instance, but promise).
Export not a container object but promise that returns a container. Requires changes across all the app.
Consistent footer nav provided for all indicated screens (see each ticket created for each screen)
This issue is closed with the menu functionality is provided as defined for the specified screens (see each ticket).
See attached file.
Status bar can be on/off, depending on app settings.
When we specify the navigation area, it draws from the top of the screen, under the status bar, instead of starting below the status bar.
The "fake" navigation bar switches between status bar height and one navigation height (there should be two kinds of navigation)
In our basic screen layout, the status bar is mixed in with the Navigation, which is the next row on the screen.
User can enter a space for name and/or location, and then they are an "empty" user.
□ Trim user entry of spaces front and back
□ If username is empty, then mark as empty (missing) profile and discard location
Devs will find it useful to have ESLint installed.
Setting up ESLint for Webstorm isn't 100% obvious if you don't know ESLint.
Recommendation: Set up ESLint for React Native.
Use global install because otherwise, you have to reinstall if you reinstall the project.
If you want to make ESLint available to tools that run across all of your projects, we recommend installing ESLint globally. You can do so using npm:
$ npm install -g eslint
You should then setup a configuration file:
$ eslint --init
After that, you can run ESLint on any file or directory like this:
$ eslint yourfile.js
Any plugins or shareable configs that you use must also be installed globally to work with a globally-installed ESLint.
Note: eslint --init is intended for setting up and configuring ESLint on a per-project basis and will perform a local installation of ESLint and its plugins in the directory in which it is run. If you prefer using a global installation of ESLint, any plugins used in your configuration must also be installed globally.
Keep ... in mind
The Google Play store, and the Apple iTunes App Store, both require graphics to display in the store.
The iTunes Store only requires a large-sized icon, which I can included in the icon files inside the build.
Files are attached below, as comments.
Users need to be able to jump to a chat for a nation.
Functionality will come in a later version
Design shows this...done in code?
Need icon graphic design for the menu bar.
Review file structure and technical details in Readme and update it to current version.
Issue:
When editing or creating the Profile, the app forces the user to enter a location.
How to fix:
The location is optional, and can be left empty.
Since chat is not ready, we cannot share ETH addresses on our chat to allow someone to send money.
It is common to transfer ETH from outside Bitnation.
Therefore, we need a way to share a Bitnation wallet address outside the system, e.g. email, chat, etc.
App needs to be restructure
It is not clear how to place and position major elements on screens, including navigation. If the status bar were to be hidden, everything would break because we don't have a structure that accommodates it.
We want modularity.
Make a generalized page layout view, with sections in the comment below.
Usage behavior when a user opens the Pangea application and is already logged in
This feature is complete when the application interaction is consistent with that which is documented in the attached interaction flow diagram
See attached files
Logged In Mode v1.pdf
Functionality in support of wallet capability
this is satisfied when the feature and application look and feel has been delivered consistent with that which is defined in the attached interaction flow diagram and screen images.
See attached images
https://invis.io/HTF508H5Z
Contact David Gross if you do not have permissions to see.
The instructions in Project Setup are incomplete.
npm install
cp .env.dev.example to .env
cd ios
pod install
cd ..
[ ] Add ESLint setup: Combination of these :
- To set the Google JavaScript Style Guide as default
Open the ﹍Code Style. JavaScript﹍ page (in the Settings/Preferences dialog (⌘,), choose Editor | Code Style | JavaScript), click Set from, and then choose Predefined Style |Google JavaScript Style Guide. The style will replace your current scheme.- http://www.codeblocq.com/2016/03/Setup-ESLint-in-WebStorm/
If you don't like the Google JavaScript Style Guide, then change the above instructions.
Text for the UI should be stored in a global file so that it is easy to make changes.
For example, a "label" for a form field should be stored in this global file. That is, in a form, the label "Nation Name" should be stored in the global file.
legalCodeCommon: 'Common Law',
legalCodeCivil: 'Civil Law',
should be
"legalCode": {
"common": "Common Law",
"civil": "Civil Law"
}
(note the .json format), and used like Strings.t('legalCode.common').
We need the eth daemon lightnode since we need to access the ETH network.
Pls keep in mind to update the doc's.
Nations functionality (screen and function)
Satisfied when the screens deliver upon the look, feel, form, and function as defined in the attached document and as indicated in the attached interaction flow document
See attached. Seek kent for clarification
https://invis.io/HTF508H5Z
Contact David Gross if you do not have permissions to see.
Sometimes bitrise fails. It seem's to be a kind of random. The error:
▸ Copying /Users/vagrant/git/node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf
▸ Compiling LaunchScreen.xib
▸ Processing Preprocessed-Info.plist
▸ Generating 'Pangea.app.dSYM'
▸ Running script 'Bundle React Native code and images'
the transform cache was reset.
❌ error: File /Users/vagrant/Library/Developer/Xcode/DerivedData/Pangea-aiqbjxbwbwzexecwjgzgojuzeleo/Build/Intermediates.noindex/ArchiveIntermediates/Pangea/BuildProductsPath/Release-iphoneos/Pangea.app/main.jsbundle does not exist. This must be a bug with
** ARCHIVE FAILED **
The following build commands failed:
PhaseScriptExecution Bundle\ React\ Native\ code\ and\ images /Users/vagrant/Library/Developer/Xcode/DerivedData/Pangea-aiqbjxbwbwzexecwjgzgojuzeleo/Build/Intermediates.noindex/ArchiveIntermediates/Pangea/IntermediateBuildFilesPath/Pangea.build/Release-iphoneos/Pangea.build/Script-00DD1BFF1BD5951E006B06BC.sh
(1 failure)
[22:43:23]: Exit status: 65
have a look at this
I can't build the project for ios with the linked realm library. I am getting this error:
** BUILD FAILED **
The following build commands failed:
CompileC /Users/florian/project/BITNATION-Pangea-mobile/ios/build/Build/Intermediates.noindex/RealmJS.build/Debug-iphonesimulator/GCDWebServers.build/Objects-normal/x86_64/GCDWebServer.o /Users/florian/project/BITNATION-Pangea-mobile/node_modules/realm/vendor/GCDWebServer/GCDWebServer/Core/GCDWebServer.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
CompileC /Users/florian/project/BITNATION-Pangea-mobile/ios/build/Build/Intermediates.noindex/RealmJS.build/Debug-iphonesimulator/GCDWebServers.build/Objects-normal/x86_64/GCDWebServerConnection.o /Users/florian/project/BITNATION-Pangea-mobile/node_modules/realm/vendor/GCDWebServer/GCDWebServer/Core/GCDWebServerConnection.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
CompileC /Users/florian/project/BITNATION-Pangea-mobile/ios/build/Build/Intermediates.noindex/RealmJS.build/Debug-iphonesimulator/GCDWebServers.build/Objects-normal/x86_64/GCDWebServerDataRequest.o /Users/florian/project/BITNATION-Pangea-mobile/node_modules/realm/vendor/GCDWebServer/GCDWebServer/Requests/GCDWebServerDataRequest.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
CompileC /Users/florian/project/BITNATION-Pangea-mobile/ios/build/Build/Intermediates.noindex/RealmJS.build/Debug-iphonesimulator/GCDWebServers.build/Objects-normal/x86_64/GCDWebServerDataResponse.o /Users/florian/project/BITNATION-Pangea-mobile/node_modules/realm/vendor/GCDWebServer/GCDWebServer/Responses/GCDWebServerDataResponse.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(4 failures)
Installing build/Build/Products/Debug-iphonesimulator/Pangea.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist
Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/Pangea.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist
on my branch (panthalassa/db
).
yarn run ios
Create global 'styles.js' that everything loads for visual styles, e.g. NationListItem.js should load global styles.js.
The component can override styles, or add new styles if it needs to.
When a user clicks "chat" in the bottom nav, a chat mock-up appears. it's entirely static and merely indicates intended direction in a future release.
Accepted when the functionality reflects that which is specified in the attached image.
See attached image.
https://invis.io/HTF508H5Z
Contact David Gross if you do not have permissions to see.
The app must validate input to ensure the user doesn't add a value which could corrupt the Dapp or circumvent security
See if we can get a review from Mawo, but reference this:
https://www.owasp.org/index.php/Input_Validation_Cheat_Sheet
When running the light node I am getting this error: Failed to retrieve data from network err="no suitable peers available"
. See here for more details. It seem's like that it takes some time to solve the problem so it might be better to go with infura.io for this release. That's a bid more centralised but work's at least.
Show a series of screens when the app is first opened.
Do not show after user has created a profile or a private key.
Code "screens" as one javascript screen file, using swipe between the picture+texts.
Use "responsive" images, meaning be sure to resize to fit screen. The images provided should cover even the largest screen (iPhone X)
iPhone X screen is 2436 x 1125. Next largest is 1080x1920
Graphics are background images, I think we can go for 1080 x 1920 in size.
As a developer I need to access panthalassa.
This ticket pertains to the application's look and feel. Specifically, the:
This issue is complete when every screen in the application utilizes the approved styling, pertaining to fonts, sizing, colors, and background image.
Application must take into account customization conventions regarding sizing, fonts, etc
See attached.
For clarification, contact Kent (@florianlenz can you add me so I can tag myself pls?)
Latest colors and styles can be found in the Newest UI Design Screens.
As a user ... Cows are nice to me.
I sure like them.
For some reason, this is NOT sync'd in GitHub?
Panthalassa (an external lib) is mostly written in flow (flow is an opt in type checker (like typescript)). When I start the project with yarn run ios
it's starting correct (no transpile errors). BUT when I run the test's I am getting this error:
Test suite failed to run
/Users/florian/project/BITNATION-Pangea-mobile/node_modules/BITNATION-Panthalassa/src/specification/secureStorageInterface.js:7
export interface SecureStorage {
^^^^^^
SyntaxError: Unexpected token export
34 | return sSImplementation;
35 |
> 36 | }
37 |
at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:318:17)
at Object.<anonymous> (src/services/panthalassa/secureStorage.js:36:181)
at Object.<anonymous> (__tests__/src/services/panthalassa/secureStorage.js:1:109)
Basically jest don't use babel correctly.
We need to connect the pangea lib's wallet with the UI in order to send / receive eth.
If the user has not uploaded a picture, we must show a generic avatar
Files for use are below as comments.
When I try to run the app, I got the following error.
$ npm run ios
Error: src/services/container.js:19 19: const ethWeb3Instance = web3(ethDaemon, ee, ethUtilsInstance); ^^^^^^^^^^^^^^^^ EthUtilsInterface. This type is incompatible with the expected param type of 15: export default function web3Factory(node: JsonRpcNodeInterface, ethUtils: EthUtilsInterface, networkAccess: boolean): Promise<Web3> { ^^^^^^^ boolean. See: node_modules/BITNATION-Panthalassa/src/ethereum/web3.js:15
This error is occurred in Panthalassa, please fix this issue quickly.
iOS and Android have specific requirements for app icons, loading screens, etc., required for publication.
Android store is Google Play store.
Assume we are publishing to Google Play store.
In order to see screens, debug, and design the app, I have to be able to change modes, and get assets, etc., without going through long processes.
For example, to see the wallet, I need a way to magically get a wallet without going through the long secret key process.
Like with video games: you don't want to play to level 65 every time you want to see the colors on screen 65!
It is very hard and slow (and sometimes impossible) to debug and design without this system. Not having it is holding up a lot of my work.
the ability for users to create and edit a profile.
Satisfied when the application function and look and feel reflects that which is specified in the attached images and interaction flow (see associated ticket for look and feel)
See attached images and document
https://invis.io/HTF508H5Z
Contact David Gross if you do not have permissions to see.
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.