Are you an iOS developer and have been a pro with the iOS development, but now for a change want to try your hands on an Android application development? Do not worry, you are in a right place.
When you decided to swap up the platform, you might have had the feeling that you have been dropped into the North pole or to some local African village, a situation where you can see everything but fail to understand even a bit of it. However, the reality is that Android isn’t necessarily harder than iOS.
The best part is that you already have knowledge and expertise of developing an app, and the same knowledge with a bit of change can be used on other platforms too.However, you also might enjoy some of the components of Android application development more than iOS.
Without wasting much of user’s time, we move ahead to the blog, which would not only help an iOS developer turn into an Android app developer, but it also includes a compiled list of how the main iOS components are laid into Android.
Android Development: Differences with the iOS development are pretty less! Lesser than you think!
So here you are- a maestro of Objective-C and Swift, knowing the languages beyond its limits. Thus, you seem to be quite confident with your iOS programming skills, but going through the learning a new language from ground zero seems to be quite a tedious task for you.
Well, you surely need to pull up your socks but you do not need to fight a battle, as you already know more than you think.
As we know, Android is written using Java, which is an Object Oriented Programming(OOP) language which is similar to Objective-C and Swift.
Hence, somehow you are already aware of the bizarre concepts of polymorphism, objects, encapsulation, and inheritance. Yo also up to some extent are aware of the subclass/superclass, overriding methods, and the delegates in iOS.
Here is your catch: You will be using the same concepts with respect to Android application development, but now you will be using Java.Also, you will be using the particular Java keywords such as this, extends, @override and implements to do similar things.
You also will be using the similar design patterns, such as the factory methods and the singletons. But for creating and working with objects, you will be using the JavaObject instead of NSObject.
Try going through the list of useful Java keywords that would give you a better understanding of all the concepts and also help you learn the practical uses of these keywords.
Android and iOS Syntax Comparision:
The most difficult part in moving from iOS to Android is to figure out what Android components would be used for its iOS counterpart. Well, thankfully all this sums up with the syntax and semantics.
Almost everything in iOS and Android come up with parallel features, and if not, then it can be easily solved using the third party framework. Few of such parallels are listed below:
IOS: Class prefixes as in “SAViewController”(Objective-C), Modules (Swift)
Android: Namespacing and package management; no prefixes needed, however, private instance variables should start with “m” as is “mFoo”
iOS: Properties auto @synthesized (Objective-C), Native Properties (Swift)
Android: Need to generate getFoo and setFoo methods
IOS: .xcassets asset catalogs for multi-resolution screen support
Android: res folder includes images, XML layout files and XML value files, organized by file structure for multiple device categories
UI Layout Files
IOS: Commonly a single .storyboard file, but could be broken into many .nib and .storyboard files
Android: Every unique UI will have a separate XML layout file
Project Configuration File
View Class Component
IOS: UILabel – not directly editable text; UITextField – editable/entry for small text amount; UITextView – display large amount of text, with option to allow user
Loosely Coupled Callbacks
IOS: Workspace with many projects. Targets to bundle code and resources together
Android: A single Project (in Android Studio) with many Modules that bundle code and resources together; a module can be broken further into flavors
IOS: int, float, double, char
Android: int, float, char (Integer is an object)
Screen Size Units
Resuming a Killed App
iOS: Starts from scratch and relaunches the app, unless using State Restoration practices
Android: Maintains a stack of activities and allows state restoration through “saveState” and “loadState” methods
IOS: Auto Layout maintain state, with custom implementation via the IS rotation methods(such as firing)
Android: Various options are available such as rebuilding or destroying. Activities for the new ones are based on qualifiers.
Using Xcode vs. Android Studio
Xcode; The IDE is loved as well as hated. On one hand, Xcode has a lot of improvements over the last few years, having a look at Android Studio would make you want to have certain features of their in Xcode.
Surely, there are various smaller differences between the two IDEs. As we know, Xcode uses storyboards and nibs whereas Android Studio, on the other hand, uses individual XML files. However, debugging on the Android Stimulator can be extremely slow when compared to snappy iOS stimulators.
Handling Different Screen Sizes:
For years and years, iOS developers have to deal with only one size, that is 320 x 480 pixels. Whereas Android developers, on the other hand, are already well aware of this.
Hence, today Android stand with multiple options for various screen sizes as well as densities, whereas iOS developers, on the other hand, had to face this only after the market launch of iPhone 5 and hence they lack various tools and their implementation for this issue in particular.
But, still you do not need to worry much as once you refer and go through Android XML, there are chances that you might feel embarrassed about the amount of time that you took in developing the same tools for your iOS projects.
Now once again, you might have difficulty with the syntaxes, but once you refer and go through a bit of documentation, you will be able to design various Android UI layouts on par when compared to your iOS app.
Well, you might also notice the similarity between .xcassets folder and the android ones.
Addressing API Support and Android SDK Fragmentation:
While this surely should be discussed that how much exactly do you want your minimum SDK. When the same question is laid for the iOS developers, it is usually answered with the bit of a more confidence added to it.
Android OS versions have a long history, where the older versions are still in use. On one hand, you probably want to reach as many potential users as you can, but also you do not want to be tied down by the older SDKs, just as in the older iOS.
Testing the Developer Console:
Thus, you have come up in building your own Android app which has the freshness of a typical Android app, also has the brand and cool features that were flushed out from iOS. Well, now its time to have the beta testers.
Though there is no TestFlight support for Android, we still have plenty of options including the Google Play’s open beta testing from the Developer Console.
Oh yes, and also an important news is that you do not have to wait for a long time to get a reply back from Google once you have submitted your app to the Google Play Store, and the chances of your app’s rejection are almost nill.
Thus, this is surely one of the easiest yet the best ways to be the best of both worlds, and also learning up both the mobile application development techniques, thus making you a legend of mobile application development in ideal terms.
About Auxano Global Services:
Our stiff development expertise is meant to steep the business of our customers. We stretch ourselves to overcome the hurdles faced by our clients with feature-rich solutions.Our belief in quality and timely delivery set us apart from others in the market.
Just scribble your requirements at firstname.lastname@example.org or call us at +1-209-348-9807 and in no time our representative will be in touch with you.