クロスプラットフォームとネイティブモバイルアプリ

Jacob Muchow )(2020年10月15日)

Design by

はじめに

クロスプラットフォームアプリは、テクノロジー業界の多くのスタートアップにとって市場に出回るソリューションになっています。彼らは、iOSデバイスとAndroidデバイスの両方にデプロイする1つのコードベースを簡単に記述できることを約束します。ただし、多くの企業は、潜在的な利点にもかかわらず、従来のルートを使用してネイティブに開発することを選択しています。

どちらのソリューションも有効です。物事を行うための単一の「正しい」方法はありません(少なくともまだです! )。チームの正しい道を選択することは、目標と制約に依存します。テクノロジーの選択は、個人的な信念よりも、そこから来る必要があります。この投稿では、2つのオプションを比較して、会社にとって最善の決定を下すのに役立てます。

クロスプラットフォーム

現在、クロスプラットフォーム開発にはいくつかの競合するオプションがあります。 :React Native、Flutter、Xamarin、Ionicを主流のものに挙げてください。この投稿では、それぞれについて説明することを避け、クロスプラットフォーム開発全体の長所と短所について説明します。

これらの各プラットフォームを使用すると、チームは1つのアプリのコードを記述できます。 GooglePlayストアとAppStoreの両方にデプロイできます。これを効果的に行うと、コスト削減の可能性は明らかに大きくなります。

