Accelerate Mobile Development with Cross-Platform Tools

Kelowna

Cross-platform tools allow developers to repurpose existing skills to accelerate native, multi-platform mobile development.

While many of your mobile, cross-platform goals can be accomplished with HTML5, you might be wondering if there’s a solution for pure native code. There are a growing number of options out there using popular programming languages and even no code at all.

Appcelerator provides an IDE and the Titanium SDK allowing developers to create cross-platform apps using JavaScript. Unlike Hybrid apps, the JavaScript is compiled to native code for better performance. APIs are included to ensure apps can take advantage of all platform features as well as native UI elements.

If you’re a .NET shop with developers comfortable with Visual Studio and skilled in the C# programming language, Xamarin is right for you. This development tool runs on its own or plugs into Visual Studio allowing you to build native iOS, Android and OSX apps. It also implements the native UI of each platform so users will never know the apps weren’t built in Objective-C, Swift or Java. Xamarin is a great way to leverage .NET investments across devices.

Zero-code or low-code solutions like AppArchitect, Alpha Anywhere, SkyGiraffe, Force.com, PowWow, WorkSimple, PowerApps, Reddo, MobileSmith, StarMobile and others are worth your due diligence to speed up development efforts as long as they don’t create a risk to your business platforms.

Reduce expenses by building apps for all mobile platforms with a single codebase and a smaller development team to get your product to market more quickly and pervasively. Has your company pivoted to cross-platform development tools?

Learn how to digitally transform your company in my newest book, “Mobile Strategies for Business: 50 Actionable Insights to Digitally Transform your Business.”

Book Cover

Click to purchase a copy of my book today and start transforming your business!

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Reduce Business Risk by Migrating your Legacy Software to Modern, Secure Platforms and Programming Languages

St Louis

Businesses drag their feet when mobilizing line of business apps via legacy software migration thinking it’s cheaper to maintain a codebase than to rewrite.

I get it. Migrating all those apps to mobile seems like eating the proverbial elephant. They cost a lot of money to build, the highly-skilled developers needed to rewrite the code are harder to find than ever, the code isn’t commented and there aren’t any docs. This often leads to IT decision makers putting off these projects, perhaps until it’s not their problem anymore. So why do it?

For starters, your employees will be significantly more productive running your apps on the mobile devices they actually use. Since work is not a place to go but a thing to do, employees can get their jobs done from anywhere. Millennials won’t be chained to a desk and they’re going to use the devices they like best. Face it, those Win32 apps are never going to run on someone’s iPhone and your new generation of employees haven’t ever heard of Windows 95. Not changing is a non-starter as you’ll just miss out on younger talent entirely.

Another good reason migrate all these apps and systems is because they’re running on outdated hardware and software. It goes without saying that this infrastructure has far surpassed its end of life (EOL) and there is absolutely no support coming from the original vendors of the computers, operating systems, software and development tools. I’m actually not 100% correct on this point. There are some giant technology vendors that charge tens of millions of dollars per year to support old systems that reached EOL without migrating. In the end, migrating is significantly cheaper and it rescues your valuable intellectual property from fragile, unsupported, failing systems.

There’s a more ominous reason to migrate your apps. Most data breaches are due to running unpatched, out-of-date, and therefore unprotected software. This includes:

  • Software written before PCs were pervasively open to Internet attacks.
  • Apps that don’t require authentication.
  • Apps that don’t encrypt data at-rest or data in-transit.
  • Apps written before established secure development lifecycle procedures.
  • Un-patched software.
  • Software oblivious to buffer overflows or SQL injection attacks.
  • Software and services built with the assumption that they would always be “inside the firewall” and therefore protected.
  • Apps that don’t follow “least privilege” principles.
  • Apps that don’t work with modern sandboxed operating systems.

