One of the exciting perks of working in a software company like Quadwave is that we get to work with a lot of exciting new technology and create some amazing cutting edge products. The world over, everyone is talking about the Internet of Things and how it is changing the way we live our lives. For a start, homes are not just automated, they are made ‘smart’ so that everything is connected, making life easy in a way that was possible only in futuristic, sci-fi stories until now. But then, the future is already here, isn’t it?
At Quadwave we are developing IOT applications on Android using Java to control everyday elements like lights, heating, Air conditioning, etc. IOT is achieved by interfacing Android application with oBIX (Open Building Information Exchange) server; oBIX is a standard for RESTful Web Services based interfaces to building control systems. oBIX is a web service that identifies objects with URLs, represents object state with XML, and transfers objects using HTTP.
One of the focus areas is on designing a highly intuitive UI by understanding the target user community and studying how the most popular apps behave to make a user feel at home. Designing a good user interface (UI) can often be a painstaking job. However, a good user interface is one that allows the user to carry out their intended actions efficiently and effectively, without causing too much of a distraction. With this in mind, we design UIs that aren’t the most in-your-face spectacular designs, but would rather work subtly in the background to allow users to complete their tasks with ease.
Scalability is another area of focus where applications are developed using appropriate design patterns like observer and factory patterns. To have a good design means to decouple as much as possible, for example the observer pattern is used in the model view controller (MVC) architecture to decouple the model from the view. Similarly, we use observer patterns to notify and update UI when changes occur to the status of Light in the oBix server.
Another popular design pattern we use is the Data Access Object (DAO) factory pattern to access data. This pattern is based on abstraction and encapsulation design principles and shields the rest of the application from any change on persistence layer e.g. change of database from Oracle to MySQL, change of persistence technology e.g. from File System to Database. DAO factory design pattern keeps coupling low between different parts of application by keeping your View Layer completely independent from DAO layer and only Service layer has dependency on it which is also abstracted by using DAO interface. In short, Data Access Object or DAO design pattern is a way to reduce coupling between Business logic and Persistence logic.
We at Quadwave are more than excited to work on today’s most talked about technology which is the combination of IOT and android application development. At Quadwave, we are working on conceptualization to commercialization of smart home technology which gives a wide range of exposure to our engineers from User centric design thought process which in today’s world is the driving force for any product, to working on latest android based technology with innovation as the backbone.
A seamless integration from workspace to home is also in the offing and all in all, the idea is to ensure that people have more time and energy for what really matters.
– Rithesh Maroli Cheriyath
Technical Lead, Quadwave