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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 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,26 @@ 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://developer.android.com/kotlin) for [Android](https://developer.android.com/).

To give users the expected experience on their respective platform, we prefer to use the native languages over frameworks such as Flutter or .NET MAUI.

### Swift

The default Swift version is generally tied to the version of Xcode you're using, i.e Xcode 16 defaults to Swift 6.
The version of Swift used will generally be the most recent one when work on the project begins.

The iOS target should also be considered - for government apps, a range of n - 5 or n - 3 is generally a good starting point (n being the latest major release of iOS)
This 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.

### Kotlin

// TODO: Fill in specific Kotlin/Android Studio versions/ OS targets?

## Using other languages

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