This older and often unattended software is putting your company at risk. Individual and state-sponsored hackers are attacking the software of companies all over the world. Valuable intellectual property and sensitive customer data is being stolen daily. Company executives are getting fired. You absolutely don’t want this to be your priceless intellectual property or your customer data. This is a fast ticket to losing your competitive advantage as well as the trust of your customers. Oh, and you might be looking for a new CEO and CIO.

So what’s the game plan?

  • Catalog all your Win32 and Web 1.0 apps and assemble a v-team to take ownership of them.
  • Send out surveys to all your employees to find out who’s still using which apps.
  • Utilize asset management discovery software that scans the company network searching for apps running on Windows, Macs and servers.
  • Pull the plug on apps that don’t show up in a survey or via asset management scanning.
  • Listen carefully for screaming employees and turn those apps back on. I expect you’ll find a good percentage of those apps aren’t used anymore.
  • Eliminate the next chunk of apps by seeing if employees can use a new or different process to accomplish certain tasks. Your business and processes may have changed so much over the years that some of these apps aren’t relevant.

When rewriting the remaining apps, focus less on the code and more on data sources, workflows, user interfaces, performance and latency. I’ll talk later about new ways to connect to data and build new apps. It’s more important to reverse-engineer the way employees perceive these apps to work than how the existing code actually makes them work. This provides a good opportunity to stealthily update business cases.

Reduce risk to your company by migrating unsafe, unsupported, end of life software to modern, secure platforms and programming languages. How rapidly is your company de-risking its exposure to legacy business applications?

Learn how to digitally transform your company in my newest book, “Mobile Strategies for Business: 50 Actionable Insights to Digitally Transform your Business.”

Book Cover

Click to purchase a copy of my book today and start transforming your business!

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Improve Employee Productivity by Moving your Win32 and Web 1.0 Apps to Mobile

Pittsburgh

It’s time to migrate the millions of Win32 and Web 1.0 apps that currently run global business to mobile.

Global businesses are run primarily by Windows applications built in the 90s. While apps were created for DOS, the Apple II, OS/2, Sun Workstations, Win16, NeXT, SGI and the Mac in the 80s and early 90s, most were migrated after Windows NT/95 arrived. Y2K taught us COBOL on mainframes are still around. The larger mega-trend stemmed from low-cost PCs coupled to a graphical operating system working with minimal RAM and slow processors. Combined with drag and drop GUI development tools, a perfect storm took over the world of business. The resulting Win32 apps drove a tidal wave of productivity and innovation. Companies still have thousands of them in use today.

Something else happened in the 1990s. A giant network of networks called the Internet, combined with Tim Berners-Lee’s World Wide Web, to create the next technology revolution. Web servers arrived and businesses created static web pages to establish a presence on the web and start marketing to customers. The Intranet was born with internal-facing web pages used to disseminate information to employees. Server-side data processing gave rise to Web 1.0 apps that didn’t have to be deployed to employee desktops the way Windows apps did.

The Win32 and Web 1.0 apps are still with us and must urgently evolve to fit in a world where untethered people expect to flexibly work anytime, from anywhere with mobile devices instead of desktops.

Improve user productivity by migrating legacy apps and websites to the mobile devices employees and customers actually use. What is your organization doing to unchain its employees from desktop apps?

Learn how to digitally transform your company in my newest book, “Mobile Strategies for Business: 50 Actionable Insights to Digitally Transform your Business.”

Book Cover

Click to purchase a copy of my book today and start transforming your business!

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Get Connected to Windows 10 IoT Core on Your Raspberry Pi 2

USB Ports

Connect to Windows 10 IoT Core on Your Raspberry Pi 2 with Secure Shell, the Web and Visual Studio.

In my last article, I showed you how to get Windows 10 IoT Core installed on your Raspberry Pi 2. In order to remotely configure, monitor and push Universal Windows Platform apps to your Pi, your Windows 10 PC must be able to connect. A critical element in making all this work is to ensure your PC is on the same network and subnet as the Raspberry Pi 2. Lets get to work.

