Know your iPhone/iPad/iPod UDID

  1. Open iTunes ( from Mac or Windows , not iTunes on your iPhone). You can download itunes from here                                                       
  2. Plug in your iPhone, iPod touch or iPad.
  3. Click its name under the DEVICES list (on left menu.)
  4. Ensure you’re on the Summary tab (right top ,1st Tab).
  5. Click on the text that says Serial Number. It should change to say Identifier (UDID).
  6. Select Copy from the Edit menu (from top menubar)
  7. Your UDID is now in the clipboard. You can save it in Notepad/Textpad.


Below screens for reference.



Leave a comment

Filed under Others

Mobile Banking – Concerns & Expectation


Since year 2010, we have seen exponential growth in mobility sector. Mobile Apps have been fueling the growth and availability of affordable smartphones has left floodgates open for mobility exploration. Mobility has gripped all business sectors and everyone wants to exploit this new arena. Banking sector is no different. Banks do their best to deliver consumer friendly services in minimum time and mobility has given them a new way to achieve it. Due to this Enterprise expenditure on mobility solutions has grown tremendously in recent times.



Till some years ago SMS was the only medium in mobility to communicate with end user. With time, other modes of communication grew. This also gave rise to various Mobile Banking services. Banks nowadays reach consumers through various mobile channels like SMS, mobile Websites and mobile client (mobile Apps). Each has their pros and cons. But
In one case study in US, it was found; number of users using mobile banking is growing rapidly and will reach 30 million by 2015.




At a high level, Mobile Banking services can be grouped into

Transaction Based Services: User making use of various mobile banking services like

-Bill payments,
-Funds Transfer,
– Insurance premium,
– Future services will include contact less payments using NFC (near Field
Communication), mobile coupons.
-and Service related booking payments like Hotel or Transportation payment etc.

Information Based Services: User making decision based on,

-Account Balance/History/Statement,
-Financial information
-Transaction verification
-and location based information like Branch/ATM location
These services support Transaction based services.
Consumers are happy with this new service based model. Now wherever user goes, he can access these banking services. He can take real time quick decisions. Location based dependency is thing of past now.


Financial Institutions must be aware of potential threats which can affect their mobility services. Some are listed below.
Cloning – Copying the Identity of one mobile phone to another, thereby allowing the perpetrator to masquerade as the victim, normally with the intent to have calls and other services billed to the victim’s cellular account. In the case of mobile banking, cloning give the hacker access to the victim’s financial accounts.
Hijacking – The attacker takes control of communication between two entities, masquerading as one of them. As with cloning, hijacking could give the hacker access to the victim’s financial accounts.
Malicious code – Software in the form of a virus, worm or other malware is loaded onto the handset, the SMS gateway or the bank’s server to perform an unauthorized process that will have adverse impact on the confidentiality, integrity or availability of financial information and transactions.
Malware – A contraction for ‘malicious’ software that is inserted into a system usually covertly with the intent of compromising the confidentiality, integrity or availability of the victim’s data, applications or operating system or otherwise annoying or disrupting the victim.
Man-in-the-Middle Attack – An attack on the authentication protocol exchange in which the attacker positions himself between the claimant and verifier with the intent to intercept and alter data travelling between them.
Phishing – Tricking victim into disclosing sensitive personnel information or downloading malware through an email.
Redirecting – Intercepting a communication by substituting a fraudulent address or identity, potentially by using a Man-in-the-Middle attack.
SMishing– A contraction of ‘SMS phishing’ this attack uses SMS to facilitate bogus requests for personnel information.
Spoofing – Sending a network packet that appears to come from a legitimate source, rather than its actual source.
Vishing – A contraction of ‘voice and phishing’ in which victims are tricked into disclosing sensitive personnel information through a phone call.

