はじめに
こんにちは。 IT エンジニア部の川口です。
【FY2021 2Q】スマホアプリ開発の技術調査報告 - エムティーアイ エンジニアリングブログ の FY2021 3Q 版です。
スマホアプリ開発の技術について、弊社にカルチャーフィットするかどうかを 再 検討したので紹介します。
注意
- 2021/07/16 時点での情報を元に考えた
- FY2021 2Q からの変更点のみ 太字 で記載している
- その他の注意は FY2021 2Q と同様である
技術戦略表
FY2021 2Q と同様、スマホアプリ開発で使う技術を 4 つの分類に分けました。
凡例は FY2021 2Q と同様です。
iOS
開発言語
Stable | Experimental | Neutral | Deprecated |
---|---|---|---|
Swift (5.3 以上) | Swift (5.4 以上) | - | Objective-C Swift (5.3 未満) |
- Swift
- 5.4 がリリースされたが、GitHub Actions や Azure Pipelines などの CI サービスでまだ Xcode 12.5 を利用できないため、しばらくは 5.3 系を使い続けるのがいい
UI フレームワーク
Stable | Experimental | Neutral | Deprecated |
---|---|---|---|
UIKit | SwiftUI | - | - |
- FY2021 2Q から変更なし
Android
開発言語
Stable | Experimental | Neutral | Deprecated |
---|---|---|---|
Kotlin (1.5.0 以上) | - | - | Java Kotlin (1.5.0 未満) |
- Kotlin
- 1.5 系がリリースされたので、特別な事情がない限りは 1.5 系の最新バージョン(2021/07/16 現在は 1.5.20)を使うべき
UI フレームワーク
Stable | Experimental | Neutral | Deprecated |
---|---|---|---|
XML | Jetpack Compose | - | - |
- Jetpack Compose
- RC がリリースされた
クロスプラットフォーム
Stable | Experimental | Neutral | Deprecated |
---|---|---|---|
Xamarin.Forms (5.0 以上) C# (.NET Standard 2.1 以上) |
MAUI Uno Platform |
Xamarin Native | Xamarin.Forms (5.0 未満) C# (.NET Standard 2.1 未満) |
- | - | Flutter | - |
- | - | React Native | - |
- | - | KMM | - |
- Xamarin.Forms
- Native Binding
- ネイティブの機能を Xamarin で使えるようにした C# ラッパー
- https://github.com/xamarin/XamarinComponents
- Xamarin コミュニティがメンテナンスしているバインディングライブラリのポータルリポジトリ
- ライブラリのバージョンが上がったら Xamarin コミュニティがバインディングライブラリを更新する流れだが、更新速度が遅いときがある
- Native Binding
技術選定
基本的には FY2021 2Q から変更ありません。
Xamarin.Forms は Stable に含めていますが、バインディングライブラリの更新速度が遅いのが大きな課題です。
今後も更新速度が上がるとは考えにくいため、ネイティブや他のクロスプラットフォームを優先するか検討する段階に来ていると考えます。
おわりに
スマホアプリ開発における技術戦略の紹介でした。
少しでも参考になれば幸いです。
逆に適切でない箇所などがありましたら、何らかの形でご指摘いただけると嬉しいです。
採用情報
現在弊社が募集している職種の一覧です。
興味がありましたらぜひご応募ください。
スマホアプリ開発のリーダーやプロジェクトマネージャーの方、ぜひ一緒にお仕事しましょう!