クロスプラットフォームの長所

  • 両方のモバイル市場にはるかに少ない予算で提供することが可能です2つで2つの別々のネイティブアプリを開発するよりも。コードの約60〜70%を共有でき、残りはどちらのプラットフォームにも合わせてカスタマイズできます。
  • 単一のモバイル開発チームを編成して、組織を簡素化できます。これは、AndroidアプリとiOSアプリに、他の方法では実現が難しいまとまりをもたらすのにも役立ちます。
  • 選択したテクノロジーによっては、言語と開発スタイルに精通している開発者が社内にいる場合があります。 (JavaScript、C#/。NET、Dart)。ゼロから採用を開始しなくてもチームを構築できる場合があります。
  • 「機能リーダー」ではなく、iOSユーザーとAndroidユーザーに同時に新しい機能が導入されます。

クロスプラットフォームの欠点

  • ネイティブに比べて、このテクノロジーの経験がある開発者を雇うのははるかに困難です。
  • そうする場合障害にぶつかると、問題を解決するのに非常に熟練したエンジニアが必要になることがよくあります。
  • iOSまたはAndroid固有の機能(Health Kit / Apple Watchなど)を使用するのは非常に難しいか、不可能です。
  • 複雑なUI / UXの開発にはネイティブよりもはるかに時間がかかります。すぐに使用できるコンポーネントがない場合は、両方のプラットフォーム用にカスタムコンポーネントを作成する必要があり、時間がかかります。
  • クロスプラットフォームはネイティブほど効率的ではないことが多く、場合によっては本当に解決できないいくつかのジャンク。これは、アプリケーションが複雑になるほど影響が大きくなります。
  • テクノロジーのエコシステムは、ネイティブよりも成熟度が低くなっています。これは、チームが利用するツールが少なくなり、問題が発生したときに利用できるヘルプが少なくなることを意味します。
  • アプリは、iOSまたはAndroidアプリのように「感じ」ません。ユーザーにとってなじみのないエクスペリエンスを生み出し、アプリを魅力的に感じさせない可能性があります。
  • 選択したテクノロジーが消滅し、コミュニティ、クリエイター、または企業のサポートが失われるリスクがあります。

クロスプラットフォームを使用することが理にかなっている場合

  • MVPの対象としてAndroidとiOSの両方の市場をターゲットにします。
  • モバイルの限られた予算は主要なものの1つです制約。
  • モバイルアプリはビジネスの中核部分ではありません。
  • ユーザーエクスペリエンスはアプリ間で標準である必要があり、iOSやAndroidのように「感じる」ことを求めていません。アプリ。
  • アプリケーションはユーザーエクスペリエンスと機能の点で単純です。
  • デザインは両方のプラットフォームでほぼ同じです。

私たちの考え

クロスプラットフォームテクノロジーは、可能な限り幅広いユーザーに迅速に市場に参入し、アイデアを検証するための優れた方法です。アプリがプラットフォーム固有のテクノロジー、複雑なUI / UX、または複雑なビジネスロジックを必要としない場合は、クロスプラットフォームソリューションの採用を強く検討する必要があります。 MVP後、これにより製品のイテレーションに完全に集中できますが、ネイティブになると、iOSまたはAndroid用のまったく新しいチーム/アプリの構築を検討する必要がある場合があります。ネイティブは、必要に応じていつでも後で利用できます。

ネイティブ開発

「ネイティブ」開発とは、AppleとGoogle foriOSが提供するファーストパーティツールを使用してアプリケーション全体を開発する従来のスタイルを指します。とAndroid。エコシステムは進化しましたが、今日の業界標準では、Android用のKotlinプログラミング言語であるAndroid Studio &と、Xcode &を使用しています。 iOS用のSwiftプログラミング言語。

このアプローチでは、アプリごとに2つの別々のコードベースが必要です。チームは通常、エンジニアにいずれかのプラットフォームに焦点を当てさせるか、プラットフォームごとに2つの完全に別個の開発チームを配置する場合があります。

多くの場合、企業はアプリを最初にAppStoreまたはGooglePlayにリリースします。製品の反復に焦点を合わせます。他のプラットフォームでアプリを提供することが戦略の一部である場合、牽引力または成功と十分な資金が得られたら、他のプラットフォームを処理するチームの構築に投資します。

ネイティブ開発の長所

  • アプリは、iOSまたはAndroid固有のすべての機能を利用できます。
  • ユーザーエクスペリエンスは、iOSまたはAndroidユーザーが期待する程度に多かれ少なかれ調整できます。
  • カスタムの複雑なUIは、一般的に開発がはるかに簡単です。
  • 複雑なバックグラウンド処理がある場合、技術的な制限により、クロスプラットフォームよりもスムーズに実行されます。
  • ネイティブアプリは、クロスプラットフォームアプリでは現在対応できない方法で「気分が良く」なります。
  • 次のチームは、最初のチームにすぐに追いつくことができるはずです。最初のチームが行ったのと同じ過ちや学習を経験する必要はありません。
  • 求人市場に関しては、ネイティブiOSまたはAndroid開発で経験を積んだ開発者がさらに多くいます。採用ははるかに簡単になります。
  • ツールとコミュニティサポートは、モバイルアプリの開始以来開発されており、はるかに堅牢で成熟しています。
  • 想像できるとしたら、多くの場合、99%の確率で実行できます。

ネイティブ開発の欠点

  • iOSとAndroidの両方のネイティブアプリに資金を提供するには非常に費用がかかる可能性があります。
  • 両方に提供するには、基本的に2チーム分の開発者が必要です。
  • 次のプラットフォームは、機能の点で遅れていることが多く、同等性を実現するのが難しい場合があります。
  • iOSとAndroidのアプリやチーム間の結束を実現することは困難です。

ネイティブになることが理にかなっている場合

  • 気になります微調整された高品質または印象的なユーザーエクスペリエンスについて深く掘り下げます。
  • プラットフォーム機能(Health Kit / Apple Watchの統合など)を活用したいと考えています。
  • ビデオやライブストリーミングなど、計算量の多い機能を念頭に置いています。
  • こんにちは。最初は可能な限り幅広いユーザーに配信することが非常に重要です。
  • どちらかのプラットフォームを使用する傾向がある特定の人口統計をターゲットにしています。
  • デザインがネイティブコンポーネントを多用している場合

私たちの考え

ユーザーにとって最も自然で満足のいく非常に高品質のアプリを提供したい場合、または統合する必要がある場合どちらのプラットフォームのネイティブAPIおよび機能とも緊密に連携している場合は、ネイティブが最適です。将来これを予想している場合でも、ネイティブにすることを検討する必要があります。すべてが順調に進むと、2つのネイティブアプリの開発にかかる費用ははるかに高くなります。作成できる機能の点で障害にぶつかった場合、多くの場合、それらはネイティブで解決できますが、クロスプラットフォームでは髪の毛が裂ける可能性があります。

結論

At QuarkWorksは、App Storeの設立以来、さまざまなクロスプラットフォームテクノロジーでの開発経験と、ネイティブ開発の幅広いバックグラウンドを持っています。

「真の方法」はありません。モバイルアプリの開発。軽量のプロトタイプとMVPを開発する場合、可能な場合はクロスプラットフォームを使用して、アイデアを幅広い対象者にすばやく提供するというコンセプトが気に入っています。ただし、完璧なものを作成し、その最高品質のユーザーエクスペリエンスを実際に提供したい場合は、ネイティブ開発を使用することを好みます。

「心地よい」アプリに感謝し、方法はありません。現在のクロスプラットフォームテクノロジーとまったく同じ感覚を再現します。 Flutterのような、モバイル向けの単一のコードベースを提供するだけでなく、モバイルとウェブ間でコードを共有できるようにすることを目的とした新しいソリューションのいくつかに興奮しています。ネイティブアプリと同じくらい効率的でありながら、これらすべてを実行します。完璧ではありませんが、業界がいつか達成できる比喩的な聖杯であることがわかります。

現在、これらのテクノロジーの多くはそれを約束していますが、本当にイライラする可能性のある方法では不十分です。

これまでどおり、QuarkWorksは、あらゆるソフトウェアアプリケーションプロジェクト(Web、モバイルなど!当社のサービスに興味がある場合は、ウェブサイトをご覧ください。ご不明な点がございましたら、お気軽にお問い合わせください。 Twitter Facebook 、 LinkedIn 、またはインスタグラム

QuarkWorks -ホーム

クリーンで十分に文書化され、テストされたコードは、成功するすべてのプロジェクトの基盤です。 私たちはあなたの中で緊密に協力しています…

quarkworks.co