Software Development

Software Development Trends Revised

We live in the exciting time of overnight technological advances, self-driving vehicles, international electronic finances, and so much more.  We are going to explore some of the trends currently in process.

Quick Links

Read on and see what grabs your attention and maybe inspire you to dabble.

Augmented Reality

Augmented reality is a process that overlays virtual reality onto existing environment.  More simply it is a computer-generated image over something that is naturally occurring.  It is frequently used in television (like sporting events where a finish line is superimposed on a swimming meet), navigation aids, gaming, and more.

Augmented Reality

There are several categories for this technology:

  • Marker-Based or Image Recognition – This is when a camera identifies a visual marker (like QR/2D code) that is a recognizable, simple pattern that doesn’t need much processing power. The subject matter is marked and then additional content is overlaid.
  • Markerless – Most notably used in GPS programs, it will guide you to your destination or locate the nearby merchants or restaurants. Pairing with smartphones, this application has found its way as a basic for travel.
  • Projection Based – Like it sounds, it sends out artificial light (projecting it) onto a surface that will detect a human touch.  It senses the interaction by calculating the difference between the actual projection and the person’s actions.  For the manufacturing industry, it means a perfect product every time.
  • Superimposition Based – This will completely or partially replace a view of an object with another view. It is a challenge because the technology must first be able to recognize the original object. In home decorating it allows a user to place furniture around a room and change it at will.

The bottom line is that this combination of virtual and augmented realities give people improved information and will enhance daily activities.

Virtual Reality

VR is a technology that creates a simulated world that lets the user feel he or she is actually a part of that universe.  It is found in computer games and, using a helmet-like headgear, it immerses the person into another, highly interactive experience using 3-D and simulating other senses including smell. 

Virtual Reality

These helmets are generally referred to as head-mounted display (HMD) and are found in play rooms as well as laboratories.  In-home applications are in process to allow more versatility and more affordable uses.

Right now VR concentrates on the use of hearing and vision.  Research is being conducted to develop a treadmill that will have the user feel as though they are walking through the new world.  The sense of touch (kinaesthetic) adds to the authenticity of the program.

Beyond fun and games, there are real world applications for virtual reality.

  • Training
  • Air Flight – Using simulations there is less need for pilots to take a new plane model into the air before it is ready.
  • Medicine – Allowing surgeons to practice delicate operations or complex procedures ensures greater success for the patient. It results in better skills for the personnel and more efficient use of staff.
  • Police and Military – VR means exploring the options of an operation and identifying the pitfalls through various scenarios.
  • Mental Illness – Controlling the environment helps with dealing with the fallout from trauma, overcoming addictions, and facing difficult situations.

Of course, there are some major players in the market.  Three of the hottest products were Virtual Reality headsets were Sony’s PlayStation VR (PSVR), Facebook’s Oculus Rift and the HTC Vive.  Coming right on their heel are Google, HP and Lenovo.  Keep your eyes open for new faces as this technology develops even further.

Mobile Applications and Development

Developing new hybrid mobile apps that run on Android and iOS is becoming easier with the frameworks readily available.

Hybrids – A hybrid app pulls together parts of native and web applications and is offered through a browser. They are used across a number of platforms. Next is a short sample of the latest and greatest:

  • Xamarin – Owned by Microsoft it has cross-platform implementations of Common Language Infrastructure (CLI) and Common Language Specifications. The code base is C# and can be used for native Android, iOS, and Windows. It will interface with Windows and MacOS.
  • PhoneGap – Adobe produces this framework as open source through Cordova. The core applications use CSS3 and HTML5. It is designed to reuse your current web development talent to create hybrids.
  • Iconic – As a complete, open-source SDK, this is constructed on top of Angular.js and Apache Cordova. It uses CSS, HTML5, and Sass. It is licensed under MIT.
  • Framework7 – This is another free and open-source mobile HTML framework with iOS and Android natives. It is a clear and easy code centring only on iOS and Google Material Design.

React Natives – Another open source program, this was developed specifically for Facebook.  It will integrate with Android, iOS, Web, and UWP.  It allows a programmer to use React as part of a native platform and uses JavaScript thread instead of HTML.  As a background it takes the JavaScript to talk with the end device using serialisation, asynchronous and batched Bridge.  All of this boils down to increasing the speed for native programmers.

Mobile Applications Development

