Eddy Blog

My Little Space on Cyberspace

My Experience transitioning from Windows to Mac OS X

on February 3, 2012

It’s been a little over 12 months since I’ve made the big leap to transition from Windows to the Mac. It wasn’t really a simple transition especially having been using the Microsoft Platform since MS DOS 3.1 and hoping over to the Windows 3.0 platform until Windows 7.

I’ve been programming on the Windows platform since 1996 and I supposed that makes the transition to the Mac OS X much harder. Windows apps sales was slowing down with the onslaught of the Tablet PCs and probably from the numerous new competitors which have taken some of the concepts I’ve pioneers in the late 1990s and adopted it in their applications.  It is certainly a very competitive market since the Windows platform is the most popular Operating System for Personal Computers for a very long time.

I heard so much about the success of the iOS App Store and considered tapping on that platform. However, in order to do that, I needed to get a Mac, get familiar with it and start programming on that platform.

After some soul searching during my trip to Kota Kinabalu, I made my decision, I needed to get a Mac and there is nothing stopping me. Took me a while to decide whether to get an iMac, Macbook Pro or the Mac Mini. Taking into account all the considerations, the Macbook Pro seems like the best option as it allows me to work anywhere. It is just too difficult carrying the iMac everywhere I go.

On January 26 2011, I made the trip to Challenger in Nex Shopping Centre located in Serangoon and made my purchase of the 13″ Macbook Pro (2010 Edition). The move was excellent since they were offering a free upgrade to 8gb from the 4gb base. It was part of their opening ceremony sales but I suspected it was because they knew that the new Macbook Pro (2011 Edition) would be launching soon.  In any case, it was certainly a good buy since I could start working on the machine rather than waiting another 3 months before I could get my hands on the new Macbook Pro. After I’ve made my purchase, I was told that they did not have the 8gb upgrade kit at the moment and they scheduled for me to bring the machine back for the upgrade in 2 days time. I thought okay, it would give me the chance to get familiar with the Mac and if I did not know something, I could ask. The RAM upgrade was smooth and took a few minutes to install which I opted to do myself.

Brought the Macbook Pro back and turn on the machine and heard that familiar “tang” sound and after going through the set up process, the OS X screen came on. Then I thought, now what. All the Ctrl-keys which I was familiar with did not work and the F1 to F12 keys do not work the same way as I know. And Oh, the touchpad has no buttons to click, no right and left buttons. It took a while to figure things out.

Oh, by the way, on the Mac, just replace the Windows concept of the Ctrl keys with the Command Keys on the Mac and you be fine. The touchpad on the Mac is just one big surface area and tapping it would be the regular right-mouse click on the PC. The Contextual Windows (on the Mac) can be brought up by holding on to the Ctrl key and tapping the touchpad or just using a 2 finger tab on the touchpad. The F1 to F12 keys can be set to behave like in Windows under Preferences.

Although the Mac supports FAT16/32 in both Read/Write Mode thus supporting the current thumb drives and SD Cards, it did not offer the same support for NTFS format. It can read NTFS files without any issue but writing to it is a problem. There is the NTFS-3G app which you can use for free and the Paragon Software’s NTFS for Mac OS X which cost US$19.95. I opted for the NTFS for Mac as the NTFS-3G is slow and has not been updated since 2010. I’ve just upgraded my NTFS for Mac OS X to v9.5 which supports the latest OS X Lion. This would allow me to read and write to my Windows NTFS portable hard disks without any issues.

During the next few days, I physically changed my 250gb internal hard disk to a 500gb internal hard disk  with some instructions off the web. Of course, prior to doing the physical switch around, I used Disk Utilities and do a “Restore” on the new external hard disk and that actually was quite simple. After the switch over, I turned on the Mac and everything work as it was. Cool! More space to work with.

That was when I got to the more hardcore stuff like purchasing VMWare Fusion and installing Virtual copies of Windows XP and Windows 7 on it and began putting my Windows applications and Development Tools onto the VM copies of Windows. Everything worked, a little slower but at least it worked. Of course, if there were Mac versions of the software I needed, I would purchase the Mac version and keep my Windows VM clean and lightweight.

Next step was to see if I could program with Objective C with Xcode. Being real pampered with an Integrated Development Environment (IDE) like Delphi, using Xcode was a real pain. In Delphi, when I drag and drop a visual component, all the codes to set up that components is done for me. In Objective C, I had to do all the linking by hand. It is a pain when it comes with loads of controls. The Delphi’s Pascal dialect was very clean and almost English Like while the Objective C was like some secret military code which I could not really comprehend. After a week at looking at it, I was no where.

I remembered from my past experience with Mac OS 9 on my blue iMac in the early 2000s, I was using Realbasic and I thought I explore that option. Of course, after 10 years, they got a lot better. I was actually frustrated when my old Mac backups from 10 years ago did not work and I’ve lost my source code for my first mac app in the process but then again, it probably was a blessing in disguise and I doubt anyone would want to use an app which was 10 years old and probably looks odd in today’s context.

Realbasic or RealStudio is Delphi-like and follows the Visual Studio way of doing things. It certainly was a pleasure to be back. So that became my development tool for the Mac for the last year and probably longer as I do not plan to go anywhere. It was certainly easy to work with and I am glad I did make the move. In the span of weeks, I’ve got my first app ready for the Mac App Store. Of course, getting through all the validation set up and working with iTunes Connect was a little complicating in the beginning but with some help from the RealStudio Forum, I’ve got that done and when my first app was approved, I was silently happy.

