Quantcast
Channel: Infragistics Community
Viewing all 2363 articles
Browse latest View live

Webinar: Optimizing WPF and XamDataGrid Performance

0
0

Overwhelmingly, WPF has been the platform of choice for desktop applications over the course of the last couple of years. It enables developers to quickly build flexible desktop applications which can be easily customized and styled. However, due to the fact that the platform enables customization on such a granular level, very often such extensive customization starts having a negative impact on performance. In this webinar I described the major points to keep in mind to ensure a high level of performance.

As the grid control is the mainstay of the vast majority of applications, I covered the API and approaches you can use to improve the performance of the grid control we provide as part of the NetAdvantage for WPF product - XamDataGrid. The XamDataGrid is the fastest fully-featured WPF grid control on the market, and our customers are using it to handle the full range of scenarios from the most visually customized to the high-performance real-time data displays. The webinar will illustrate how to improve the performance of WPF applications in general, and how to specifically improve sorting/filtering, scrolling and startup times of views using the XamDataGrid.

You can watch the full webinar here.

You can find the slides for this webinar here.

You can download the samples I used during the webinar here:

Using WPF and XamDataGrid in high-performance settings requires customizations which are covered in the blog posts above and in the webinar. You can now reach out to your users to find the key areas in need of improvement and use this guidance to improve the performance of your application.


Building Windows Phone Application using PhoneGap

0
0
WindowsPhone8_logo
 

  PhoneGap_logo

  

 

 

 

There is a lot of buzz about building Hybrid mobile applications. In this blog series we will talk about building Hybrid mobile applications using PhoneGap. For those who are new to hybrid apps let’s review the pros and cons of this approach.

 

Hybrid Application Architecture

Why Hybrid?

  • Hybrid apps lets you develop and deploy apps much quicker to the app store/marketplace, as you do not have to rewrite the code for different platforms. (HTML5 can be used across different platforms for the markup!)
  • Web developers can re-use their existing knowledge rather than learning various development environment/languages.
  • Transforming an existing web apps into Hybrid mobile app is much simpler than creating native apps for different platforms (Windows Phone, iOS, Android, etc.)

These are few of the reasons why Hybrid apps are a good option. In this blog we will use PhoneGap to build a native/hybrid Windows Phone App.

 

Why not Hybrid?

  • When you need a 3D gaming app or an app that requires very high FPS (frames per second), as Hybrid apps runs in a webview. (It is as good as Web Application)
  • When you want to use native API's/gestures specific to a particular platform. In Hybrid app you may not be able to use all the native API's!
  • You need the world's best user experience out of an app! Native is the way to go.

 

What is PhoneGap?

PhoneGap is a free and open source framework that allows you to create mobile apps using standardized web APIs for differnet platforms. You get to create mobile apps using web technologies (HTML,CSS, and JavaScript).

You can check out the Supported Features/API's by PhoneGap.

 

Setting up the Environment for building Windows Phone Application using PhoneGap:

Requirements:
  • App Hub membership for deployment via Marketplace
  • Installing Windows Phone SDK + Cordova (And extract its content.) Note:The software underlying PhoneGap is Apache Cordova, hence referred as Cordova at times.
  • Extract Phonegap-[ver].zip, and go to lib -> Windows-Phone-8
  • Copy CordovaWP8AppFull-x.x.x.zip template to the folder : \My Documents\Visual Studio 2012\Templates\ProjectTemplates\
Setup New Project:
  • Open Visual Studio and choose New Project
  • Select CordovaWP8AppFull-x.x.x.zip template, and name the project
Project Structure:
  • 'www' folder contains Cordova html/js/css resources in your application. Make sure you add in all resources under this folder.
  • Make sure you set all resources added to this folder as content, else the resource would not be rendered.
Build the Project:
  • Run the solution in the emulator (F5)
  • You may test this XAP on a test device

image

Check out Mihail’s blog which talks about the difference between CordovaWP8AppFull-x.x.x.zip and CordovaWP8AppStandAlone-x.x.x.zip templates which you can find in the PhoneGap folder.


Now we are ready to get started with PhoneGap for Windows Phone 8 using the default template.

Let's try and access some native features using PhoneGap's API's.

For example let's try to find out the Location of the device using the location API's

 

We can call the native GPS/ geolocation API using the cordova method:

geolocation.getCurrentPosition

  1. navigator.geolocation.getCurrentPosition(geolocationSuccess,
  2.                                  [geolocationError],
  3.                                  [geolocationOptions]);

 

Permissions required:

  1. <Capabilities>
  2.   <CapabilityName="ID_CAP_LOCATION" />
  3. </Capabilities>
 