Flutter – Another open-source framework for Android and iOS, this one was developed by Google. These apps have some specific programming mechanisms:

  • Dart Platform – This is the support for a “hot reload” so that the programmer can insert source file modifications into an already running application. This means an immediate implementation of the changes.
  • Flutter Engine – A C++ support system for graphics. It is a host for Flutter applications and offers the user a wonderful array of platform, layout, and foundation widgets.
  • Foundation Library – This is the interface communication between the engine and other entities like APIs.
  • Widgets – Although it is not particularly necessary to use widgets to build a Flutter app, it is very helpful to create new shapes, add text, and place imagery directly to the screen.
  • Design-Specific Widgets – There are some unique characteristics that work with Material Design to make the Google design language work better and to simulate iOS.

Natives – Unlike hybrids, native apps are written in platform-specific languages. Hybrid apps are considerably less expensive, but natives have their own advantages:

  • Performance – They will interact directly with APIs and won’t need plugins or WebViews. They are faster and very responsive so are better for graphic-laden programs.
  • Consistency – UIs look consistent for a better user experience.
  • Feature Access – With a hybrid you need to wait for a plugin for new feature support, natives can immediately access the iOS or Android updates.

Artificial Intelligence

Simply put, artificial intelligence (AI) is having a machine perform human-like functions that need processing like vision, voice recognition, etc.  It also means creating new outcomes from learning by experience.  

So, it is applying reason and information (knowledge) to perform activities. 

Artificial Intelligence

AI is now a major factor in daily lives.  It is still growing in usefulness and versatility.  It can improve a basic human condition as well as business functions to improve efficiency and profitability.

Some of the AI apps around today include:

  • Replika – Used in the iPhone apps it sounds like a real person rather than a bot.
  • Airpoly – For the visually impaired, it identifies objects. In fact it is so fast that it can recognize and classify up to three objects in one second.
  • Seeing AI – Another program for the visually impaired, it works with iPhones.
  • Cortana – This is used with Smartphones and desktops and is basically a scheduler and reminder system.
  • ELSA – Used to help individuals pronounce words, English Language Speech Assistant (ELSA) is growing in popularity.
  • Siftr Magic – As an iPhone app it will sort through all your photographs and suggest deletions. It allows user discretion to actually make the shot go away.
  • The Roll – This app will also stroll through all your photos but will select what it considers the best shots.
  • Hound – This is a search aid that is voice activated and will offer suggestions about various establishments and events.

Internet of Things

The Internet of Things (IoT) is the collection of various applications, appliances, and other objects that transfers data.  This can be a fitness tracker, medical devices like cardiac monitors, thermostats, and so very much more.

They are becoming more prevalent and valuable as we progress.  From identifying traffic tie-ups and gridlocks to remotely turning on household lights they make an impact on how we live.  There are developments in process to improve our energy use and manufacturing productivity.  What used to be known as “just in time materials management” is now controlled by an application that will let you know when supplies are low and even automatically place a reorder.

The enormous concern is security.  While your smartphone may be highly protected, when you use it to turn on your slow cooker, the kitchen appliance is not secure, leaving a back door wide open to your mobile device that has personal information about you and your family, as well as access to banking information and other critical data.  Multiply that by a corporation issuing company phones and work-from-home access.  Then let’s consider governmental security issues.  The concept can be terrifying.

Software Development

The other downside is storage capacity.  Where and how will all of the data be stored and analyzed?  How available will it be and to whom?  Since the legal system always lags behind technology, when will that catch up?

There are still too many unanswered questions, but that probably won’t stop the ongoing development.

Progressive Web Application

A Progressive Web App (PWA) is a Google concept that is designed to improve performance despite the device or connection.  A good example is a beverage ordering system that will let the customer to peruse the drink choices and customize the order; check out local prices; and place the order.  The idea is that the experience is consistent and quick for all users.

Software Development

The key is the continued evolution of browsers.  To be known as a PWA, it must run under HTTPS; have a Web App Manifest; and have a Service Worker.  With this in place, the app will attract more visitors and enhance the shopping experience.  All of this will convert more searches into purchases and manifestly increase revenue.

