Categories
Technology

Continuous inspection of Code Quality using SonarQube

SonarQube is an open-source software introduced by Sonar Source for continuous inspection of code quality. Continuous inspection of code refers to constant checking of code for defects.

In software development, it is necessary to evaluate the code to measure software quality. Software quality is measured by checking for duplicate code, whether the code follows good practices and specific principles. Static code analysis is done as a part of the code review to analyze the code for errors and potential vulnerabilities. Static code analysis is done using algorithms and techniques to examine the code without executing the program.  Static code analysis takes time but there are many code analysis tools available that can identify errors and save time.

SonarQube

SonarQube is a widely used tool for performing automated code reviews by analyzing source code, inspecting the code quality and providing reports. It uses static code analysis to detect bugs, code smells, styling errors, code duplication, security vulnerabilities, lack of test coverage and design errors. It provides clear guidance for developers at each level with metrics and identifies the problematic areas enabling them to understand and fix issues. It enables developers to own the quality and security standards through clean as they code.

Advantages of using SonarQube

  • Increases maintainability of the software
  • Increases the lifetime of the application by reducing complexities, bugs and security vulnerabilities
  • Empowers the developers to write cleaner and maintainable code.
  • Implements continuous code quality management
  • Automatically detects bugs and alerts before moving into production thereby reducing the project risk.

Features of SonarQube

  • SonarQube is an open-source platform available for use by developers to monitor code quality
  • It provides support for 27 programming languages including C, C++, Java, TSQL, TypeScript, JavaScript, .NET, Python and COBOL
  • Quality Gate provides the ability to enforce code practices and standards and tells whether the project is ready for production.
  • It comes with additional plugins to enhance the experience of the user. More than 60 plugins are available to provide features including extra languages, metrics, and pages.
  • SonarQube easily integrates with existing tools like Jenkins, Azure DevOps, GitLab, eclipse, bitbucket, maven, etc.
  • Provides software quality metrics with drill-down capabilities.

Functionalities

SonarQube helps to manage code quality through several functionalities that include code analyzers, reporting tools, activity page, defect hunting, time machine and dashboard.

Dashboards

SonarQube comes with a global dashboard and project dashboard. Dashboards are made up of widgets and are customizable. The project dashboard provides project-specific metrics. The dashboard provides a consolidated view of bugs, vulnerabilities, code smells and duplications.

Dashboard Sonar Qube

Source Code Analysis

A set of source code analyzers are stored in a plugin. The analysis begins by triggering the plugin and performs a full analysis of the code and saves the results to the database. It is necessary to download and install SonarQube Runner to run the analysis.

Quality Gate

This feature allows enforcing a quality policy to ensure that standards are met across the projects.  Quality gate can be accessed by any user of the project.  It allows to define a set of Boolean conditions against which the project is measured. SonarQube will ascertain if the code meets all the quality thresholds set for the project. The project should pass the quality gate to move on to the next phase.

Quality Gate

Duplication of Code

It is important to have clean code without duplications in a project. Code duplication occurs in every project due to reusing code from other projects. SonarQube helps to identify repeated code blocks by scanning the code and reports duplication metrics as an absolute number of lines, blocks and files. 

Manage Project history

Project Activity Page maintains a history of project data from all previous analyzes.  It provides a comprehensive list of code analyzes performed on the project since it was created in SonarQube.  This helps to analyze the project’s health and measures taken over time.

Hunting Tools

Sonar provides hunting toolset to drill down the issues. Drill down every measure using filters, option to narrow down which modules, packages, and files are poorly covered and duplication drill down.

Time Machine

This functionality helps to analyze history in a graphical format which is easy to understand.  It helps to analyze the evolution of metrics and helps to compare the version of the project.

Managing source code quality gives better visibility into your project and optimizes ROI. SonarQube helps to manage source code quality with lesser effort. Implementing the SonarQube platform enables organizations to get insights on application quality and reduces the time required for code reviews.

Categories
Mobile App Development

Mobile App for Business Continuity

Businesses worldwide have taken a hit due to the global pandemic. This article talks about the impact of the COVID 19 crisis on small brick and mortar retail businesses and how technology can help to combat the challenges. Small and medium retail businesses like clothing, book or department stores have run out of business and are facing an extinction-level situation. The future looks bleak for traditional offline stores as a crowded shopping experience is unlikely for some time. Post the pandemic, many shoppers will still be reluctant to visit stores to avoid the crowd.