You will need to add the respective permissions/capabilities in the WPAppManifest.xml. While you submit your app for deploying it on the marketplace, Microsoft runs a static analyzer against your application to figure out what capabilities does your app requires to run. Microsoft will place a disclaimer on your app on usage of these capabilities. (In fact the app might get rejected by Microsoft if the capabilities found out by their analysis doesn't match the capabilities mentioned by you!)

 
Another example:
Accessing Device Details using HTML/JS code:

  1. <!DOCTYPEhtml>
  2. <html>
  3.   <head>
  4.     <title>Device Properties Sample</title>
  5.  
  6.     <scripttype="text/javascript"charset="utf-8"src="cordova-2.5.0.js"></script>
  7.     <scripttype="text/javascript"charset="utf-8">
  8.  
  9.         // Wait for Cordova to load
  10.         //
  11.         document.addEventListener("deviceready", onDeviceReady, false);
  12.  
  13.         // Cordova is ready
  14.         //
  15.         function onDeviceReady() {
  16.             var element = document.getElementById('deviceProperties');
  17.  
  18.             element.innerHTML = 'Device Name: ' + device.model + '<br />' +
  19.                                 'Device Cordova: ' + device.cordova + '<br />' +
  20.                                 'Device Platform: ' + device.platform + '<br />' +
  21.                                 'Device UUID: ' + device.uuid + '<br />' +
  22.                                 'Device Model: ' + device.model + '<br />' +
  23.                                 'Device Version: ' + device.version + '<br />';
  24.         }
  25.     </script>
  26.   </head>
  27.   <body>
  28.     <pid="deviceProperties">Loading device properties...</p>
  29.   </body>
  30. </html>


Permissions Required:

  1. <Capabilities>
  2.   <CapabilityName="ID_CAP_WEBBROWSERCOMPONENT" />
  3.   <CapabilityName="ID_CAP_IDENTITY_DEVICE" />
  4.   <CapabilityName="ID_CAP_IDENTITY_USER" />
  5. </Capabilities>

 

 

You can download the sample which accesses the device details using Cordova and prints it on the screen. You can find detailed API Documentation of PhoneGap here.

I will be blogging on using IgniteUI controls with Cordova in my next blog. And in the later blogs we will also learn about PhoneGap build service.

 

Cheers,
Abhishek
@narainabhishek

4 Great HTML5 Conferences to Attend in 2013

0
0

HTML5, though it feels like it has been around for a long time, is still in fact not a formal release of HTML. Its actual status is “W3C Candidate Recommendation,” which means it is currently being assessed by the wider development community. The W3C plans to have a stable formal release by the end of 2014.

However, this hasn’t stopped the web development community adopting it with great enthusiasm. Some of the most prominent websites in the world are written using HTML5; some of the biggest names in web development are HTML5 enthusiasts. Along with the usual blogs and books, there are a number of fantastic HTML5 focused conferences happening around the world. Events such as these are a great way to network, to learn new skills, and peek into the future.

Here are 4 conferences we think you should know about if you are serious about HTML5:

HTML5 Developer Conference
1-3 April 2013 - San Francisco, USA
Billing itself as “the largest HTML5 (and JavaScript) developers’ conference in the world,” it takes place on the 1st, 2nd, and 3rd of April. Speakers include Steve Sounders from Google and Philippe Le Hegaret from the W3C.

DevCon 5
24-25 July - New York, USA
This conference has a great focus on practical sessions and education of its visitors. Learn about new HTML5 tools and techniques from the big names in the development industry. Speakers include representatives from Adobe and Microsoft.

Richard Clark’s HTML5 Mobile Mastery Two Day Workshop
17-19 June - London, United Kingdom
This is a much smaller event, but it’s a really great place for those in the UK to learn HTML5 from someone who is an expert in his subject matter. Richard Clark has taught for Apple and HP, and has written high performance web apps for Fortune 100 companies

onGamestart 2013
18-20 September - Warsaw, Poland
A bit of a left field choice, onGameStart recently held a conference in New York, and is planning another event in Poland later this year. This conference focuses purely on gaming, which has been a huge area of growth for HTML5. The gaming industry and the performance optimization it requires often drives innovation.

Revisiting Prototyping With Indigo Studio

0
0

Watch Webinar Video

Webinar Description

This webinar/demo introduces you to the core capabilities and rationale behind Indigo Studio, and how it relates to prototyping.

But before demonstrating Indigo Studio's capabilities, I argued that "evaluation" lies at the heart of interaction design methods. That is, evaluation in use, with users, and in the right context. However, maturity of interaction design as a professional practice has brought with it an abundance of techniques and terminology. And while this has helped members within this practice to communicate their science and craft, not everything designers produce are meant for users. Often times we create artifacts that are about the design, and created to understand the problem at hand. And in a rush to create or design, we forget that some common deliverables really cannot be evaluated with users (e.g., annotated wireframes). You can view the presentation to see why this may be the case.

If we want to retain an unwavering focus on evaluation-in-use, a prototyping process is indispensable. And Indigo Studio has been designed to significantly reduce the effort required to create, evaluate and iterate your prototypes. And it does so in a novel way!


You can download my presentation slides here. Also, here is the Indigo Studio project I created during the webinar.

In Conclusion

  • Think of prototypes as a primary user-facing deliverable
  • Evaluate Design-in-Use then codify
  • Humanize your prototypes with Stories of Use
  • Use stories as a guide when prototyping
  • Create a collage to design just enough
  • And remember, it's fidelity of the experience and NOT of the prototype

If you need help with Indigo Studio or prototyping in general, email us at indigo AT infragistics.com or follow us on twitter @indigodesigned.

About Indigo Studio

Version 1.x of Indigo Studio is free forever, and yours to keep. Check out some of the highlighted features here or download it now.

Top Five iOS Development Resources

0
0

The Apple app store is one of the most popular in the world, with over 40 billion apps downloaded since it went live in 2008. Nearly half of those downloads were last year, so clearly there is a growing appetite for apps. Lots of you reading this will have tried your hand at developing iOS apps, or at least it will have crossed your mind. If it’s crossed your mind but you haven’t taken a crack at it, many of you may have wondered the following: Where do you start? What help is out there? Let us help by pointing you towards some useful iOS development resources. Feel free to leave a comment if you have any other good tips that might be of use to developers!

Official Apple iOS DEV Center
You need a developer account to get the most out of this site (and there is a yearly fee to pay), but it is the official source of documentation for iOS development. Lots of good video content as well. This one is a must for anyone serious about iOS development.

Apple App Review Guidelines
If you’ve spent even a moment considering developing for the app store, you will know Apple reviews every app that appears in it. You’ll also be aware that the results aren’t always clear cut, and the web is often filled with stories of disgruntled devs who can’t work out why they were rejected. Here is the official rule book to get you started, best of luck!

O’Reilly iPhone Resources
O’Reilly has long been the final word in guides and tutorials for a wealth of technical and programming topics. Things are no different when it comes to the iPhone and other iOS devices. This site links to all of their relevant materials.

Glyphish
It won’t take long in your iOS app development career before you are trying to design the most beautiful of interfaces. This site is dedicated to icons for mobile development, and even includes Retina enhanced images for Apples top end devices. This resource is very useful for the creatives among us.

Stackoverflow.com
If you don’t know of this site by now then you are either an incredibly skilled developer, or you’ve been in hiding for a few years. Stack Overflow is a vital source of knowledge on all kinds of programming and developer topics.

Using the GitHub for Windows app with BitBucket

0
0

If you aren’t using any form of source control in your project then stop right now and fix this. To get up and running with Git takes a whole 10 minutes to set up, and you will have your source code up in the cloud, should your computer blow up in the future (or you absent mindedly delete an important file).

Last year I wrote a blog post explaining how you could get free online source control for your personal projects by using a combination of a free account at http://bitbucket.org/ and the GREAT Git client created by GitHub http://windows.github.com/. Things have progressed so it is time to write an update.

BitBucket vs. GitHub

Lets take a quick look at a matrix that explains the two servies. GitHub is quickly becoming the De facto place to host public open source projects. This is because they allow unlimited public repositories with collaborators. However if you are working on your own project you will probably want to keep your code private. This is where BitBucket shines, if you just want to a place to host all of your private repositories, then you can have unlimited private ones. The limitation of 5 collaborators is fine for private projects.

 BitBucketGitHub
Private repositoriesFree
(Limited to 5 collaborators)
PAID
Public repositoriesFree
(Limited to 5 collaborators)
Free

The GitHub for windows application

Using Git from the command line can be hard. There are a lot of commands to learn while simultaneously trying to learn the workflow of Git works. While it is important long term to understand these commands, when getting started a GUI can help ease you into this new world.

image

The GitHub for Windows application has great integrated support for BitBucket (as can be expected), however it can work as a generic Git client just fine. This will allow us to use it with BitBucket.

Creating a repository on BitBucket

The new sign in screen on BitBucket.org surprised me. You can now actually sign into BitBucket with your GitHub account *Mind Blown*

image

Once you have logged in, create a new repository

image

Connecting the GitHub app with BitBucket

Once you have created a repository, find a place where it displays the address of your new Git repository (e.g. under Get Started). Then select the URL and then drag the text from your browser, and drop it into the GitHub for Windows app. It will automatically add the repository.

image

Now place your source code within that folder in Windows Explorer, commit your source code into the repository, then publish your new change set back up into Bitbucket. Done easy!

image

image

image

By David Burela

Creating the Sensis Showdown app

0
0

Recently I was at a developer camp. In attendance was a developer evangelist from Sensis who was encouraging devs to create an app for their search API http://developers.sensis.com.au/about. There was a cash prize for whoever wrote the best app by the end of the hackathon.

Long story short, I came in 1st place Nerd smile.

The API

Sensis are a directory services company (White Pages, Yellow Pages, Business directories, etc.). Their search API allows you to search for local businesses based on key words and locations. It was a REST based API and they provided some legacy .Net 4.5 sample code to interact with the service. However this didn’t work with the new asynchronous apis in WinRT. So I spent an hour trying to very roughly convert it over to a WinRT compatible sample which I then shared with the entire group in attendance, to help everyone else get a head start on entering this competition https://gist.github.com/DavidBurela/5069136. The interaction code could have been my “secret sauce”, but that is no fun. Everyone at the event was there to have fun hacking away at WinRT and WinPhone apps. I wanted to see what everyone else could come up with once they had the API access code out of the way.

The idea

After spending a few hours helping everyone else in attendance, I realised I only had 2 hours left to build something. I’d done a bunch of work with the Bing Maps control recently, so it made sense to start there. A generic “search for a term and display it” app seemed boring, and is the same functionality as their own website.

After a bunch of brain storming I realised I could increase it to two search terms and compare the two. This idea expanded into a competitive comparison for the ultimate argument decider. You always have random arguments when in a bar “Chinese food is more popular”, “No way pizza is”.

This led me to a “Red vs. Blue” comparison. Search for two terms, have it mapped as Red vs Blue push pins, and then display the final numbers

 Pizza Vs PastaSushi Vs Fries

Downloading the app:

Windows 8 marketplace

Within 72 hours of creating the app, it had already gone through marketplace certification. Microsoft is getting VERY speedy in the approval process now. You can download the app onto your Windows 8 machine at http://apps.microsoft.com/windows/app/sensis-showdown/5d96dec3-ce11-4164-8b2a-b6b97a59cce5

Source code

As I do with most apps I create for fun, I have thrown the full source code up onto BitBucket https://github.com/DavidBurela/SensisShowdown

By David Burela

Exploring JavaScript MV* Frameworks Part 1 – Hello Backbonejs

0
0

Javascript-MVC-JuggleJavaScript has become one of the most popular programming languages on the web. At first, developers didn’t take it seriously, simply because it was not intended for server side programming. It was a common misconception among professional developers that this language was meant for “Amateurs” as it focused only on User Interface. JavaScript got the spotlight when the usage of Ajax came to light and professional programmers gave importance to the responsiveness of the page. But now the language has become more popular than ever as the User Experience has become the key part of web development. Accessing web is not limited to browsers alone – there are lot many devices with varying screen sizes accessing the same content. With the rise of HTML5 and CSS3 the web will become more adaptive and responsive than ever and JavaScript plays a major role in it. It has also gained popularity in the server side programming which is made possible by NodeJS framework.

Increase in usage of JavaScript in modern applications demand developers to write maintainable code, separate concerns and improve testability. JavaScript is a “class” less language and it was not designed to support Object Oriented Programming, however you can achieve similar results by workarounds. So if you are a developer from an Object Oriented Programming world, then you will find it hard until you get used to it. Though there are some DOM manipulation libraries like jQuery which simplifies client side scripting of HTML, they actually do not solve the problem of effectively handling separation of concerns. You will end up writing lot many jQuery selectors and callbacks to keep the data in sync between the HTML, JavaScript and the data fetched from the server and we’re still stuck with the Spaghetti code.

Fortunately there are a few libraries and frameworks that come to rescue. Let’s explore few concepts and libraries that assist in structuring JavaScript applications!

This post is the first part of a blog series on JavaScript Frameworks and Libraries out there and I will be exploring BackboneJS here. Stay tuned for others!

What is MV*?

Though all the frameworks out there somewhat tries to be MVC but they do not necessarily follow the pattern strictly. The idea of all the patterns is to separate Model, View and Logic that hooks the two behind which is the controller. However BackboneJS embeds the controller logic in the view itself though it efficiently maintains the separation. On the other side we do have other libraries which implement Model-View-Presenter(MVP) and Model-View-ViewModel(MVVM) pattern. For this reason we will refer these frameworks as MV* implementation.

What is MVC?

Model – View – Controller is an architectural pattern that has been around for a long time and is widely used in server side programming. There are a few frameworks like ASP.net MVC, Ruby on Rails etc. which help web developers to easily program them.

Model– refers to application data and business rules. (a.k.a domain model, entities)

View– what user sees! (HTML page in the web browser)

Controller– mediator between the two. Manipulates the model based on the user interaction. It handles all the logic.

MVC-Process

Image Source: Wikipedia

MVC in JavaScript?

Building single-page applications using JavaScript are getting popular these days and good examples of them are GMail and Google Docs. When you set out to build these type of applications you will most likely invent many of the pieces that make up an MV* coding paradigm. So instead you can make use of some of the famous libraries such as BackboneJS, KnockoutJS, AngularJS, EmberJS .... Let’s explore these frameworks in detail starting with BackboneJS.  

Framework or just a Library?

Before you pick to work on a particular JavaScript Framework or a Library, it’s important to understand the difference between the two. Libraries just fit into your existing architecture and add a specific functionality whereas a Framework gives you an architecture and you will need to follow the rules. To make it simpler for you – Backbone and Knockout are JavaScript libraries and Ember and AngularJS are frameworks. As we explore them you will see the clear difference.

Hello Backbone

Backbone_logo_horizontal

Backbone is a lightweight JavaScript library created by Jeremy Ashkenas who is also known for CoffeeScript. It is designed for supporting Single page web application and has a dependency on UnderscoreJS library which provides utility functions for common JavaScript tasks.

With Backbone, data is represented as Models, which can be created, validated, and saved to the server. Views display the model's state and it re-renders itself when a change is triggered(via a "change" event) in the model due to an UI interaction. This way Backbone provides a structured approach of keeping the data in sync with the HTML UI.

Some of the major websites that used Backbone include USA Today, LinkedIn Mobile, Hulu, WordPress, Foursquare, Bitbucket, Khan Academy and more..

Getting started with Backbone

Script Dependency

Backbone has a dependency on UnderscoreJS or Lo-Dash for utility functions and relies on either jQuery or Zepto for DOM manipulations. So make sure you add them to your page.

<script type="text/javascript" src="../common/jquery-1.8.3.min.js"></script><script type="text/javascript" src="../common/lodash.js"></script><script type="text/javascript" src="js/backbone.js"></script>

Backbone.Model

$(function(){
      var Person = Backbone.Model.extend({});
      var person = new Person({name: "James", age: 51});
      var name = person.get("name");
      var age = person.get("age");
      console.log(name + ":" + age);
});

To create a Model class of your own, you extend Backbone.Model and pass a JavaScript object to the constructor and set the attributes.  You can then easily retrieve the values from a get function. You can alternatively set the attributes using a set function.

Backbone.View

Set a template first:

<script type="text/template" id="person-template"><div class="view"><p>Name: <input type="text" value="<%- name%>"/></p><p>Age: <input type="text" value="<%- age%>"/></p></div></script>

Set a container for rendering:

<div id="container">Your content will load in a bit..</div>

Define a view in the script:

//define view
var AppView = Backbone.View.extend({
el: '#container',
model: person,
template: _.template($("#person-template").html()),
initialize: function(){this.render();},
render: function(){this.$el.html(this.template(this.model.toJSON()));}
});
// initialize view
new AppView();

Views in Backbone are almost more convention than they are code so you will  have to rely on some JavaScript templating library like Underscore templates or Mustache.js to do a cleaner separation of the UI. In the above example I have used Underscore’s templating solution to achieve the separation. 

Your own custom Views can be created with the help of Backbone.View.extend. There are few basic properties that you must be aware of to set the View.

  • el – DOM element that the view will be rendered on. In this case it is <div> element with the id “container”
  • $el – a cached jQuery (or Zepto) object for the view’s element
  • model  set the model data that was created using Backbone.Model
  • template –  Backbone is agnostic with respect to your preferred method of HTML templating.  In this case Underscore’s template function is used to set the template that is defined in the “person-template”
  • initialize – this function will be called by Backbone at the time of creation of the view
  • render – this function is used to render the element with the view template and the data. In this case we replace the value in the “container” with the templated view that consists of data from the model

As stated in the Backbone’s documentation – the View class can also be thought of as a kind of controller dispatching events that originate from the UI, with the HTML template serving as the true view. This leads to an argument whether or not Backbone follows real MVC principles. However if you don’t learn it as a MVC library and give importance to the way it separates concerns, it should be fine.

Some time ago Backbone did have its own Backbone.Controller, however it was renamed to Router as the naming for this component didn't make sense from the way it was being set to use.

File Size, Download & Other useful links

File Size: 6.3Kb – minified and 56kb with Full Source and comments.

Download: Backbone website

Annotated Source:http://backbonejs.org/docs/backbone.html

CDN:cdnjs, jsdelivr

Who is using it?:Check out their examples section

Stay Tuned

So that was a quick introduction to BackboneJS and an explanation on JavaScript frameworks in general. In upcoming posts you will be introduced to Ember, Knockout and Angular as well. So stay tuned!

If you have any questions write to me nish@infragistics.com or find me on twitter @nishanil

 

IgniteUI_Banner_300x250_a2


SharePlus Pro for a SharePoint Captain -- Mobile Business App Giveaway

0
0

If you use SharePoint for optimizing your business collaboration efforts, Infragistics’ SharePlus tool will enable you to easily access your documents while away from your desktop. In an effort to provide some of our loyal customers a chance to experience one of our newer offerings, Infragistics is hosting a Photo Caption Contest for the first few days of April.

Comment here or on Facebook, Twitter or Google+ with your best caption, and our trustworthy team will evaluate the entries. The winner will receive a SharePlus Pro code!

Now, get creative!

My I-90 User Group Tour (Buffalo, Rochester, and Syracuse) Follow up

0
0

What an awesome week!  If you have been following me on twitter, then you know that I was on my I-90 User Group Tour last week.  I spoke at three user groups, in three days.  Unlike my BAM! User Group Tour that took me on nine airplanes, this tour only had me on four.

I started my tour by flying into Buffalo on March 25th.  I like to fly in a day early when speaking at events.  You never know what will happen during your travel that may cause you to be late, such as a delayed or cancelled flight, flat tire, or some other unforeseen obstacle.  My flight from Boise to Chicago was right on time.  Everything was perfect.  Until the plane actually landed in Chicago.  For some strange reason, we didn’t have a gate when we landed and we were forced to sit on the tarmac for 20 minutes waiting for a gate.  You may be thinking no big deal right.  Well, unfortunately for me I only had a 45 minute layover for my flight to Buffalo, which just happens to be the last flight to Buffalo for the day.  We finally got a gate at 5:45 pm.  My next flight left at 6:00 pm.  Those of you you who travel often already know that if my plane departs at 6:00 pm, my flight boarded at 5:30 pm.  Yeah, looks like I’m spending the night in the Chicago airport.  Or am I?

Our arrival gate was B21.  Luckily for me I was upgraded to first class so I was at the front of the plane when the door opened.  I literally ran, some call it a sprint, from B21 all the way to gate C29 in just under five minutes.  For you who aren’t familiar with the Chicago airport (ORD), gate C29 is in another concourse on the other side of the tarmac.  I made it to the gate just before they closed the door.  Thank goodness, because I really didn’t feel like spending the night in the airport.

Microsoft Developers of Western New York

My first stop was the Microsoft Developers of Western New York located in Buffalo, New York.  This great group is lead by Richard Nalezynski and the meeting was held at the awesome facilities of Buffalo Computer Graphics on March 26th.  Pizza was served for dinner, and there was no shortage of conversation.  This meeting was all about WPF.  I gave my “WPF for the Real World” talk, and had tons of great questions.  Richard is a a great guy and runs an awesome group.  If you are ever in the area, I would highly recommend stopping by.

Brian Lagunas speaking at Microsoft Developers of Western New York

Visual Developers of Upstate New York

My next stop was the Visual Developers of Upstate New York located in Rochester, New York.  Luckily for me it was a really short 60 minute drive.  I met up with Bob Nims, the group leader, at the New Horizons training facility.  I just happened to show up right when the pizza did.  I like it when I have such good timing.  This was a smaller group than I am used to, but the content was just as good.  We had a great discussion about “Developing Composite XAML Applications with Prism”, and even had a few members that were currently writing Prism applications.  I love that!  There were tons of great questions, and we even got to go into some more advanced details.

Brian Lagunas speaking at Visual Developers of Upstate New York

Central New York Developers Group

My last stop on the tour was the Central New York Developers Group in Syracuse, New York.  The very smart Andy Beaulieu heads up this group of devs.  There was a really good turnout at this meeting and the New Horizons facility barely had room for everyone to fit.  This group also chose my “WPF for the Real World” talk, and I could see why.  There were tons of devs getting into XAML.  This lead to great questions, and an awesome conversation on various aspects of developing WPF applications.  I even got to help them understanf some of the most common mistakes and dos/don'ts of XAML application development and MVVM.

Brian Lagunas speaking at Central New York Developers Group

Sample Code

I would like to thank each and every user group for inviting me come speak at their group.  I would also like to thank all of the attendees that took time out of their day and away from their families to come hear me speak.  I met a ton of smart and talented people.  I am always amazed at the vast amount of knowledge that is shared at each and every group I attend.  My favorite part about traveling to different groups is meeting all these great people.  I always learn more from them, than they probably do from me.

For those of you who attended the “Developing Composite XAML applications with Prism” talk and want the sample code, look no further.  In other words, if you came to the Visual Developers of Upstate New York meeting, you can get the samples below.

Download the Live Demo source code
Download the Prism DelegateCommand sample
Download the Prism CompositeCommand sample
Download the Prism EventAggragator sample

For the other two groups, the “WPF for the Real World” was more of a dynamic talk that was adhoc depending on the direction the group took it.  So, I only have one sample to share, since we basically started from scratch and played around in Visual Studio talking about various aspects of WPF.  You can get your sample below.

Download the WPF for the Real World sample

If you have any questions feel free to contact me through my blog, on Twitter (@BrianLagunas), or leave a comment below.

Principles of Design - Android Style

0
0

I recently attended a lecture at the SXSW conference given by Rachel Garb & Helena Roeber.  Rachel Garb leads interaction design for Android apps at Google and Helena Roeber led Android’s UX research from 2007 through 2012.  The purpose of their lecture was to explain the current “Principles of Design” that the Android teams are expected to use when creating their applications. 

The idea behind them is simple.  People use software.  People are emotional beings.  Software should make people feel good, and not bad.  That’s obviously pretty clear to anyone who has done any kind of development or UI design work.  The last thing you want is for the users to hate using the application.   What the Android team did was take that simple idea and try and create a system based on emotional response to help them, guide them, in their design work.

The truth is, emotional responses are integral to every user experience that exists, and software is certainly no exception.  There isn’t a developer alive who hasn’t had someone somewhere tell them how much they “hate” some application or program because it makes them feel “stupid”.   It’s not something new, but it’s worth rethinking. 

What Android did was take into account the research of Nobel prize winning scientist Daniel Kahneman, who began studying exactly how emotional responses impact people.  Their findings aren’t totally shocking, but they are in some ways surprising by the powerful impact that our emotions can have on us.  They found that negative emotions are not only harmful to our health, but may actually shorten our lives.  Positive emotions on the other hand, are actually a necessity for our ensured survival.  We require them on a daily basis.  They also protect us from depression, illness and promote both physical and mental well-being. 

As developers, we may not always take into account how the impact of our design or perhaps a bug in our software can impact a user.  But we should. 

The Android design principles break down like this.  There are 3 “Pillars” which are the fundamental concepts which all their principles are based on.  These are as follows:

 

Each one of these “pillars” has a set of associated principles.   The idea is that the principles are the pathway to achieving the concept of the pillar.  The principles for each pillar are shown below:

If you look at the principles for each of the pillars, you can see how they are designed to support the overall concept of the pillar. 

Enchant me is, according to Garb & Roeber, filling people with joy.  It’s about giving them beautiful images to look at and providing graceful and seamless transitions.   It’s about letting users customize and design their space to suit them, and allowing them to directly interact with items, touching them, in effect.  

Simplify my life is about making things simple for people.  Explaining things clearly, either using images or brief and to the point words.  It’s about bringing attention to the things that are important.

Make Me Amazing is all about avoiding what I feel is the number one negative impact of software, making people feel like they don’t know what they are doing.  It’s about empowering the user and making them feel capable and smart.  It’s about letting them feel in control of things. 

It’s simple really.  Good design allows user to feel good about using your product.  Bad design isn’t.  

In days gone by I used to train people on using Microsoft Office.   The training was usually based on some kind of basic outline for how to use Word, Outlook, Excel, etc.  And more often than not, it was filled with replicative ways to accomplish the same task.  I remember the rational clearly.  Not everyone wants to do things the same way, and so we’ll show all of them a dozen ways to do anything! 

This only led to users being overwhelmed by options.   The number one complaint I got in these classes was “There are too many ways to do things.  Just show me one way.  It’s all I need. “    Think about that simple statement and how the principals Android has put together apply.  There are pieces to each pillar which apply to just that statement. 

  • Let me make it mine – too many options can prevent a user from feeling like they can make the application behave how they want it to.
  • Keep it brief, Only show me what I need when I need it, If it looks the same it should act the same – all of these can be impacted by too many choices.
  • Give me tricks that work everywhere, it’s not my fault, sprinkle encouragement, make important things fast – an overwhelming option set defeats all of these principals.

While this lecture was clearly targeted at UI and UX design work, I believe it can be applied to ALL aspects of development, and should be.  There is a very simple principal we can all keep in mind which will allow us to incorporate these principals.  Look at the ratio of positive and negative interactions which occur during any given process or experience.  If there are more positives you might be on the right track.  Why might?  Let me explain.

There is a very old saying  - “You only get one chance to make a first impression”.  It’s simple truth.  And underneath that is the concept that negative experiences don’t tend to go away.  They linger.  In fact, think of it like this.  It takes 3 positive experiences to essentially balance a single negative one. 

During their presentation Garb and Roeber used the example of having two jars – one for positive experiences and one for negative.  If you trigger something positive you get to put a marble in the positive jar.  If you trigger something negative, then 3 big marbles go in that negative jar.  It’s very clear how easily a negative experience outweighs a positive one. 

One example came right in to my head when I was listening to this discussion.  I remember doing some debugging work with a friend of mine, and we were trying to determine the cause of a load error for a piece of code.  There were a variety of links that came with the generic Microsoft error code, and finally at one point my friend stood up and just stomped away from his machine.  I wasn’t sure what had actually happened, but when he came back he walked over and he sat down and looked at me and said “You are not going to believe this, you’re just not.”

“So, I’m going through all the recommended fixes for our problem, and none of them work.  Not one.  So there is a link for additional assistance that pops up.  I click on it and you won’t believe what it says.”

“What?” I asked. 

“First it tells me maybe I should ask someone with more experience than me.  Then it says if that doesn’t work, maybe I could ask a friend.”  We both laughed, but I think you can see my point here.

HavingC software basically tell you that you are –

a)      not smart enough to understand this – get a more experienced person  and maybe you should

