xcodeを使った時のメモ

もうちょっとちゃんと整理しよう・・・。

  • プロジェクトの作成
    • 種類
      • ★SingleView Application
        • 画面1枚のアプリのテンプレートです。あとで画面を追加することも可能なので、基本的に簡単なアプリはこれを使って作ることが多いです。
        • 真っ白な画面だけが用意される
      • OpenGL Game
        • OpenGLを使うゲームアプリのテンプレートです。
      • Argument Reality App
        • ARアプリ
      • Document Based App
        • Files の UI を使用でファイルを選択しアプリが動作する
    • Framework & Library
      • Cocoa Touch Framework
      • Cocoa Touch Static Library
      • Metal Library
    • アプリ情報設定
      • Product Name
        • 製品名を入力します。これがプロジェクト名となるので、アプリの名前に近いものにしておくといいと思います。
      • Organization
        • 世界中のアプリの中からあなたのアプリを識別するIDになるとても重要な値です。どんな値であっても世界中で一意となれば良いのですが、ドメインを逆さまから並べたものをOrganization Identifierに設定することが推奨されています(rainbowapps.comというドメインであればcom.rainbowapps)
        • <Bundle ID> = <Organization Identifier>.<Product Name>
          • メルカリ com.kouzou.mercari
      • Organization Name
        • 組織名を入力します。会社の名前や自分の名前がすでに入力されていると思うのでそのままでもよいと思います。
        • なしでも良い
      • Company Identifier
        • 会社ID。ドメイン名を入力します。
  • storyboad
    • plist(プロパティリスト)のxmlで構成されている
      • .plistは、Apple系のxmlみたいなファイル
      • プロパティのリスト
    • mergeが大変なので、複数人でいじるとconflictが起きやすい
    • 画面遷移を定義するためだけに使うべきかも
      • UIはxibで作る
      • 画面遷移はperformSegueWithIDで
  • 開発
    • 複数のxibを表示する
      • xibファイルを作成
      • storyboard
        • viewを設置
        • contoroller
          • xibファイルを読み込む
          • viewをコードに紐付け
          • 紐付けたviewに、読み込んだxibをadd view
          • コード
            • let viewF:UIView = UINib(nibName: “SampleView”, bundle: nil).instantiate(withOwner: self, options: nil)[0] as! UIView
            • viewFirst.addSubview(viewF)
    • 削除
      • remove reference:参照だけ削除する。ファイルは残る
      • move to trash:全部削除する
    • 困った点
      • constraintsが非活性になってしまう
    • 開発サポート
      • https://mbaas.nifcloud.com/about.htm
      • データベース、プッシュ通知、会員登録などサポート
    • ニフティの使い方
      • https://mbaas.nifcloud.com/doc/current/introduction/quickstart_ios.html
    • ライブラリ管理ツール
      • Carthage
        • Carthage(カーセッジ)は、Swift製のライブラリ管理ツールです。
        • 他でできることは他に任せシンプルさを保つ
        • シンプルで柔軟性があり、余計なことをしないため、コンパイル時間が短くなる
      • CocoaPods
        • 全てを請け負い何でもできる
      • アプリ起動したらどうなる?
        • main関数が呼ばれる
        • appDelegateが呼ばれる
        • viewControlerが生成?
      • appDelegateって?
        • アプリケーション起動時の初期化処理、ホームボタンが押された、再度アプリが開かれた、マルチタスクの場合、バックグラウンドからアクティブになった、iPhoneの場合、電話がかかってきた、電話使用が終わったなどの処理
        • ここに変数をおくと、どのクラスからも利用できる
        • AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
        • self.value2 = appDelegate.valule;
      • xib
        • initWithNibFileで?
        • segueを使わない遷移?
        • TempViewController *tempVC;tempVC = [self.storyboard instantiateViewControllerWithIdentifier:@”TempViewController”];