1
Help us understand the problem. What are the problem?

posted at

updated at

iOS開発者に教えたいAndroidの複数バージョンサポート開発手法

iOS側の問題

複数バージョンをサポートしているアプリにおいて、
最新機能を実装する場合、以下の問題が常々発生します。

  • APIの仕様が新バージョンでは異なる
  • 旧バージョンのデバイスでは、最新バージョンの機能を呼び出せない

従ってiOS開発では、バージョン毎にコード分けをする必要が度々発生します。

if #available(iOS 15, *) {
    print("このコードはiOSバージョンが15以降のデバイスのみ動作する")
} 

Androidにおける複数バージョン対応方法

Androidでは、大きく2つのライブラリーに別れます。

  • 標準SDK - Android OSにアクセスするためのライブラリー
  • Jetpack - 外部ライブラリーとして用意

実は現在主要な機能は、Android OS側ではなく、Jetpack(外部ライブラリー) として配布されています。

つまり最新機能は、アプリ側に組み込んで開発する といったことが可能になります。

この主要な機能には、Androidの根幹を成す ActivityFragment だけでなく、以下のような最新のUIコンポーネントが用意されています。

  • Navigation - UINavigationControllerに相当
  • Toolbar - マテリアル対応されたツールバー
  • RecyclerView - UICollectionViewに相当
  • ViewPager2 - UIPageViewController

さらに、iOSのCoreDataに相当するライブラリーも外部ライブラリー(room)として用意されています。

そしてこの Jetpack の大きな特徴の一つとして、低いバージョンでも動作するといった 下位互換性 があります。
(これは前身のSupportライブラリーがその役割であったため)

従ってAndroidでは、アプリが対応する全てのバージョンにおいて、最新機能を提供できるということが可能になっています。

外部ライブラリーは、開発中にも常に更新されるため、不具合などは、OSのアップデートを待たなくても良いというメリットもあります。

まとめ

Androidにおける複数バージョン対応方法

  • 最新機能は外部ライブラリーとして用意
  • 下位互換性を持っている
  • 不具合はOSのアップデートを待つ必要なく、外部ライブラリーのバージョンを上げることで可能
  • アプリの容量が大きくなる

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
1
Help us understand the problem. What are the problem?