Giter VIP home page Giter VIP logo

bleuchat's Introduction

BleuChat iOS Codebase

Version 1.0 iOS 9.0+ Swift 2.1 CocoaPods 0.39.0 Platform Universal

BleuChat is a Bluetooth Low Energy (BLE) powered chatting app.

Screenshot

Setup

Run bin/setup to install the Gem and Pod dependencies.

Development

Open BleuChat.xcworkspace to start developing.

Testing

Press โŒ˜+U to run UI and Unit tests.

Features

  • Chat with multiple people in your area with a global chatroom
  • Supports sending text and emojis
  • Get notified when people join and leave the chatroom
  • Delete your chat history any time
  • Optimized for iPhone & iPad
  • Optimized for Portrait & Landscape mode

Pipeline

  • Typing indicators
  • Push notifications
  • Sending multimedia data
  • Background scanning
  • Unit and UI tests

Tradeoffs

Scanning

Scanning and advertising is expensive yet we want it easy for users to find each other. The most expensive solution is to constantly scan for devices but that will drain the battery fast. The least expensive solution is to have the user initiate a scan but that results in a lackluster use experience. The current solution is a hybrid method conserving battery while making it easy for users to seamlessly find each other.

  • On launch, starts scanning for 60 seconds
  • Every minute, scans for 3 seconds
  • User can manually initiate a scan for 10 seconds at any time

Sending

BLE can only send/receive a limited amount of bytes at one time based on the device. Currently the app chunks a message into sending a conservative 20 bytes at a time.

bleuchat's People

Contributors

imkevinxu avatar

Watchers

James Cloos avatar Farhad Rismanchian 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.