For the last few years, I have enjoyed participating in HOUR OF CODE – a global movement reaching tens of millions of students in 180+ countries. In 2017, 154,012 Hour Of Code events were registered worldwide.

To show how much fun (and useful) coding is, I wanted the kids to build something real,  vs. simply making their favorite character walk left or right.  I decided to use the MIT App Inventor tool for my Hour of Code sessions. App Inventor is a browser-based tool that allows you to build your own apps.  We built a simple Android app to help parents reduce distractions while driving. Even though the app is super simple, the results are cool enough for kids to proudly show the app to their parents.

Here is a 10-minute video of the steps we followed to build and test the app: Read More…

 

AIS recently completed work on a complete revamp of the Texas Workforce Commission’s “Texas Reality Check” website. Texas Reality Check is an Internet-available, fully accessible, responsive, mobile-first and browser-agnostic design. This website was tested for accessibility, performance, vulnerability scans, and usability.

Background

Texas Reality Check (TRC) is targeted at students on a statewide basis, ranging from middle school to high school (with some colleges and universities making use of the tool for “life skills” classes). The goal is to inspire students to think about occupations, and prepare for educational requirements so they can achieve the income level that meets their lifestyle expectations.

This tool walks students through different areas of life, on a step-by step-basis, identifying budgets associated with living essentials such as housing, transportation, food, clothing, etc. Students make selections and then calculate a corresponding monthly income that would afford the selections they make. From here, the students are directed to another page and connected to a database on careers and associated salaries.

However, the existing site was dated and in need of improvements in three core areas: UX, Accessibility, and overall performance. Here’s how AIS delivered:

Read More…

We’ve recently worked on several mobile app development projects for tablets and phones running iOS, Android and Windows. Thanks to these projects, we’ve identified some key do’s and don’ts for managing your product backlog requirements for mobile application development efforts.

Here are some of the common business features and technical requirements/constraints for both consumer-facing apps and corporate internal apps that could show up in the product backlog:

  • Responsive UX Design (screen size, orientation, device features, etc.) – for this you will need to identify a limited set of target device configurations for acceptance
  • Required corporate branding/corporate style guides
  • Choosing between a native app style UI that is device specific vs. a common style cross-platform UI
  • Stringent speed/performance targets for initial app loading, screen navigation, response to user actions
  • Connected vs. Disconnected Operations requirements – you need to clearly define what features work when there is no connection
  • Data security and Personally Identifiable Information (PII) protection
  • Support for multiple OS and multiple versions of an OS
  • Support for multiple types of mobile browsers
  • Integration with companion apps on the device
  • Cloud/web service integration to access corporate systems of record
  • App Store submission requirements (i.e. Google Play, Apple App Store and the Windows Store). Each store has its own unique sets of UX requirements, minimum performance, storage management, legal/copyright, privacy notification requirements, content age appropriateness designation, etc.
  • App version management
  • Code-sharing across device and OS platforms
  • Graceful degradation of the app functions in case of failures
  • Process improvement support, especially for corporate vs. consumer apps that are targeted for mobile workers
  • Security and device management for corporate apps

The items in the list above may all need to be considered when you first start working with the product owner to both build the product backlog for the mobile app and help define the overall scope and timeline for the project. For consumer apps deployed through app stores in particular, the timeline for publishing to the stores — and factoring in the review and acceptance process — needs to be considered up front. Read More…

Given the widespread use of the Android operating system running on today’s mobile platforms, Android development has become an excellent choice for enhancing a developer’s skill set. Fortunately for the seasoned .NET developer, learning Android development is not a huge stretch. While there are several avenues for .NET developers looking to break into the world of Android application development, currently the most popular options are made possible by utilizing any of the following technologies:

  • Xamarin platform
  • PhoneGap framework
  • Native Android development via Java

The Xamarin platform provides the ability for .NET developers to harness their C# knowledge, create cross-platform (iOS, Android and Windows) applications, reuse existing code and perform development within Visual Studio. The greatest advantage of utilizing the Xamarin platform is a reduced time to market while supporting multiple platforms. However, due to the additional Xamarin runtime contained within the final application, the footprint tends to be larger — this could be an issue, especially for some Android devices.