b)      phone a friend, well it’s not a positive experience.  Clearly.

My point is, if we all can find a way to keep the idea that any process, any GUI, any piece of our application should fall into these concepts, we’ll end up making creating software that is actually useful to our target consumers, and they won’t need to phone a friend to understand how to use it.

VSLive! Las Vegas Event Recap – A Quintet of Mobile iOS & Windows Phone Dev Talks

0
0

VSLiveLasVegas2013BlogBanner

I’m exhausted…

I’m still recovering from my days in Vegas last week…

You might say “What happens in Vegas, stays in Vegas”, but then again you’d get the wrong idea about why I’m exhausted. It probably has something to do with presenting FIVE breakout sessions at Visual Studio Live! Las Vegas at the MGM Grand last week, four of which were presented back-to-back on Thursday. Also to blame was the hotel network which decided to wreak havoc on my mobile push notifications demos for Windows Phone and iOS, and my Windows Phone emulators that decided to crap out on me (I hate Hyper-V), both forcing me into late night debugging sessions while attendees & speakers were partying at Tabu.

All my demos worked out fine in the end, but my sleep patterns suffered the most. Well, almost. The true sufferance came when my back gave out at the Vegas airport on Friday morning, forcing me into an excruciatingly painful travel day aboard connecting flights after my direct flight was cancelled “because the pilot did not feel too well”. Two chiropractor appointments and one deep muscle massage later, I’m still on the road to recovery, but thank goodness for Advil!

