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とは異なっているだろうか。
Cを熟知してるなら (スコア:3)
言語仕様を確認すればいいんじゃ?
熟知するためには言語仕様を読まなきゃならんし、一つでも言語仕様を熟知することができてるなら
言語仕様を読むコストは言語を習得してルンルン開発できるようにするよりはるかに少ない。
言語仕様を読んで感触をつかんでから好みの方を、修練すればよい。
両方って訳にはいかんのか (スコア:2)
ネイティブな機能をガンガン使わないなら (スコア:2)
HTMLやJSなんかでもお手軽にアプリは作れるのでそっちでもいい気がしないでもないけど
Cを熟知しているのならObjective-Cでいい気がする。
しばらくはObjective-CとSwift混在でもいけるだろうし、Swiftのみになったらその時にまた移行すればいいだけの話だと思う。
どんなアプリを作るのか知らないけど (スコア:1)
C言語を熟知している かつ Javaは避けて通ってきた ならば、Objective-Cの方が学習コストは低いでしょう。
書籍やネット上の学習資料などが豊富なので、はまることはないはず。
# 「移植は実質的に書き直し」ですけど。
notice : I ignore an anonymous contribution.
素人がふれて感じたそれぞれの嫌なところ (スコア:1)
obj-cの嫌なところ
1) nilにアクセスしても落ちなくて、nilになったりする。でも、落ちたりもする。
2) 配列に何が入ってるかわからない。定義もできない。
3) 文字列操作の構文が長大。
4) 名前空間がない。
swiftの嫌なところ
1) try~catchできない。
2) 配列が値型。
3) ライブラリがそろってなくてobj-cのクラスを使う必要があるときも。
4) ググると、スズキのスイフトや、国際銀行間通信協会の記事が混じる。
後者は通信周りの情報を探してるとよくぶつかってがっかりする。
obj-cもswiftも1か月くらいしか触ってないけど嫌だなと思ったことはこんなところでしょうか。
いいところもいっぱいあるんですけどね
仕事にしないなら (スコア:0)
仕事にしないならわざわざObjective-Cを使う必要なんてないと思うけど。
移植のしやすさは期待しない方がいいけど、少なくともObjective-CよりはSwiftの方がKotlin、C#と馴染みが良いよね。
ObjC (スコア:0)
当然だよね。
Re:ObjC (スコア:1)
私も Objective C に一票
GUI周りは Objective Cの構文・ライブラリをつかう必要があるけど
それ以外のところは C の構文・ライブラリがそのまま使えます
「Cを熟知」しているなら、Objective Cでとりあえずアプリを作りながら
GUIとかイベントとかメッセージ処理の概念を理解するのが近道だと思います
Re: (スコア:0)
swiftもCのライブラリ使えるよ
Haxe (スコア:0)
iOS以外にもAndroid、WebでいえばHTMLやFlashにもアプリ出力できる。
こういう言語系の話題で見かけることないけど、結構使えると思うよ。
http://ja.wikipedia.org/wiki/Haxe [wikipedia.org]
Re:Haxe (スコア:1)
少なくとも、
な人にはあんまりオススメしない方がいいと思うけど。相当毛色が違うんじゃ?
Flash熟知していてiOSの開発もしてみたいってんなら結構アリだろうけど。
# 変化が結構速いからドキュメントまわりも結構大変かも
# 本当に細かいところまでわかるドキュメントって存在するのかな
.NETはどうだろうか (スコア:0)
C#ならiPhone,andrioid,windows phoneで動かせるから流儀に従って移植するのは楽だと思う
学習コストは高そうだけど
Delphi (スコア:0)
手元資金があるなら、Delphi で iPhone, Android の両対応ほぼ同時リリースやりたいんだよねえ。
Re: (スコア:0)
そうねぇ、「手元資金がある」のなら、選択肢の一つかも知れませんね。
# 使っている人が少ないと、いくらググっても回答が得られず、
# 結局インシデント消費して質問しないとプロジェクトが進まなくなって、
# にっちもさっちも行かなくなる危険が無いですからね。
C#erの意見 (スコア:0)
C#使いの意見ですが、言語仕様を読んで比べてみた限り、swiftの方が良いかなぁ、と思います。
Objective-Cって、何か構文が気持ち悪いんですよね……。
それに、純粋な言語じゃなくてCに上っ面かぶせたものなので、中途半端に見えて仕方が無いです。
もう一つ理由を挙げるとすれば、パフォーマンスですかねぇ。
Appleの発表なのでどこまで信用出来るか全く不明ですが、一応swiftの方がパフォーマンスが高い、と発表されています。
unity (スコア:0)
おっしゃられている二つの言語ではないが
unity(ゲームエンジン)なら対応言語3種あってその中から一つ選べばいい
このソフトは移植性がすごく高い
pcゲームもAndroidもiOSもPSVITAなどにも対応している
一候補として検討してみてはどうでしょうか?
HTML+JavaScript+サーバサイトの何か (スコア:0)
移植性とか考えるならWebアプリにすりゃいいよ。
オブジェクト指向言語を避けて通ってきた人なら、Objective-Cとか理解しようとしても無理だと思う。
さらにアンドロイド移植とか、不可能だと思った方がいいね。
Webベースなら、なんとかなるんじゃね? ネイティブな機能にはさわれないかもしれないが。
Objective-Cは木に竹を接いだような言語だから、Cしか知らないんじゃどうにもならないと思う。
オブジェクト指向わかってれば綺麗に分かれててすごく合理的と思うんだけどねぇ…。
個人的には、その変態的構文にさえ慣れれば、かなり使いやすい言語と思うけど、取っつきにくいよね。
移植性考えたら (スコア:0)
obj-cなんかつかわずc/c++ 使ったほうがいい