Windows Phone 7 is shipped on devices that meet Microsoft’s design guidelines. Microsoft enforces specific requirements around the types and locations of buttons and logos, and there are rules requiring the single screen resolution supported by Windows Phone 7.

The user interface of WP7 is different. Rather than icons, WP7 uses start page with tiles that can indicate status like the number of emails, facebook notifications etc with easy access to launching the application. Once launched from tiles or the list of applications, non-game applications appear quite visibly different from other platforms in their design, which uses side scrolling design metaphor intended to organize information into unique views or tasks on individual pages.

Similar to iOS, Microsoft approves applications before they can be downloaded. WP7 does not support multi tasking. It also offers limited user customization options.

Reference: Redmond mag

Advertisements

Integration is key. Apple and Google have delivered on this focus i.e. tight integration of their products, platforms and services. On Apple iOS devices the built-in iTunes and App Store own the music and software franchises. On Android devices, Gmail and Google search are tightly integrated. Microsoft meanwhile has not exactly kept integration in mind. An explicit download of Windows Live Essentials is required to get Microsoft IM client, blogging client and photo editor.

In the software product development environment, product integration has become very important. The steps listed in the CMMi process framework provides a clear sequence of the process involved.

  • Prepare for product integration
    • Establish and maintain integration sequence
    • Establish the integration environment
    • Establish product integration procedures and criteria
  • Ensure interface compatibility
    • Review interface description for completeness
    • Manage interfaces
  • Assemble product components and deliver the product
    • Confirm readiness of product components for integration
    • Assemble product components
    • Evaluate assembled product components
    • Package and deliver the product or product components

CI has worked on several projects involving integration of ERP’s with add-on products and CRM’s. While all projects may not have involved all the steps the basic framework for the project usually tends to be the same.

Cost cutting has become the norm these days. The fire for new ideas and new technology seems to be held back. Economic downturns offer unique opportunities to launch innovative new products and services. Within a service company, the biggest challenge with driving innovation is getting everyone involved. Innovation lab may not necessarily be the answer as it limits the responsibility to the sole team. Employees are happy doing their assigned work.

At CI, we do not believe in innovation labs. We believe everyone has the right to innovate and is required to innovate. The strategy is to engage more people in the pursuit of innovation while maintaining a sharp focus on the needs of the business and improving customer satisfaction. Innovation efforts are ties closely with customer satisfaction efforts. When the effort is tied to helping a customer, there is pressure in finding the time and opportunity to think out of the box. So how do we encourage employees to innovate:

  • Openness to innovation – A sense of entrepreneurship among the employees and cultivating ownership among them. Innovation is about taking risks. Efforts matter. When the effort goes great then the employee is responsible. If the effort does not have the expected results then it is everybody’s mistake and not an individual employee’s.
  • New ideas – Not restricting innovation to a group of people has helped foster innovation and have a pipeline of new ideas.
  • Test and Learn approach – Failure is inevitable. One may not be able to avoid failure completely but one can definitely get to failure quickly and cheaply. Assigning a timeline to each of the ideas helps in validating the effectiveness of the same.

iOS SDK and Android SDK, anybody involved in mobile development cannot ignore the SDK’s. Even though both of them follow the MVC model, which is where the similarities end. Fragmentation is a key difference between Android and iOS. The interfaces are constructed differently.

iOS

iOS is currently offered for two device resolutions: 1024*786 and 320*480. This allows the developer to develop graphical elements exactly and the use of tools for the purpose is useful. Creating views is easier in iOS compared to Android. iOS lets the developer work on exact and complex animations. Graphic libraries have matured over the past several years which has eased the developer’s effort. A push notification infrastructure exists which can be used without worrying about performance costs. Apple does not approve arbitrary code running in the background. If a separate thread is opened and made to run then it is a risk of battery life and slow performance. When launching an application in iOS, the entire application will launch and then redirect to the controller.

Android