Back to my talks. I promised attendees I would post all my session slides and demos, and I’m here to keep my promise. Below is a list of all my talks, along with descriptions, links, slides and zipped demos.

I want to thank all the attendees who came to my talks. Prissy networks and emulators aside, I love getting on stage in front of developers and geek out for an hour or so about cool mobile practices and development techniques. I especially want to thank the attendees who came to my Windows Phone & Speech talk on Thursday morning at 8:00AM. Considering the early hour and the fact this was a last minute replacement session where I stepped in for a speaker who sadly couldn’t make it, you guys are troopers!

 

WPMultitaskingBanner

Designing Your Windows Phone Apps for Multitasking and Background Processing

It may be called "Windows" Phone, but Microsoft's smartphone operating system does not share its big brother's multitasking model. "Fast and fluid" is the motto to insure the best user experience possible while at the same time optimizing power consumption on the device. Windows Phone may only allow only one application to run in the foreground at a time, but several features were introduced in version 8.0 and 7.5 to allow an application to perform some actions even when it is not the active foreground app. This demo-heavy session will focus on those techniques including scheduled tasks & background agents, playing audio & tracking the user location in the background, and we'll also discuss how Voice-over-IP (VoIP) integrate deeply into the OS for better background processing. You'll also learn about Fast Application Switching & Tombstoning should your application ever get terminated. Learn how to make your application a first-class citizen on Windows Phone and put this session in the foreground of your schedule.

