Estimated time commitment: The task is not timed and you can work at your own pace. You have at least 24 hours.
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.
- 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.
- 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).
- 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.
- 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.
- Code design and architecture
- Dependency management
- Performances
- Mindful of battery and network usage
- Understanding of BLE protocol
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?