iOS/Android App - Combine all social features in one app

Client:SpeakEzy

Project:iOS and Android apps which combines all social features you love in one app.

A Brief description:About the project: By combining all social features in one app you can save your battery, data and time. SpeakEzy uses facial recognition technology to make sure users are real people just like you, not Russian bots. SpeakEzy is committed to protecting your identity, your freedom of expression and helping you connect with your friends, family and favourite content creators.

iOS (FRONTEND)

The iOS application is written in Swift and utilises Cocoapods for libraries. The app uses both the Autolayout engine and AsyncDisplayKit (for performance). The application is heavily integrated into the AWS eco-system with AWS Cognito and AWS Appsync. Camera implementations are using NextLevel for both video and photos.

- Language: Swift

- Libraries:

- Cocoapods dependency management

- AWS AppSync (GraphQL / Code gen)

- AWS Cognito / Amplify (Auth)

- AsyncDisplayKit (UI)

- NextLevel (Camera Library)

ANDROID (FRONTEND)

The Android application is written in Java and is built using Android Studio. The standard layout engine and Litho (by Facebook) is used for layout. The application is heavily integrated into the AWS eco-system with AWS Cognito and AWS Appsync. The camera implementations are using Cameraview-ex. This frontend uses the AWS Elastic Transcoder endpoints for video processing due to limitations in orientation flags.

- Language: Java

- Libraries:

- AWS AppSync (GraphQL / Code gen)

- AWS Cognito / Amplify (Auth)

- Litho (UI)

- CameraViewEx (Camera Library)

- Exoplayer (MediaPlayer)

APP BACKEND

The backend is built to be scalable at the best cost available. It heavily utilises AWS Lambda to achieve this. The stack uses Serverless to manage the functions and resources are manually managed (due to the resource limit in CloudFormation). The Serverless Appsync plugin is used to manage AWS Appsync using serverless.yml. The transcoding is split between AWS Elastic Transcoder and AWS MediaConvert. ETC is used only for Android (due to orientation flag issues). The Camvi Facial recognition server is the only EC2 instances that is running and needs to be managed. The database is strictly DynamoDB and is structured to work with AppSync as best as possible. Tech Stack:

- Language: NodeJS / Typescript

- Libraries/Tech:

- AWS Cognito (Auth)

- AWS AppSync (GraphQL)

- AWS DynamoDB (DB)

- Serverless framework

- AWS EC2/S3

- AWS Elastic Transcoder

- AWS MediaConvert

- AWS SNS / SES

- Camvi Facial Recognition API

ADMIN BACKEND

Build in progress...

- Language: NodeJS / Typescript

- Libraries/Tech:

- AWS Cognito (Auth)

- AWS AppSync (GraphQL)

- AWS DynamoDB (DB)

- Serverless framework

- AWS EC2/S3

- AWS Elastic Transcoder

- AWS MediaConvert

- AWS SNS / SES

- Camvi Facial Recognition API

Software Technologies and Tools: iOS, XCode, Objective C,Swift, Sqlite, AWS, JSON, Java, Android Studio, Android SDK.

REQUEST FOR QUOTE
Plus