Download the slides and demos here

Noteworthy Links from my Windows Phone talks:

 

WPSpeechBanner

Developing with Speech in Windows Phone 8 Apps

Can you hear me now? Move over Siri, here comes an army of speech-enabled mobile applications on Windows Phone. Mobile applications are not always easy to work with due to the small screen and small on-screen keyboard. Using our voice is a natural form of communication amongst humans, and ever since 2001: A Space Odyssey, we’ve been dreaming of computers who can converse with us like HAL9000. Thanks to the new Microsoft SDKs for voice recognition and speech synthesis (aka text-to-speech), we are now several steps closer to this reality. This session explores the development techniques you can use to add voice recognition to your Windows Phone applications, including in-app commands, standard & custom grammars, and voice commands usable outside your app. We’ll also see how your apps can respond to the user via speech synthesis, opening-up a new world of hands-free scenarios. This reality is here, you’ll see actual live demos with speech and you can now learn how to do it.

Download the slides and demos here

 

iOSfordotNetBanner

iOS Development Survival Guide for the .NET Guy (or Gal)

The trend continues where .NET developers show their hunger for iOS development. This was the SIXTH time I presented this talk to date, and despite the larger keynote room, I once again had a full house. This session is targeted at developers that know nothing about iOS development, Xcode or Objective C, and everything is presented from the perspective of people already knowledgeable about .NET, Visual Studio and C#. We looked at why you should care about building native iOS apps and I provided a quick intro to the Apple world. I presented everything you need to get started with iOS development (yes, you need a Mac) and we built our first iOS project. I made several comparisons with the Visual Studio world to explain iOS principles, we took a peek at the many iOS frameworks, the many options for third-party iOS controls, and where to go from here.

Download the slides and demos here

Noteworthy Links from my iOS talks:

 

ModerniPadAppBanner

Modern Apps Live! – Building a Modern iPad App

Co-located with VSLive! Las Vegas, Modern Apps Live! was a novel 3-day event, presented in partnership with Magenic, that brought Development Managers, Software Architects and Development Leads together to learn the latest and greatest techniques in low-cost, high-value application development.

What sets Modern Apps Live! apart is the singular topic focus; sessions build on each other as the conference progresses, leaving you with a holistic understanding of modern applications. Attendees got to dive deep into MyVote, a full-featured polling platform hosted in the cloud with multiple front-ends on Windows 8, Windows Phone and iPad.

In this session I presented a high level overview of how the iPad version of the MyVote client was built, and what were some of the design decisions behind it. Attendees learned how to implement a mobile iPad application that provides a comparable user experience, while leveraging the same back-end code that supports Windows 8 and Windows Phone 8.

Download the slides here

The MyVote application code for all components will be posted as a whole by Magenic. I’ll be sure to update this post once everything is made available.

Additional links for this talk:

 

MobilePushBanner

Building Multi-Platform Mobile Apps with Push Notifications

The best mobile applications don't live in a vacuum. They are augmented by dedicated servers, the Internet and Cloud services. While it's one thing to reach out to server-side services from a mobile application, it's a completely different affair when the tables are turned and the server needs to reach the phone. Enter push notifications. From iOS to Android, Windows Phone and Windows 8, discover how to send push notifications from cloud-hosted services to a mobile app running on a tablet or phone, and learn how to handle those alerts in your mobile app. We'll discuss the various push notification services from Microsoft, Apple and Google, how to leverage them in your mobile applications, how to deal with push scenarios for any given multi-platform app, and we'll also look at platform-specific notifications, like scheduled alerts on iOS and Live Tiles on Windows Phone and Windows 8. The live demos will include a variety of iOS, Windows Phone and Windows 8 apps, and also include technical details about Android.

Download the slides and demos here

Additional links for this talk:

Until Next Time…

I will be speaking at the next Visual Studio Live! conference at the Hilton in Chicago, May 13-16 2013, as well as the VSLive! Redmond event at the Microsoft Campus on August 19-23. I hope I will see you there.

You can also catch me and attend more of my talks at the following events over the next few months:

 

If you have any questions about the topics discussed in these sessions, you can post them in the comments below or contact me on Twitter at @ActiveNick.

Come see me at DevIntersection and hangout at the Infragistics Geek Nostalgia Room

0
0

Are you going to DevIntersection?  If you are, then you need to stop by and see me at the Infragistics booth.  Come check out our collection of mind blowing controls for every platform from web, to XAML, to iOS and Android.  No matter what your platform, we have controls to make your application sing that blissful song of awesomeness.  You’ll even get to tingle your touch senses by experiencing our touched enabled controls on a pair of Planar 27” Helium touch displays.  Now how often do you get to do that?

Not only am I just a fun guy to talk too, but I have tons of fee stuff to giveaway.  Everyone who comes to see me at the Infragistics booth will get an awesome new Infragistics t-shirt, created just for this event, a free drink ticket (more on that later), and a free download of our HTML5/jQuery Grid control.

But Wait There’s More!

Not only will you get to talk tech with me, get a free shirt, and some new free controls to add to your repertoire, but you’ll also get a chance to win some AMAZING prizes.

