how to Start Android development with an iOS background

How to Start Android development with an iOS background ?

 

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!

Start Android development with an iOS background

 

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:

 

Nomenclature

 

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”

 

Getters/Setters

iOS: Properties auto @synthesized (Objective-C), Native Properties (Swift)
Android: Need to generate getFoo and setFoo methods

 

Null/Nil

iOS: Messages passed to nil objects are no-ops (Objective-C), Optional (Swift)
Android: Need to Null check objects, otherwise methods on Null will crash

 

Assets

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

IOS: Info.plist
Android: Androidmanifest.xml with some configuration possible in a build.gradle file

 

View Class Component

IOS: UIViewControllers and UIViews, can be created anywhere and presented on any superview
Android: Activities and Fragments, shown by Intents

 

Lists

IOS: UITableView, UICollectionView
Android: Recycle View, ListActivity, and ListFragment

 

Text Display

IOS: UILabel – not directly editable text; UITextField – editable/entry for small text amount; UITextView – display large amount of text, with option to allow user

 

interaction

Android: TextView– EditText is a subclass that allows for editing displayed text

 

Loosely Coupled Callbacks

IOS: Delegates
Android: Adapters

 

Asynchronous Logic

IOS: Grand Central Dispatch, NSoperation Queue
Android: Async Tasks, Background Services, Intent Services

 

Dependency Manager

IOS: Cocoapods or Carthage, (Swift) Package Manager
Android: Typically Gradle, but you have the option to use Maven or Ant as well

 

Project Hierarchy

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

 

Primitives

IOS: int, float, double, char
Android: int, float, char (Integer is an object)

 

Screen Size Units

IOS: Pixels and points; points are preferred.
Android: Pixels, density-independent pixels (dp), scale-independent pixels (sp); dp and spare preferred

 

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

 

Orientation Changes

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

android background

iOS background

 

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.

 

Conclusion:
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 admin@auxanoglobalservices.com  or call us at +1-209-348-9807 and in no time our representative will be in touch with you.

Get Free Email Updates!

Signup now and receive an email once I publish new content.

I will never give away, trade or sell your email address. You can unsubscribe at any time.

Leave a Reply

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