A quick glance at your Raspberry Pi’s home screen will show you its name and IP address.

Windows Home

From the command prompt of your Windows 10 PC, run ipconfig to verify that it is on the same network and subnet. Sending a ping to your Raspberry Pi to ensure you can reach it is a good idea as well. If your connectivity is good, then it’s time to remotely connect via Secure Shell (SSH) so you can run commands on your Raspberry Pi.

In order to connect with Secure Shell, you’ll need need a remote shell client for Windows. PuTTY is a commonly used, open source terminal emulator that can be downloaded here. Once it’s downloaded, launch the app, type in the IP address of your Raspberry Pi, select the SSH radio button and click the Open button.

PuTTy

The first time you connect, you may experience a slight delay and a Security Alert dialog below might popup. Just click the Yes button to proceed.

Security Alert

Once you connect, type the default value of Administrator at the login as: screen and hit enter. Next, type the default password of p@ssw0rd and hit enter.

SSH Login

Welcome back to DOS! No Edlin jokes…

SSH

Let’s try a few commands. If you don’t like the default device name of minwinpc, you can change it by typing setcomputername <new name>. I changed mine to houseofpi in honor of the Houston restaurant where Rod Canion and the other founders of Compaq hatched their plan for a new computer company on a paper placemat. Type hostname to make sure you got it right.

One thing I absolutely want you to change is the Administrator password since your new IoT device is currently in a vulnerable state.  Type net user Administrator <new password>to make this happen. Please take IoT security seriously so you don’t contribute to creating the largest attack surface in the history of computing. A good list of Windows 10 IoT Core command line utilities can be found here.

Now lets move on to see how you can connect to your Raspberry Pi via the web.

Looking back to the installation of Windows 10 IoT Core for Raspberry Pi 2 from the previous article, it installed an app called Windows IoT Core Watcher which can be found from the Windows Start menu at All apps | Microsoft IoT. When you launch this app, it should display your Raspberry Pi in a list as shown below:

Windows IoT Core Watcher

Right-click on your device and select Web Browser Here from the context menu. Since you just changed your password, the browser will prompt you for it before displaying the page. As you can see below, the Home page just shows you some minimal information about your Raspberry Pi.

WebHome

The App page shows you a dropdown list of installed apps that you can run, uninstall or set as the default app at the top. Remember, only one app can run in the foreground at a time on Windows IoT Core. The Install app section is interesting in that it lets you remotely install your app (.appx), associated certificate (.cer) and any other dependencies your app may have.

AppX

The Process page works similarly to the Task Manager on your PC and displays a list of running processes along with associated CPU and memory usage. Clicking the X next to any of the processes will kill it.

Processes

Also like the Task Manager on your PC, the Performance page displays real-time CPU and file I/O utilization and memory usage.

Performance

There are a lot of other pages to explore that deliver helpful information and diagnostics to help you be successful with Windows 10 IoT Core on the Raspberry Pi 2. Definitely check them out.

As you might imagine, the whole point of having Windows 10 IoT Core is to run apps. This is where Visual Studio 2015 and the Universal Windows Platform comes in.

RTM versions of Visual Studio 2015 Community, Professional or Enterprise are required to get started. Make sure Universal Windows App Development Tools -> Tools and Windows SDK are installed during the setup procedure. After installation, download the Windows IoT Core Project Templates from the Visual Studio Gallery to make your File | New Project experience more productive. Last but not least, make sure developer mode is enabled by following these instructions.

If the Raspberry Pi devices you’re targeting are deployed with a connected monitor that a person can interact with, create a Windows Universal Blank App project in Visual Studio to deliver a user interface. On the other hand, if you’re targeting headless Raspberry Pi devices, create a Windows IoT Core Background Application in Visual Studio.

Once your headless or GUI IoT app project is loaded, you’ll have to make some adjustments to Visual Studio in order to deploy and debug against your Raspberry Pi. You’ll need to select ARM to support the Broadcom CPU and Remote Machine to debug over Ethernet.