To ensure business continuity the world has adopted mobile technology. Mobile apps have helped to keep the situation normal and have changed the routine drastically. Earlier, people visited offices to pay the electricity bill or book tickets or to buy things. During this lockdown, there is a huge spike in mobile app downloads. Statistics show that App Store and Google Play have 33 billion app downloads in Q1, 2020. Due to the pandemic, mobile app download, usage and consumer spending hit a record high in 2020. The downloads include gaming app, social media app, health and fitness app, banking app, medical, eLearning app, video conferencing app like zoom, Google meet, Microsoft Team, etc.

As the mobile app industry is thriving and consumers are spending more time on their smartphones, consider having a mobile app for your business or service. Allow your customers to order online through the app and pick up in-store. Customer preferences, shopping history gets stored on the app allowing personalized shopping experience. This blend of online and offline models will be convenient and super-fast. A mobile app will be beneficial for any business, it can be a grocery store, medical clinic, pet clinic or a fitness centre. Leverage technology to provide a personalized experience for your customers through virtual sessions, virtual tours, virtual showroom, chat sessions with experts, etc.

The pandemic has created an unprecedented impact on the global economy. Businesses should not hesitate to try new approaches, new commercial models and new technologies to engage their customers and meet the demand. This switch over to technology is a difficult situation for retailers but some of them have already started implementing and thriving back in business.

Find a mobile app development company that helps you reinforce your business with the right technologies. Techcedence has been delivering excellent mobility services for various domains. Contact us with your requirements to transform your business into the digital world.

Categories
Mobile App Development

Telehealth Applications – A step towards virtual healthcare

The term Telehealth is defined as health services provided using telecommunication technology.  Telehealth refers to remote healthcare services through telephone, video conferencing, fax, emails and computers. Telehealth services primarily aim to provide access to doctors, physicians from anywhere, anytime.

Telehealth overcomes geographical boundaries and provides accessible, convenient healthcare for patients remotely.

Telehealth is not new to the medical field and has been in practice for decades, Patients have been consulting with their family physician through telephone. Due to the global pandemic, Telehealth has been at the forefront encouraging people to avoid personal visits and consult doctors through healthcare portals.

Telehealth Portal

A Telehealth portal is ideally an online platform that offers telehealth services by connecting doctors and patients. Telehealth services are offered through online video conferencing platforms or mobile app. These platforms offer patients 24/7 access to healthcare through online appointments and virtual visits. There are many healthcare platforms available that connect patients to doctors. The platforms are flexible and come with numerous features like uploading a lab report, and inviting a member of the family to be present during the consultation.

Availing telehealth services is simpler than it sounds. Patients have to register themselves on the online portal and request a visit.

If patients don’t want to have face-to-face interaction, they can opt for consultation over the phone using a toll-free number.

Advantages of telehealth over the traditional system

  • Easy access to specialty care from rural or remote areas.
  • Diagnose common health problems without visiting a doctor
  • Public holidays, late night, weekends don’t hinder consultation with a physician
  • Telehealth is preferred during the patient’s inability to commute due to health conditions or bad weather or a pandemic.
  • Prevent spreading of contagious illness
  • Avoid long hours of commute to visit the doctor and spending waiting time

While telehealth platforms offer numerous advantages there are some limitations:

  • Doctors have to rely on patients for temperature or sugar level
  • Checking blood pressure or access to the lab is possible only through a physical visit
  • Difficult to determine the cause of the problem without a doctor’s physical examination.
  • Poor internet connectivity might delay or affect your virtual consultation

How the Telehealth Applications Works?

Telehealth applications are based on video chat technology so ideally a patient would need a smartphone or iPad or laptop for a virtual consultation.

  • Patients have to register themselves with a telehealth application
  • Submit basic information about their medical condition and symptoms
  • Patients can schedule an appointment from listed doctors and seek consultation. They can also reach doctors for emergency needs without an appointment.
  • Pay for consultation through the payment gateway
  • Once the appointment is accepted, virtually consult with a doctor over video conferencing
  • The consultation happens through video chat or telephone calls.
  • The application allows the sharing of prescriptions, lab reports, and pictures online to aid diagnosis or treatment.
  • Patient records and doctor’s prescriptions are saved for follow up consultation.
  • Patients can provide a review of their virtual consultation experience.

The telemedicine applications are HIPAA compliant and ensure to keep the patient information secure from data theft.

Apart from consultation, some telehealth applications also assist with disease management. Patients can get a second opinion from specialists across the world to make an informed decision about their health.

To summarize, Telemedicine applications is a win-win for both doctors and patients and is undeniably an alternative to a physical doctor visit. The technology has saved time and money for patients and reduced the overhead for hospitals and clinics.

If you are looking to set up a digital healthcare platform, consult an experienced software development company to evaluate your idea. Based on your requirement and audience, they can develop a telemedicine website or a telemedicine mobile app.  

