【FY2021 3Q】スマホアプリ開発の技術調査報告

はじめに

こんにちは。 IT エンジニア部の川口です。
【FY2021 2Q】スマホアプリ開発の技術調査報告 - エムティーアイ エンジニアリングブログ の FY2021 3Q 版です。

スマホアプリ開発の技術について、弊社にカルチャーフィットするかどうかを 検討したので紹介します。

注意

  • 2021/07/16 時点での情報を元に考えた
  • FY2021 2Q からの変更点のみ 太字 で記載している
  • その他の注意は FY2021 2Q と同様である

技術戦略表

FY2021 2Q と同様、スマホアプリ開発で使う技術を 4 つの分類に分けました。

f:id:mti-techblog-writer:20210716160506p:plain

凡例は 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 コミュニティがバインディングライブラリを更新する流れだが、更新速度が遅いときがある

技術選定

基本的には FY2021 2Q から変更ありません。

Xamarin.Forms は Stable に含めていますが、バインディングライブラリの更新速度が遅いのが大きな課題です。
今後も更新速度が上がるとは考えにくいため、ネイティブや他のクロスプラットフォームを優先するか検討する段階に来ていると考えます。

おわりに

スマホアプリ開発における技術戦略の紹介でした。

少しでも参考になれば幸いです。
逆に適切でない箇所などがありましたら、何らかの形でご指摘いただけると嬉しいです。

採用情報

現在弊社が募集している職種の一覧です。

js01.jposting.net

興味がありましたらぜひご応募ください。
スマホアプリ開発のリーダーやプロジェクトマネージャーの方、ぜひ一緒にお仕事しましょう!