The first prize we will be raffling off is a copy of Infragistics award winning NetAdvantage Ultimate bundle with a one year subscription of updates and new releases.  NetAdvantage Ultimate gives you EVERYTHING in one complete cross-platform, cross-device development toolset - including UX design tools to help transform your project vision into actual user experience. Now featuring Indigo Studio and our Quince Pro design collaboration tool and Icons package, you can build your best applications quickly and easily on any browser, device, or platform with jQuery/HTML5, WPF, Silverlight, Windows 8, ASP.NET, Windows Forms, Reporting, Mobile (including iOS and Android), and Visual Studio LightSwitch.

The next prize you’ll get a shot at winning is an Xbox 360 Limited Edition Kinect Star Wars bundle.  This really is a limited edition.  They have already become unavailable on the Microsoft store, and prices have started to sky rocket on sites like Amazon.  If you’re lucky you can go buy one for $452.00.  If you’re really lucky, you will get it for free.

  • Xbox 360 Bundle: Bring the Star Wars characters you know and love into your living room with this custom R2-D2-themed Xbox 360 console with custom sounds. Features C-3PO as an unlockable character for the Dance Mode in the Kinect Star Wars game.
  • Kinect Sensor: Includes the first ever custom white sensor. Immerse yourself into the Star Wars universe with full-body gameplay. Xbox 360 Wireless Controller: Includes custom C-3PO-themed Xbox 360 Wireless Controller.
  • Kinect Star Wars game: Enter the Star Wars universe like never before. Use the Force like a Jedi, become a champion Pod Racer, pilot iconic ships and much more.
  • Kinect Adventures game: Get off the couch and into the game in a whole new way. You and your friends and family will jump, dodge, and kick your way through 20 pulse-pounding adventures set in exotic locations.
  • 320GB Hard Drive: The largest hard drive available on Xbox 360, Xbox 360 Wired Headset, and Xbox LIVE Token for exclusive downloadable content Xbox 360 Limited Edition Kinect Star Wars bundle

The Grand Prize you may walk home with is a brand new Planar 27” Helium touch display.  This is not a joke!  The great people at Planar have graciously provided Infragistics with a Planar Helium PCT2785 display to give away to one lucky winner.  This is the same display you will have a chance to experience at the Infragistics booth. 

Here are some specs at a glance:

  • 27" widescreen interactive display with a 16:9 aspect ratio
  • Multi-touch with up to 20 touch points
  • Ultra-thin profile - less than 2" deep
  • Unique, easy-to-use desk stand capable of 15° to 70° and flat tilt range
  • Smooth zero bezel all glass front surface
  • Built-in Full HD webcam and microphone
  • Multi-touch when using Microsoft Windows® 7 and 8 operating systems

This display retails for $899.00, but there are some places that have it as low as $699.00.  Either way, FREE is one heck of a deal!  Now, if you aren’t the lucky winner of the Planar Helium, we will have a special coupon that you can get at the Infragistics booth which will give you a discount so low, that you will never find it cheaper anywhere else.  If you’re in the market to buy one, now would be the time.

How will you know if you win?  Well, you have to come to the Geek Nostalgia Room to find out.

Geek Nostalgia Room

On the evening of Wednesday, April 10th, from 7:00 pm to 9:00 pm, Infragistics will open the doors to the Geek Nostalgia Room located in the Grand Ballroom 120.  Come hang out with us for an evening of drinks, great conversations, networking, and play with all your favorite old school systems such as a TRS-80, Atari 2600, Nintendo NES, and an Apple 2E. 

TRS-80Atari 2600

Nintendo NESApple 2E

We will not be providing any food so make sure you eat before you come.  With the DevIntersection giveaways ending at 6:00 pm, that gives you one hour to stuff your face.  We will be providing refreshments (soda and water) at no charge.  There will be a cash bar, so if you want alcohol you’ll need to bring some cash.  If you would rather not pay for your alcohol, you can earn free drink tickets by coming to the Infragistics booth.  There are a limited number of free drink tickets available, so it’s on a first come first serve basis.

Besides all the great conversation, drinks, computers and gaming systems, Carl Franklin will be breaking out his guitar for your listening pleasure.  Start making notes for your song requests!

For those of you trying to win one of our awesome prizes, the prize drawing will be at 8:30 pm in the Geek Nostalgia Room.  You must be present to win.  Don’t forget, you must register to win at the Infragistics booth.

Help Spread the Word!

DevIntersection is going to be a great event.  The Infragistics booth will have tons of devices for you to play with, and the Geek Nostalgia Room will be a blast.  Be sure to help spread the word through your various social media avenues.  If you have any questions, feel free to follow me on Twitter (@BrianLagunas), contact me through my blog, or leave a comment below.  Someone is going to leave the Geek Nostalgia Room with some great prizes.  Will it be you?

5 Mobile Development Blogs You Can’t Code Without

0
0

A good blog can be a lifesaver for a developer. Some provide good background reading on the industry being worked on. Some provide code help, hints and tips, and other practical resources, while others just provide a well-earned distraction, which can be vital on a complex or challenging project.

 

Here at Infragistics we provide lots of tools and controls for mobilewebandappdevelopment. As a result we like to think we know a thing or two when it comes to the mobile development blogosphere. So here are our five favorite mobile development blogs at the moment:

 

1. Toastmo

Toastmo is the blog of mobile development company TwoToasters. They are well known for creating some beautiful sites and apps, including the Airbnb Android app. The blog focuses on things the company has learned and things they wish to teach the wider community. Full of useful advice and code examples, this is a site you will want to check on regularly.

 

2. Mobiletuts+

Mobile tuts+ is the mobile site of the larger tuts+ site, which is dedicated to hands on practical tutorials. Along with their written, code-sample rich tutorials and a stellar community, the site also offers a ton of video content. If you opt for their premium (paid for) service, Mobile tuts+ offers even more, including access to some very talented instructors.

 

3. AndroidDevelopersBlog

Those working with Android devices will find a lot to love in this blog. Written by various Google employees (The Google Play team, the Android frameworks team, the Android developer relations team, to name but a few) this blog covers a mix of technical topics (i.e. Usingcryptographytostorecredentialssafely) to softer subjects (i.e. biographies of developers like Smule).

 

4. NSHipster

NSHipster bills itself as “a journal of the overlooked bits in Objective-C and Cocoa.” This is a really technical blog, offering weekly advice on how to get the best out of the Apple’s programming language of choice.

 

5. WindowsPhoneDeveloperBlog

The only “official” blog on this list, the Windows Phone Developer Blog is written by various members of the Windows Phone development team. Comprised of lots of useful posts and updated very regularly (7 posts in March so far), this blog is a good place to visit to stay up-to-date in the fast moving Windows Phone world.

 

Developer Humor: Eight Bytes Walk Into A Bar

0
0

If you’re anything like me, Wednesday afternoons can be almost as difficult as Monday mornings. Frankly I’m not sure which is worse! So in an effort to bring about some more joy to your workweek, I thought I would post something a little more lighthearted than usual. Without further ado, here we go:

Software Developer comics by Infragistics NetAdvantage Silverlight Controls Share the Fun:

You can embed a this comic on your blog or website. Simply copy the below code and paste it into your website.

<p><a href="http://www.infragistics.com/community/blogs/d-coding/archive/2013/04/04/developer-humor-eight-bytes-walk-into-a-bar.aspx"><img src="http://users.infragistics.com/marketing/images/cartoon-1.jpg" border="0" alt="Software Developer Comics" /></a></p>
<p><a href="http://www.infragistics.com">Software Developer</a> comics by Infragistics NetAdvantage <a href="http://www.infragistics.com/products/silverlight/">Silverlight Controls</a></p>


Another look at the Planar Helium 27” Touch Display–Final Grade B+

0
0

It has been four months since my last review of the Planar Helium 27” Touch Display.  If you read my initial review, the display didn’t fare so well in my brightly lit home office.  In fact, my final grade was an F, which may have been a little harsh, but that was my feeling at the time with the display I received.

After writing that review, the great people at Planar promptly contact me to help fix the issues I was having and to listen to the feedback I had provided.  While most companies may have been mad and didn’t want to take the time to listen to a poor review, Planar stepped up to the plate and wanted to know how they could improve their product.

Best Support

