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…

I recently had the great pleasure of attending An Event Apart in Washington, D.C. and was not surprised at this year’s overall theme: Go mobile.

We’re seeing more and more users browsing on what we currently consider “mobile” devices. But honestly, it’s only a matter of time before we’ll consider a “desktop” computer obsolete. That doesn’t necessarily mean users won’t be using desktops, however: It just means those desktops will be more like mobile devices. We are already seeing a high number of touch-enabled laptops and desktops, plus tablets that are closer to the size of a desktop. Yes, it is high time to make the transition. 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…

In today’s mobile society, the current and future generation of “mobile” devices (i.e. smartphones, tablets, “phablets,” special purpose devices, etc.) and the applications that can be hosted on them provide a significant opportunity to improve the way we work. This is especially true for those workers whose job involves traveling during the day to work directly with customers “in the field.” In this post, I’ll share some recent experiences we’ve had in working with mobile field workers as part of an analysis effort to define requirements for a tablet-based application.

Approach:

The specific approach we used for this project was to “follow” or “shadow” the workers as they performed their activities and collect observations about:

  • The tasks they performed,
  • The devices and applications they used to support those tasks, and
  • The types of information and work products (forms, documents, etc.) they either collected or produced in course of performing the tasks.

We worked with both staff personnel and supervisor personnel, and we looked at both scenarios where customers would come into a field office and scenarios where the field staff would meet customers at a field location directly. We then followed the observation sessions with one-on-one interviews to review the observations and ask more specific questions.

Based on our experiences, we identified what we would consider to be some key recommendations for business analysts, product managers, or others seeking to elicit requirements for mobile worker applications. 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…

Being an IT professional, and an Army Lieutenant Colonel, I have a somewhat unique perspective regarding mobile application functionality related to military leaders. As a Battalion Commander (my current military position), I frequently need access to various pieces of information and forms while out of the office/on the road. If I have my military-issued laptop with me, and can find a Wi-Fi hotspot (or use tethering), I have access to the appropriate forms and information needed. However this isn’t always the most convenient…not to mention that I normally don’t even have my military-issued laptop with me. The same is true when I’m at home, sitting on the couch, watching TV with my family and don’t necessarily want to pull out the laptop.

An Alternative

A better solution would allow me to use my tablet or phone. As a leader, a small fraction of the electronic forms that I need to complete on a recurring basis are: quarterly performance counselings and annual evaluation reports on subordinates; approving and signing of various personnel and supply actions; and submitting award requests. 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…
The Microsoft Surface Pro, iPad 4, and the Nexus 10 are all great and revolutionary tablets, but which is better for the workplace? Ever since the release of the 1st generation iPad, businesses have made a slow and steady turn toward having tablets in their arsenal of technology, but why?

Once the future of portable PCs, today laptops can be considered big, heavy, expensive…and unless you are on the high-tech side of IT or a graphic designer, you are probably using your laptop primarily to check email, browse the web, VPN and use Microsoft Office. So why carry something around that is so bulky and needs its own carrying case when there are other options? In essence, laptops are too bulky, smart-phones are too small or restricting, and PC towers were not designed to be portable. This is where the tablet comes in.

The tablet PC, or simply tablet, has been around for some time but was revolutionized and made a modern household item when Apple introduced the iPad in 2010. Since then, the competition has worked furiously to catch up and make solid tablets that are great for both the consumer and the professional. In addition to the Nexus 7 and 10, the new Microsoft Surface Pro has quickly proven itself to be a strong alternative to the iPad 4. So which one is the best for the workplace? To start we will need to at look at the guts. Read More…

One of the tasks we are beginning to explore at AIS is developing and distributing mobile applications for our corporate clients. One common scenario will be for these apps to be available only for their employees, or a select group of their clients. So distribution through Apple’s App Store, for example, may not be an acceptable solution.

There are several options for distributing enterprise iOS applications, if we can’t (or don’t want to) go through the App Store:

1. Ad Hoc distribution. This involves building the distribution files, distributing them to the clients (via email or posting them to a server), and having them drag the files to iTunes and then synchronizing their devices. That’s a little messy. And it requires repeating the process every time there is an update to the app.

Again, this is a messy process, and will have to be repeated for each update and new app.

2. iPhone Configuration Utility. Apple’s iPhone Configuration Utility (Mac version; Windows version; documentation) is another option. This leaves the task to the system administrator, and is labor intensive. The SysAdmin will either need to attach to each device, and install the provisioning profiles and the apps, or email the configuration profile to each user. A generic profile can be used across the organization, but if username and password management are a part of the profiles, then it gets very complicated, very quickly. Again, this is a messy process, and will have to be repeated for each update and new app.

3. Mobile Device Management. The SysAdmin can install apps through MDM (Mobile Device Management, requires sign-in). Again, device management is required, but MDM allows for remote management once the device has been initially configured. When a new or updated app is available, the administrator creates a new payload, sends a push notification (through Apple’s Push Notification Service) to the appropriate client devices, and the devices execute the command (in this case pulling down and installing the app in the payload). If MDM is already a feature in the organization’s administration processes, this is a viable option.

4. Distribute apps wirelessly, using the Over the Air (OTA) process. This is the route I’ll discuss in detail, as it seems to be the most straightforward and easiest to implement of the available options, especially if MDM is not applicable. There are some wrinkles, too, which can automate the process of updating/upgrading the apps transparent to the users.

Read More…

Awhile back, we wanted to create demo videos for clients, showcasing some of our iPad Web Application work. One of the challenges was how to show the interactions — the touches and gestures — when working with the application. There is no mouse, like on desktops. A screenshot, or a video of the application, will simply show things happening as if by magic. And taking a video or photo of a user interacting with the device is just clumsy and laborious: You need a camera, the user’s hand covers the content, you have to get a manicure, all that.

With the programming expertise of Xiyuan Shen and our good friend Ian Gilman, I set out to do something about this. I knew from having seen the awesome yet thoroughly creepy Phantom Limb (demo) that it was possible to inject a mouse-marker using a bookmarklet. This would allow us to run our code on almost any webpage, without the author having to include our script on their page. It could be injected on an as-needed basis by the presenter.

Read More…