Apps optimize

Learning iOS as an Android developer

Android developer Chiu-Ki Chan learned iOS to develop her Heart Collage app on both platforms. Find out her overall impressions of iOS development.

As a veteran Android developer, I have always been curious about the iOS platform. Is Objective-C hard to learn? Is it really much easier to make a beautiful UI in iOS?


Here are my thoughts after learning iOS for two months.

The setup


Learning curve

The first three weeks were painful. Not only I did not know anything, but I lacked the vocabulary to ask questions. I would search for something and find five Stack Overflow threads, all of which sounding kind of related to what I needed, but not really. It was really frustrating.



UI editing




<Button android:id="@+id/start_button" />


public static final class id {

public static final int start_button=0x7f08003b;


To refer to a view in your code, use findViewById:

Button startButton = (Button) findViewById(;




It all makes sense after the fact, but when I first started I would drag and drag and drag and not be able to link the views. Sometimes I forgot to specify the view controller. Other times I forgot to add the IBOutlet. On late nights I forgot it's right-click drag, not just drag.


Built-in components




This brings us to the famous fragmentation debate.



OS version


Device form factors

Until recently the device form factor was pretty uniform. There is Retina and Non-Retina, that's it. Different density, same aspect ratio. Same aspect ratio means you can still use a coordinate-based layout system and align your views in Interface Builder.










Intent intent = new Intent(this, ViewCollageActivity.class);







After you make a Heart Collage, the app lets you share it with your friends. This is super easy on Android. I just create an Intent saying that I want to share an image, and the system automatically generates the list of installed apps that can handle that. It's an elegant way to have a personalized and extensible experience. Users can share their collages with any apps they prefer, and I don't even need to know they use that app, let alone are creating a new integration point.




Beta testing

Finally my app was ready for beta testing. Yay!

Here are the steps for both platforms:


  1. Compile the apk.
  2. Email it to some friends.
  3. There is no third step.


  1. Collect UUID from friends.
  2. Create provisioning profile from iOS dev portal.
  3. Add UUID for each new test device.
  4. Download provisioning profile from iOS dev portal.
  5. Compile ipa.
  6. Email provisioning profile and ipa.


The flip side though is I know exactly who can run my app, and I don't need to worry about leaks. For Android, once you send out an apk you have no idea where it will go. And there isn't really a good way to limit the distribution.


And now, the final moment - release to store. No anxiety for Android at all. Just upload, wait for an hour or so, and it's live. For iOS, there is the review process.

I want to release Heart Collage before Valentine's Day, so I submitted at the end of January. There should be plenty of time, but the potential rejection was stressing me out. I was so relieved when the app got approved the first try, in six days. Jubilation!


I have been mostly pointing out the difference between iOS and Android, but at the end of the day, they are more similar than different in terms of technology, at least. The verdict is still out on the money. Is it true that iOS users are more willing to pay for apps? Which platform will generate more revenue? That will be the driving force for my decision to spend time on iOS vs. Android, and the numbers are still out. Will Heart Collage get more downloads on iOS or Android? We shall see.

This guest post by Chiu-Ki Chan originally appeared on her blog Square Island. She is a former software engineer for Google who now runs her own mobile development company.


I've only taken the barest peek into Android development so far, so muchof the technical stuff was over my head. Even so, it was a very informative read.


Excellent article. [q]She is a former software engineer for Google who now runs her own mobile development company[/q], Great! I Congrats you. Android Games, seeing a rapid development to help mobile app developers on improving their technical skills. Thanks you for this share.


It was refreshing to read an unbiased technically astute comparison of Android and iOS. For me one of the pain points of iOS is that you can only develop for it on a mac. I own a mac, so I've nothing bad to say about the computer itself, but I also own 2 windows machines and an ubuntu laptop and I like being able to pull from bitbucket and develop whenever I can on whatever machine I happen to be on. On the flip side the iOS simulator runs so much faster that the Android emulator, which at times can be almost unusable.


Great article. Am sure this piece will be of great help to people, especially developers. Mobile app developers need a lot of skills and knowledge about the latest trends and technologies pertaining to mobile devices for all major platforms. The two major mobile platforms  Android and iOS have various kinds of apps to help people perform various activities.