When we are going to develop a mobile application, the first decision we must make is for which platform we should develop it, depending on the need we have, it may have to be for iOS (iPhone / iPad) or Android, there are big differences between them. The programming environment for Android used by popularity is Android Studio, which runs on all the most popular operating systems (MacOS, Linux, Windows). To develop on iOS, XCode is used, which is only available for MacOS.
As for the programming language, on Android Java is used (Now also available Kotlin).
Differences between Android and iOS apps
As for iOS, nowadays it is necessary to program with Swift and Objective-C the two languages that Apple supports. Swift was released in 2014 and can be explored with Xcode Playground. Swift is a language which Apple calls a safe language, easy to use and modern. Usually the two versions are used together.
As for Android, there are currently still active cell phones with around 30 different android versions and unfortunately, many manufacturers stop supporting cell phones a few months after its launch, which delays or simply eliminates the possibility of receiving an update on the cell phone This makes the developer's work much more complicated because the application support that must be given for the different versions of android is greater in addition to the amount of screen sizes and resolutions that exist.
Tools for apps developers
In contrast, iOS the developer has to deal with a smaller number of screens and as a single company (Apple) is responsible for updates to their devices, the updates reach a greater number of them, which decreases the problem of fragmentation of Operating systems. It is important to mention that there are tools that can be developed at the same time for Android and iOS.
Among the most popular are React Native, Ionic, Titanium, Phonegap and Xamarin. With these tools it is possible to program in an intermediate language such as javascript and the same code can be used for the application of the two operating systems. Using this approach we can develop faster if we need to support the two Operating Systems, but with some limitations and considerations that we will discuss in a next blog post.