On many occasions we have talked about Android Free The programming such as we did with section Learn Android in 20 concepts.
Today we will also talk about this, but seeing some of the changes that will suffer developers move from iOS to Android. Two different systems, each with its tools and secrets. Moving from one to another is much more than copy and paste the code. In fact, this does not even work with each party. Let’s see these differences.
IOS vs Android Development
Project Structure
The structure of a project in Xcode is free, for folders and files where they are created and then reference them. However, there is some respects nomenclature (icons for different resolutions).
In contrast, an Android project is too stiff. There’s a lot to respect both naming files and folders, resources… In this way, everything is well structured, especially for correct support in so many different resources that can be found (screen resolutions).
Simulation vs Emulators
Here we see one of the big surprises: iOS simulator is much faster compared to the Android emulator. However, the iOS emulator fails to give an accurate representation of an iOS device.
The Android emulator is an effective virtual machine running a virtualized CPU and limited memory, so that the simulation is more realistic than what offers the iOS simulator. However, it is highly recommended to use actual physical devices in developing.
The programming language
Perhaps this is the largest of the differences, because Apple uses its own language Objective-C / Swift programming, while Android uses Java. Despite being both object oriented languages, including more than obvious differences.
Memory management and garbage collection
This is one of the issues that bring more headaches. In Objective-C memory management principle was explicitly managed by the developer, but have been improving so that from ARC is much easier for the developer, but no less critical.
In Android, we must also take into account of the garbage collection, but it may not seem so. The use of large images, too many views… We launch the fatal OutOfMemoryError message which Android developers are so afraid of.
UI ViewController vs Activity
This is one of the main concepts that we handle, is that the move to develop for Android have to get used to the Activity class, the class that represents a screen on an Android device.
For iOS, the UIViewController controller is a core component of the application, which can manage the life cycles of events, sub views… As you can guess, is the controller within the view-controller pattern.
And this is the same role that performs the Activity class for the case of Android, as we discussed. Although not exactly the same. In fact, the main differences come in the way of managing the life cycles of events.
Delegate vs Adapter
The delegation pattern is widely used in iOS using delegate protocols. However, Android this pattern is represented by an adapter. Different platforms, similar concepts. Will it result that, despite their differences?
UI vs Layouts
This is where comes one of the big differences is that the proposed solutions for creating a graphical interface does not really have anything to do with this subject.
Layouts
The XML files in which we set the interfaces on Android may look similar to iOS XIB files, except that they are not legible.
However, the subject of animations, iOS is much better prepared than Android, although it is getting the batteries lately, especially with the preview of Android L and Material Design. In a simple, Apple is always focused on soft, complex and powerful animations, while Google has them worried considering the hardware. With the material presented in the previous Google I / O Android’s future and its graphical interface seems much more solid.
The back button
This is certainly another major difference, is that Android has the back button, which is not included in iOS. And as developers should think about giving proper use, but especially in the bass! And I say this because at the beginning, a developer of iOS has trouble assimilating this.
It is not unusual to find Android apps with a section on the top left corner where you will find a key to go to the previous screen. Intuitive in some cases unnecessary for others.
More and more differences
But not all end there, because we will find many more, such as:
- Unlock Android phone will be sliding up (right to iOS)
- Preferences and permissions are better grouped in the General preferences iOS device, while Android are more dispersed
- In iOS you can use Apple’s maps, while Android will use Google Maps (we can also use it on iOS)
But we could go on writing more and more differences. Even with this we have to reflect that we wanted to reach, and is to go to develop iOS for Android is not as simple as learning to program with Android API, but we have to get used to thinking in Android and think all those details that end up contributing what, to me, is one of the most important concepts in programming: be different and add value.
Albert Palacci is passionate about the digital app world, he is writing for several online magazines and websites, also you can check his Google+ profile and you can find more about him on his SlideShare or Academia profile.