Giter Site home page Giter Site logo

guillaumehussong / galoy-mobile Goto Github PK

View Code? Open in Web Editor NEW

This project forked from galoymoney/blink-mobile

1.0 0.0 0.0 164.94 MB

The Everyday Bitcoin Wallet

Home Page: https://www.blink.sv

License: MIT License

Shell 0.55% JavaScript 0.86% Ruby 0.33% C 0.01% Objective-C 0.01% Java 0.02% TypeScript 97.82% Objective-C++ 0.04% Makefile 0.02% Dockerfile 0.05% Starlark 0.08% Kotlin 0.08% Nix 0.14%

galoy-mobile's Introduction

GaloyMobile

Galoy Logo

Goal

This repository is the Blink mobile application. The goal is to make a mobile application compatible with Galoy's backend that can be customized and used by any community or organization. It is built with React Native, and runs on both iOS and Android.

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4

Developing

The development docs are in DEV.md

Contributing

If you wish to contribute see CONTRIBUTING.MD

Notes for Running on M1 Mac:

The app currently only builds for x86_64 simulators. Simulators prior to IOS 13.7 are x86_64 by default, however starting with 13.7 they become platform specific. In order to get an x86_64 simulator of a newer IOS version, one must set XCode to open in emulation using Rosetta. To run the project, open GaloyApp.xcworkspace in XCode, choose an x86_64 simulator, and click the play button. This should start the Metro bundler in a new terminal as well as launch the simulator with the app.

Running Storybook

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

In index.js, change SHOW_STORYBOOK to true and reload the app and run yarn storybook.

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.

E2E testing:

see readme

Local development with libraries

The mobile app uses the galoy-client for generic functions, such as parsing bitcoin transactions, lightning invoice, or managing translations across the different frontend of the Galoy stack. If you want to make changes to the galoy-client locally to test changes in the app e.g. you want to add a key to the translations file this is the steps you should take. Since the metro bundler does not support yarn link, we have to use yalc.

Before you run these commands the client will need to be published using yalc. Instructions for this are included in the readme for the client.

npx yalc add @galoymoney/client

When you are finished developing locally and are ready to push to github you will need to remove the yalc dependency using the following command.

npx yalc remove @galoymoney/client

Adding new fonts

These instructions are correct as of react-native 0.69. If you are using a different version, you may need to adjust the instructions.

  1. Add the new fonts to the app/assets/fonts directory.
  2. Run yarn fonts to link the font files to the native projects.
  3. You should see the new font in the ios/GaloyApp/Info.plist file and the android/app/src/main/assets/fonts directory.

Adding translation keys

To add a new string to be used in the application navigate to en/index.ts and add the phrase you need in english. Proceed to run the command yarn update-translations. This command will update the translation types as well as the raw english translation file. The new phrase can now be used throughout the application, with all languages falling back to the english translation.

Warning: Do not update files in the raw translations folder. These files are managed programtically.

Icons

Warning We use react-native-vector-icons in this repo. Our main component library react-native-elements also uses the icons from this set in some of the components. We have added custom icons from the Ionicons sets to the existing components we import from the library. If you import a new component from react native elements which uses an icon from a set which isn't Ionicons then it might not render on the screen.

Debugging

You can use the react native debugger with chrome or a standalone tool called react-native-debugger https://github.com/jhen0409/react-native-debugger to set breakpoints. With that tool you can view state with the included apollo dev tools. To enabled debugging you must turn off hermes in Android android/gradle.properties set hermesEnabled=false (at least, until this is fixed: facebook/react-native#35600)

galoy-mobile's People

Contributors

adam-stover avatar aditi-singh16 avatar circle-bot avatar cryptosalomao avatar danarchos avatar danwebb1 avatar daviroo avatar dependabot[bot] avatar dolcalmi avatar eimolina avatar extheoisah avatar galoybot avatar galoybot-app[bot] avatar galoybot-circleci avatar jrbuhl93 avatar krtk6160 avatar leesalminen avatar maxwelldg avatar mfferreira avatar mohsen-ghafouri avatar nicolasburtey avatar ntheile avatar prakhar-agarwal-byte avatar rimbener avatar samerbuna avatar sandipndev avatar secondl1ght avatar transifex-integration[bot] avatar unclesamtoshi avatar vindard avatar

Stargazers

 avatar

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.