Skip to content

Instantly share code, notes, and snippets.

@ihenchi
Last active November 6, 2018 22:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ihenchi/e6238f28b58d1e18308d5e2177246205 to your computer and use it in GitHub Desktop.
Save ihenchi/e6238f28b58d1e18308d5e2177246205 to your computer and use it in GitHub Desktop.

BLE devices detector

Estimated time commitment: The task is not timed and you can work at your own pace. You have at least 24 hours.

Task

Build a simple iOS or Android app that will detect all BLE devices around you that are advertising, and display them in a GUI.

For example, our Proxy mobile apps interact with Proxy BLE devices constantly in the background, and data exchanges in both directions occur. As a first step of this process, the apps must scan and filter the BLE devices it has detected around.

Tools

  • You can use any programming language you see fit (Obj-C, Swift, Java, Kotlin...).
  • You can use any third part libraries as long as you can justify their use
  • You should demonstrate use of modern Design Patterns, and best practices.

Requirements

  • The description of this task is kept simple to give you freedom on what you want to show us. It is up to you on which area of this assignment you want to focus (look at 'Areas we're interested in').
  • If you’ve never work with BLE APIs before, it is fine. We will take it into account and see how well you research for new APIs and how to use them.
  • You must display the most relevant details about the device (at least name and rssi).

Non-requirements

  • You do not need to implement any deployment script or CI logic, same for publishing mecanism.
  • You do not need to use any graphical assets and spend time on cosmetics. However, UI/UX is important.

Delivery

  • Provide access to your code; I am ihenchi on https://github.com.
  • Provide an apk/ipa of your app that can be installed on real devices.

Areas we’re interested in:

  • Code design and architecture
  • Dependency management
  • Performances
  • Mindful of battery and network usage
  • Understanding of BLE protocol

Other things to consider

You are not expected to address these points in code, but consider them for discussion.

  • How to constantly keep scanning when the app is in background or closed?
  • How can you persist devices that you've found?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment