質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

iOSアプリケーション / iphone の開発手法について検討中です

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 415

necodow

score 9

サードパーティ製のSDKを複数使うアプリケーションを検討中です。
全てのSDKの開発環境の条件を満たす言語が、Objective-Cでした。
iPhoneアプリとしての開発になると考えられます。

困ったことに、開発メンバーにObjective-C経験者は0人です。
ただ、学習期間は1週間程度(もう少し確保できるかも)準備できそうです。

.Netでの開発経験はあることから、開発環境としてXCodeよりはVisualStudioのXamarinの方が
とっつき易いのではないかと考えていますが、情報を整理しきれず質問させて頂きました。

◆知りたいこと
・Xamarinで開発中の方、開発効率など使い心地を教えてください。どんなことでも参考になりますので。
・プロジェクト作成時にiOSアプリ、iOS XAMLアプリとありますが、どちらで作成してもiphoneで利用できるのですよね?
違いは何でしょう?

以上です。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+3

私はXamarinでAndroid/iOSの開発を行っています。
ネイティブでの開発経験は基本的にありません。

情報が少ないですが、結論だけ言うと素直にネイティブ実装した方が良いと思います。

以下、私の感想なので他の人の意見も聞いてください。
1つの意見だと思って軽く読んでください。

サードパーティ製のSDK
このSDKがネイティブのライブラリのことであれば、
素直にネイティブ実装(Objective-C)の方が良いと思います。
Xamarinでネイティブライブラリを使う為にはバインディングライブラリの実装が必要でここは沼です。
必ず動く保証もありません。

.Netでの開発経験
.Netでの開発経験というのは具体的に何でしょうか。
C#使えるのでXamarinも使えるだろうというのは甘い考えです。
Xamarinは銀の弾丸ではありません。
アプリ要件にもよりますが、ネイティブ開発の知識はある程度必要です。

Xamarinで開発中の方、開発効率など使い心地を教えてください。
Xamarinは良いものですが、銀の弾丸ではありません。
Xamarinが向いているかどうかは、アプリ要件次第です。

ゲーム、ネイティブライブラリが必要な場合、プラットフォーム固有機能を多く使う場合には不向きだと思います。

iOSアプリ、iOS XAMLアプリとありますが、どちらで作成してもiphoneで利用できるのですよね?
まず、どちらでもiPhoneで利用できます。
iOSアプリというのは、Xamarin.iOSでの実装
iOS XAMLアプリというのは、Xamarin.Formsでの実装となります。
Xamarinと一言でいっても、両者は全くの別物です。
前者はネイティブのラッパーです。
言語こそC#ですが、完全にネイティブの知識が必要です。
後者はマルチプラットフォーム用のもので、UIをAndroidやiOSで共通化する為のものです。
XamlというXMLで画面を構築して、AndroidやiOSでUIを共通化します。

Xamarin.Formsの方がよいように感じると思いますが、
Xamarin.FormsはAndroid,iOS,Winのすべてのプラットフォームで共通化できる部品しかありません。
プラットフォーム固有のViewや機能は提供されていませんので、ここが苦労するポイントです。
固有機能を使いたい場合は、Xamarin.iOSでの実装が追加で必要になります。
ただ、Xamarin.Essentialsなどのライブラリを使えればXamarin.Forms側で吸収可能です。

ここでXamarinについては語り切れません。
Xamarinの勉強会(JXUG)に行くことをお勧めします。

補足
Xamarinの話はググればQiitaでもはてぶでも結構まとめている人がいます。
QiitaのAdvent Calendarなどに有益な情報があると思いますのでそちらをよく見てください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/08 09:10

    ネイティブ開発の知識も必要と認識しております。
     Xamarinでネイティブライブラリを使う為のバインディングライブラリの実装を挙げて
    頂きましたが、それ以外にもハマる可能性はありますね。。
    .NETを噛ませて開発すれば、とっつきにくさが半減するかな?と淡い期待を抱いておりました。
    プラットフォーム固有の機能はそれほど使わない想定ですが、現在のこちらの状況を考慮すると、
    Xamarinを使うことのデメリットがメリットを上回りそうです。

    また、Xamarin.iOS、Xamarin.Formsについての丁寧なご解説、ありがとうございました。
    スッキリしました。
    今回は素直にObjective-Cで開発していこうと思い始めています。
    ただ、今後クロスプラットフォームでの開発などが要件に上がってきた時に備えて
    Xamarinの理解も進めておくべきですね。

    実際に開発されている方の貴重なご意見、とても参考になりました。
    補足に示していただいた情報も、確認して参ります。
    分かりやすく丁寧なご回答、深く感謝いたします。

    キャンセル

+2

Xamarinの経験は無く、iOSはネイティブの開発しかやったことはありませんが、一点だけ補足させていただくと
ネイティブでの開発では、基本的にはObjective-CよりもSwiftを強くおすすめします。

たまに構文が破壊的なバージョンアップをすることがありますが、
C#よりもシンプルに書けることが多いです。
(LINQが無いのでデータ処理で物足りなさは感じるかもしれませんが)

サードパーティ製の(ネイティブ用の)ライブラリはSwiftからでも使えるはずです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/12 10:20

    回答に対するコメントが反映されていないことに気付いておりませんでした。
    お礼が遅くなり、大変失礼致しました。
    改めまして、ご回答頂き、ありがとうございます。

    導入を想定しているSDKの言語の但し書きに"Objective-C"とある為、Swiftは検討しておりませんでした。
    "ネイティブでの開発では、基本的にはObjective-CよりもSwiftを強くおすすめします。"
    とのコメントにつきまして、もしお手間でなければ、その理由をお聞かせ願います。

    ちなみにですが、それぞれの言語でのサンプルコードを眺めた率直な感想として、
    Objyective-CはC言語のオブジェクト指向版、ということで納得ではありますが、結構クセがありますね。
    C言語よりも、オブジェクト指向言語での開発が長い私としては、Swiftがとっつき易く感じたところです。

    キャンセル

  • 2019/02/12 14:40

    理由はズバリこれ!という単純な回答はできませんが、とにかく書きやすいという点に尽きるかなと思います。ObjCで散々面倒くさかった構文がSwiftだとお手軽に書ける事が多いです。異論は多々アリそうですが、書き手の感覚としてはC++とC#との関係性がObjCとSwiftの関係性に近いかなと思います。ライブラリがObjCでのみならObjCでも構わないと思います。また、ObjCとSwiftは混在して使うこともできます。

    キャンセル

  • 2019/02/12 14:45

    参考になるかわかりませんが、一読の価値があると思います。

    今すぐObjective-CをやめてSwiftを使おう
    https://qiita.com/koher/items/4aea541fd0f0d8a9a166

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る