Provides services for users, businesses, and brands, helping them to create their own "smart cities" and worlds
Travel & Tourism
Computools successfully implements innovative ideas using the latest technologies. The experience and competence of engineers allow them to create, implement, and ensure the stable operating of applications with a wide range of features. The result of this project became an application that was distributed among local and international users. Due to the usefulness for a wide audience including various industries and businesses, the client's profit has increased several times.
Several key options we solved:
Implemented and customized a geospatial search engine.
Implemented social media platform options: sharing images, messaging, uploading and editing own photos, subscription, etc.
Built-in Internal 3D navigation, with the ability to use any other third-party navigation system or user's favorite travel app.
Business Process Automation
The need to develop many separate elements of the application for each location
The lack of time for comprehensive testing
The great potential of the application for use in travel, advertising, brand promotion
Application with disruptive technology which helps to popularize it
Wide application functionality
The client sought to create a product that would be equally useful to businesses and customers, would be able to connect them, and literally supplement the journey with useful information. The main principle is to display useful information about nearby establishments in the app and augmented reality, based on geo-data. The Computoools's team took on the task of mobile app development to build the functionality of an Android application that would meet the needs of the target audience. The app shows the Wikipedia articles about the nearest objects, Google Place, general geo-content, and more. The application is also supplemented with an internal instant messenger that allows creating groups and sharing information in a new way. Chat Rooms can be private, public, or even just a place where users can collaborate with themselves until they're ready to invite others.
The app also allows to tag any object in any photo, link it back to its original place and discover it in Augmented Reality when the user is actually there. The app gallery gives info about the weather at the time of the photo, the current weather, the closest Wikipedia articles to the location of your photo.
Digital Platform & Technology
The stack of technologies needed to complete the tasks was determined by the team based on the goals and needs of the project. The optimal solutions were identified, allowing to provide the necessary functionality and stable operation of the platform.
Java was designed to be easy to use and is therefore easy to write, compile, debug, and learn than other programming languages. This allows creating modular programs and reusable code. One of the most significant advantages of Java is its ability to move easily from one computer system to another.
Android SDK is an open-source platform, allowing the developers to share-worthy and precious technologies at a larger scale. It is coupled with many sets of libraries and the development tools, which help the software programmers to build and test a variety of applications Android SDK supports all android versions, which means developers can develop and test Android applications for older version devices’ also.
Retrofit is a REST Client for Java and Android. It makes it relatively easy to retrieve and upload JSON (or other structured data) via REST-based web services. Retrofit is basically used in the following three classes: model class which is used as a JSON model; interfaces that define the possible HTTP operations; Retrofit.Builder class - Instance which uses the interface and the Builder API to allow defining the URL endpoint for the HTTP operations.
Reactive extensions in Java allow you to manipulate multiple actions that occur due to certain system events simultaneously. Rx gives you a possibility to use functional transformations over streams of events and it doesn't require using nasty things like callbacks and global state management.
Butter Knife is small, simple, and lightweight. It allows developers to perform injection on arbitrary objects, views, and OnClickListeners so they can focus on writing useful code. Consider Android ButterKnife a reduction library.
One of the important points of work on the mobile app development project is the establishment of a stable and high-speed communication system. This allows to make decisions and get approval quickly. Skype was used for interaction. This allowed exchanging information, conducting video and audio conferences during the discussion of the project.
The goal was to build a social network app based on innovative concepts and elements. It is positioned as a disruptor in the travel industry, providing both consumers and travel professionals the Geo-best ways to discover, create, and share quality, local content. It is concerned to provide content relevant to the world around users. It shows the closest Wikipedia article, Google Place, user's, and his friend’s shared geo-based content, etc. Its capabilities also include tagging any object in any photo, linking it back to its original place, and discovering it in Augmented Reality.
Computools carefully chooses a team to work on a project to provide web development services on the highest level. The main task is to select experts whose skills and experience will allow to realize the tasks efficiently, quickly, and at a high level of quality. For this project, designers and developers who had experience working on a variety of similar projects were selected. The constant solution of the challenge tasks allows employees to increase their level and satisfy customer requirements as much as possible.
Developing an app solution for business we strive to properly organize workflow keeping it active and fast. Our company uses the latest technology for brainstorming, sharing experiences and ideas. Thanks to this, our teams are so effective and efficient.
At developer meetings, our employees share experiences and their project successes. This helps to see and evaluate the work from the outside. In some cases, the exchange of experience helps to find the best solution for the next section of the project.
Brainstorming is one of the most productive ways a team can work on a project if necessary to find an original solution. Each participant has the opportunity to offer an idea, even the craziest. Truly innovative solutions appear in the discussion.
The Computools team fostered transparency through continuous project delivery and regular feedback sessions. The client could assess and evaluate the progress and introduce new requirements, spurring the developers to increase efficiency and find innovative solutions
Internal Communication Flow
Computools engineers employed an established communication framework when supporting the client’s in-house IT department. Skype enabled them to uphold a brisk development pace and stay on top of the occurring issues. The team suggested Jira as a go-to task assignment and management platform.
Project Management Methodology
To work on the project, the optimal methodology is selected, which determines how the code will be developed, tested, and released. For this project, Scrum, a flexible agile methodology, was chosen.
Scrum addresses complexity in work by making information transparent, so that people can inspect and adapt based on current conditions, rather than predicted conditions.ransparency of common terms and standards is required in Scrum development to ensure that what is being delivered is what was expected. A frequent inspection ensures progress and detects variances early on so that adjustments can be made quickly. The most common Scrum events for inspection and adaptation are Sprint Planning, Daily Scrum, or "Stand Up", Sprint Review, and Sprint Retrospective.
Identifying high-level project goals
Analysis & Exploration
Researching and analyzing the existing and ready-made solutions
Defining main restrictions and providing solutions for them
Identifying the main risks
Selecting basic architectural patterns and tools
Forming an application stack, work processes with VCS
Forming the main development guidelines
Interactive prototypes & Specification
Development of a prototype in parallel with specification
Choosing Project Management Methodology
Build Development Process
Calculating the number of project teams
Configuring the technological processes and interactions between roles
Build The Team
Making the initial scope based on the specification and estimate, calculating the optimal number of specialists for each role
Adding executors to the team's core
Conducting an intro meeting
Development of a road map, dividing the development process into parts
Implementation of the first series of solutions
Implementation of developed elements of the platform
Testing & Stabilization
Developing a testing plan
UI & Unit testing
Code stabilization/refactoring, increasing system stability, reducing the probability of bug emergency
Working on product design, we primarily develop its architecture, as this has a great influence on how the design will be built in the future, and how ways of promoting and upgrading the product will be organized.