Flutter - cross-platform framework for Android and iOS

Flutter is a cross-platform framework developed by Google for building natively compiled apps for Android and iOS from a single codebase. Rather than having to develop one app in the Java or Kotlin programming languages using the Android Studio IDE for the Android app and having to code another app in the Swift or Objective-C programming languages in the Xcode IDE for the iOS app, we can instead code one app using the Dart programming language and the Flutter framework which will generate two native apps, one for Android and one for iOS.
An integrated development environment (IDE) is software for building applications that combines common developer tools into a single graphical user interface (GUI).

Dart is a client-optimized programming language for developing fast apps on any platform. Its goal is to offer the most productive programming language for multi-platform development, paired with a flexible execution runtime platform for app frameworks. The Dart language is type safe; it uses static type checking to ensure that a variable’s value always matches the variable’s static type. Sometimes, this is referred to as sound typing. Although types are mandatory, type annotations are optional because of type inference. The Dart typing system is also flexible, allowing the use of a dynamic type combined with runtime checks, which can be useful during experimentation or for code that needs to be especially dynamic.

The goal of Flutter is to enable app developers such as New Media Aid to deliver high-performance bespoke mobile apps that feel natural on different platforms while sharing as much code as possible. The framework is open source, with a permissive BSD license, and has a thriving ecosystem of third-party packages that supplement the core library functionality.

To the underlying operating system (e.g. Android or iOS), Flutter applications are packaged in the same way as any other native application. A platform-specific embedder provides an entry point; coordinates with the underlying operating system for access to services like rendering surfaces, accessibility, and input; and manages the message event loop. The embedder is written in a language that is appropriate for the platform: currently Java and C++ for Android and Objective-C/Objective-C++ for iOS and macOS.

Our bespoke app developers, who have been software engineers for decades, interact with Flutter through the Flutter framework, which provides a modern, reactive framework written in the Dart language. It includes a rich set of platform, layout, and foundational libraries, composed of a series of layers.

New Media Aid’s bespoke app development team have been developing Android apps for over a decade and our Android knowledge and skill set are highly valuable when building with Flutter as Flutter relies on the Android operating system for numerous capabilities and configurations. Flutter is a new way to build UIs for mobile, but it has a plugin system to communicate with Android (and iOS) for non-UI tasks.