Android interface creation is like working with HTML. The developer outlines the structure and measures individual element sizes relative to dynamic display sizes. While tools are available for graphical construction, they can be used effectively only when the basic interface is understood clearly. Views can be created via XML. Complex animations can be created but become difficult depending upon the complexity. While working with older Android devices (less than 2.2) there are no push notifications. Arbitrary code can be made to run in the background. When launching an application, the developer will not exactly know the logical start/end of it. The developer can only detect when the controllers are starting and closing.

At the end of the day as developers we have to target both systems owing to the growing popularity. References have been taken from quora.com.

Microsoft WebMatrix consists of a basic IDE bundled with SQL Server compact database and lightweight web server (IIS). Development is in either PHP or C# or VB. The native view engine uses Razor syntax optimized for HTML development. Although the full ASP.NET stack is available, developers can choose web pages which offer simplified web development. WebMatrix is used to build websites. It streamlines website development and makes it easy to start websites from popular open source applications.

So how does WebMatrix fit into the development process parallel to Visual Studio? As a developer there are times when you want to check a particular code file independent of a project or solution or make some quick edits to files in a directory without creating/managing a project file. WebMatrix. Developers can work with StoredProcedures dynamically without generating a designed bit of code.

Razor is a light weight code footstep in HTML. Helpers help add common functionality to websites. Creating a .cshtml file in app_code creates new helper files. Layouts give developers the ability to create and manage larger sites look and feel without duplicated effort. Sections are reserved areas in a layout that can be set by the pages that contain them.

Microsoft Visual Studio LightSwitch Beta2 was released in March. LightSwitch is a new addition to the Visual Studio family. LightSwitch helps you solve specific business needs by enabling you to quickly create professional-quality business applications, regardless of your development skills. The technology is designed to make building line of business applications easier through pre-built templates and custom business data types with the ability to deploy to the desktop, the web and the cloud.

LightSwitch can integrate data from multiple sources and is a .NET framework based platform. It is powerful for building data centric business applications. It uses Visual Studio project structure. You can use pre-configure screen templates that give the application a familiar look and feel.

LightSwitch

It provides pre-written code and reusable components to handle routine application tasks, along with step by step procedures. Custom code is written in C# or Visual Basic rather than VBA.

It can participate in source code control via the integrated Visual Studio Team Edition Explorer. It uses SQL Server Express Edition for its local data store at design time. Deployed applications can use SQL Server Express, SQL Server pr SQL Azure. LightSwitch UI is presented in Silverlight 4 and follows the MVVM architecture pattern.

Since it is a new product, custom extensions or add-ons are being written to fill the gaps and add more capabilities. There are six extension points: controls, screen templates, business types, themes, shells and custom data sources. To build extensions, you would need VS LightSwitch Beta 2, VS 2010 SP1 Professional or higher and VS SDK. LightSwitch Extensions cookbook via msdn can be downloaded from here. This post has been written with references from msdn, visual studio magazine and stackoverflow.com.

IDC and Appcelerator have released the findings of their survey concerning developer interest in working on various mobile platforms. Android and iOS are well ahead of others. Developers always wonder which platform they should develop for Android or iOS.

Parameter

Android

iOS

Programming language Java Objective C
Technology Interface builder in Android does not exactly link directly to code and just generates a rough draft. Setting up GUI is lot easier. Links the objects to the code
API’s Android is catching up in API’s. Apple API’s have been in existence longer and have been developed further
Fragmentation Huge selection of devices with many device specific OS modifications. Different screen sizes and resolutions to deal with. Can safely target iPhone hardware platform and achieve compatibility with iTouch and iPad
Distribution mechanism Android marketplace has become much better with Google continuing to tweak the user experience User experience in app store is uniform and simple. Larger audience for iPhone app store.
App store Features highest percentage of free apps with over 57% being free to download Only 28% of the apps are free
Approval Easily manageable Arduous approval process
Monetization Using Google Checkout Using iTunes account

Writing apps is a hits based business based on downloads. So from a distribution standpoint, cross-platform development is key. If the focus is only on building native app, then the decision has to be made based on target market and the comfort level of the developer in programming for iOS or Andorid.

Adapted from answers in Stackoverflow.com and quora.com