All Projects → blockmason → lndr-mobile

blockmason / lndr-mobile

Licence: other
LNDR mobile app in React Native

Programming Languages

typescript
32286 projects
objective c
16641 projects - #2 most used programming language
java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to lndr-mobile

rust android ios
Android / iOS app with shared Rust logic
Stars: ✭ 182 (+1200%)
Mutual labels:  ios-app, android-app
mobile-app
This project aims to build a modern mobile web-app based on the framework Ionic to improve the functionality of http://mobile.leitstelle122.at/.
Stars: ✭ 22 (+57.14%)
Mutual labels:  ios-app, android-app
dev-feed
Flutter-based mobile app displaying a list of daily curated content from top engineering blogs and articles. Backed by a GraphQL-based API written in Kotlin..
Stars: ✭ 20 (+42.86%)
Mutual labels:  ios-app, android-app
Ionic Starter Template
Reinventing the wheel, again! Sorry Ionic Team... but there are many newbies learning on Youtube!
Stars: ✭ 208 (+1385.71%)
Mutual labels:  ios-app, android-app
Ionic-ElastiChat-with-Images
Ionic Magic Chat with Angular Elastic, Autolinker.js and more!
Stars: ✭ 66 (+371.43%)
Mutual labels:  ios-app, android-app
Uniapp Admin
Muti-platform management system for uniapp, H5, Android, IOS, Min Program
Stars: ✭ 226 (+1514.29%)
Mutual labels:  ios-app, android-app
ethereum-kit-ios
Comprehensive EVM SDK (ex: Ethereum, Binance Smart Chain) for iOS, implemented on Swift. Create wallets, watch wallets (read-only), sync transactions, filter transactions by type (erc20, bep20, swap transactions etc.), swap using native DEX protocols, easily extendable to work with custom smart contracts, and full support for EIP1159.
Stars: ✭ 148 (+957.14%)
Mutual labels:  ethereum-wallet, ethereum-dapp
E Commerce Complete Flutter Ui
youtu.be/0z-igs267xw
Stars: ✭ 2,380 (+16900%)
Mutual labels:  ios-app, android-app
InstaSmart
A Flutter app to plan and beautify your Instagram feed
Stars: ✭ 18 (+28.57%)
Mutual labels:  ios-app, android-app
justBreathe
A minimal meditation app made with Flutter
Stars: ✭ 47 (+235.71%)
Mutual labels:  ios-app, android-app
Flutter For Wordpress App
🎃 Cross-platform wordpress news app built with Flutter and WP REST API.
Stars: ✭ 157 (+1021.43%)
Mutual labels:  ios-app, android-app
defiprime
All things #DeFi - trustless and transparent financial products built on top of the blockchain.
Stars: ✭ 117 (+735.71%)
Mutual labels:  ethereum-wallet, ethereum-dapp
App Privacy Policy Generator
A simple web app to generate a generic privacy policy for your Android/iOS apps
Stars: ✭ 2,278 (+16171.43%)
Mutual labels:  ios-app, android-app
flutter todos
A cross platform todo list app using flutter, sqlite etc. If you read the code, you will understand how to create simple elegant mobile app using Flutter and Dart language.
Stars: ✭ 60 (+328.57%)
Mutual labels:  ios-app, android-app
Todayx
🌈Flutter App:🎊「今日份的X」(每天推荐一个:图片、诗歌、名言、音乐、乐评、高等数学、两种配色、化学方程式、Github Repo、知乎问题、文章)
Stars: ✭ 128 (+814.29%)
Mutual labels:  ios-app, android-app
anonaddy
Mobile app for AnonAddy.com.
Stars: ✭ 50 (+257.14%)
Mutual labels:  ios-app, android-app
Wordpress App With Flutter
Fully Functional IOS/Android App for WordPress Website with Flutter
Stars: ✭ 109 (+678.57%)
Mutual labels:  ios-app, android-app
Anypicker
jQuery Picker Library for Android, iOS & Windows Phone. eg Date Picker, Time Picker, DateTime Picker, Custom Select etc
Stars: ✭ 114 (+714.29%)
Mutual labels:  ios-app, android-app
rn-sip-app
React Native SIP App
Stars: ✭ 51 (+264.29%)
Mutual labels:  ios-app, android-app
Monthly-App-Challenge-2022
Retos mensuales de la comunidad MoureDev para crear pequeñas aplicaciones en base a requisitos
Stars: ✭ 153 (+992.86%)
Mutual labels:  ios-app, android-app

Note: this file is over 50 lines long because it contains a lot of relevant information in one place.

Code Standards

  • all code is in TypeScript, using .tsx for files containing jsx, or .ts for those without
  • no semicolons
  • 2 spaces
  • newline at end of file (check your editor settings)
  • trim whitespace on save (check your editor settings)
  • keep code in appropriate packages under packages/<package>
  • discuss with team before adding a new package
  • only use third-party libraries when absolutely required
  • no hardcoded text in the app, belongs in packages/language/<language>
  • no style outside of packages/theme/default (we may add themes later)
  • for the most part, files should be called index.ts with any dependencies in ./lib/<function-name>.ts
  • all snake-case directory names and file names, leads to less issues
  • code under ui should generally begin with import React, { Component } from 'react' to avoid linter errors for React
  • ui components generally look like export default class ComponentName extends Component<Props, State>

