本記事は エムティーアイ Advent Calendar 2021 の 25 日目の記事です。
昨日は @mmbtsAO さんで Azure AD B2C 構築のつまずきポイント でした。
はじめに
こんにちは。 IT エンジニア部の川口です。
スマホアプリ開発の技術について、弊社にカルチャーフィットするかどうかを 再 検討したので紹介します。
今までの記事はこちらです。
- 【FY2021 2Q】スマホアプリ開発の技術調査報告 - エムティーアイ エンジニアリングブログ
- 【FY2021 3Q】スマホアプリ開発の技術調査報告 - エムティーアイ エンジニアリングブログ
- 【FY2021 4Q】スマホアプリ開発の技術調査報告 - エムティーアイ エンジニアリングブログ
注意
- 2021/12/24 時点での情報を元に考えた
- FY2021 4Q からの変更点のみ 太字 で記載している
- その他の注意は FY2021 2Q と同様である
技術戦略表
今までと同様、スマホアプリ開発で使う技術を 4 つの分類に分けました。
凡例は FY2021 2Q と同様です。
iOS
開発言語
Stable | Experimental | Neutral | Deprecated |
---|---|---|---|
Swift (5.5 以上) | Swift (5.5.2 以上) | - | Objective-C Swift (5.5 未満) |
- Swift
- Xcode 13.2(Swift 5.5.2)で Swift Concurrency が iOS 13.0 以上にバックデプロイされた *1 ので、積極的に使ってもいいと考える
- ただ Swift Concurrency は学習コストが高く、まだ発展途上なので、プロジェクト毎に採用時期などを検討すべき
- Xcode 13.2(Swift 5.5.2)で Swift Concurrency が iOS 13.0 以上にバックデプロイされた *1 ので、積極的に使ってもいいと考える
UI フレームワーク
Stable | Experimental | Neutral | Deprecated |
---|---|---|---|
UIKit SwiftUI |
- | - | - |
- FY2021 4Q から変更なし
Android
開発言語
Stable | Experimental | Neutral | Deprecated |
---|---|---|---|
Kotlin (1.5.0 以上) | Kotlin (1.6.0 以上) | - | Java Kotlin (1.5.0 未満) |
- Kotlin
UI フレームワーク
Stable | Experimental | Neutral | Deprecated |
---|---|---|---|
XML Jetpack Compose (1.0.0 以上) |
- | - | - |
- Jetpack Composeのバージョンについて、1.0.0以上を使うよう明記した
クロスプラットフォーム
Stable | Experimental | Neutral | Deprecated |
---|---|---|---|
Xamarin.Forms (5.0 以上) .NET Standard (2.1 以上) C# (8.0 以上) |
Xamarin.Forms .NET (5.0 以上) C# (9.0 以上) MAUI .NET (6.0 以上) C# (10.0 以上) |
Xamarin Native Uno Platform |
Xamarin.Forms (5.0 未満) .NET Standard (2.1 未満) C# (8.0 未満) |
- | - | Flutter | - |
- | - | React Native | - |
- | - | KMM | - |
- MAUI
- Xamarin.Forms
- 最後の最新リリースから 2 年間サポートされる *6
- 少なくとも 2023/11 までは問題なく使える
- それまでに .NET 6 + MAUI に移行する必要がある
- C# の規定のバージョン *7 について、.NET Standard 2.1 が C# 8.0、.NET 6 が C# 10 なので、それ以上を使うよう明記した
- .NET Standard は C# 9.0 以上に対応していなく、使うには .NET 5 または .NET 6 を導入する必要がある *8
- ただ Visual Studio App Center が .NET 5 や 6 に対応していない *9 ので、積極的には使いづらい
- 最後の最新リリースから 2 年間サポートされる *6
技術選定
Swift Concurrency が iOS 13 以降にバックデプロイされたため、検討した上で業務でも導入したいです。
Xamarin.Forms はサポート終了と MAUI の正式リリースが見えてきたので、移行の計画を本格的に考える必要があります。
おわりに
スマホアプリ開発における技術戦略の紹介でした。
少しでも参考になれば幸いです。
逆に適切でない箇所などがありましたら、何らかの形でご指摘いただけると嬉しいです。
以上 エムティーアイ Advent Calendar 2021 の 25 日目の記事でした。
Advent Calendar 2021 完走!
Merry Christmas 🎄✨
本記事でエムティーアイ Advent Calendar 2021 は終了です。
5 年振りに開催したのですが、全枠埋まって完走できたので非常に嬉しいです。
Advent Calendar の作成を許可してくれた弊社、業務で忙しい中執筆してくれた同僚、そして読んでくださったみなさま、本当にありがとうございました。
おかげで楽しい 25 日間となりました。
エモい記事や技術に特化した記事など様々であり、一読者としても楽しかったです。
詳細な感想や振り返りは別記事で書きたいと思っています。
ではみなさま、よいクリスマスを!🎂
採用情報
現在弊社が募集している職種の一覧です。
興味がありましたらぜひご応募ください。
一緒に働けることを楽しみにしています!
*1:https://developer.apple.com/documentation/xcode-release-notes/xcode-13_2-release-notes
*2:https://blog.jetbrains.com/kotlin/2021/11/kotlin-1-6-0-is-released/
*3:https://developer.android.com/jetpack/androidx/releases/compose-kotlin
*4:https://devblogs.microsoft.com/dotnet/announcing-net-6/
*5:https://devblogs.microsoft.com/dotnet/welcome-to-csharp-10/
*6:https://devblogs.microsoft.com/xamarin/whats-new-in-xamarin-and-visual-studio-2022/#xamarin-support-for-2-years
*7:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version#defaults
*8:https://docs.microsoft.com/en-us/dotnet/standard/net-standard#when-to-target-net50-or-net60-vs-netstandard