Skip to content

nodkrot/txtling-app

Repository files navigation

Txtling App

An immersive way to learn a language built with React Native and Redux.

Getting Started

https://facebook.github.io/react-native/docs/getting-started.html#requirements

brew install yarn --without-node # assuming you use nvm
brew install watchman
npm install -g react-native-cli

yarn install
react-native link

To run the app in simulator open project in Xcode and press play or use this command in terminal

react-native run-ios

TestFlight and Release

  • Get an App ID
  • Set up AppIcon and LaunchImage in Images.xcassets
  • Make sure to bump the Build reference
  • Cmd+Shift+< - Switch Debug to Release
  • Set device destination to "Generic iOS Device" or an actual (connected) iOS device
  • During Product -> Archive might be an issue with certificate (keychain access)

React Native reference: https://facebook.github.io/react-native/docs/upgrading.html

TestFlight reference: https://www.raywenderlich.com/101790/ios-beta-testing-with-testflight-tutorial

Icon and Launch Screen references:

http://stackoverflow.com/questions/34027270/ios-launch-screen-in-react-native

http://ticons.fokkezb.nl

Push notifications setup

  • Get development and production certificates from Apple (tutorial) and (tutorial)
    • Get certificate signing request (tutorial)
    • Download development and production certificates
    • Add these certificates to Keychain
    • Export them as .p12 files
  • Create platform application using certificate (tutorial)
    • Create AWS account (tutorial)
    • Upload dev/prod certs to your push service (AWS SNS)
    • Keep in mind that for Testflight you need production APNS certificate
  • Create Amazon IAM user with SNS permissions
    • accessKeyId
    • secretAccessKey
    • region
  • Client (tutorial)
    • React Native - PushNotificationIOS
    • In the app PushNotificationIOS.requestPermissions()
    • Get and store device token PushNotificationIOS.addEventListener('register', ...
  • Server (tutorial)
    • Install AWS SDK npm i aws-sdk -S
    • Configurations: PlatformApplicationArn and Token (Device Token from the client)
    • Create endpoint with sns.createPlatformEndpoint (tutorial)
    • Publish through sns.publish

Migrating react native app

  • Move and updated code base (/app)
  • Move and install package.json dependencies
  • Link native modules react-native link
  • Update AppDelegate.m file with changes
    • PushNotificationsIOS core module
  • Info.plist configs
    • SSL only domain exceptions
    • Description for using native APIs

Development notes

Packages to deprecate:

  • firebase-util
    • Upgrade firebase
  • react-native-invertible-scroll-view
    • Upgrade react-native
  • jest-react-native

Play sound in silent mode iOS read here

Debugging on a device with Chrome Developer Tools

https://facebook.github.io/react-native/docs/debugging.html#debugging-on-a-device-with-chrome-developer-tools