Categories
Technology

Serverless Computing

Serverless Computing allows building applications without managing the infrastructure. Serverless doesn’t mean there are not any servers involved in application development. Servers are involved but they are provided as a back end service by a cloud vendor. A Serverless architecture enables software organizations to focus only on writing and deploying the code without worrying about the servers or underlying infrastructure. A cloud provider provides the complete back end services that include setting up the server, maintaining the server, managing the load balance, etc. The cloud provider allocates resources dynamically and charges based on consumption. The provider takes care of all hardware, virtual machine and container management.

Harnessing serverless infrastructure has revolutionized the way companies build software applications. It allows organizations to focus only on building the application without spending hours on implementing, maintaining and monitoring the infrastructure. In the cloud execution model, the provider allows dynamic scaling based on the organization’s requirement. The cloud provider holds the responsibility of allocation and provisioning of servers based on demand. The cloud execution model is also cost-effective as the pricing is based on time and memory allocated to run the code.

There are many serverless computing providers. Some of them include:

  • AWS Lambda
  • Microsoft Azure
  • Google Cloud
  • IBM Cloud

Serverless computing Models

Serverless computing services offered by cloud providers can be classified into the below platforms:

Function as a Service

Function as a Service is a serverless architecture that allows executing code in response to events. In this model, the cloud service provider enables the customer to deploy a piece of code and pay for the length of the time the code executes. This new model of cloud computing is mostly used to build microservices.  Many cloud vendors are offering FaaS. Some of them include Microsoft Azure Functions, Google Cloud Functions, AWS Lambda, IBM cloud functions.

Backend as a Service

In Backend as a Service (Baas), the cloud service provider offers all back end services for a web or mobile application.  The developer writes the code for the application frontend and outsources all back end activities to the BaaS vendor. The vendor provides cloud storage and manages activities that include database management, authentication and remote updating. 

Advantages

Serverless architecture offers numerous benefits to an enterprise. Some of them are listed below:

  • Cost-Effective than renting or purchasing dedicated servers
  • Scaling on demand
  • Efficient use of resources
  • Fewer maintenance tasks in managing infrastructure
  • Rapid and Easy Deployment
  • Eliminates hiring backend engineers
  • Event-Driven and executed on demand
  • Quick turnaround
  • Ready to use third party  services
  • Reduced operational costs

Disadvantages

There are some challenges with serverless architecture:

  • Security vulnerabilities compared to traditional architecture
  • Privacy issues as the application are shared  with external resources
  • Difficult to break contract and switch vendor
  • Dependent on the vendor for debugging

In a nutshell,  serverless computing is a new approach to application development. Organizations choose serverless computing to build flexible, scalable applications and to reduce the time to market. It increases the productivity of the developers as they focus only on the application code and business logic.

Categories
Technology

Technology Stack for Mobile App Development

When you are developing a mobile application, the first challenge that you come across is choosing the right technologies. To develop a robust mobile application, it is important to understand the technical feasibility and choose the right technology stack. The mobile technology stack should be selected based on cost, and time for development.  The technology stack plays a critical part in the success of the mobile app. Here are some advanced mobile technology stacks to build native and cross-platform applications.

Native Apps

Native App is developed specifically for a particular platform (say Android or iOS). Apple and Google provide development tools, interface elements and SDK to develop native apps.

iOS Technology stack

To create a native iOS application, the following technology stack can be used.

Programming language:  Objective C or Swift

An iOS application can be built using either Objective C or Swift programming languages. Objective C can be considered as an extension of C programming language and provides object-oriented capabilities. Developers with knowledge in object-oriented programming can go for Objective C.

Swift is a compiled programming language developed by Apple for developing iOS applications that run on iPhone and iPad. Swift is more functional, friendly and less error-prone.

Toolkit: XCode

Xcode is an integrated development environment that contains a suite of development tools for developing a native iOS app. XCode tool kit comprises of Xcode IDE, instruments and a simulator.

Software Development Kit: iOS SDK

The iOS SDK is a software development kit developed by Apple and includes an application programming interface (API) that serves as a link between software applications and the platform they run on. It consists of tools for Apple’s touch screen interface and iPhone Operating System.

Android technology stack

To build a native application for Android, the following technology stack can be considered.

Programming language: Java or Kotlin

Top programming languages for native Android mobile app development is Java or Kotlin.   Java has been the official programming language for android app development until Kotlin was introduced and has vast tools and libraries to support android development.  Kotlin was introduced by Google for android app development. It has numerous development options, simple and concise code makes it lightweight. It is interoperable with Java allowing to convert Java code into Kotlin.

