だから私はウェブアプリケーション開発とモバイルアプリ開発の両方を学びたいと思っています.2つの間に重複があるのではないかと思っていました. もっと具体的に言えば、Web アプリの開発に関する知識は、モバイル アプリを構築する際に不可欠ですか、それとも役に立ちますか? インターネットを使用するモバイル アプリを開発する前に、まず基本的な Web アプリ開発 (少なくともサーバー サイド プログラミング) を知る必要があるという印象を受けました (モバイル アプリは、最終的には別のクライアント サイドであると想定していたため)。どこかのサーバー上の Web アプリケーションと通信するため)。ただし、Google で検索すると、モバイル Web アプリとネイティブ モバイル アプリについての議論が持ち上がり、混乱しています (たとえば、Shazaam はネイティブ アプリですか、それとも Web アプリですか?)。理解を助けてください。
8 に答える
ネイティブ アプリは、モバイル上で実行されるアプリです。Web アプリは、モバイル アプリ内で webPage を開き、従来の Web ブラウザーのように動作するアプリです。
モバイル開発を行うために Web 開発者を知る必要はありませんが、それは役に立ちます。プログラミングはすべてのプラットフォームで同じです。変更するたびに新しい言語を知る必要がありますが、原則は同じです。
モバイルアプリケーションの開発には、Webアプリケーションの開発に関する知識は必要ありません。しかし、それはあなたに大いに役立ちます。HTML5、CSS、JavaScriptを使用してモバイルアプリを作成することもできます。
Web アプリとは、ネイティブ アプリ開発 (obj c、c++、java) とは異なるテクノロジ/言語 (php/perl/.net/xhtml/ccs など) を使用する Web サイトです (常にモバイル デバイスを対象とするわけではありません)。 .
はい、両方の知識があると便利ですが、私があなただったら、サーバー/バックエンド/Web アプリ/Web サイト構築またはモバイル開発のいずれか 1 つのパス (一度に 1 つのこと) に集中します。モバイルアプリ開発に移る前は、Web ソフトウェア開発環境で 10 年以上働いていました。現在、私は Web コーディングを行っておらず、既存の Web サービスを使用するか、Web サービス側の作業を行っている他の人と協力しています。
また、作成するアプリの種類によっても異なります。モバイル デバイス用のゲームを作成する場合は、Web に関することを学ぶ必要はありません。リーダーボードなどには Apple の Game Center を使用してください。
Web サービスと通信するモバイル アプリを作成したい場合でも、最初に既存の Web サービスを使用するアプリをいくつか作成することをお勧めします。そうすれば、一度に複数のプログラミング言語を学ばなくても機能するものを構築することに集中できます。独自のアプリを作成するために使用できる Web サービスを備えた Web サイトはたくさんあります。
Web テクノロジ (phoneGap、titanium など) を使用してアプリを作成するオプションはありますが、個人的には避けたいと思います。
場合によります。
Web コンポーネントをまったく必要としないモバイル アプリを開発できます。
Web 開発をモバイル アプリにとって非常に便利なものにする大きな問題が少なくとも 2 つあります。
Web テクノロジーに基づいて非ネイティブ モバイル アプリを開発できます。jQuery モバイルまたは GWT (またはその他のフレームワーク) を使用すると、アプリのプラットフォーム非依存性がサポートされます。バックドローは、このアプリケーションがモバイル デバイス (カメラなど) のすべての機能を使用できないことであり、一般にパフォーマンスとバッテリー/電力効率が低下します。
クラウド技術をモバイルと組み合わせて使用することは非常に自然なことだと思います。Web を使用して、データを保存および共有できます。これにより、モバイルとデスクトップで駆動されるアプリケーションを構築できます (データ入力に関しては、デスクトップの方がはるかに効率的です)。
Webテクノロジーも検討することをお勧めします。
遅かれ早かれ、モバイル アプリケーションは何か役に立つことを行うためにサーバーと通信する必要があります。電話は (相対的に言えば) シン クライアントです。そうです、通常、サーバー側の言語 (PHP や RoR など) を使用して、モバイル アプリケーションと通信し、役立つ API を構築します。
たとえば、Shazaam (ネイティブ アプリケーション) を購入した場合: Shazaam は、数秒間の音楽を使用して録音し、Web サービスにアップロードします。Web サービスは、録音した音楽をサンプリングし、(私が想像するもの)その音楽の「署名」用の音楽の巨大なDBと、識別された曲を電話に送り返して、ユーザーに提示できるようにします。途中のどこかに、これを行うサーバー側コードがあります。
モバイルアプリの開発が始まったばかりの頃 (2008-09 年) に私が働いていた企業では、Android/Blackberry 用の Java や iOS 用の Objective-C しかコーディングしていない人がいて、モバイルで何が起こっているかを知りませんでした。バックエンド。そのために、彼らはネイティブ コードが対話する API を構築するために JSP や Python を書いたサーバー サイドの担当者に話を聞きました。
独自のサーバーを取得したり、サーバー側のコードを書いたりする心配をせずに、モバイル アプリケーションの "バックエンド" を構築できるサービスParseがあります。特定のクラスのアプリケーションに役立ちます。
すべてが理にかなっていることを願っています。Web 開発 (サーバー側など) とモバイル開発 (モバイルのネイティブ コード) の間には重複があります。両方を学び、必要に応じてどちらかを専門とします。
Web/エンタープライズ アプリケーション開発の予備知識がなくても、モバイル アプリ開発の学習を開始できます。
しかし、その知識があれば、間違いなくあなたの仕事は楽になります。の基本を知っている必要がありますRESTServices
(これは主にモバイルアプリからサーバーと対話する方法であるため)、どのようHTTP POST, GET, DELETE
に機能するかなどを知る必要があります。また、(基本的にはモバイルアプリのDBです)の使用を経験しMySQL
たりSQL
、使用したりするのに役立ちます。SQLite
また、ORMs
などの知識がある場合は、デバイスにキャッシュする大規模なモデルと大規模なデータ構造があり、 (たとえば Android で)Hibernate
使用できるようになる場合に、モバイル アプリでも役立つ可能性があります。ORMLite
)。
プログラミング標準/デザイン パターン/Java/Objective-C に関するその他の経験は、作業を容易にし、開発した製品の信頼性と安定性を高めます。
幸運を。
さて、Webアプリケーションの基本的な知識は非常に役立ちます。結局のところ、あなたが言ったように、モバイルアプリは単なる別のタイプのクライアントです。Webコミュニケーションの原則を知ることは不可欠です。アプリケーションのサーバー側はまったく同じです。クライアント側に関する限り、JavaからAndroidへのコードの転送は非常に簡単です...!
モバイルアプリをどのように構築したいか次第だと思います。アプリがローカルで何かを実行できる場合、Web プログラミングを知る必要はありません。しかし、アプリがサーバーと通信したい場合、または Web 要素 (HTML5 や JavaScript のレンダリングなど) を使用したい場合は、Web プログラミングを知っておく必要があります。ネイティブ アプリと Web アプリのどちらでも実行できますが、長所と短所は異なります。また、html と js を使用してモバイル アプリを開発し、それを Titan などのネイティブ コードに変換するのに役立つプラットフォームもあります。
私見、モバイルアプリの処理は、可能であればサーバー上で行う必要があります。そうすれば、アプリはより多くのことを実行でき、より効率的になります。したがって、Web アプリ開発を知っていることは大きなプラスになります。