JavaプログラマがXcodeでiPhoneアプリを作ってみる.1週目

普段はJava+Eclipseでプログラムをしているのですが、いろいろあってXcode 6 beta + Swiftを初めることになりました。学んだことを書いてみます。Xcode 5もObjective-Cもほぼ触ったことがありません。周りに経験者もいないので先生はGoogleです。間違っている箇所は教えてください。

Xcode

  • ファイルは自動保存
  • gitがディフォルトで使える

Swift

  • 全角文字があると自動保管が効かない(Xcode 6 beta 2の時点)。ファイルを作成すると上のコメントの「2014年」年は消す
  • 基本Objective-Cとライブラリは同じっぽい。Objective-Cとの文法の対応が分かれば、Objective-CのサンプルコードをSwiftに置き換えることが可能。パラメータが省略されていることがあるので、完全に機械的にはできなさそう。
  • JavaのObjectに相当するクラスは、NSObject
  • JavaのMapに相当するクラスは、NSDictionary
  • JavaのArrayに相当するクラスは、NSArray
  • JavaのNullに相当するのは、nil(NSNullは、Nullオブジェクトに相当?)
  • ヌルポをコンパイラーレベルでチェックする仕組みがある。var foo:String?こんな感じで?を使用するとヌルポチェックをしてくれるようになる

View

  • 画面遷移やレイヤ雨とはStoryBoardで設定するとviewがロジックと分離できる
  • XCode 6 betaだとプロジェクト作成時にiPhoneを選んでも画像サイズが大きい。理由は未調査。
  • 後から新しいStoryBoardをiPhone様に作ると、ちょうどいいサイズのViewになる。
  • Auto Layoutを使用すると複数の画面サイズに対応できる

ネットワーク

  • Web Viewでブラウザをアプリのパーツに使える(UIWebView)
  • 手軽にHTTP通信をするなら(var err:NSError? = nil;let data:NSData = NSData(contentsOfURL:url, options:nil, error:&err))
  • 非同期でHTTP通信ができる(NSURL,NSURLConnection,NSURLRequest)
  • 自力でFTP通信もできる(詳細未調査)

永続化

  • アプリ内のデータ保存には、key-value方式とRDB方式が選べる
  • RDB方式は、Core Dataライブラリを使う。Core Dataは、SQLiteを使ったORマッパー。
  • SQLiteを直につかう方法もある。
  • 保存領域には、アプリ専用とか共有領域がある
  • 参考になるサイト・・・http://d.hatena.ne.jp/glass-_-onion/20110904/1315142404