Eddy Blog

My Little Space on Cyberspace

My Experience transitioning from Windows to Mac OS X

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)
No Comments »

iOS or Android?

I believe that this would be a rather sticky issue and everyone would have their opinion on this.

I plan to develop for the mobile platform and have been reading up on both the Android and the iOS ecosystems. On the offset, I would like to say that although there are differences, both are very formidable competitors. Each have their pluses and minuses.

In order to test the platforms, I’ve got an iPod touch 4 in 2010 and in early 2011, I’ve got an LG Optimus One phone and the locally made Creative ZiiO 7 (as I wanted to support the locally industry).

Being a Mac developer, I have first hand experience with the Apple AppStore and their infamous review process. That process is the same with iOS devices.

On the iOS platform apart from jailbreaking, as a user you can only install apps through the AppStore. On Android, you can download from the Android Marketplace or from the various android depository sites or even just write your own app and install it on your Android device.

From my understand, it is easy to list your app on the Android Marketplace. All you need is pay US$25 to get an account and it takes several minutes to get your app live. I am not sure if they do test your app before putting them up for sale or download.

While the iOS AppStore would cost you US$99 a year and can take several days to weeks for the Apple reviewers to test your apps and ensure that it is not violating any set terms, are useful or entertaining and does not cause harm to the users’ devices.

The Android platform is a very open platform and users and apps can access all folders on the system while the iOS platform is a closed platform where users do not have access to the folders and apps can only work within its sandboxed area.

In terms of security, a non jailbroken iOS device is certainly more secure than the Android device. You certainly need an active antivirus on the Android device while you do not need one on an iOS device. However the iOS would provide a lot less flexibility than it’s counterpart.

The iOS devices and operating system are designed exclusively by Apple while the Android platform is different where Google developed the operating system but different hardware manufacturers would design and develop their own devices. Google tend to be quick in coming out with different versions of their operating systems which may not be upgradable from version to version. Currently you have variants of Android OS v2, v3 and v4 available on numerous devices each requiring different hardware specifications.

In terms of development, it would be easier to develop for the iOS platform as you need to cater to a few screen dimensions while on the Android, you need to cater to different version of the operating system, screen sizes and CPU used by the different manufacturers.

I understand that Android users tend to spend less on apps than the iOS users.

As an independent developer, I would need to weigh all the factors before picking a platform to support. I wish I could support all but I need to be realistic here.

In the end, for the issues mentioned above, I am leaning towards the iOS platform and so now, it is to decide on the development platform to use.

I am planning to pick up an iPad 3 when it hits my shore.

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

Porting from Delphi to RealStudio

Although I’ve worked with Delphi since 1992, it is probably time to part ways. I do enjoy working in Objective Pascal and this decision has not been easy.

I’ve stopped upgrading my Delphi since 2009 as it got increasingly harder as an independent developer to purchase a license. They have not only increase prices from upgrades to upgrades which I can accept but the unfair practice of charges substantially more for non-US customers is something I really cannot accept. In my case, before taxes, the price difference is close to 30%.

We do not get anything different from the US customers and there is no added technical support or physical media or paper manual which comes with it.

Since last year, while looking for a programming language for the Mac OS X, I’ve decided to go with Real Studio has they support cross development for the Mac, Windows and Linux platform. It has been relatively easy to use and although it is not as robust or as refined as Delphi or have a large pool of 3rd party plugins, the cross platform feature attracted me. In my case, I do not pay any more than my US fellow programmers.

This year I would certainly be porting all my applications written in Delphi to RealStudio and offer them to both Mac and Windows users. This will require writing everything from scratch but it is not an impossible task.

The Real Studio team is smaller than Delphi but certainly are hard at work in addressing bug reports and including enhancement brought forward by its users.

I am looking forward to the LLVM support in RealStudio as it will allow me to compile in 64 bits and probably on the mobile platform.

It certainly is an exciting year ahead.

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