The PhoneGap framework is another option for writing Android applications.  The PhoneGap framework is a client-side web application comprised of HTML5 pages using CSS and JavaScript. While it’s possible to utilize Visual Studio to code and test the application, ultimately the code will need to be packaged into a real Android application. This will require an IDE such as Eclipse or JetBrains’s IntelliJ IDEA.  The PhoneGap Build service may also be used to accomplish the application packaging. While the PhoneGap approach will provide multiple platform support, the application type should be given consideration because the PhoneGap framework relies on JavaScript, which may have performance limitations compared with native Java Android applications.

While Xamarin and PhoneGap certainly have their merits for creating Android applications, native Android development via Java provides an opportunity to take advantage of a device’s full feature set with fast execution, all wrapped in a smaller package for more rapid downloads. For a complete discussion of the various mobile platforms’ benefits/drawbacks, please read Eric Svendsen’s excellent article where he provides plenty of depth on the issue.  For now, the remaining content of this post will be to provide valuable insight for .NET developers looking to expand their language set by utilizing native Java for Android development. Read More…

Mobile solutions are already transforming the way we do business and interact with customers, partners and colleagues, but many organizations are still struggling to fully embrace the changes and opportunities. Today’s workforce wants mobile technologies that allow them to work when they want, how they want, and from where they want. (And not to mention using whatever device they want.) Here are 10 reasons to rethink your current mobile strategy and fully embrace the concept of enabling a true mobile workforce.

1. Your workers want lightweight, handheld devices.

Slim and lightweight tablets are making it possible for mobile workers to carry them virtually anywhere without burden. Who wants to carry ruggedized bulky laptops anymore?

2. Tap into tablet innovation.

Innovations are happening at a breakneck pace in the tablet world. Even warehouses are now manufacturing tablets. Fold-up, roll-up or paper tablet, anyone?

3. Simplified app acquisition.

The app economy is expected to grow to $150 billion by 2017. Users simply love the ease of acquiring (and disposing) apps. Most of them already rely on a collection of apps to get their jobs done everyday.

Read More…

What exactly is Responsive Design? The simple answer: Making digital media viewable across all devices and resolutions.

Take your company website, for example. It looks great on your desktop computer, right? But when you view it on your phone, it doesn’t look nearly as nice if it wasn’t developed using responsive design techniques. Images will be too big, the navigation may be impossible to tap and the download time may kill you.

Designers/developers must write the code in a way that looks great no matter what device it is viewed on. Basically, we have to use something called media queries. Media queries are pieces of code that allow us to put details around objects. So we can say if a web page is being viewed on a device with a 460 pixel width, display it like this. But if the web page is being displayed on a device with a 800 pixel width, then display it like that.

It actually goes well beyond just the width. We can decide what to display based on the following factors:

  • width
  • height
  • device-width
  • device-height
  • orientation
  • aspect-ratio
  • device-aspect-ratio
  • color
  • color-index
  • monochrome
  • resolution
  • scan
  • grid

We can tell your website if it should use high-res images for Retina Display or no images for a phone display. We have a ton of options. Responsive Design is in its infancy and we are discovering new ways every day to make this logical way of thinking possible. The sad fact is we haven’t quite developed the best way to do this yet. Right now we have to write tons of lines of code to account for all the different resolutions, as well as older versions of browsers that do not support the latest and greatest best practices. But each time we launch a new digital page, we get closer. We make it better. Read More…

Every software development company tests their product before releasing it to their clients. Test engineers strive to deliver the product without any defects, but quite often a defect appears (and reappears) even with the best testing processes in place.  Automation testing utilization increases effectiveness, reliability, repeatability and test coverage.

The Agile methodology is implemented in many organizations, which requires more frequent regression testing as the sprints are short. The automation capabilities can help accomplish the Agile sprint-based regression testing and integration testing needs. Read More…

I’m not going to try and convince you that mobile development is important – I hope you already recognize that it is! If you need further convincing, head on over to Allison Christman’s article – she gives you all the reasons you’ll need. However, while she mainly discussed mobile websites, I’d like to give an overview on mobile applications and their development methodologies. Should you build for the platform or the browser? Or both? What is the difference between a mobile website and a mobile application? What is a hybrid application? Knowing the strengths and weaknesses of each approach is vital when making the decision on how to best reach and serve your end-users. Read More…