ARM x86 Remote

It’s possible that a Remote Connections dialog will popup when you select Remote Machine for the first time. If Visual Studio cannot find your Raspberry Pi automatically, type in its IP address in the Address text box. Select none instead of Windows for Authentication Mode and click the Select button.

Remote Connections

Next, I want you to go to the Solution Explorer and double-click on the Properties icon of your IoT project. Click Debug on the left side of the screen and ensure that Target device is set to Remote Machine and the IP address of your Raspberry Pi is displayed in the Remote machine text box. Click the Find button to verify that Visual Studio can connect. If your Pi cannot be found, it’s possible that Visual Studio’s remote debugger on the Pi has shut down after a long time of inactivity. Try restarting your Raspberry Pi and give it another shot.

Debug

If all goes well, the Remote Connections dialog should popup and the name of your Pi should be displayed beneath the Auto Detected section. Click the Select button.

Remote Connections Success

After the dialog closes, make sure that the Use authentication check box is unchecked and then click the Save icon. At this point, you should be able to hit F5 and remotely debug against your Raspberry Pi.

As you can see, there’s no shortage of ways to connect, configure, control and debug against your Raspberry Pi running Windows 10 IoT Core. Now start building those IoT apps using the development tools and programming languages you’re comfortable with.

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Proximity Sensors and Bluetooth in Windows Phone 8

During this video, Andy and I cover local communication with Windows Phone 8.

After a Bluetooth overview, we show you how to use Bluetooth from an application, Near Field Communications (NFC), bump-to-connect, as well as the proximity API functionality.

Be sure to check out previous Windows Phone 8 Jump Start videos from Rob and Andy:

– Rob

Network Communications in Windows Phone 8

During this video, Andy and I show developers how to leverage patterns for the asynchronous use of networking APIs in Windows Phone 8.

Topics include WebClient, HttpWebRequest, Listener Sockets, Web Services, OData V3, Data Compression support, Simulation Dashboard, Data Sense and apps. Storing data in Skydrive, encryption and authentication are also covered. Accessing services running on localhost from the emulator is demystified.

Be sure to check out previous Windows Phone 8 Jump Start videos from Rob and Andy:

– Rob

App to App Communication in Windows Phone 8

Learn all about app to app communication in Windows Phone 8.

In this video, Andy and Rob demonstrate app to app communication in Windows Phone 8. Topics such as auto-launching with File and Protocol Associations (URI), launching apps to handle particular File Types, and launching one app from another are covered.

Be sure to check out previous Windows Phone 8 Jump Start videos from Rob and Andy:

– Rob

Using Phone Resources in Windows Phone 8

In this video, Andy and I demonstrate how to leverage a variety of Windows Phone 8 resources.

Working with Launchers and Choosers, using Contacts and Calendars (SaveAppointment Task, Custom Contacts API), taking still images and manipulating video streams (Camera APIs,  lenses), working with the Windows Phone Microphone and Sensors (such as the Motion sensor) and working with Video Content are all covered in this video.

Be sure to check out previous Jump Start videos from Rob and Andy:

– Rob

Windows Phone 8 Push Notifications

During this video, Windows Phone 8 Push Notifications and server-initiated communications are discussed.

Andy and Rob discuss the Push Notifications Infrastructure and demonstrate three kinds of notifications including: Raw, Toast and Tile, as well as Push Response Headers.

Be sure to check out previous Jump Start videos from Rob and Andy:

– Rob

Windows Phone 8 Tiles and Lock Screen Notifications

In this video, Andy and Rob teach developers about Live Tiles in Windows Phone 8.

Topics include Local Tiles API, Updating Tiles from ShellTileSchedule, Updating Tiles from Background Agents, Lock screen notifications for Windows Phone, and Lock screen background for Windows Phone.

Be sure to check out previous Jump Start videos from Rob and Andy:

– Rob