There are some basics that distinguish this app:

  • Progressive – Well, that makes sense. Working across any type of device, it will move forward and take advantage of any features on that device.
  • Searchability – This is an actual website, so search engines need to find it.
  • Links – With a URI, the application can retain or reload for bookmarks and shares.
  • Response – It needs to fit the form factor and screen size.
  • Appearance – It needs to look like a native app with minimal page refreshing.
  • Connections – It can work even in areas of low connectivity.
  • Reusable – Push notifications will aid mobile app users to re-engage their applications.
  • Installation – Easy availability through the device’s home screen.
  • Fresh – New content is readily available
  • Safety – HTTPS as the host to prevent attacks.

Blockchain

Blockchain is the accounting system used for bitcoin transactions.  It is the compilation of digital information (blocks) stored in public databases (chain).

  • Blocks – Each Block stores several thousand transactions and has three main components: 
  • Information storage on the details like day, time, and amount
  • Participants using a digital name rather than an actual signature
  • Unique identifier
  • Operation – To work, a blockchain must have a verified transaction which is then stored.  Then it is given a unique code allowing the transaction to be included in the blockchain.
  • Security – Because of its structure, a hacker would need to work through each iteration of the transaction that is spread across countless computers.  Since real names are not used, it is less likely that the user will be identified.
  • Uses
  • Banks – It can implement blockchain for 24/7 secure transactions for customers and between other banking institutions.
  • Cryptocurrencies – This is probably the most common application at this time for financial operations across countries without governmental intervention.
  • Healthcare – Maintaining the confidentiality of personal heath information the coding makes the data available to a limited number of persons or entities.
  • Real Estate – The process affords secure and accurate information on the chain of title.
  • Voting – The concept is to eliminate ballot tampering and fraud. It will reduce the number of volunteers needed in the process as well as even faster result calculations. It is thought that this greater security will increase voter turnout in elections at all levels.

Blockchain is probably in its infancy and will grow in popularity as more uses are developed.

Cyber Security

This is a broad category that monitors and protects all the technology and hardware from attack.  As data grows it includes more critical and private information on personal, corporate and governmental levels.  Unauthorized access and ultimate distribution of these records is also growing in volume and severity of consequences.   There are three levels of defence.

Cyber Security
  • Individuals – Each employee should be acutely aware of the need to prevent and reduce any threats. Those directly involved with security have to be on constant alert for innovations, risks, and solutions to the problem.
  • Procedures – All organizations should have clear and detailed processes to identify and correct suspicious activities. The security team should maintain updates as technology and criminal actions change and increase. Every employee should understand the necessity to be alert to dubious emails or transactions and report them promptly.
  • Programs – Controlling access to information as well as antivirus, antitheft, and anti-everything software can help reduce risk.

Electronic and cyber crime is at an astoundingly high rate of occurrence. It is not always easily detectable. The fallout from this situation is multi-levelled:

  • Expense – Customers and clients of attacked institutions are filing lawsuits and other actions to recover damages from breaches. This is in addition to the damage to the organisation’s reputation and corporate structure.
  • Complexity – As criminal hackers continue, their strategies become more sophisticated and escalated. Ransomware is high on that list.
  • Monetary Advantage – The profit from cyber attacks is a strong motivator to many people and organizations. When you combine that with political and ethical issues, it becomes overwhelming.

Application Programming Interface (API)

This is a go-between that lets two applications converse.  It is a set of processes that lets a computer program use other systems including operating systems, libraries, etc.

Some code is open source, or sharable, like Linux.  The idea is that the code will improve with other experts working together on solutions.  Other code is proprietary or secret.  Companies have paid extensive amounts for it or have developed it independently and want to protect their investment.

Application Programming Interface

An API lets websites plug into each other so that coders can build new things, tools and widgets and applications.  The host site benefits with all the innovations others are building; the developers get others to view, admire, and use their handiwork.  Many programmers will add a tutorial to boot.

If you are interested in delving into this communal process, you are in luck.  All indications are that it will become increasingly important and grow exponentially.

  • Scrolling – This is an infographic that allows a programmer to see how others are modifying their applications
  • Quick View – There are other infographics that are more of a snapshot of how they work. 

These tutorials like BBVAOpen4u or SmartFile.com are helping others plunge into the world of API and expand the benefits:

  • Automation – Letting computers do the work.
  • Flexibility – By accessing components, you can mix and match your needs.
  • Range – An API can share information with new users and programmers.
  • Effectiveness – It allows for a greater scope of delivery quicker and easier.
  • Change – Over time APIs affect greater change for a larger user group.