The Mobile Marketing Association (MMA) is the premier global non-profit trade association representing all players in the mobile marketing value chain. With more than 700 member companies, the MMA is an action-oriented organization with global focus, regional actions and local relevance. The MMA’s primary focus is to establish mobile as an indispensable part of the marketing mix. The MMA works to promote, educate measure, guide and protect the mobile marketing industry worldwide.
For more information, please visit

Expectation & Challenges

There is a big challenge to address all these concerns which we all have to look into while developing Mobile Banking App or accessing Banking services. Below are few considerations.
Handset Operability – With almost 12000 different handset models (2009 data), creating, and deploying and supporting common mobility solution is an arduous task. Currently there are 4 popular players in handset operating system – Apple iOS, Google Android, Microsoft Windows Mobile, Blackberry. There will be interoperability issues and banks/developers needs to address that.
Security -Transactions over Wireless network has always been a point of concern for Banks, which needs to be addressed jointly by Mobile developers, Wireless network provider and Bank’s IT department. Various Authorization techniques can be put in place like encryption of data transmitted over air and also which is stored on device. Authentication can be done at Bank’s server level with username/password.
Scalability & Reliability– With growing number of mobile users, bank IT department will have a to make sure, services are available 24/7 hours and server can take load and does not crash.
Application Distribution– As earlier mentioned, with so many handset and different mobile operating systems, banks have to make a call on “Which platform to support depending on market share”. Though technologies are available to support multiple operating system but they still have to mature to give consistent user experience.
Personalization– With different geographies, Banks have to see that Apps can be customized as per user preferences considering Language, Date/Time format, Amount format, Beneficiary list, Alerts etc.


Leave a comment

Filed under Wiki

Javascript frameworks

Consider these Attribute before voting.

– Performance

– Time : Time to production.

– Platform : Can same code be reused when deploying on various platforms

– Extensibility : How well new feature can be added/extended from API.

– Learning Curve : Is Training required, Syntax difficulty.

– Forums – Support forums and communities

Leave a comment

Filed under Others

2012 in review

The stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

600 people reached the top of Mt. Everest in 2012. This blog got about 4,700 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 8 years to get that many views.

Click here to see the complete report.

1 Comment

Filed under Others

Mobile App – Non Functional Requirements


When we are thinking of a web application, the most important nonfunctional attributes which comes to our mind are Availability, Performance, Scalability, Extensibility, Usability, Reliability, Maintainability, Security, and Privacy.

But when you think of Mobile application there are certain additional parameters which you need to take care during your App design like Form factors, Device coverage, Portability, Cpu & Memory, Network conditions, Operability, Notifications, Screen resolutions, Font, Layout,compatibility,Response Time,Testability,  Fault Tolerance, Failure Management and so on. The correct specification and adherence of non-functional requirements similarly plays at least an equal, if not a greater, role in the success of mobile applications also.Non-functional requirements are often called qualities of a system.

This is due to the following reasons:

  • Mobile devices are uniquely constrained in several dimensions such as the processor speed, memory, multi-tasking support, available network bandwidth, screen real estate, etc. These constraints translate into strict bounds being imposed on the operating characteristics of an application running on a mobile device.
  • Mobile applications need to operate successfully (or degrade gracefully) within a wide spectrum of operating conditions, such as a range of supported screen resolutions and form factors, network bandwidth situations and network types (2G, 3G, Wi-Fi), etc.
  • Mobile applications sometimes need to interact with the device’s sensors such as GPS, accelerometer, the ambient light sensor, camera, etc. The application must respect the sensor’s operating characteristics such as its operating range, sensitivity, accuracy, maximum polling interval, etc.
  • Finally, users expect a different quality of user experience from an application running on the mobile device than they do from their desktop computer. For example, it is much less acceptable to have to reboot the phone when a mobile application hangs. Thus the latitude for error tends to be less for a mobile application than for the desktop version of the application in the same situation.

    Thus, it is critical to capture these requirements as accurately and exhaustively as possible, ensure that the application’s design addresses each requirement, develop the application to meet these requirements, and test the application against each requirement so as to verify compliance. It is worthwhile to highlight some design considerations while designing a mobile application. This document tries to cover some important considerations among these.

