Introducing Findlo: How this new iOS framework
can benefit your mobile development project
At mobitouch, we promote innovation at every level. We drive innovation in the projects we realize for our clients, but also in the projects our people realize internally. The most recent achievement is the development of Findlo, a framework for iOS that allows building mobile applications that contain an augmented reality (AR) module, based on the user's location and targets located in the world.
Read on to learn more about this exciting project that we believe might cause a disruption in the mobile development world.
Why use Findlo?
Thanks to Findlo, developers can code an application with an AR module within just a few hours! They can use plenty of ready data sources and media types to display and instantly implement them in the app. Moreover, the framework doesn’t require any advanced coding knowledge and is very easy to implement. Findlo works on devices that are older than the iPhone 6s – while similar solutions that rely only on ARKit don’t offer that possibility.
Findlo – key features
Findlo is based on three modules:
- AugmentedReality module – this is the main module of Findlo, which contains a view displaying an augmented reality. All it takes is to insert the objects that we want to display.
- `World` module – this module allows managing objects in the real world surrounding the user easily. It facilitates and manages the creation of new data sources for these objects.
- LocationService module – it deals with processing the user’s location.
Let’s focus on the AR engine of Findlo. Here are its key features:
- It enables displaying various media types (3D models, labels, photos).
- Developers can also define a new media type to be displayed in any way.
- Findlo deals with the object placement – the objects surrounding users are displayed in their actual position.
- The framework allows grouping of overlapping objects.
- Developers can display clouds instead of objects if they’re located far from the user.
- You can specify the distance range in which the object is displayed – for example, the user is too far, or too close to the object, it becomes too big or too small to enable quality representation. That’s why it’s a good idea to limit the displayed distance, and Findlo allows developers to do that.
- Findlo also determines the position of the sun relative to the user to allow display realistic object shadows.
- The framework includes three modes of displaying the vertical position (height above sea level) of objects: the absolute value given, position relative to the device (smartphone), position relative to the floor.
- Developers can display the lighting according to the actual detected lighting level (ARKit feature).
- Real representation of movement using VIO (visual inertial odometry) (ARKit).
- Findlo can detect walls that can obstruct displayed objects (ARKit).
The AR module – technology details
The augmented reality module in Findlo contains 3 engines developers can choose from. They differ slightly in their capabilities and technologies used to display objects.
Here’s a short overview:
- The ARKit-based engine has the greatest capabilities, but uses the most CPU / battery and works only on devices from iPhone 6s,
- The SceneKit based engine can display the same media types as ARKit, but doesn’t include ARKit-specific features such as VIO, wall detection, and lighting detection. It can also work on older devices and consumes much fewer resources,
- UIView-based engine – a lightweight engine that displays only two-dimensional media. It consumes the least resources, but we can’t insert a 3D model into it.
Here’s how Findlo works
To display objects in augmented reality, we must first deliver them to the engine. Developers can do that directly, but it’s better to connect the AugmentedReality module with the World module. Then all the objects are automatically projected onto AR objects and are displayed in the app.
For the World module, developers can provide objects using ready-made framework classes from or code their own data sources. The framework contains several base classes that make that very easy – for example, classes that retrieve JSON from the Internet for a given location. Developers only need to specify which URL is correct for the location the framework asks about and use the JSON structure to complete the data about the object. Thanks to these ready-made base classes, they can quickly enter data sources from any WebService or another repository.
Potential use cases of Findlo
Here are a few examples of applications that could be developed with the help of Findlo:
- Tourist applications,
- City advertisements that show attractive urban features,
- Games similar to Pokemon, but focused on user location even more,
- Map extensions (for example, we can use the Google Places API),
- Event applications (for instance, showing the location of stages, restrooms, etc.)
Here are a few steps to implement Findlo:
1. Add all the frameworks that make up Findlo to your application,
2. Select your project in Xcode and add the frameworks on the General tab in the Embedded Binaries section,
3. In the storyboard or code, create a FindloFinalAugmentedRealityView view type and attach the IBOutlet to it,
4. Create a World type object and add data sources to it,
5. Connect FindloFinalAugmentedRealityView with World via arView.connectToWorld(world).
What’s next for Findlo?
The creator behind Findlo is constantly working on the tool and plans to improve it over time. Among the key milestones on its roadmap are:
- The improvement of LocationService with Beacons to enable better services inside buildings.
- Implementation of advanced motion sequences of objects to allow easy adventure creation with a designated path.
- Introduction of a special CarMode mode to ensure better performance in the car.
- Implementing a function for determining the expected location after a set time, based on location changes. This will allow to display the position of constantly moving objects more accurately.
- Introduction of a module facilitating the tracking of changes in the location of objects live through sockets.
Check out the case study that showcase opportunity of Findlo framework:
Get in touch with us and we’ll assign a group of AR experts to build a fantastic iOS AR app based on Findlo framework.