I spend a huge part of my savings and then some, trusting the power of the credit card,  on purchasing the Mac, all the Windows and Application licenses. So if I failed, I would fail big time. But I guess in life, if you do not take up the hard road or the challenges, you would go no where and probably may fall behind while others overtake you. The software development world is a really competitive one.

It took several more months and several more new apps under my belt and I could see money starts pouring in. None of my apps were like those featured or award winning ones which reaps millions in profits, mine brought me in a better financial situation. If I stayed on Windows alone, I probably would need to start looking for a second job rather than to be doing what I love.

Much of the year was spend just coming out with new applications and spending fussing about the Apple’s iTunes Review process. Sometimes submitting an app for review could take up almost a month in review before they get approved by Apple. Or sometimes they get rejected after the long wait and it was cause of a small issue like perhaps I’ve mentioned a trial version on the description or something to that nature. I supposed in the end, I come to appreciate what they do (apart from the long review process) since there were times in which they actually found bugs which I would not have otherwise spot before they get to the customers. Of late, the review process seems to be much faster and most apps get approved within a week or less.

I sold more applications on the Mac App Store within this 11 months period than I did for my Windows Applications in my 13 year in the business. Of course, one thing I learn on the Mac App Store is to price the apps low so as to encourage more purchases. There were a lot of playing around with prices to get it price just right.

When Apple announced OS X Lion in July, they came out with a new requirement for apps on the Mac App Store to be Sandboxed enabled by November. It was a very rushy process as to work with Sandboxing, I needed firstly to migrate all my Mac Apps from Carbon to the Cocoa platform and at that time, RealStudio’s Cocoa framework was still not quite ready. Much of the time between August to September was spent in doing the Carbon to Cocoa transition. Some things which works in Carbon just failed to work in Cocoa and because of that, I had to do a lot of silly workaround codes which shouldn’t have been there in the first place. It was a challenge but it certainly help improve my programming skills. After that was done, the next transition was to enforce Sandboxing. The codes to Sandbox was rather simple but by doing so, my app would no longer have access to files outside the confines of the sandbox. What this means is that without the user granting access to an external folder, my app cannot access it. Even trying to make a backup of an internal file to an external location was not permitted by default and it means that I have to recreate an internal file bytes by bytes to a user selected folder. And a user selected folder was only granted the permission for that session and when the user exist or reboot the Mac, the permission is lost and need to be reselected again. Apple concept is that of security as sandboxing means that an application cannot maliciously corrupt another application space or user files without the user’s explicit permission but having the user keep selecting the folder seems like a step backward.

I did consider just selling my apps on my website but that did not bring in the numbers which the Mac App Store brings so for economical reasons, I bite the bullet and stayed with Apple on this. I don’t like it but the alternative does not seems as bright. Any case, I got all my apps sandboxed and submitted to the App Store by October, before the November dateline.

Then come november, Apple made another announcement that the Sandboxing requirement has been shifted to March 1st 2012 and this time it is official. Of course, before that time, a number of developers were very vocal about the sandboxing and even now are struggling to enforce it. It is really not an easy, set a few checkbox and you are done type of thing, it requires a lot of re-coding and looking at things from a different perspective. There is certainly more problems to have to take note of.

During that time, I have not forgotten about the Windows development and did several updates along the way.

Working on the Mac is now a pleasure. Of course, the Macbook Pro can certainly do with a few more USB ports as I normally needed to work on more hard disk at once. I did try to do another hard disk upgrade from the 500gb to a 1tb hard disk to free up my USB port but I found that the 1tb hard disk which I’ve got was higher than the 9.5mm height allowance for the hard disk on the Macbook Pro and thus was not able to use it. Now that hard disk is in its own external USB casing.

The OS X Lion upgrade was certainly a nice upgrade. For the first time, a Mac OS Upgrade was priced at US$29.99. I believe Apple wants as many users to hop on this wonderful platform. The upgrade was quite painless and as a Mac developer, I’ve got the upgrade for free. Guess it is just one of the perks I get.

This year would be spend in seeing how to adapt iCloud for my apps, do more cross platform apps for both Mac and Windows and subsequently get my iPad 3 and start programming for iOS. That certainly is a lot for a short period of a year with 1 month already gone. It will be an exciting time and I am up for the challenge.

Some of my Mac apps were already working in Windows and after transitioning from Core Graphics PDF generation support to DynaPDF, I not only got a much faster and more powerful PDF engine, I could finally make more of my apps cross-platform. The Core Graphics has one big fundamental flaw, apart from not being supported in Windows, is that all PDF generation is done in memory. It is fine if you need to generate up to 100 pages of graphic intensive PDF file but after which, it would start exhibiting issues. DynaPDF overcome that issue by allowing me to flush the pages to file and thus freely up the working memory. One thing I did not like about DynaPDF is probably the price and it did set me back quite a bit in Demember 2012 as that was the month where traditionally broke after all the Christmas spendings and all the other licenses renewals. But I am glad I made it as at least I got happier customers. Of course, the next few months would be spend in recuperating the investment.

I just hope that Apple does not throw new curveballs into the mix this year so that everything can proceed as it should.

Apart from some fingerprint smudges on the screen, my Macbook Pro is working great after 12 months. Overall, I am very happy with it.

 

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)

Leave a Reply

Your email address will not be published. Required fields are marked *

*


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>