Key Design Constraints

cpuCPU and memory

When an application is developed to run on a particular software platform such as Android, iOS, Windows etc., it can in theory be installed and run on any device that supports that platform. However for any given platform, the supported devices could have a very wide range of capabilities in terms of CPU speed and available memory. You can evaluate each feature in your application from the point of view of its CPU and memory consumption while running it, and accordingly arrive at a lower bound for the entire application from this analysis.

Here’s a list of the CPU and memory profiling tools you can use for some of the common smartphone platforms

  • IPhone: The Instruments tool in the XCode development environment from Apple.
  • Android: HPROF on Android (hprof output can be generated and analyzed in a variety of different ways.

(Refer References for more details)

networkNetwork conditions

There are four things to consider in this area.

  • Support for different network channels: Mobile devices can communicate with the network on one or more channels such as SMS, USSD, Wi-Fi, GPRS (2G/3G/4G), WAP, etc. Certain functions in your application may not perform well (or at all) on certain channels and protocols. If you wish to support only the high capacity channels such as Wi-Fi, or GPRS on 3G, you will risk shutting out the vast majority of low-end devices which may not support these radios. On the other hand if you do not specify which are the required (or recommended) channels for your application, it may result in the users inadvertently trying your application’s high-bandwidth features on a low-bandwidth channel such as GPRS on 2G or WAP, thereby frustrating themselves out of the application.

For a networked application, it is crucial that you evaluate each network-enabled feature of the application from the point of view of determining the channels that it is most likely to satisfy the minimum latency requirements on.

  • Signal drop or signal strength reduction: Be sure to evaluate each network-enabled feature in your application in the situation where the channel over which it is operating becomes unavailable or its signal strength reduces. Ensure that the feature is either network-fault tolerant or degrades or fails gracefully in such a situation.
  • Network channel transition: This network condition deals with the mobile application’s behavior when the device transitions from one channel to another. A classic example is when a user walks out of their office building and the device transitions from Wi-Fi to 3G. If there is a transaction underway in the mobile application when this happens, how will the application react to such a transition? It is useful to evaluate the application’s functionality in such situations and design it for a seamless transition to the new channel or for a graceful degradation or failure.
  • Support for multiple channels: This network condition relates to the mobile application’s behavior when there are multiple network channels active at a time. For example, Wi-Fi, 3G and SMS are all active – which is not at all an unusual situation on a mobile device. For networked features that can operate over multiple channels, it helps to designate a preferred channel(s) and design the feature for detecting the preferred channel (or the next preferred channel) and use that channel over others. For example, you may specify that the application will always prefer the Wi-Fi channel over all others.

The SDKs of most major mobile platforms provide a means to register for listening to one or more network related events or notifications when a channel becomes available or unavailable or when the signal strength changes. You should register for such notifications and perform network condition handling inside the network listeners. Also code all network calls defensively via extensive use of exception blocks and return value checking so as to ensure a graceful degradation or failure.

notificationInterrupts, notifications and multi-tasking

When a phone call, SMS or some type of notification (such as a calendar notification) arrives, your mobile device will usually inform your application of this event. If the user chooses to respond to the event, the OS may either background your application or, in case of non-multi-tasking OSes, simply terminate your application. In each case, the OS will usually give your application a chance to respond to the pause, background or termination event by invoking a handler method that you should implement. It is important that your mobile application handles the interrupt in such a way that

  • It does not come in the way of the OS’s processing the user’s decision to respond to the interrupt (such as accepting a call or reading an SMS)
  • It does not result in any damage to your application’s ability to function normally after the OS ‘foregrounds’, or resumes your application after the user finishes handling the interrupt or after they choose to ignore the interrupt.

You should evaluate each feature in the application from the point of view of determining how it would/should function if the application gets background-ed or made dormant while that feature is executing.

formScreen resolutions and screen form factors

An application that is designed for the 240 x 320 pixels resolution screen will look tiny on the high resolution 480 x 360 pixels display of smart phone. The text will likely be too small to read, the images may look too tiny to decipher and the widgets and controls will be too small to use. Overall the application will be mostly useless even though, technically it ‘functions correctly’. Similarly, an application designed for a high-resolution (high DPI) screen will have a major part of its UI go off screen on a low DPI screen phone, leading to quite an annoying experience at best. It’s important to keep a set of target screen resolutions in mind while designing the user interface of a mobile application. If it’s not practical to enumerate the complete set of supported screen resolutions, try to identify a reasonable range of values, for e.g. 400 to 500 pixels along the short dimension and 600 to 850 pixels along the long dimension. Then identify a small set of devices, which taken together, will constitute a representative set of screen resolutions lying this in range, and then design the UI of the application for these devices.

Font adjustment

The text font size may need to be adjusted up (for high resolution screens) or down (for low resolution screens) so as to keep the text readable

layoutLayout tweaks

The layout may need to be adjusted to increase or decrease the spacing between and around labels and widgets shown on the screen so as to prevent them from getting clustered together on high-res screens or spaced apart too much on low-res screens.

Image changes

Background images or background art may have to be provided in two different versions: a large size/high resolution version and a small size/low resolution version so that it properly fills the amount of physical space available on the screen.

Portrait and Landscape modes

Avoid adding the complexity of supporting both portrait and landscape modes if your application does not need to work in both modes. However if you decide to add support for both modes, it’s generally a good idea to add this support for all screens in the application and not just some of the screens so as prevent a usability surprise



Filed under Mobility

Emerging Technologies for Mobile platform IOS/Android

There has been a sudden explosion in mobile arena in recent times. Everyone wants to have their App running on IOS/Android/Windows Mobile/Blackberry and so on. But with new innovations come new challenges.
A developer who wants to build native apps for IOS has to learn Objective-C. Similarly for Android he has to learn Java. This meant developer communities were totally dependent on language for that platform. In recent times this status quo has changed allowing developers of other programming language to build apps for various mobile platforms without learning new language or new framework.
You can build your mobile app in JavaScript, Html, Java, C# or ActionScript. You can achieve this by below technologies –

PhoneGap/Cordova – Build apps with Html and JavaScript
Flex/Flash Builder – Build apps with Action Script
RubyMotion – Build apps with Ruby
SenchaTouch 2 – Build apps with JavaScript
Appcelerator Titanium – JavaScript
MonoTouch – C#
GWT/Vaadin Touchkit-Java -JavaScript
Corona -Lua

Introduced in 2009, PhoneGap now called Apache Cordova is an open source mobile development framework. Programmers can build Apps for mobile devices using HTML5, JavaScript and CSS3. Resulting applications are hybrid, meaning that they are neither truly native (because all layout rendering is done via web views instead of the platform’s native UI framework) nor purely web-based (because they are not just web apps, but are packaged as apps for distribution and have access to native device APIs).
As an implementation of Open Standards, developers and firms can use PhoneGap for developments of Apps which are free, commercial or both.
PhoneGap currently supports development for the operating systems Apple iOS, Google Android, HP webOS, Microsoft Windows Phone, Nokia Symbian OS and RIM BlackBerry. Support for recent versions, such as BlackBerry 5 and 6 and Windows Phone 7, is being implemented now. Bada (the operating system used by the some Samsung phones) support is “coming soon”.

Adobe Flex/Adobe Flash Builder
Adobe added the ability to publish apps build with Flex builder 4.5. There are lots of games and app which can be ported to iOS/Android with minimal effort.
Adobe Flex now Apache Flex, is a software development kit (SDK) for the development and deployment of cross-platform rich Internet applications based on the Adobe Flash platform. Adobe Flex is a highly productive framework used for building expressive web applications.
Flash Builder 4.5 makes development simpler with a wizard like experience that is now used to deploy to different mobile platforms with the same codebase. It offers built-in code editors for MXML and ActionScript and a WYSIWYG editor for modifying MXML applications. Adobe Flash Builder includes an interactive debugger, allowing developers to step through code execution while inspecting variables and watching expressions. Flex Builder 3 added support for performance analysis. The profiling view displays statistical information about memory use in addition to function call execution time.


Introduced in 2008, RubyMotion is a new technology which allows building iOS apps using pure Ruby. It was recently released.
Ruby is a high level programming language. It has concise and flexible syntax. It was designed on the same semantics as Objective-C, it is syntaxically different. Ruby has no Header files, no complicated syntax to define classes, properties or built-in types and does not suffer from single namespace issues.
RubyMotion compiles Ruby and activates a load of performance optimization such as inline methods caching, immediate fixed and floating numeric types, zero cost exceptions, promotion of variables into CPU registers, cached constant lookups, tail call optimization, dead code elimination and many more.
RubyMotion makes Ruby as fast as Objective-C. It is 100% compliant with Apple’s App store policies. Your code is compiled ahead of time, never interpreted and you access the entire set of iOS public APIs.
RubyMotion only works for iOS. However, the Ruboto project, based on the excellent JRuby implementation, is an effort to bring Ruby to the Android platform.
RubyMotion is not Open Source but shares a great deal of code with MacRuby, a popular Open Source project. Third-party Objective-C libraries can be included in a RubyMotion project.

Sencha Touch

Introduced in 2010, Sencha Touch 2 is a high-performance HTML5 mobile application framework which provides an end to end platform for designing, developing and deploying HTML5 applications. Sencha Touch allows you to build apps which nearly look like native apps. Apps can be packed and ported to different platforms using PhoneGap,
Sencha Touch 2 provides access to a wider set of native device APIs, allowing HTML5 developers to take advantage of hardware features. To broaden the reach of apps created with Sencha Touch 2, a free native packager is now included enabling app distribution to the Apple App Store and the Android Market.
Sencha Touch takes advantage of hardware acceleration to deliver an incredible app experience no matter what browser or mobile device a user is using.

Smoother Scrolling and Animations – Sencha Touch 2 provides a user experience unparalleled in HTML5. Fluid animations and smooth scrolling make Sencha Touch 2 apps come alive, rivaling native technology. Lists, carousels, and other components scroll smoothly and naturally, with a high frame rate across a wide range of devices. The framework automatically uses the best scrolling mechanism for each device, resulting in a great experience everywhere.
Adaptive Layouts – Sencha Touch’s novel layout engine leverages HTML5 in powerful ways to let developers build complex applications that respond, load, and layout in a snap. Switching from landscape to portrait happens nearly instantaneously, and applications load in fractions of a second as Sencha Touch 2’s advanced layout engine ensures pixel perfection.
Native Packaging – Sencha SDK Tools give you the best of Web & native apps, providing a way to seamlessly “wrap” your web app in a native shell. Whether you’re on Mac or Windows, you’re one command away from deploying to the Apple App Store or Android Market.

The SDK Tools work on both Mac and Windows, meaning PC developers can now create iOS applications without needing a Mac. It’s a major step forward for developers since you aren’t limited what app stores you can build for based on your development environment. A set of native device APIs that work on both iOS and Android like Camera, Orientation, Network Connectivity, and native confirmation dialogs are also enabled.

Appcelerator titanium
Introduced in 2008, Appcelerator Titanium is a platform for developing mobile, tablet and desktop applications using web technologies. Support for developing iPhone- and Android-based mobile applications was added in June 2009. Support for developing iPad-based tablet apps was added in April 2010. BlackBerry support was announced on June 2010 but it is still in closed beta.
Appcelerator Titanium Mobile is one of several phone web based application framework solutions allowing web developers to apply existing skills to create native applications for iPhone and Android. Yet, while using the familiar JavaScript syntax, developers will also have to learn the Titanium API, which is quite different from familiar web frameworks such as jQuery.
Appcelerator Titanium is sometimes compared to Adobe Air for developing desktop applications for Windows, Mac and also Linux
All application source code gets deployed to the mobile device where it is interpreted .This means that some errors in the source code will not be caught before the program runs. Program loading takes longer than it does for programs developed with the native SDKs, as the last step, interpreting the source code on the device, needs to be done before the application starts. Some developers have reported that although working with Titanium gives fast results, making Titanium well suited for prototyping, there are issues around differences in behavior of the API cross-platform, stability and memory management, that made them re-write their apps in native code in the end. Many Appcelerator developers cite the speed of development, native UI, and JavaScript skill set needed as reasons why they choose to use Appcelerator.
Support for standard based web technologies Html, CSS and JavaScript on all platforms along with PHP, python and ruby for desktop platforms.
It provides integrated support for popular JavaScript and Ajax frameworks including JQuery, YUI, MooTools, Scriptaculous and others.
Platform independent API to access native UI component including navigation bars, menus, dialog boxes and alerts, and native deice functionality including file system, sound, network and local database.
API access to native mobile functionality like geolocation, accelerometer and maps
It provides extensibility through open interfaces and licenses allowing developers to introduce support for additional scripting language, media codecs and device specific functionality.

Introduced in 2004, Monotouch lets you build apps with C#. Create C3 and .NET applications for iPhone, iPod Touch and IPad while taking advantage of iPhone API and reusing existing dot net code., libraries and skills. Monotouch is a SDK that contains suite of compilers, libraries and tools for integrating with Apple’s iPhone SDK. Monotouch includes .Net base class libraries along with managed libraries for taking advantage of native iPhone API. Also included is a cross compiler that can be used for taking advantage of native applications for distribution on the apples app store or for deployment to enterprise iPhone users. In addition XCode integration enables application developers to test on the device or in Apple’s iPhone simulator and ship applications to apple app store for distribution.
Mono for iPad, iPhone, iPod touch
C# and .Net on iPhone
Net bindings to native API’s
Distribute on apple app store
Enterprise deployable
Mono develop integration
Xcode integration

Vaadin Touchkit / GWT

Like Sencha allows building native looking app with JavaScript, using Vaadin Touchkit/GWT allows you to build native looking app using java. You would need to compile this to final version using PhoneGap or trigger.
Efficient application mobilization – Take full advantage of the Vaadin framework server-centric model and Java EE API’s for accessing your backend services, securely and efficiently. Since you will be coding only in java, your mobile apps will be simple to create and you can speed up the development by reusing your existing java code and libraries as is. Vaadin touch kit gives java developers a compelling alternative to create beautiful mobile client UIs without using any scripting languages. Stick to pure java and mobilize your enterprise applications with minimal learning curve.
Smooth User experience – Vaadin touch kit visual effect make your mobile app look professional .animated screen transitions and support for touch gestures, such as swipe, give your application a native look and feel. Accessing enterprise resources with UI components specifically designed for mobile touch devices improves your customer satisfaction
Touch kits default theme is designed to reassemble iOS, as with any Vaadin application you can customize your own theme to give your personnel, company or device specific touch.
Customizable offline mode – Vaadin Touch kit application can be started without a connection to the network by utilizing html5 cache manifest feature. Touch kit comes with a default offline mode implementation that displays a notification dialog when the connection is down. Overriding default offline mode functionality can be easily customized by writing plain GWT code that takes care of store application specific data in the browser local storage. Once the connection is back, the data is synchronized. You are in control of when and how data is synchronized to the server.
Easy developments & Updates – Deploy your applications without time consuming approval processes. Maintaining your mobile app is just as easy. Just update your app on server and all users will have access to the latest version of your mobile application.
Write mobile apps in pure java
Animated screen navigation makes your app look like native app.
Produce working app in hours and deploy instantly.
Reuse of main application code to create mobile version.
Enable support for offline mode.
Support for swipe gesture. is a competitor to PhoneGap. They can compile web kit apps to native app. forge is a development framework which enables you to create native apps for multiple platforms for a single HTML5 codebase. It consist of common JavaScript api that expose native functionality such as camera, SMS, contacts along with a set of tools and cloud build service to build your app for each platform that you want to support.
The simplest way for web developer to build native apps for iOS, android and windows phone using html5.
Access native features from JavaScript
Distribute in multiple app store
It involves simple development process. No need to setup eclipse/xcode.
Cloud build service, you can even build for iOS on windows.
Real native UI component


Introduces in 2009, Corona SDK is a software development kit which allows software programmers to build mobile applications for the iPhone, iPad, and Android devices.
Corona lets developers use integrated Lua layered on top of C++/OpenGL, to build graphically rich applications that are also lightweight in size and quick in development time. The SDK does not charge per-app royalty or impose any branding requirement, and has a subscription-based purchase model that allows new features to be rolled out immediately to users
Proprietary OpenGL-ES rendering engine allows for full hardware acceleration of graphics, including sprites that animate at full GPU speed
Transition library enables twining of Corona-powered sprites’ position, rotation, alpha, or any other property.
Supports native iPhone and Android UI. Developers can access the iPhone’s native text features including all fonts, multi-line fields, and keyboard input.
Apps built with Corona start at under 400KB in size.
Subscription-based purchase model allows users to have new updates as soon as they are rolled out.
Full feature integration with device camera, accelerometer, magnetometer, video player, compass, and/or GPS


1 Comment

Filed under Mobility

Running Mac on windows 7 using VMware Player

This tutorial is a step-by-step guide
> To install Mac OS x 10.8 on Vmware.
> To install dmg files

– You need at least ~10 GB space.
– You need 7-zip
– You need Vmware Player
– You need an Apple ID. Go ahead and create one for development purpose.

Steps –

1. Download Vmware Mac image from here.

I used Mac OS 10.8.

2. Extract it using 7-zip which can be downloaded from Google search.
3. Download VMware workstation. I had VMware player 3 which I upgraded to VMware player 5.

4. Click on “Open a Virtual machine” link.

5.Keep the default settings. You can always edit these properties later.

6.Click “Play virtual machine”.

It will start installation. Click Next. It is easy to follow.
Fill in all the details.


8. Login

If you are heavily into development on windows environment , You will feel little uncomfortable because of short cut keys.

Anyway you will get used to it.

Some windows equivalent in Apple

Windows Explorer -> Finder
Start Programs from keyboard -> LaunchPad
Browser IE/Mozilla/Chrome -> Safari
Outlook -> Mail
Control Panel -> System Preference
WM Player -> iTunes
Command Prompt -> Terminal
Recycle Bin – > Trash
Exe -> DMG
VisualStudio/Eclipse -> Xcode

App Store – You can buy Apps and lot of other Apple specific tools from app store. Also you can take a look at development tools.

I downloaded Xcode from AppStore. It is freely available now. XCode is very important IDE just like Visual Studio and Eclipse.

In my next tutorial I will show you how to create a Cordova (phonegap) project in XCode. I am comfortable using Chrome so I downloaded that also.

XCode/Chrome and Mac softwares come in DMG format

To install DMG in Mac you can follow below steps

1). Download the .dmg file; normally it should download to the Desktop or your Downloads folder.
2). Double-click the .dmg file that you have downloaded and a new icon with a similar name will appear.
3). A Finder window may open automatically, if it doesn’t double-click the new icon and it will open the Finder window.
4). Copy (or drag n drop) the new icon (the one that appeared when you opened the dmg) to your Applications directory.


Cheers, we are done installing Mac on Win7 using VMWare.


Filed under Mobility