Packages

Note: to import from a package see .babelrc and tsconfig.json for package name rewrites. Important: no relative imports starting with ../ - in other words never assume what's above you in the file tree - you must be able to move folders around without consequence.

Note: TypeScript code is compiled into lib top level directory.

  • credit-protocol contains the client library to connect to BlockMason's credit-protocol server.

    • i.e. import { CreditProtocolClient } from 'credit-protocol'
  • language contains all text strings and functions used to generate text.

    • i.e. import language from 'language'; const { privacyPolicy, pendingTransactionsLanguage } = language
  • lndr/* is the core application logic and should have zero references to react or any other ui.

    • i.e. import LNDR from 'lndr'
  • theme/* contains all stylesheets.

    • i.e. import style from 'theme/button'
  • ui/* is the react-native user interface.

    • i.e. import App from 'ui/app'

Running

Installation and Initialization

Copy, rename, and update the files android/app/src/main/assets/airshipconfig.properties.example and ios/AirshipConfig.plist.example with the proper UrbanAirship API key and secret from the Blockmason account on urbanairship.com

Log in to Firebase (https://console.firebase.google.com/u/0/project/lndr-english/settings/general/android:com.lndr) and download the google-services.json and GoogleService-Info.plist files and add them to the android and ios folders.

  • Ensure that CocoaPods and Yarn are both installed (sudo gem install cocoapods and brew install yarn)
  • yarn (this installs the packages)
  • Fill in the .env.example with the proper information and save as .env. (info is in airshipconfig.properties or AirshipConfig.plist)
  • yarn run setup:env
  • (in new terminal) yarn run typescript
  • (in new terminal) yarn start

... on iOS

  • Put GoogleService-Info.plist in ios/

  • Put AirshipConfig.plist in ios/

  • Put PayPalConfig.plist in ios/

  • Run cd ios && pod install && cd ..

  • react-native run-ios

... on Android

Setting up ANDROID_HOME env variable

export ANDROID_HOME=/<SDK installation location> export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools source ~/.bash_profile

will be found in android studio (if installed) in Preferences -> Appearance & Behaviour -> System Settings -> Android SDK

Config files

  • Put google-services.json in android/app/
  • Put gradle.properties in android/
  • Put airshipconfig.properties in android/app/src/main/assets/
  • Put paypalconfig.properties in android/app/src/main/assets/

Running Android

  • Run react-native run-android

... Logging apps

In new tabs

  • react-native log-ios
  • react-native log-android
  • Download and start React Native Debugger, then select 'Debug Remotely' from the simulator/emulator

Building Android APK for Debug

  • in separate terminal sessions, run yarn start and yarn run typescript
  • react-native run-android
  • react-native bundle --dev false --platform android --entry-file index.android.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
  • cd android
  • ./gradlew assembleDebug

Testing

This project uses (Jest)[http://jestjs.io/docs/en/tutorial-react-native.html], which is the preferred testing framework for React Native.

Tests are stored in the top-level "tests" folder which mimics the structure of the "packages" folder.

To run tests type yarn test

To create a new snapshot after changing a .tsx file, run jest -u

Building

Prerequisites

XCode 10.0 or higher is required, which in turn requires macOS Sierra (10.12) or higher.

Private keys to sign the build: ios_dist_bm.p12 for iOS and blockmason-lndr-android.keystore for Android

Building & Signing the Android APK for Google Play

  1. Get the gradle.properties file with the keystore passwords and put it in the 'android' directory.

  2. Get the blockmason-lndr-android.keystore file and put it in the 'android/app' directory.

  3. Run 'cd android && ./gradlew assembleRelease' from the top-level directory.

  4. The signed APK will be at 'android/app/build/outputs/apk/app-release.apk'

  5. Upload the APK to the Play Store

Building, Signing, & Uploading for iOS through XCode

  1. Navigate to directory ios/

  2. Run sudo gem install cocoapods

  3. Run pod install

  4. Open XCode, click Open another project... at bottom right, go to the directory ios/ , select LNDR.xcworkspace

  5. Open the directory structure in the left side menu, go into LNDR, open Info.plist, click App Transport Security Settings, then Exception Domains, and delete localhost entry

  6. In top menu go to Product > Scheme > Edit Scheme (LNDR scheme should be selected), in Run > Info change the Build Configuration to 'Release'

  7. Run the command Product > Clean (command + shift + K), then Product > Build (command + B)

  8. Once the build finishes, run Product > Archive

  9. Click 'Upload to App Store' on the right side, and follow steps to upload.

Building Production Android APK for Distribution

  • in separate terminal sessions, run yarn start and yarn run typescript
  • ./build-android.sh
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].