The Planar support team was amazing.  After just a single email, Planar support called me!  They were knowledgeable of their product, listened to my issues, and were very responsive.  What I loved most about their support is they asked me what was wrong.  They didn’t have a script they read from, or a sequential lists of trouble shooting tasks to put me through.  They didn’t have any preconceived notions or assumptions of my issues.  They asked for my display symptoms, and responded with follow up questions to help them better understand the problem.  After identifying the issue, they sent me a new display within two days.  Literally two days!  They even provided a shipping label to return the defective unit back to them.  It was smooth and painless.

What was Fixed?

With the new Helium unit sitting on my desk, and the old unit in the mail back to support, it was time to start reviewing it again.  Right when I turned on the new Helium display, the color was much better out of the box.  It wasn’t perfect, but it was much closer to what I was expecting.

Before the sound was flaky.  Now, the sound now works perfectly.  The new unit has no issues with sound and my built in keyboard volume controls work as expected.  This makes for a much nicer experience when playing games.

Remember those nasty little particles on my display?  Originally I thought they were blown pixels.  Turns out they were just dust particles that got stuck under the glass during assembly.  This was corrected and there are no particles in my new display.  The screen is perfect.

In my last review I stated that my display only support 10 touch points even though the spec stated 20.  Well, Let’s just say Microsoft Paint isn’t the best program to test the touch point support.  Come to find out MS Paint only has support for 10 touch points.  After working with their great support team, they provided an application to use to test the number of touch points, and in fact I did have 20 touch points.

How I Use it Now

In my last post, I noted the high reflectiveness of the screen, which just wasn’t usable in my bright office environment.  So I moved it upstairs to the bonus room where it isn’t as bright.  This has really made all the difference.  In the lower light, the display really comes to life.  I … uhh… my kids, love playing games like Fruit Ninja and Angry Birds on this display.  Touch based games and applications really come to life on the Helium.  The touch responsiveness is the best I have seen in any display.  Believe it or not, this isn’t where this display shines for me.

I have found a better use for this display for myself.  Most of you know that I am the Product Manager for Infragistics XAML controls.  I give talks at user groups, code camps, and other events all across the country.  This display is perfect for demoing and showing off my awesome touch-based XAML controls, such as the new NetAdvantage for Windows UI controls.  Those are our new controls for building HTML and XAML based Windows 8 applications.  Attendees just can’t get enough play time with our controls on the Helium.

The Planar Helium in action at the Infragsitics booth at Boise Code Camp

Final Grade (Revised) - B+

Now that I have been using this display for four months now, and all my major annoyances are fixed.  This display has really grown on me.  This display is perfect for my tradeshow and events, as well as games and entertainment.  Granted, the web cam is still an issue for me, as well as the reflectiveness of the display in bright environments that I covered in my last review.  To get around those issues, I don’t use the built in web cam, and I keep the display in my upstairs bonus room where it isn’t so bright.  The price tag has also come down.  You can pick this unit up for $699 on TigerDirect, which makes this much more competitive to other similar displays on the market.  I still don’t recommend this for brightly lit environments, unless you can close the blinds.  Other than that, this is a great display.

Okay, I know what you are thinking, "but Brian, in your last review you said you would have returned it if you bought it”.  That’s true, and technically I did return it.  I just got a new one to replace it.  The fact of the matter is that I wrote a review on a defective unit.  Instead of waiting to solve my problems then reviewing it, I just reviewed my first impressions of a bad unit.  That really isn’t fair to Planar, so it was important that I updated my review on a properly working Helium display. 

I would like to thank Planar and their great support staff for taking the time to not only read my review, but to have continuing conversations on improving their product.  Not many hardware companies do that in todays market and it is refreshing to still see that type of customer dedication.

Planar told me to keep my eye out for their new and improved display coming in the next few months.  Oh, I will, and I will be sure to share with you my experiences with it.

If you have any questions, feel free to follow me on Twitter (@BrianLagunas), contact me through my blog, or leave a comment below.

Deep dive into HTML5 Input types

0
0

HTML Input Forms: Introduction

As web developers we would know what HTML forms is. And as an end user we deal with them very often. Whether you are searching for a content or signing in to your email, social networking account, you still end up using HTML input form.

HTML forms is easily one of the most frequently used HTML element over the web. The developers and designers, who would create such forms, would also write validation scripts for the same. For instance, making sure that the Mobile Number input field only contains numeric. We have used JavaScript libraries for such functionalities. But what if our HTML Input types could do some advanced validation?

Well that is just one of the things we will talk about in this blog post. We will see the new Input types and attributes which are part of the HTML5 specification.

 

  1. <form>
  2.   First name: <inputtype="text"name="firstname"><br>
  3.   Last name: <inputtype="text"name="lastname">
  4. </form>

HTML Form

 

 

What's new in HTML5 Input types?

HTML5 brings in new input types for forms which allows better input control and validation. These new input types may look like just a minor addition, but i can tell you this brings very interesting behaviours especially for the mobile web developers.

If you are a native mobile application developer you would have experienced setting up Input Scope for different input types, just to enhance the end users’ experience as they would not have to struggle to switch between the appropriate on-screen keyboard types. A common example would be when you have to enter a number in the input field, you would prefer to see the numeric on-screen keyboard on rather than a text on-screen keyboard. Windows Phone and other platforms gives various options for customizing the on-screen keyboard by specifying the input scope for an input box during native development. You can find the details for Windows Phone Input scope here.

But if you would like to simulate the similar on-screen keyboard experience over the mobile web sites, then HTML5 Input types is what you should be looking for. The idea with new HTML5 Input types is also to bring in the similar native experience for the mobile web user.

Note: The input type is interpreted by the browser and hence the blame of not bringing in the appropriate on-screen keyboard totally depends on the browsers ability to understand the new input types. Not all these input types we would talk about below works with all browsers, but for unsupported browsers it degrades gracefully. In line with the HTML5′s design principles.

 

Table contains the new input types:

Input Type

Purpose

Syntax

tel

For entering a telephone number.

<input type="date" name="usrTel">

search

To prompt users to enter text that they want to search for. This customizes the on-Screen keyboard experience by bringing in Search icon (iOS and Android) instead of ‘Go’ button

<input type="search" name="bingSeacrh">

url

For entering a single URL. Does the validation for the URL

<input type="url" name="homepage">

email

For entering an email address

<input type="email" name="usrEmail">

datetime

For entering a date and time with the time zone set to UTC.

<input type="datetime" name="bdaytime">

date

For entering a date with no time zone.

<input type="date" name="usr_bdate">

month

For entering a date with a year and a month, but no time zone.

<input type="month" name="usr_month">

week

For entering a date that consists of a week-year number and a week number, but no time zone.

<input type="week" name="week_year">

time

For entering a time value with hour, minute, seconds, and fractional seconds, but no time zone.

<input type="time" name="usrTime">

datetime-local

For entering a date and time with no time zone.

<input type="datetime-local" name="bdaytime">

number

For numerical input.

<input type="number" name="quantity" min="1" max="5">

range

For numerical input, but unlike number, the actual is not important.

<input type="range" name="points" min="1" max="10">

color

For choosing color through a color well control.

<input type="color" name="favcolor">

 

Some screenshots from a Chrome browser(version 18.0.1025469) on an Android device with new input types rendering native on-screen keyboard .

Date 

 Date

 

Datetime

DateTime

 

Month

Month

 

Numeric

Number

 

Email

Email

 

Range

Range

 

Search

Search

 

Tel

Tel

 


Time

Time

 

Url

Ur

 

Note: The sample pages browsed in the above screenshots are from w3schools page.

 

 

What's new in HTML5 Form Attributes?

  • New form attributes
    • autocomplete - it helps users complete forms based on earlier inputs. You can specify if the form should have autocomplete turned on or off. You can selectively set autocomplete on and off for individual input fields. The attribute has been around since long but is now standardized as part of HTML5
    • novalidate - to avoid validation of form data while submission
  • Some new input attributes
    • autocomplete - this is common for form and input.
    • autofocus - sets this input field in focus on page load. For this functionality we used JavaScript in the past. In this approach if the user starts filling in the form before the JavaScript loads, then the user will be returned to the first form field giving them a bad user experience. This was an issue in countries with slow internet connectivity.
    • required - by adding it the browser requires the user to enter data into this field before submitting the form. This replaces the basic form validation currently implemented with JavaScript.

