Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: adds mobile programming languages #946

Merged
merged 9 commits into from
Jan 16, 2025
27 changes: 27 additions & 0 deletions source/standards/programming-languages.html.md.erb
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,33 @@ We used Scala in the early days of GDS. GOV.UK Licensing is the only remaining
application written in Scala but we've found it hard to support because of a lack
of skills in GDS. Do not use Scala for new projects.

## Mobile Development

For developing mobile apps, we use:
- [Swift](https://www.swift.org/) for [iOS](https://developer.apple.com/)
- [Kotlin](https://kotlinlang.org/) for [Android](https://developer.android.com/).

To give users the expected experience on their respective platform, we prefer to use the native languages over cross-platform solutions.

### Swift

When starting a new app project, you'll likely want to use the most recent version of Swift which will be installed with Xcode.

The targetted version of iOS should be discussed during planning and investigation as certain iOS features may not be available in earlier versions which could be crucial to your app's behaviour.
For example, a good starting point for government apps would be a range of n - 5 or n - 3 (n being the latest major release of iOS).
mcgarj marked this conversation as resolved.
Show resolved Hide resolved

It is important that your app remains as accessible to as many devices and users as possible, especially those who cannot access the latest devices with the most recent OS, without compromising security.

### Kotlin

Prefer to develop Android apps using the latest stable version of Kotlin.

The targetted version of Android should be discussed during planning and investigation as certain OS features may not be available in earlier versions which could be crucial to your app's behaviour.
It is important that your app remains as accessible to as many devices and users as possible, especially those who cannot access the latest devices with the most recent OS, without compromising security.
This is particularly important on Android with the range of devices available.

Android specify a [minimum version](https://developer.android.com/google/play/requirements/target-sdk) which must be supported in order for the app to be published to the Google Play Store.
mcgarj marked this conversation as resolved.
Show resolved Hide resolved

## Using other languages

There will be sensible reasons to not follow the above guidance on languages.
Expand Down