Toolkit: Android Studio & Android Developer Tools

Android Studio is the IDE for creating a native android app. It is popular among developers because it provides the fastest tools in addition to code editing, debugging, a flexible build system and an instant deploy system. It allows focusing on building unique and high-quality apps.

Android Developer Tools (ADT) is a plug-in by Google to provide full support for Android app development. In addition to coding support, ADT allows developers to use debugging tools, a graphical UI builder, emulators, and test automation support.

Software Development Kit: Android SDK

The Android SDK is a software development kit that includes tools for building, testing, and debugging Android applications. Developers must download the components of the Android SDK.

Technology stack for cross-platform apps

In a cross-platform approach, a mobile app is developed for multiple platforms. A single code base is used for multiple operating systems (say iOS and Android platforms).

There are different frameworks for cross-platform app development. Here are some technologies used to build cross-platform mobile apps. Based on the project requirement either of the below technologies shall be used.

React Native

React Native is a Javascript framework for developing a cross platform app that closely resembles a native app. The framework is based on React Library supported by Facebook. The application logic is written in JavaScript whereas UI is completely native. React Native’s live reload feature allows to build app faster and fix bugs immediately.

Xamarin

Xamarin is a cross-platform framework supported by Microsoft.  It uses the C# programming language as a base for app development. Xamarin has a range of components and has IDE support.  Xamarin allows sharing almost 90% of the code across multiple platforms. 

Flutter

Flutter supported by Google is considered the best tool to build cross-platform apps. Flutter uses Dart language for app development. Flutter SDK includes developing and debugging tools and unique set of widgets that make app development rapid and simple.

Read our blog on Cross-Platform App Development to know more about cross-platform technologies and frameworks.

Before choosing the technology stack identify your target users and the devices they use. Each of the technology stacks offers unique tools and components. Hire a mobile app development company to help you build a successful application.

Categories
Solutions

Why Organizations Need Asset Tracking System?

For large organizations, tracking the physical location of the assets can be tedious and time-consuming.   Assets are considered valuable by every organization as they invest a lot in physical equipment, machinery, furniture, computers to run their business operation. It is important to manage the physical assets to reduce risk to the business. Medium and large businesses can’t manage the assets manually.

Technology plays a vital role in industries such as manufacturing, logistics, health care and warehousing. With advanced technologies, industries must adopt sophisticated practices to monitor and track their physical assets. Leveraging advanced technologies can help organizations to improve asset performance and avoid asset failure.

asset tracking system

Asset Tracking System

An asset tracking system tracks the physical location of the assets using barcode labels or RFID tags. The software can manage the entire asset life cycle from procurement to asset disposal. The Asset tracking solution can provide real-time visibility into the asset location and generate various reports. It helps to identify when assets need to be repaired or replaced or disposed of. It monitors depreciation and helps to ascertain the net worth of the assets to be presented on financial statements.

Innovations in Asset Tracking

Several new technologies including Barcode, QR Code, RFID, GPS and Mobile technology are used to automate asset tracking.

Barcode is the oldest and effective asset tracking technology. Barcode labels are printed and stick to the asset, scanning the labels captured the asset data on to the system. Barcode technology is less expensive and easy to use.

Asset management mobile application can be installed on Mobile devices to track the assets in and around the workplace. There is no need for a barcode scanner as mobile devices have barcode scanning capability.

RFID asset tracking system uses RFID tags and RFID readers to locate the assets. RFID tags are attached to the assets and RFID readers are installed on the entry and exit points. RFID equipment automatically captures the location of the assets in real-time.

Bluetooth Low Energy (BLE) is a new asset tracking technique that uses wireless technology. It can be used for short-range communication and captures data in real-time. BLE readers capture data from BLE tags attached to the assets and provide real-time asset tracking.

Artificial Intelligence is being deployed in asset tracking. AI will bring in a new definition to asset management. AI innovations transform the way organizations make use of insights. AI can empower organizations on how to use asset data effectively and streamline business operations.

Asset tracking software can be integrated with ERP and other legacy systems.

Benefits

  • Eliminates spreadsheets and asset register
  • Increases asset visibility
  • Improved productivity
  • Easy maintenance tracking
  • Calculates Depreciation
  • Error free reports
  • Faster audits
  • Reduce downtime
  • Reduces administrative cost

The asset tracking system brings transparency in who owns the assets, where it is located, whether the asset is in use. Simplify asset management with our asset tracking software, FASoft. Learn more about our standalone asset tracking system, FASoft and how it can help in tracking your organization’s assets.

Call us today to get a demo – https://techcedence.com/contact/