Tuesday, 22 November 2022

iphone app icons

“Hybrid”, “not quite native” app

Now this code is generated by the compiler. Special thanks to!

A return to the nice string-handling model that was introduced in Swift 2 and removed in Swift 3. Along with this change, strings will be better Unicode-aware (“so that your favorite apps can correctly display all your emoji”) and working with them will be faster.

Projects that use both Swift and Objective-C will build 40% faster due to improvements in Xcode 9 and its build system.​

Apple (as usual) promises a simple migration to Swift 4, and simultaneous support for different codebases (3.2 and 4.0).

“Hybrid”, “not quite native” app

I will clarify: the term in the title is not even very true in its essence. The applications that we get as a result are the most native in the sense that they run on the same iOS, on the same hardware as any other iOS software, it’s just that the development process itself allows you to use not only the technologies proposed by Apple and programming languages. If a person knows how to write, say, in JavaScript, and does not want to understand Swift, then Apple will not help him in any way (except, of course, a good textbook on Swift), but here is the option to write, relatively speaking, an application in JavaScript, and then run it on iOS, as if it were written in Xcode (having thus received a certain “hybrid” version) exists, and is quite in demand.


Ionic is one of the most famous cross-platform development frameworks. It is built on Apache Cordova, which provides access to various device features such as geolocation, push notifications, camera, and more, and allows developers to create iOS and Android apps with web technologies such as HTML, CSS, and JavaScript.

In addition to the framework, Ionic boasts an entire ecosystem that makes it easy for novice developers to learn and get started. Ionic Cloud provides developers with a variety of tools to manage, deploy and scale applications on Ionic. Ionic Creator is a visual editor that allows developers to quickly prototype and create mobile apps using drag&drop. Finally, there is Ionic View, a free app for iOS and Android that allows developers to easily share their Ionic app with users, testers, and customers without having to deploy the app to the specific mobile platform’s app store. Developers simply send users an invitation from the Ionic View app, and once it’s accepted, the user can download and run the specific app in their copy of Ionic View, just as if the app was installed on their phone from the app store.

Alas, there is also a fly in the ointment. Applications written using Ionic use WebView, and as a result we get the most natural web application, with its usual (usually not the most impressive) performance. Due to this, it is difficult to consider it suitable for creating heavy applications such as games or graphics-intensive programs. Developing with Ionic requires good knowledge of Angular, at least if you want to squeeze as much out of the framework as possible.


PhoneGap was originally created by Nitobi. In 2011, Adobe acquires Nitobi and the PhoneGap brand. Adobe then donates one version of PhoneGap (calling it Cordova) to the Apache Foundation, retaining the PhoneGap brand and product. As a result, Cordova can be seen as the engine behind PhoneGap (as well as some other hybrid frameworks). PhoneGap, in turn, adds its own additional features to the capabilities of Cordova.

PhoneGap is very similar to Ionic in many ways. It also allows developers to create cross-platform applications using web technologies, and is also built on top of Apache Codova. However, PhoneGap is not tied to any specific Javascript framework, so developers have more choice on what and how they will build their applications. PhoneGap has a desktop app, a mobile app, and a cloud service called PhoneGap Build that allows you to build and deploy the app.

Alas, like Ionic, PhoneGap uses WebView (which is quite slow on iOS), so applications built on this framework don’t always do well in terms of speed.


Founded in 2011, Xamarin, which produces the Xamarin family of products, was bought by Microsoft after five years of its existence. Today, Xamarin products present on the market a very interesting approach to developing cross-platform mobile applications: applications are written in C #, then Xamarin compiles it into a native application for iOS or Android, while Xamarin uses Mono as the underlying technology, rather than cross-platform and provided.

The Xamarin developers say that the resulting applications use the native API of the platform for which the application is compiled, so that the behavior of the resulting application is no different from that of any other application on the same platform. Development, by the way, can be done using Visual Studio (which is not surprising at all).

Despite the fact that most of the project code can be used without changes on each of the supported mobile platforms, nevertheless, some fragments will need to be written specifically for the iOS and Android versions of the application.

React Native

The React Native project was born on Facebook and is built on top of React. Our JS application runs on the engine built into iOS: it runs the code and performs all manipulations with native OS widgets. React Native is comparable to Xamarin, and apps built with React Native are very similar to native iOS and Android apps (because they actually operate on native UI elements).

The syntax of React is quite simple, which makes it easy to learn the framework, and the Standard UI Component Library in the React Native distribution contains many useful components, but the biggest difference between React Native and other JavaScript frameworks is the ability to use code in Objective-C and Swift (more often for to improve performance or finer interaction with the mobile platform). In practice, this means developers can use existing native libraries in their React Native apps.