Coder Social home page Coder Social logo

vitvitskyi / sylk-mobile Goto Github PK

View Code? Open in Web Editor NEW

This project forked from agprojects/sylk-mobile

0.0 0.0 0.0 55.35 MB

Sylk WebRTC mobile client

Home Page: https://sylkserver.com

License: Other

JavaScript 91.39% Ruby 0.54% Objective-C 1.16% Java 0.88% Swift 1.10% SCSS 4.75% Starlark 0.17%

sylk-mobile's Introduction

Sylk Mobile

Sylk Mobile is part of Sylk Suite, a set of real-time communications applications using IETF SIP protocol and WebRTC specifications.

Sylk Suite consists of:

  • SIP/WebRTC application server
  • Mobile push notifications server
  • Desktop clients for Windows, Linux and MacOS
  • Mobile clients for Apple iOS and Google Android
  • Web page for WebRTC enabled browsers
  • Mobile client development SDK
  • Desktop client development SDK

Home page

License

Sylk mobile licensed under GNU General Public License version 3. A copy of the license is available at http://www.fsf.org/licensing/licenses/gpl-3.0.html

Copyright 2020 AG Projects

Availability

Features

  • 1-to-1 audio and video calls
  • Encrypted end-to-end messaging
  • Synchronization of multiple devices
  • Multiparty conferencing
  • Call history entries management
  • Native address book lookup
  • Native OS telephony integration
  • Support for multiple devices in parallel
  • Support for multiple cameras
  • Support for landscape and portrait modes
  • Support for tablets and phones
  • Interoperable with SIP clients
  • Receive calls from the web

Messages are encrypted end-to-end using OpenPGP.

Credits

Financial support

  • NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825310
  • Project description

People

  • Saúl Ibarra Corretgé - Inception architect / original idea
  • Tijmen de Mes - API, Conference and desktop
  • Dan Jenkins - WebRTC and React Native mechanic
  • Adrian Georgescu - Janitor
  • Bibiana Rivadeneira - Push notifications
  • Michiel Leenaars - Strategic guidance

Running dependencies

  • Sylk Server
  • Sylk Pushserver
  • SIP infra with push notifications support

Demo client

Getting Started

Building dependencies

  • Java from http://java.com
  • NVM from https://heynode.com/tutorial/install-nodejs-locally-nvm/
  • Using nvm install Node.js version 12
  • Yarn (for package management) curl -o- -L https://yarnpkg.com/install.sh | bash
  • XCode
  • Android Studio (Or at least the Android SDK)
  • Gem (for installing gem files)
  • Fastlane (for deploying to testflight/google play store)
  • Cocoapods (for handling iOS Pods)
    • Install RVM: curl -L https://get.rvm.io | bash -s stable
    • Update ruby: rvm install rvm install ruby
    • Add to .bash_profile export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 export LC_ALL=en_US.UTF-8
    • sudo gem install cocoapods
  • watchman (for helping watch files during development) brew install watchman or port install watchman

Install

Follow the Getting Started guide as much as you can but not everything will be explained. No install docs will be listed here for each tool as they'll change, go and check them out yourself.

Updating the app

Yarn can be a bit of a pain, especially when a git dependency changes.

To be sure you're running the lastest code run:

rm -rf node_modules
rm -rf ios/Pods
yarn cache clean
yarn
cd ios; pod install; cd ..

XCODE 12.5 fixes

  1. https://infinitbility.com/build-failed-after-update-xcode-12.5

  2. foundation/foundation-cli#98

npm rebuild node-sass

  1. facebook/create-react-app#4540

brew install watchman or port install watchman

Decrypting the git repo

Run git-crypt unlock to check that you can decrypt the files in the repo. If you can't you'll need to generate a GPG key and pass it to someone with access to the repo. A good guide is located at https://medium.com/@sumitkum/securing-your-secret-keys-with-git-crypt-b2fa6ffed1a6

Running the app

Use react-native run-ios --help and react-native run-android --help to give you all you need to know. You shouldn't ever have to build from Xcode or Android Studio.

Running on the iOS Simulator

Currently we have issues running a build of ios from the cli using yarn react-native run-ios so instead, open up xcode and run it there

open ios/sylk.xcworkspace/

Running on the Android Simulator or device

If you don't have any simulators running, and don't have an android device plugged in (or available to adb) React Native will start up a simulator for you. If you have a device available (doesn't matter if its real or a simulator) this command will output to the device.

yarn react-native run-android

Debugging

Install https://reactnative.dev/docs/debugging#react-developer-tools

Shake the device and touch Debug.

Running on the iOS Device

Currently we have issues running a build of ios from the cli using yarn react-native run-ios --device so instead, open up xcode and run it there

Running on a specific Android Device

yarn react-native run-android --deviceId "DeviceId"

--deviceId [string] builds your app and starts it on a specific device/simulator with the given device id (listed by running "adb devices" on the command line).

Running without debugging

To run the app on your device without tethering it to USB:

On Android:

yarn react-native run-android --variant=release

On iOS:

Select menu Product -> Scheme -> Edit scheme andselect for Run Build Configuration = Release

Beware that iOS push tokens are still meant for sandbox unless the app is released through Apple Store.

Clean the project

You might want to bring the project back to a clean repo if you're hitting any issues.

Try it as a dry-run first

git clean -d -x --dry-run
git clean -d -x -f

Building the app for deployment

We use fastlane for building production versions of the app.

Fastlane can handle all the metadata around your entry into the relevant App Stores and much much more too.

Currently we have two commands - you will need to open Xcode and allow it to sync the deployment key as we allow Xcode to control that rather than do it ourselves. We could add it directly into the project with git-crypt and tell fastlane to use it to make this easier.

fastlane ios beta
fastlane android beta

Patches

We utilise the patch-package module in order to patch the react-native-callkeep module instead of maintaining a complete fork. See their README on how to make changes to the patch and how those patches get installed automatically within this project on install of npm modules.

Update sylkrts.js

yarn add -D AGProjects/sylkrtc.js

Firebase notifications reference

https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#AndroidNotification

sylk-mobile's People

Contributors

adigeo avatar danjenkins avatar tijmennl 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.