Form field with Required attribute showing a Browser generated error messagerequired attribute

    • pattern - It makes implementation of specific validation simpler. It specifies a regular expression that the input element's value is checked against
  1. <formaction="demo_form.asp">
  2.     Country code: <inputtype="text"name="country_code"pattern="[A-Za-z]{3}"title="Three letter country code">
  3.     <inputtype="submit">
  4. </form>

Pattern attribute

 

    • dataList - it represents a predefined list of options for form controls.
  1. <inputlist="browsers"name="browser">
  2. <datalistid="browsers">
  3.   <optionvalue="Internet Explorer">
  4.   <optionvalue="Firefox">
  5.   <optionvalue="Chrome">
  6.   <optionvalue="Opera">
  7.   <optionvalue="Safari">
  8. </datalist>
  9. <inputtype="submit"></form>

Datalist element rendered in IE10

clip_image004

 

    • multiple - It specifies that the user is allowed to enter more than one value in the input element. It works with input types as email and file. How many times have you faced this issue, where it doesn’t let you upload multiple files using a single file section 'Open' dialog?
  1. <formaction="demo_form.asp">
  2.   Select images: <inputtype="file"name="img"multiple>
  3.   <inputtype="submit">
  4. </form>

Multiple file selection from a single file 'Open' dialog in Chrome (Version 26.0.1410.43 m)

clip_image005

 

    • placeholder- It specifies a short description of the expected format in the input element. It is displayed in the input field when it is empty, and disappears when it is in focus.

clip_image006

Placeholder attribute support in Chrome, shows the expected input in the second textbox as long as it is not in focus.

 

You can find detailed documentation of these attributes here.

 

Summary

We’ve looked at several new form attributes that helps in improving the user experience and cuts down the development time.

Let’s also talk about the browser support for HTML5 forms input types and attributes. With new versions of browsers being released periodically, it can be difficult to keep up with what is or isn’t supported. You can check can I use … or Wufoo’s HTML5 forms research or Mike Taylor’s page for the latest support.

Well we talked about the graceful degradation in case of non supported browsers. This should be a strong enough point to make use of the new input types irrespective of the browser support, as tomorrow it would probably be supported! Future-proof your website!
Mobile web developers can even build hybrid apps containing these input types.

 

Sample

I have created a sample which you can browse using your mobile device. It demonstrates the above mentioned form input types and the attributes.
You can play around with this sample and live edit these here. (Select ‘Launch in Editor’ option to edit and ‘Run’)

 

If you have any questions or suggestions regarding this blog post, please feel free to mail me at anarain@infragistics.com.

 

Cheers
Abhishek
Twitter: @narainabhishek
http://about.me/narainabhishek

HTML Prototype Viewer Sneak Peek

0
0

Rove on iPad mini

So you've been using Indigo Studio for a while now, and you're thinking, "Wouldn't it be nice if I could run my Indigo prototypes without requiring Silverlight? I mean, that would be awesome! Then I could see and evaluate my prototypes on mobile devices." We agree!

I've got some good news. Today I'm sharing a sneak peek of the work we've been doing to make that a reality. Above you see our built-in, sample prototype called "Rove" running on an iPad mini!

What's that you say? You want to see it to believe it? Okay!

Rove Thumbnail
Run Rove as HTML Prototype

Rove is a tablet prototype, and if you're on an iPad, I suggest you add it to home screen. This will let you experience Rove as an iPad app (without the browser chrome).

Or maybe you have a phone? Well then here's our "FindFlix" phone sample prototype:

FindFlix Thumbnail
Run FindFlix as HTML Prototype

As with Rove, you can add it to your home screen on iPhone to experience it as an app without the browser chrome. Keep in mind this is a preview, so if you experience any issues/bugs, please let us know by emailing indigo at infragistics dot com.

I don't know about you, but the possibilities this opens up really get my designer juices flowing.

Say you're working on a new mobile app, maybe a tablet app, or maybe you're even starting with responsive Web design in mind. You've captured your stories from your low-cost user research, and now you're ready to roll your sleeves up and start designing. Maybe you start by sketching out ideas on paper or whiteboard, but you're ready to take it to the next level.

So you grab Indigo Studio. You open it up and toss your stories into some storyboards, or you skip that and jump right into the UI and interaction design. You sketch out your ideas in Indigo or just drop in some photos of your sketches and add some hotspots. Before you know it, you have a nifty, interactive prototype that you want to share and evaluate, so you flip to the project tab and click Share Prototype, copy the URL, and email it.

Now you grab your device, click the link, and voila--you're trying your prototype on your device! You walk down the hall, and hand your phone to a user-like substance (someone like your users, if not your actual users) and ask them to do what your story says users will wanna do. You watch them, and doh! they run into a wall. "No problem!" you say to them. "I'll be back in a few minutes."

You step back to your computer, tweak your design, click share, and you're back in a few minutes with your next iteration.

No hassling with code, setting up a dev environment, finding and installing the latest frameworks, figuring out how to make the code do what is in your head, failing, trying again, failing and just generally burning a bunch of design time and energy on fiddling with inconsequential technical details. No painstaking elaborate pixel-perfect static wireframes you are reluctant to change. No time wasted on tons of annotations explaining what your design will do, asking your potential users and clients to imagine what will happen--they can just see it; they can just use it! On the target device class you designed for. In no time, you made and evaluated several prototype iterations, and you're left with confidence in your design. This is Indigo Studio.

Okay, so you're probably wondering, "When can I take advantage of this on my own prototypes??" It's coming soon! Keep your eyes peeled. We will definitely blog and tweet about it, so subscribe or follow us if you're interested. You'll be able to use it on newly shared prototypes and prototypes that you already shared to our servers.

Have a great weekend!


About Indigo Studio

If you haven’t already, why not Go Design Something!? Version 1 is free forever.

If you are using Indigo, we welcome your ideas on how we can better apply and refine these and other good interaction design principles to help you to design awesome UIs. If you have any questions or problems, please don’t hesitate to discuss them with us in our forums. We’re also on Twitter @indigodesigned.

About the Author

Ambrose Little is principal design technologist at Infragistics and has worked on Indigo Studio as interaction designer and product manager along with an awesome team based here in Cranbury, NJ, USA and Montevideo, Uruguay.

Infragistics SharePlus at the Sydney SharePoint conference

0
0

This week sees the 2013 Sydney SharePoint conference being run for the 4th year http://www.sharethepoint.com/engage/AU2013/Sydney/Pages/Home.aspx

Infragistics will be in attendance in the exhibition hall showcasing SharePlus. SharePlus is a native iPad application that allows you to connect with your SharePoint server to easily access files from your mobile devices, as well as synchronise document libraries offline, edit documents locally, etc.

I will also be doing a presentation on how SharePlus can help enable mobility in your business processes. This presentation will be given twice:

  • Day 1 - Wednesday 10 April 04:15PM Room 4-4
  • Day 2 - Thursday 11 April 10:30 AM Room 4-4

If you are attending the conference, please come visit our booth and say hi!

Infographic: Tablet Devices and Self-Service Mobile BI featuring ReportPlus

0
0

Data Analysis is becoming a hot button requirement for seemingly every facet of organizations today. How are users reviewing and consuming their Data? How do they work most effectively? Check out this Infographic for a quick and easy breakdown.

For more information Download our WhitePaper to find out how ReportPlus fosters self-service BI from your tablet. Download Now!

Tablet Devices and Self-Service Mobile BI Infographic by ReportPlus: Infragistics Mobile Business Apps

Spread the Word:

You can embed a this Infographic on your blog or website. Simply copy the below code and paste it into your website.

<p><a href="http://www.infragistics.com/community/blogs/marketing/archive/2013/04/08/infographic-tablet-devices-and-self-service-mobile-bi-featuring-reportplus.aspx"><img src="http://users.infragistics.com/marketing/images/infographic_tablet.jpg" border="0" alt="BYOD" /></a></p>
<p><a href="http://www.infragistics.com/products/reportplus/">Tablet Devices and Self-Service Mobile BI</a> Infographic by<a href="http://www.infragistics.com/products/reportplus/"> ReportPlus</a> Infragistics Mobile Business Apps</p>

Viewing all 2363 articles
Browse latest View live




Latest Images