Why I Choose to Code in iOS

Dr. Eddie Chan, the Co-Founder and Chief Technical Officer of PowerMew Technology, is no stranger to coding and development.  Before founding PowerMew Technology, Dr. Chan taught classes on programming, and he has even written two academic textbooks which teach students to code in multiple environments.  Despite his wide-ranging coding abilities, Dr. Chan prefers to code in iOS.

Dr. Chan recently worked with PowerMew’s technical team to identify the advantages of coding in iOS.

iOS Requires Less Code.

When it comes to the number of lines of code, iOS development is much smaller than Android. For instance, iOS has simplified constructors, setters and getters. Developers can spend less time to define the basic components of a class and focus more time on tackling the core problem. According to Infinum’s study*, Android programmers have to write on average 40% more code than on iOS. This means that if we build an app in iOS which requires 500 hours of development time, it should take approximately 650 hours to do the same thing in Android. The major reason for this is that Android applications are written in Java, which is a more verbose language than Objective-C or Swift. Having to write more code often means longer development time and leads to a higher possibility of bugs.

Less Effort is Needed to Optimize iOS Code.

While junior iOS developers might run their code quickly without great focus on optimization, optimizing Android code is much more time-consuming, even for senior developers. This is because the optimization process includes memory management and graphics rendering processes. The difference in how iOS deals with memory management is key.

Java, utilized in Android development, relies on a garbage collection scheme which requires periodic pauses in operations to do clean up. This also necessitates extra RAM, which leads to negative impacts on battery life. According to Glyn Williams on Quora, Android’s garbage collectors work best when Android apps have 4 to 8 times as much memory as is actually needed in order to perform the garbage collection process. Once this free memory is diminished, performance begins to suffer. For iOS, Apple uses the ARC system, which performs much better in constrained memory cases.

iOS Storyboards Make things Easier.

A storyboard is a visual tool showing the sequence and connections of user interface scenes. By connecting the view controllers, segues are created to manage transitions. The flow of the whole application is thus well visualized, and developers are able to save time reviewing the codes they write which may sometimes contain bugs. There is no similar tool in Android. Android programmers must build a workflow first. Then they create layouts separately in different .xml files before glueing them with startActivity. Junior developers might feel it difficult to visualize a user interface flow without the storyboard functionality of iOS.

User Interface Element Initialization is Easier for iOS.

Xcode provides drag-and-point between delegate functions and layout UI elements so that some codes are automatically generated. It is easy to link the delegate code and UI (xib) together, as if designers use artboards in graphic software. In Android, the design layout is completely separated from codes. The UI element initialization can only be done through pure coding. Junior programmers often have to spend more time to understand the linkage between java and xml files.

The iOS Model-View-Controller Pattern Helps.

The design pattern enforced by iOS provides numerous benefits to developers. Many objects in these applications tend to be more reusable, and their interfaces tend to be better defined. Applications with an MVC design are also more easily extensible than other applications. This helps  junior developers to write clean code. In Android, programmers need to implement the framework by defining their user interface and resources, by extending classes like ListActivity, TabActivity, and by making use of the XML file by inflaters. Codes can easily get messy when the programmer lacks a good habit.

Apple has Better Devices.

The quality of hardware is essential for the best user experience on mobile applications. Apple devices generally perform better in terms of network and graphics. It is reported that iOS applications also use less RAM and lower CPU clock rates as Android. Many Android devices use high resolution screens, but they are equipped with relatively anemic processors. Even expensive gear doesn’t improve the graphics performance. To get around the engineering flaw of too many pixels and not enough GPU horsepower, many game developers scale down Android graphics which worsens the graphics performance.

iOS is the Best Choice for 3D Game Applications.

iOS natively supports C language, which is a widely-known, portable programming language often used in game engines. Using C language, programmers do not need to translate programming languages, the process of which may generate bugs. To facilitate calculation of game applications, the GPU of iOS performs faster and better. Game development in Android requires downloading Android Native Development Kit (NDK), which is not only slow but also ill-equipped to include  C-language generated files, as Android uses Java instead of C-language.

Apple has a Flourishing Developer Forum.

Many experts actively participate in the Apple Developer Forum so that programmers can easily find relevant feedback and answers to their coding questions. On the other hand, stackoverflow.com, a popular forum for Android, is not an official channel exclusively for Android development. Other topics such as iOS, JavaScript, Objective C and html are also discussed in the same platform, resulting in information overload. While Android developers want to resolve programming issues, the feedback on this type of forum may be outdated and less optimized than the Apple Developer Forum.

About the author

Dr. Eddie Chan is the co-founder and Chief Technical Officer of PowerMew Technology Limited. He leads PowerMew’s engineering team responsible for building first online social platform for the real estate industry. The team develops the revolutionary platform across web, iOS and Android platforms. Dr. Chan is also the author of two academic textbooks which teach people to programme in both iOS and Android environments. Prior to joining PowerMew, he taught  programming courses under the Department of Computer Science and Engineering at the Hong Kong University of Science and Technology (Rank #1 computer science department in Asia in 2015).

About PowerMew Technology

PowerMew Technology Limited provides a revolutionary experience in exploring apartments. With its social networking platform called MewMe, the platform is set to become the next “LinkedIn” in the real estate business that connects proprietors, buyers, tenants and estate agents.  Users can find their dream house via MewMe, the intelligent real estate platform, at any time anywhere. They are free to share the apartment information with family, friends and even someone without a MewMe account. Moreover, MewMe provides Virtual Reality service. Potential property buyers need not visit the actual places anymore. All they have to do is to put on a pair of VR goggles to be presented with 360 degree panoramic views of the estate. MewMe is more than a real estate database, it is an intelligent social platform which can help all users to find the place they want.  To learn more, visit MewMe’s website.