パスワードを忘れた? アカウント作成
11603114 story
プログラミング

iOSアプリの開発を始めるにあたって、SwiftとObjective-Cのどちらを最初に学ぶべき? 20

ストーリー by headless
国語 部門より
本家/.「Ask Slashdot: Swift Or Objective-C As New iOS Developer's 1st Language?」より

私はCとアセンブラーを使い、組み込み開発者として経験を積んできたが、iOSアプリのプロジェクトを始めようと思っている。しかし、Cは熟知しているものの、C++やC#、Javaは避けて通ってきたし、Objective-Cも少しかじった程度だ。iOS開発を始めるにあたって、Objective-CとSwiftのどちらを(少なくとも最初に)学ぶといいだろう。Swiftを中心にアプリ全体を開発するのは無理があるだろうか。私の目標はできるだけ速く簡単にアプリを公開することで、モバイル開発者として仕事を始めるつもりはない。また、もう一つ留意する点として、Android(やWindows Phone)への移植性がある。たとえば、作成したiOSアプリをAndroidに移植することにした場合、Objective-CとSwiftのどちらで書かれたものが移植しやすいだろうか。それとも、すべての「移植」は実質的に書き直しとなるほど、Dalvick+Android APIとSwift/Objective-C+Cocoa Touchとは異なっているだろうか。

  • by racco (37699) on 2014年09月28日 20時36分 (#2684286)

    言語仕様を確認すればいいんじゃ?

    熟知するためには言語仕様を読まなきゃならんし、一つでも言語仕様を熟知することができてるなら
    言語仕様を読むコストは言語を習得してルンルン開発できるようにするよりはるかに少ない。

    言語仕様を読んで感触をつかんでから好みの方を、修練すればよい。

  • 選べる状況というなら、なにか具体的な開発目標があるわけでも無い。
  • HTMLやJSなんかでもお手軽にアプリは作れるのでそっちでもいい気がしないでもないけど
    Cを熟知しているのならObjective-Cでいい気がする。
    しばらくはObjective-CとSwift混在でもいけるだろうし、Swiftのみになったらその時にまた移行すればいいだけの話だと思う。

  • C言語を熟知している かつ Javaは避けて通ってきた ならば、Objective-Cの方が学習コストは低いでしょう。
    書籍やネット上の学習資料などが豊富なので、はまることはないはず。

    # 「移植は実質的に書き直し」ですけど。

    --
    notice : I ignore an anonymous contribution.
  • by Anonymous Coward on 2014年09月28日 21時27分 (#2684317)

    obj-cの嫌なところ
    1) nilにアクセスしても落ちなくて、nilになったりする。でも、落ちたりもする。

    2) 配列に何が入ってるかわからない。定義もできない。

    3) 文字列操作の構文が長大。

    4) 名前空間がない。

    swiftの嫌なところ
    1) try~catchできない。

    2) 配列が値型。

    3) ライブラリがそろってなくてobj-cのクラスを使う必要があるときも。

    4) ググると、スズキのスイフトや、国際銀行間通信協会の記事が混じる。
      後者は通信周りの情報を探してるとよくぶつかってがっかりする。

    obj-cもswiftも1か月くらいしか触ってないけど嫌だなと思ったことはこんなところでしょうか。
    いいところもいっぱいあるんですけどね

  • by Anonymous Coward on 2014年09月28日 17時50分 (#2684213)

    仕事にしないならわざわざObjective-Cを使う必要なんてないと思うけど。
    移植のしやすさは期待しない方がいいけど、少なくともObjective-CよりはSwiftの方がKotlin、C#と馴染みが良いよね。

  • by Anonymous Coward on 2014年09月28日 17時54分 (#2684218)

    当然だよね。

    • by annoymouse coward (11178) on 2014年09月28日 18時23分 (#2684228) 日記

      私も Objective C に一票

      GUI周りは Objective Cの構文・ライブラリをつかう必要があるけど
      それ以外のところは C の構文・ライブラリがそのまま使えます

      「Cを熟知」しているなら、Objective Cでとりあえずアプリを作りながら
      GUIとかイベントとかメッセージ処理の概念を理解するのが近道だと思います

      • by Anonymous Coward

        swiftもCのライブラリ使えるよ

  • by Anonymous Coward on 2014年09月28日 18時21分 (#2684225)

    iOS以外にもAndroid、WebでいえばHTMLやFlashにもアプリ出力できる。
    こういう言語系の話題で見かけることないけど、結構使えると思うよ。

    http://ja.wikipedia.org/wiki/Haxe [wikipedia.org]

    • by tamanegi (38323) on 2014年09月28日 21時12分 (#2684311) 日記

      少なくとも、

      Cは熟知しているものの、C++やC#、Javaは避けて通ってきたし、Objective-Cも少しかじった程度

      な人にはあんまりオススメしない方がいいと思うけど。相当毛色が違うんじゃ?
      Flash熟知していてiOSの開発もしてみたいってんなら結構アリだろうけど。

      # 変化が結構速いからドキュメントまわりも結構大変かも
      # 本当に細かいところまでわかるドキュメントって存在するのかな

  • by Anonymous Coward on 2014年09月28日 19時11分 (#2684247)

    C#ならiPhone,andrioid,windows phoneで動かせるから流儀に従って移植するのは楽だと思う
    学習コストは高そうだけど

  • by Anonymous Coward on 2014年09月28日 19時30分 (#2684257)

    手元資金があるなら、Delphi で iPhone, Android の両対応ほぼ同時リリースやりたいんだよねえ。

    • by Anonymous Coward

      そうねぇ、「手元資金がある」のなら、選択肢の一つかも知れませんね。

      # 使っている人が少ないと、いくらググっても回答が得られず、
      # 結局インシデント消費して質問しないとプロジェクトが進まなくなって、
      # にっちもさっちも行かなくなる危険が無いですからね。

  • by Anonymous Coward on 2014年09月28日 20時26分 (#2684279)

    C#使いの意見ですが、言語仕様を読んで比べてみた限り、swiftの方が良いかなぁ、と思います。

    Objective-Cって、何か構文が気持ち悪いんですよね……。
    それに、純粋な言語じゃなくてCに上っ面かぶせたものなので、中途半端に見えて仕方が無いです。

    もう一つ理由を挙げるとすれば、パフォーマンスですかねぇ。
    Appleの発表なのでどこまで信用出来るか全く不明ですが、一応swiftの方がパフォーマンスが高い、と発表されています。

  • by Anonymous Coward on 2014年09月28日 21時00分 (#2684302)

    おっしゃられている二つの言語ではないが
    unity(ゲームエンジン)なら対応言語3種あってその中から一つ選べばいい
    このソフトは移植性がすごく高い
    pcゲームもAndroidもiOSもPSVITAなどにも対応している
    一候補として検討してみてはどうでしょうか?

  • by Anonymous Coward on 2014年09月28日 22時27分 (#2684328)

    移植性とか考えるならWebアプリにすりゃいいよ。
    オブジェクト指向言語を避けて通ってきた人なら、Objective-Cとか理解しようとしても無理だと思う。
    さらにアンドロイド移植とか、不可能だと思った方がいいね。
    Webベースなら、なんとかなるんじゃね? ネイティブな機能にはさわれないかもしれないが。

    Objective-Cは木に竹を接いだような言語だから、Cしか知らないんじゃどうにもならないと思う。
    オブジェクト指向わかってれば綺麗に分かれててすごく合理的と思うんだけどねぇ…。
    個人的には、その変態的構文にさえ慣れれば、かなり使いやすい言語と思うけど、取っつきにくいよね。

  • by Anonymous Coward on 2014年09月28日 23時17分 (#2684344)

    obj-cなんかつかわずc/c++ 使ったほうがいい

typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...